diff --git a/cms/src/api/update-item/controllers/update-item.js b/cms/src/api/update-item/controllers/update-item.js index 3f2306dfb37e300e81001880d17c2b6dc05103c2..fb5e111a0acbc417f3bb882815675d57accc06b5 100644 --- a/cms/src/api/update-item/controllers/update-item.js +++ b/cms/src/api/update-item/controllers/update-item.js @@ -87,8 +87,8 @@ module.exports = createCoreController('api::update-item.update-item', ({ strapi case 'Authenticated': case 'Contributor': // Remove operation should be intact - // ctx.query['filters'] = { submittedBy: ctx.state.user.id }; - // break; + ctx.query['filters'] = { submittedBy: ctx.state.user.id }; + break; case 'Maintainer': case 'Administrator': @@ -103,27 +103,40 @@ module.exports = createCoreController('api::update-item.update-item', ({ strapi return super.find(ctx) }, - async filterProteinOrCondensateRequest(ctx){ + async filterProteinOrCondensateRequest(ctx) { // return ctx.send('Hello World!'); console.log(); - let res; - switch (ctx.state.user.role.name) { + let res; + switch (ctx.state.user.role.name) { case 'Public': case 'Authenticated': - res= await strapi.db.query('api::update-item.update-item').findMany({ - where: { - EntityId: { - $contains: ctx.params.id - } + // res = await strapi.db.query('api::update-item.update-item').findMany({ + // where: { + // EntityId: { + // $contains: ctx.params.id + // } + // }, + // }); + ctx.query["filters"] = { + ...ctx.query["filters"], + EntityId: { + $contains: ctx.params.id, }, - }); + + }; + res = super.find(ctx) break case 'Contributor': // Remove operation should be intact - ctx.query['filters'] = { ...ctx.query['filters'], submittedBy: ctx.state.user.id, EntityId: ctx.params.id }; + + ctx.query["filters"] = { + ...ctx.query["filters"], submittedBy: ctx.state.user.id, EntityId: { + $contains: ctx.params.id, + } + } // res = await strapi.db.query('api::update-item.update-item').findMany({ // // where: { @@ -139,7 +152,13 @@ module.exports = createCoreController('api::update-item.update-item', ({ strapi case 'Maintainer': // console.log(ctx) // console.log(ctx.params) - ctx.query['filters'] = { ...ctx.query['filters'], EntityId: ctx.params.id }; + ctx.query["filters"] = { + ...ctx.query["filters"], + EntityId: { + $contains: ctx.params.id, + }, + + }; // res= await strapi.entityService.findMany('api::update-item.update-item', { // start: 10, // limit: 15, @@ -157,17 +176,17 @@ module.exports = createCoreController('api::update-item.update-item', ({ strapi // Apply review operation // const entity = await strapi.service('api::update-item.update-item').findOne(ctx.params.id); // console.log(entity); - res= await strapi.db.query('api::update-item.update-item').findMany({ - - where: { - EntityId: { - $contains: ctx.params.id - } + ctx.query["filters"] = { + ...ctx.query["filters"], + EntityId: { + $contains: ctx.params.id, }, - }); + + }; + res = super.find(ctx) break; } -console.log(res); + console.log(res); return res }, async findOne(ctx) { diff --git a/web/src/components/CondensateUpdateItemsTable.vue b/web/src/components/CondensateUpdateItemsTable.vue index 20eebdc813559283a6c539691ebce389e94d569a..d0f8d4c1292ba296713803aa374dde1154a628f3 100644 --- a/web/src/components/CondensateUpdateItemsTable.vue +++ b/web/src/components/CondensateUpdateItemsTable.vue @@ -154,11 +154,7 @@ export default { const qs = require("qs"); const query = { - filters: { - EntityId: { - $contains: vm.data, - }, - }, + pagination: { pageSize: lengthItem.value, page: page, @@ -224,7 +220,7 @@ export default { encodeValuesOnly: true, }); - let url = `${host}/api/update-items?${queryString}`; + let url = `${host}/api/update-item/filterProteinOrCondensateRequest/${vm.data}?${queryString}`; console.log("new url", url); const jwt = vm.jwt; if (jwt === null) { diff --git a/web/src/components/ProteinUpdateItemTable.vue b/web/src/components/ProteinUpdateItemTable.vue index de99b1d994c3719339c3b7332121a227d0e5bff1..b511f9125739ba838649290ce25d5fdd6b71a5b1 100644 --- a/web/src/components/ProteinUpdateItemTable.vue +++ b/web/src/components/ProteinUpdateItemTable.vue @@ -1,35 +1,32 @@ <template> - - <table - :id="id" - class="table table-striped table-bordered table-hover" - ></table> - + <table + :id="id" + class="table table-striped table-bordered table-hover" + ></table> </template> <script> -const _ = require('lodash'); -let host = require('./js/const').apiHost +const _ = require("lodash"); +let host = require("./js/const").apiHost; -const $ = window.jQuery = require('jquery'); -require('@/components/js/datatable'); +const $ = (window.jQuery = require("jquery")); +require("@/components/js/datatable"); let table; export default { - - props: ['id', 'data', 'meta'], + props: ["id", "data", "meta"], data() { return { rows: [], header: [], total: 0, - isDev: process.env.NODE_ENV === 'development', + isDev: process.env.NODE_ENV === "development", }; }, computed: { jwt: function () { - return this.$store.getters['User/jwt'] + return this.$store.getters["User/jwt"]; }, }, methods: { @@ -47,7 +44,6 @@ export default { fnCreatedCell: (nTd, sData, oData) => { $(nTd).html(`<a href="" class="edit-link"> ${sData}</a>`); }, - }, { title: "Resource Name", @@ -77,11 +73,10 @@ export default { title: "Submitted at", data: "attributes.SubmittedAt", render: function (data, type, row, meta) { - return new Date(Date.parse(data)).toLocaleString(); }, }, - + // { // title: "Reviewer", // data: "attributes.reviewedBy", @@ -95,12 +90,15 @@ export default { // }, ]; - vm.headers = columns + vm.headers = columns; const nTableOptions = { columns, // aaSorting: [[ 0, 'asc' ]], - lengthMenu: [[10, 25, 50, 100], [10, 25, 50, 100]], + lengthMenu: [ + [10, 25, 50, 100], + [10, 25, 50, 100], + ], paging: true, searching: true, info: true, @@ -112,9 +110,9 @@ export default { sSearch: "Filter", }, fnServerData: function (sSource, aoData, fnCallback, oSettings) { - oSettings.jqXHR = vm.fetchCallback(vm.rows, aoData, fnCallback) + oSettings.jqXHR = vm.fetchCallback(vm.rows, aoData, fnCallback); }, - dom: '<"row"<"col-sm-2"l><"col-sm-2"f><"col-sm-8"p>><"row"t><"row"<"col-sm-4"i><"col-sm-8"p>>' + dom: '<"row"<"col-sm-2"l><"col-sm-2"f><"col-sm-8"p>><"row"t><"row"<"col-sm-4"i><"col-sm-8"p>>', }; const tableId = `#${id}`; @@ -134,55 +132,64 @@ export default { vm.editUpdateItem(row.data().id); }); }, - async fetchCallback (data, aoData, fnCallback) { - let vm = this + async fetchCallback(data, aoData, fnCallback) { + let vm = this; // console.log(aoData) - let orderItem = aoData.find(x => x.name === 'order') - let startItem = aoData.find(x => x.name === 'start') - let lengthItem = aoData.find(x => x.name === 'length') - let searchItem = aoData.find(x => x.name === 'search') + let orderItem = aoData.find((x) => x.name === "order"); + let startItem = aoData.find((x) => x.name === "start"); + let lengthItem = aoData.find((x) => x.name === "length"); + let searchItem = aoData.find((x) => x.name === "search"); // console.log(`length = ${lengthItem.value}, offset = ${startItem.value}`) // console.log(`orderItem = ${orderItem.value}, searchItem = ${searchItem.value.value}`) - const page = startItem.value / lengthItem.value + 1 + const page = startItem.value / lengthItem.value + 1; - let search = searchItem.value.value + let search = searchItem.value.value; - if(vm.isDev) { - host = require('./js/const').devApiHost; + if (vm.isDev) { + host = require("./js/const").devApiHost; } - const qs = require('qs'); + const qs = require("qs"); const query = { - filters: { - EntityId: { - $contains: vm.data, - }, + pagination: { + pageSize: lengthItem.value, + page: page, }, - }; - const columns = ['id', 'Entity', 'EntityId', 'Attribute', 'Value', 'ChangeOperation', 'Status', 'SubmittedAt', 'submittedBy.username', 'reviewedBy.username'] + const columns = [ + "id", + "Entity", + "EntityId", + "Attribute", + "Value", + "ChangeOperation", + "Status", + "SubmittedAt", + "submittedBy.username", + "reviewedBy.username", + ]; - let order = ['id:asc'] + let order = ["id:asc"]; if (orderItem.value.length > 0) { orderItem.value.forEach(function (data) { // console.log(data) - order = `${columns[data.column]}:${data.dir}` - }) + order = `${columns[data.column]}:${data.dir}`; + }); // console.log(order) } - query['sort'] = order + query["sort"] = order; if (searchItem.value.value) { - query['filters'] = { + query["filters"] = { $or: [ { Entity: { $containsi: search, - } + }, }, { EntityId: { @@ -202,54 +209,53 @@ export default { { Value: { $containsi: search, - } - }] - } + }, + }, + ], + }; } const queryString = qs.stringify(query, { encodeValuesOnly: true, }); - let url = `${host}/api/update-items?${queryString}`; -console.log("protein udate", url); + let url = `${host}/api/update-item/filterProteinOrCondensateRequest/${vm.data}?${queryString}`; + console.log("protein udate", url); const jwt = vm.jwt; - if(jwt === null) { - return + if (jwt === null) { + return; } - // let dat = { - // draw: aoData.draw, - - // data: vm.data - // } + // let dat = { + // draw: aoData.draw, - // fnCallback(dat) + // data: vm.data + // } + + // fnCallback(dat) try { const res = await this.axios.get(url, { headers: { - Authorization: `Bearer ${jwt}` - } + Authorization: `Bearer ${jwt}`, + }, }); - - if(res.data) { - - let dat = { + if (res.data) { + let dat = { draw: aoData.draw, - recordsTotal: query['filters'] ? vm.total: vm.total = res.data.meta.pagination.total, + recordsTotal: query["filters"] + ? vm.total + : (vm.total = res.data.meta.pagination.total), recordsFiltered: res.data.meta.pagination.total, - data: res.data.data - } + data: res.data.data, + }; - fnCallback(dat) + fnCallback(dat); } - } catch(error) { - - this.error = true - this.errorMsg = "You are not authorized to access this item." - + } catch (error) { + this.error = true; + this.errorMsg = "You are not authorized to access this item."; } }, exportTsv() { @@ -259,7 +265,6 @@ console.log("protein udate", url); mounted() { const vm = this; vm.createTable(vm.id); - }, }; </script>