From b7de6eca74fbdd6ef7bfe9ac59d81d920392a5b2 Mon Sep 17 00:00:00 2001 From: Richard Tan Date: Tue, 18 Feb 2025 22:46:27 +0800 Subject: [PATCH 1/3] Change task planner sort order when LHS filter changes --- packages/experiments-realm/crm-app.gts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/experiments-realm/crm-app.gts b/packages/experiments-realm/crm-app.gts index f434ad3fd9..51173d5140 100644 --- a/packages/experiments-realm/crm-app.gts +++ b/packages/experiments-realm/crm-app.gts @@ -213,6 +213,30 @@ class CrmAppTemplate extends Component { @tracked private activeFilter: LayoutFilter = CONTACT_FILTERS[0]; @action private onFilterChange(filter: LayoutFilter) { this.activeFilter = filter; + if (this.activeTabId === 'Task') { + switch (this.activeFilter.displayName) { + case 'All Tasks': + case 'Overdue': + case 'Due this week': + case 'Unassigned': + this.activeFilter.selectedSort = { + id: 'dueDateAsc', + displayName: 'Due Date', + sort: sortByDueDate('asc'), + }; + break; + case 'Due Today': + case 'High Priority': + this.activeFilter.selectedSort = { + id: 'priorityDesc', + displayName: 'Priority', + sort: sortByPriority('desc'), + }; + break; + default: + break; + } + } } //tabs @tracked activeTabId: string | undefined = TABS[0].tabId; From c628987f6a119bf6a5be24e29468b8eb73f23b43 Mon Sep 17 00:00:00 2001 From: Richard Tan Date: Fri, 21 Feb 2025 11:01:55 +0800 Subject: [PATCH 2/3] Show sort options on every CRM task LHS filter --- packages/experiments-realm/crm-app.gts | 47 ++++++++++++++------------ 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/packages/experiments-realm/crm-app.gts b/packages/experiments-realm/crm-app.gts index 389ae54f1e..600a7f110b 100644 --- a/packages/experiments-realm/crm-app.gts +++ b/packages/experiments-realm/crm-app.gts @@ -83,6 +83,29 @@ const sortByPriority: (direction: TaskSortOrder) => Sort = ( }, ]; +const TASK_SORT_OPTIONS: SortOption[] = [ + { + id: 'dueDateDesc', + displayName: 'Due Date', + sort: sortByDueDate('desc'), + }, + { + id: 'dueDateAsc', + displayName: 'Due Date', + sort: sortByDueDate('asc'), + }, + { + id: 'priorityDesc', + displayName: 'Priority', + sort: sortByPriority('desc'), + }, + { + id: 'priorityAsc', + displayName: 'Priority', + sort: sortByPriority('asc'), + }, +]; + const CONTACT_FILTERS: LayoutFilter[] = [ { displayName: 'All Contacts', @@ -151,34 +174,14 @@ const TASK_FILTERS: LayoutFilter[] = [ icon: ListDetails, cardTypeName: 'CRM Task', createNewButtonText: 'Create Task', - sortOptions: [ - { - id: 'dueDateDesc', - displayName: 'Due Date', - sort: sortByDueDate('desc'), - }, - { - id: 'dueDateAsc', - displayName: 'Due Date', - sort: sortByDueDate('asc'), - }, - { - id: 'priorityDesc', - displayName: 'Priority', - sort: sortByPriority('desc'), - }, - { - id: 'priorityAsc', - displayName: 'Priority', - sort: sortByPriority('asc'), - }, - ], + sortOptions: TASK_SORT_OPTIONS, }, ...taskStatusValues.map((status) => ({ displayName: status.label, icon: status.icon, cardTypeName: 'CRM Task', createNewButtonText: 'Create Task', + sortOptions: TASK_SORT_OPTIONS, })), ]; From 005d7344927a64e472fb3497437fdfae4eec0cef Mon Sep 17 00:00:00 2001 From: Richard Tan Date: Fri, 21 Feb 2025 11:27:07 +0800 Subject: [PATCH 3/3] Parse query test to handle null value --- packages/host/tests/unit/qs-test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/host/tests/unit/qs-test.ts b/packages/host/tests/unit/qs-test.ts index 61e689b9ea..eb044f9d0a 100644 --- a/packages/host/tests/unit/qs-test.ts +++ b/packages/host/tests/unit/qs-test.ts @@ -22,6 +22,7 @@ module('Unit | qs | parse', function () { { eq: { 'author.firstName': 'Cardy', + series: null, }, }, { @@ -47,7 +48,9 @@ module('Unit | qs | parse', function () { }, ], }; - let queryString = qs.stringify(query); + let queryString = qs.stringify(query, { + strictNullHandling: true, + }); let parsedQuery: any = parseQuery(queryString); assert.deepEqual(parsedQuery, query); });