From 523336bab8aadc78bd6f02d5a0a97da0a54ef3ce Mon Sep 17 00:00:00 2001 From: CarliPinell Date: Tue, 6 Feb 2024 19:58:36 +0000 Subject: [PATCH 1/3] Refactor of code to apply Front End Logic --- .../PMColumnFilterPopoverCommonMixin.js | 5 ++++- .../PMColumnFilterForm.vue | 3 ++- .../PMColumnFilterOpDatetime.vue | 19 +++++++++++++++++-- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/resources/js/common/PMColumnFilterPopoverCommonMixin.js b/resources/js/common/PMColumnFilterPopoverCommonMixin.js index 6b03592443..a52d320cb1 100644 --- a/resources/js/common/PMColumnFilterPopoverCommonMixin.js +++ b/resources/js/common/PMColumnFilterPopoverCommonMixin.js @@ -31,7 +31,7 @@ const PMColumnFilterCommonMixin = { }, { "type": "datetime", - "includes": ["=", "<", "<=", ">", ">=", "contains", "regex"], + "includes": ["<", "<=", ">", ">="], "control": "PMColumnFilterOpDatetime", "input": "" }, @@ -149,6 +149,9 @@ const PMColumnFilterCommonMixin = { if (column.field === "status" || column.field === "assignee" || column.field === "participants" || column.field === 'process') { operators = ["=", "in"]; } + if (column.field === "initiated_at" || column.field === "completed_at") { + operators = ["<", "<=", ">", ">=", "between"]; + } return operators; }, getAssignee(filter) { diff --git a/resources/js/components/PMColumnFilterPopover/PMColumnFilterForm.vue b/resources/js/components/PMColumnFilterPopover/PMColumnFilterForm.vue index c905b7d675..ff21daaac3 100644 --- a/resources/js/components/PMColumnFilterPopover/PMColumnFilterForm.vue +++ b/resources/js/components/PMColumnFilterPopover/PMColumnFilterForm.vue @@ -201,12 +201,13 @@ return root; }, addItem(index) { + let operator = (this.format === "datetime") ? ">" : "="; let item = { subject: { type: this.type, value: this.value }, - operator: "=", + operator: operator, value: "", logical: "and", viewControl: "PMColumnFilterOpInput" diff --git a/resources/js/components/PMColumnFilterPopover/PMColumnFilterOpDatetime.vue b/resources/js/components/PMColumnFilterPopover/PMColumnFilterOpDatetime.vue index feb2ff3c30..78803306bf 100644 --- a/resources/js/components/PMColumnFilterPopover/PMColumnFilterOpDatetime.vue +++ b/resources/js/components/PMColumnFilterPopover/PMColumnFilterOpDatetime.vue @@ -44,7 +44,7 @@ watch: { value: { handler(newValue) { - this.input = newValue; + this.input = this.convertFromISOString(newValue); }, immediate: true }, @@ -63,8 +63,23 @@ this.selectedTime = this.getCurrentTime(this.input); }, methods: { + convertToISOString(dateString) { + let inUTCTimeZone = '' + if (dateString){ + inUTCTimeZone = moment(dateString).tz('UTC').toISOString(); + } + return inUTCTimeZone; + }, + convertFromISOString(dateString) { + let inLocalTimeZone = dateString; + if (dateString){ + inLocalTimeZone = moment(dateString).tz(window.ProcessMaker.user.timezone).format("YYYY-MM-DD HH:mm:ss"); + } + console.log('FROM', `'${dateString}'`, inLocalTimeZone); + return inLocalTimeZone; + }, emitInput() { - this.$emit("input", this.input); + this.$emit("input", this.convertToISOString(this.input)); }, setInput() { this.input = this.selectedDate + " " + this.selectedTime; From 5b8dd7f121f8b871f60ab93374ca52f8f7f82c1e Mon Sep 17 00:00:00 2001 From: CarliPinell Date: Tue, 6 Feb 2024 20:00:59 +0000 Subject: [PATCH 2/3] Removing console.log --- .../PMColumnFilterPopover/PMColumnFilterOpDatetime.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/js/components/PMColumnFilterPopover/PMColumnFilterOpDatetime.vue b/resources/js/components/PMColumnFilterPopover/PMColumnFilterOpDatetime.vue index 78803306bf..4b0a6fb100 100644 --- a/resources/js/components/PMColumnFilterPopover/PMColumnFilterOpDatetime.vue +++ b/resources/js/components/PMColumnFilterPopover/PMColumnFilterOpDatetime.vue @@ -75,7 +75,6 @@ if (dateString){ inLocalTimeZone = moment(dateString).tz(window.ProcessMaker.user.timezone).format("YYYY-MM-DD HH:mm:ss"); } - console.log('FROM', `'${dateString}'`, inLocalTimeZone); return inLocalTimeZone; }, emitInput() { From 4157ed4df2b0ae446b76ca8640fa8cbe1367e021 Mon Sep 17 00:00:00 2001 From: CarliPinell Date: Thu, 8 Feb 2024 16:15:59 +0000 Subject: [PATCH 3/3] Adding column due_at to Mixin --- resources/js/common/PMColumnFilterPopoverCommonMixin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/js/common/PMColumnFilterPopoverCommonMixin.js b/resources/js/common/PMColumnFilterPopoverCommonMixin.js index a52d320cb1..775c374003 100644 --- a/resources/js/common/PMColumnFilterPopoverCommonMixin.js +++ b/resources/js/common/PMColumnFilterPopoverCommonMixin.js @@ -149,7 +149,7 @@ const PMColumnFilterCommonMixin = { if (column.field === "status" || column.field === "assignee" || column.field === "participants" || column.field === 'process') { operators = ["=", "in"]; } - if (column.field === "initiated_at" || column.field === "completed_at") { + if (column.field === "initiated_at" || column.field === "completed_at" || column.field === "due_at") { operators = ["<", "<=", ">", ">=", "between"]; } return operators;