From 171cc32e16b24990edea722da290e9505ebdaaba Mon Sep 17 00:00:00 2001 From: fabio Date: Tue, 15 Dec 2020 17:34:47 -0400 Subject: [PATCH] PMCORE-2548:Review pagination in the tables. --- resources/assets/js/api/Cases.js | 10 ++++++++-- resources/assets/js/home/AdvancedSearch.vue | 15 +++++++++++---- resources/assets/js/home/Draft.vue | 14 ++++++++++---- resources/assets/js/home/MyCases.vue | 11 ++++++++--- resources/assets/js/home/Paused.vue | 14 ++++++++++---- resources/assets/js/home/Todo.vue | 14 ++++++++++---- resources/assets/js/home/Unassigned.vue | 14 ++++++++++---- .../engine/src/ProcessMaker/Services/Api/Home.php | 2 +- 8 files changed, 68 insertions(+), 26 deletions(-) diff --git a/resources/assets/js/api/Cases.js b/resources/assets/js/api/Cases.js index 2fb9b94a0..f2f930119 100644 --- a/resources/assets/js/api/Cases.js +++ b/resources/assets/js/api/Cases.js @@ -8,7 +8,8 @@ export let cases = { return Api.get({ service: "MY_CASES", params: { - filter: data.filter + filter: data.filter, + paged: data.paged }, keys: {} }); @@ -17,6 +18,7 @@ export let cases = { return Api.get({ service: "TODO_LIST", params: { + paged: data.paged }, keys: {} }); @@ -25,6 +27,7 @@ export let cases = { return Api.get({ service: "DRAFT_LIST", params: { + paged: data.paged }, keys: {} }); @@ -33,6 +36,7 @@ export let cases = { return Api.get({ service: "PAUSED_LIST", params: { + paged: data.paged }, keys: {} }); @@ -41,6 +45,7 @@ export let cases = { return Api.get({ service: "UNASSIGNED_LIST", params: { + paged: data.paged }, keys: {} }); @@ -164,7 +169,8 @@ export let cases = { return Api.get({ service: "SEARCH", params: dt, - keys: {} + keys: {}, + paged: dt.paged }) } diff --git a/resources/assets/js/home/AdvancedSearch.vue b/resources/assets/js/home/AdvancedSearch.vue index 8dbcd834f..86310027d 100644 --- a/resources/assets/js/home/AdvancedSearch.vue +++ b/resources/assets/js/home/AdvancedSearch.vue @@ -151,7 +151,7 @@ export default { programmatic: false, }, requestFunction(data) { - return this.$parent.$parent.getCasesForVueTable(); + return this.$parent.$parent.getCasesForVueTable(data); }, customFilters: ["myfilter"], }, @@ -167,16 +167,23 @@ export default { /** * Get cases data by header */ - getCasesForVueTable() { + getCasesForVueTable(data) { let that = this, - dt; + dt, + paged, + limit = data.limit, + start = data.page === 1 ? 0 : limit * (data.page - 1); + paged = start + ',' + limit; return new Promise((resolutionFunc, rejectionFunc) => { let filters = {}; _.forIn(this.filters, function(value, key) { filters = {...filters, ...value}; }); api.cases - .search(filters) + .search({ + filters, + paged:paged + }) .then((response) => { dt = that.formatDataResponse(response.data.data); resolutionFunc({ diff --git a/resources/assets/js/home/Draft.vue b/resources/assets/js/home/Draft.vue index 8776beec3..6a9aa172a 100644 --- a/resources/assets/js/home/Draft.vue +++ b/resources/assets/js/home/Draft.vue @@ -90,7 +90,7 @@ export default { programmatic: false, }, requestFunction(data) { - return this.$parent.$parent.getCasesForVueTable(); + return this.$parent.$parent.getCasesForVueTable(data); }, }, pmDateFormat: "Y-m-d H:i:s", @@ -112,12 +112,18 @@ export default { /** * Get cases todo data */ - getCasesForVueTable() { + getCasesForVueTable(data) { let that = this, - dt; + dt, + paged, + limit = data.limit, + start = data.page === 1 ? 0 : limit * (data.page - 1); + paged = start + ',' + limit; return new Promise((resolutionFunc, rejectionFunc) => { api.cases - .draft() + .draft({ + paged: paged + }) .then((response) => { dt = that.formatDataResponse(response.data.data); resolutionFunc({ diff --git a/resources/assets/js/home/MyCases.vue b/resources/assets/js/home/MyCases.vue index d17c89f39..ecaa10f69 100644 --- a/resources/assets/js/home/MyCases.vue +++ b/resources/assets/js/home/MyCases.vue @@ -107,7 +107,7 @@ export default { programmatic: false, }, requestFunction(data) { - return this.$parent.$parent.getCasesForVueTable(); + return this.$parent.$parent.getCasesForVueTable(data); }, }, translations: null, @@ -156,13 +156,18 @@ export default { /** * Get cases data by header */ - getCasesForVueTable() { + getCasesForVueTable(data) { let that = this, - dt; + dt, + paged, + limit = data.limit, + start = data.page === 1 ? 0 : limit * (data.page - 1); + paged = start + ',' + limit; return new Promise((resolutionFunc, rejectionFunc) => { api.cases .myCases({ filter: that.filterHeader, + paged: paged }) .then((response) => { dt = that.formatDataResponse(response.data.data); diff --git a/resources/assets/js/home/Paused.vue b/resources/assets/js/home/Paused.vue index a614ecd5e..e9c69f588 100644 --- a/resources/assets/js/home/Paused.vue +++ b/resources/assets/js/home/Paused.vue @@ -119,7 +119,7 @@ export default { programmatic: false, }, requestFunction(data) { - return this.$parent.$parent.getCasesForVueTable(); + return this.$parent.$parent.getCasesForVueTable(data); }, }, pmDateFormat: "Y-m-d H:i:s", @@ -141,12 +141,18 @@ export default { /** * Get cases todo data */ - getCasesForVueTable() { + getCasesForVueTable(data) { let that = this, - dt; + dt, + paged, + limit = data.limit, + start = data.page === 1 ? 0 : limit * (data.page - 1); + paged = start + ',' + limit; return new Promise((resolutionFunc, rejectionFunc) => { api.cases - .paused() + .paused({ + paged: paged + }) .then((response) => { dt = that.formatDataResponse(response.data.data); resolutionFunc({ diff --git a/resources/assets/js/home/Todo.vue b/resources/assets/js/home/Todo.vue index 71d395c72..3c4eb4c55 100644 --- a/resources/assets/js/home/Todo.vue +++ b/resources/assets/js/home/Todo.vue @@ -112,7 +112,7 @@ export default { programmatic: false, }, requestFunction(data) { - return this.$parent.$parent.getCasesForVueTable(); + return this.$parent.$parent.getCasesForVueTable(data); }, }, pmDateFormat: "Y-m-d H:i:s", @@ -134,12 +134,18 @@ export default { /** * Get cases todo data */ - getCasesForVueTable() { + getCasesForVueTable(data) { let that = this, - dt; + dt, + paged, + limit = data.limit, + start = data.page === 1 ? 0 : limit * (data.page - 1); + paged = start + ',' + limit; return new Promise((resolutionFunc, rejectionFunc) => { api.cases - .todo() + .todo({ + paged: paged + }) .then((response) => { dt = that.formatDataResponse(response.data.data); resolutionFunc({ diff --git a/resources/assets/js/home/Unassigned.vue b/resources/assets/js/home/Unassigned.vue index 25a4b963e..366c051b3 100644 --- a/resources/assets/js/home/Unassigned.vue +++ b/resources/assets/js/home/Unassigned.vue @@ -116,7 +116,7 @@ export default { programmatic: false, }, requestFunction(data) { - return this.$parent.$parent.getCasesForVueTable(); + return this.$parent.$parent.getCasesForVueTable(data); }, }, pmDateFormat: "Y-m-d H:i:s", @@ -138,12 +138,18 @@ export default { /** * Get cases unassigned data */ - getCasesForVueTable() { + getCasesForVueTable(data) { let that = this, - dt; + dt, + paged, + limit = data.limit, + start = data.page === 1 ? 0 : limit * (data.page - 1); + paged = start + ',' + limit; return new Promise((resolutionFunc, rejectionFunc) => { api.cases - .unassigned() + .unassigned({ + paged: paged + }) .then((response) => { dt = that.formatDataResponse(response.data.data); resolutionFunc({ diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Home.php b/workflow/engine/src/ProcessMaker/Services/Api/Home.php index 2f7032a64..7b6dfe403 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Home.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Home.php @@ -473,7 +473,7 @@ class Home extends Api $result = []; $result['data'] = $list->getData(); // We will to enable always the pagination - $result['total'] = $list->getLimit() + 1; + $result['total'] = $list->getCounter(); return $result; } catch (Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());