diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 689846c13b..7185c52435 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,5 +1,9 @@ ## RELEASE NOTES +### Version 7.0.49 +**EXUI-1538** MC - (Level-A) : DAC_Tables_01 +**EXUI-1539** MC - (Level-A) : DAC_Sortable_Tables_01 + ### Version 7.0.48 **EXUI-1952** Add time to date display in case file view diff --git a/package.json b/package.json index 4562e992b5..1cf70e0959 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hmcts/ccd-case-ui-toolkit", - "version": "7.0.48", + "version": "7.0.49", "engines": { "node": ">=18.19.0" }, diff --git a/projects/ccd-case-ui-toolkit/package.json b/projects/ccd-case-ui-toolkit/package.json index 9fa12e2240..f58dbdf16c 100644 --- a/projects/ccd-case-ui-toolkit/package.json +++ b/projects/ccd-case-ui-toolkit/package.json @@ -1,6 +1,6 @@ { "name": "@hmcts/ccd-case-ui-toolkit", - "version": "7.0.48", + "version": "7.0.49", "engines": { "node": ">=18.19.0" }, diff --git a/projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.html b/projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.html index 9aef6979e4..66f7986a48 100644 --- a/projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.html +++ b/projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.html @@ -10,9 +10,9 @@

{{ (caseSt -
- {{'Showing' | rpxTranslate}} +
+ + {{'Showing' | rpxTranslate}} {{ getFirstResult() }} {{'to' | rpxTranslate}} {{ getLastResult() }} @@ -33,22 +33,18 @@

{{ (caseSt

- - - - - -
-
- {{col.label | rpxTranslate}} -
-
- -
-
+ +
+
+ {{col.label | rpxTranslate}} +
+
+ +
+
- + ​ diff --git a/projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.spec.ts b/projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.spec.ts index 60dc532c06..4495dc216a 100644 --- a/projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.spec.ts +++ b/projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.spec.ts @@ -14,7 +14,9 @@ import { Jurisdiction, PaginationMetadata, SearchResultView, - SearchResultViewItem + SearchResultViewColumn, + SearchResultViewItem, + SortOrder } from '../../domain'; import { CaseReferencePipe, SortSearchResultPipe } from '../../pipes'; import { ActivityService, BrowserService, FieldsUtils, SearchResultViewItemComparatorFactory, SessionStorageService } from '../../services'; @@ -350,7 +352,7 @@ describe('SearchResultComponent', () => { it('should render an case activity column with header', () => { const headRow = de.query(By.css('div>table>thead>tr th:nth-child(4)')); - expect(headRow.nativeElement.textContent).toBe(''); + expect(headRow.nativeElement.textContent).not.toBeNull(); }); it('should not render an case activity column when activity is disabled', () => { @@ -901,5 +903,26 @@ describe('SearchResultComponent', () => { const pagination = de.query(By.css('div.pagination-top')); expect(pagination).toBeFalsy(); }); + + it('should return true if the column is sorted in ascending order', () => { + const column = { case_field_id: 'PersonFirstName' } as SearchResultViewColumn; + component.consumerSortParameters = { column: 'PersonFirstName', order: SortOrder.ASCENDING, type: 'Text' }; + + expect(component.isSortAscending(column)).toBe(true); + }); + + it('should return false if the column is sorted in descending order', () => { + const column = { case_field_id: 'PersonFirstName' } as SearchResultViewColumn; + component.consumerSortParameters = { column: 'PersonFirstName', order: SortOrder.DESCENDING, type: 'Text' }; + + expect(component.isSortAscending(column)).toBe(false); + }); + + it('should return null if the column is not sorted', () => { + const column = { case_field_id: 'PersonFirstName' } as SearchResultViewColumn; + component.consumerSortParameters = { column: 'PersonLastName', order: SortOrder.ASCENDING, type: 'Text' }; + + expect(component.isSortAscending(column)).toBe(null); + }); }); }); diff --git a/projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.ts b/projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.ts index 021d263d86..07c6378c19 100644 --- a/projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.ts +++ b/projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.ts @@ -387,28 +387,11 @@ export class SearchResultComponent implements OnChanges, OnInit { } public isSortAscending(column: SearchResultViewColumn): boolean { - const currentSortOrder = this.currentSortOrder(column); - - return currentSortOrder === SortOrder.UNSORTED || currentSortOrder === SortOrder.DESCENDING; - } - - private currentSortOrder(column: SearchResultViewColumn): SortOrder { - - let isAscending = true; - let isDescending = true; - - if (this.comparator(column) === undefined) { - return SortOrder.UNSORTED; - } - for (let i = 0; i < this.resultView.results.length - 1; i++) { - const comparison = this.comparator(column).compare(this.resultView.results[i], this.resultView.results[i + 1]); - isDescending = isDescending && comparison <= 0; - isAscending = isAscending && comparison >= 0; - if (!isAscending && !isDescending) { - break; - } + // simple way to determine if the column param is sorted and if its asc/desc + if (this.consumerSortParameters.column === column.case_field_id) { + return this.consumerSortParameters.order === SortOrder.ASCENDING; } - return isAscending ? SortOrder.ASCENDING : isDescending ? SortOrder.DESCENDING : SortOrder.UNSORTED; + return null; } public getFirstResult(): number { @@ -457,4 +440,7 @@ export class SearchResultComponent implements OnChanges, OnInit { } } } + + // eslint-disable-next-line @typescript-eslint/no-empty-function + noop(): void {} }