From 8a755f874d1d0163f54781e95b4a28bdfd79cc4a Mon Sep 17 00:00:00 2001 From: Andrea Adamczyk Date: Thu, 10 Dec 2020 11:19:30 -0400 Subject: [PATCH] PMCORE-2529 PMCORE-2541: Improve update filters in advanced search UI fix Cr notes fix Cr notes 2 solve conflicts fix Cr notes 3 --- package-lock.json | 19 +- package.json | 2 +- resources/assets/js/api/Api.js | 27 ++ resources/assets/js/api/Filters.js | 25 +- .../js/components/menu/CustomSidebar.vue | 38 +-- .../js/components/search/GenericFilter.vue | 244 +++++++++--------- .../components/search/popovers/CaseNumber.vue | 22 +- .../components/search/popovers/CaseTitle.vue | 19 +- .../js/components/search/popovers/DueDate.vue | 28 +- .../search/popovers/LastModifiedDate.vue | 28 +- .../search/popovers/ProcessName.vue | 86 +++--- resources/assets/js/home/AdvancedSearch.vue | 97 ++++++- resources/assets/js/home/Home.vue | 99 +++++-- 13 files changed, 395 insertions(+), 339 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3ba4535e5..25d6a6d78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9024,11 +9024,6 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" - }, "resolve": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", @@ -10724,15 +10719,6 @@ "swiper": "^4.0.7" } }, - "vue-bootstrap-typeahead": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/vue-bootstrap-typeahead/-/vue-bootstrap-typeahead-0.2.6.tgz", - "integrity": "sha512-BcUAnvfN+PS0StL6E3endd37P7HUt9otk+8m7tsa2gkt2I2KY8O2Dma49oR8ie8iletvJAlAqpN+klF6ktPULQ==", - "requires": { - "resize-observer-polyfill": "^1.5.0", - "vue": "^2.5.17" - } - }, "vue-chartjs": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-3.5.1.tgz", @@ -10845,6 +10831,11 @@ } } }, + "vue-multiselect": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/vue-multiselect/-/vue-multiselect-2.1.6.tgz", + "integrity": "sha512-s7jmZPlm9FeueJg1RwJtnE9KNPtME/7C8uRWSfp9/yEN4M8XcS/d+bddoyVwVnvFyRh9msFo0HWeW0vTL8Qv+w==" + }, "vue-muuri": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/vue-muuri/-/vue-muuri-0.1.2.tgz", diff --git a/package.json b/package.json index 1be50e64c..1c9e5c42c 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,6 @@ "uiv": "^0.28.0", "vue": "^2.6.12", "vue-awesome-swiper": "^3.1.3", - "vue-bootstrap-typeahead": "^0.2.6", "vue-chartjs": "^3.3.2", "vue-clipboards": "^1.2.4", "vue-color": "^2.7.0", @@ -48,6 +47,7 @@ "vue-fullscreen": "^2.1.3", "vue-i18n": "^8.22.2", "vue-js-toggle-button": "^1.3.1", + "vue-multiselect": "^2.1.6", "vue-muuri": "^0.1.2", "vue-router": "^3.4.9", "vue-search-select": "^2.7.0", diff --git a/resources/assets/js/api/Api.js b/resources/assets/js/api/Api.js index fc21c1b74..22e0dc1e1 100644 --- a/resources/assets/js/api/Api.js +++ b/resources/assets/js/api/Api.js @@ -63,8 +63,10 @@ const services = { UNASSIGNED_LIST: "/home/unassigned", MY_FILTERS: "/cases/advanced-search/filters", POST_MY_FILTERS: "/cases/advanced-search/filter", + PUT_MY_FILTERS: "/cases/advanced-search/filter/", DELETE_MY_FILTERS: "/cases/advanced-search/filter/", SEARCH: "/home/search", + PROCESSES: "/home/processes" }; export default { @@ -162,6 +164,7 @@ export default { } }); }, + delete(options) { let service = options.service || "", id = options.id || {}, @@ -181,5 +184,29 @@ export default { "Authorization": `Bearer ` + credentials.accessToken } }); + }, + put(options) { + let service = options.service || "", + params = options.params || {}, + data = options.data || {}, + id = options.id || {}, + keys = options.keys || {}, + url, + credentials = window.config.SYS_CREDENTIALS, + workspace = window.config.SYS_WORKSPACE, + server = window.config.SYS_SERVER; + url = this.getUrl(_.extend(keys, credentials, { server }, { workspace }), service); + + return axios({ + method: "put", + url: url + id, + params, + data, + headers: { + "Accept": "application/json", + "Content-Type": "application/json", + "Authorization": `Bearer ` + credentials.accessToken + } + }); } }; diff --git a/resources/assets/js/api/Filters.js b/resources/assets/js/api/Filters.js index 192e21665..53456f4d0 100644 --- a/resources/assets/js/api/Filters.js +++ b/resources/assets/js/api/Filters.js @@ -20,9 +20,15 @@ export let filters = { delete(data) { return Api.delete({ service: "DELETE_MY_FILTERS", - id: data.id, - + keys: {}, + }); + }, + put(data) { + return Api.put({ + service: "PUT_MY_FILTERS", + id: data.id, + data, keys: {}, }); }, @@ -43,14 +49,13 @@ export let filters = { * Service to get the process list */ processList(query) { - return axios.post( - window.config.SYS_SERVER + - window.config.SYS_URI + - `cases/casesList_Ajax?actionAjax=processListExtJs&action=search`, - { - query, - } - ); + return Api.get({ + service: "PROCESSES", + params: { + text: query, + }, + keys: {}, + }); }, /** * Service to get the users list diff --git a/resources/assets/js/components/menu/CustomSidebar.vue b/resources/assets/js/components/menu/CustomSidebar.vue index e54df92ed..ebdd91fc0 100644 --- a/resources/assets/js/components/menu/CustomSidebar.vue +++ b/resources/assets/js/components/menu/CustomSidebar.vue @@ -23,9 +23,9 @@ import api from "./../../api/index"; export default { name: "CustomSidebar", + props: ["menu"], data() { return { - menu: [], collapsed: false, isOnMobile: false, hideToggle: true, @@ -43,14 +43,6 @@ export default { mounted() { this.onResize(); window.addEventListener("resize", this.onResize); - api.menu - .get() - .then((response) => { - this.menu = this.mappingMenu(response.data); - }) - .catch((e) => { - console.error(e); - }); }, methods: { /** @@ -82,34 +74,6 @@ export default { this.isOnMobile = false; this.collapsed = false; } - }, - /** - * Do a mapping of vue view for menus - * @returns array - */ - mappingMenu(data) { - var i, - j, - newData = data, - auxId, - viewVue = { - 'CASES_MY_CASES': 'MyCases', - 'CASES_SEARCH': 'advanced-search', - 'CASES_INBOX': 'todo', - 'CASES_DRAFT': 'draft', - 'CASES_PAUSED': 'paused', - 'CASES_SELFSERVICE': 'unassigned', - 'CONSOLIDATED_CASES': 'batch-routing', - 'CASES_TO_REASSIGN': 'task-reassignments', - 'CASES_FOLDERS': 'my-documents' - }; - for (i = 0; i < data.length; i += 1) { - auxId = data[i].id || ''; - if (auxId !== '' && viewVue[auxId]) { - newData[i].id = viewVue[auxId]; - } - } - return newData; } }, }; diff --git a/resources/assets/js/components/search/GenericFilter.vue b/resources/assets/js/components/search/GenericFilter.vue index 7ac3a4599..9feb77068 100644 --- a/resources/assets/js/components/search/GenericFilter.vue +++ b/resources/assets/js/components/search/GenericFilter.vue @@ -1,15 +1,7 @@