From 4462486df16561db14bd8bcd6fc810f75e5830f0 Mon Sep 17 00:00:00 2001 From: madhukar23 <30654750+madhukar23@users.noreply.github.com> Date: Mon, 4 Dec 2017 23:03:45 +0530 Subject: [PATCH] [ADF-2025] Task List - The pagination should be fetched from the UserPreference (#2733) [ADF-2025] Task List - The pagination should be fetched from the UserPreference --- demo-shell/src/app.config.json | 5 ++--- .../process-service/process-service.component.html | 2 +- .../process-service/process-service.component.ts | 10 ++++++++-- lib/core/services/user-preferences.service.spec.ts | 11 +++++++++-- lib/core/services/user-preferences.service.ts | 10 ++++++++-- 5 files changed, 28 insertions(+), 10 deletions(-) diff --git a/demo-shell/src/app.config.json b/demo-shell/src/app.config.json index 71fbd87860..c6c806b05c 100644 --- a/demo-shell/src/app.config.json +++ b/demo-shell/src/app.config.json @@ -51,7 +51,8 @@ } ], "pagination": { - "size": 25 + "size": 25, + "supportedPageSizes": [ 5, 10, 15, 20 ] }, "files": { "excluded": [".DS_Store", "desktop.ini", ".git"] @@ -83,7 +84,6 @@ } }, "document-list": { - "supportedPageSizes": [ 5, 10, 15, 25 ], "presets": { "-trashcan-": [ { @@ -330,7 +330,6 @@ } }, "adf-task-list": { - "supportedPageSizes": [ 5, 10, 15, 25 ], "presets": { "default": [ { diff --git a/demo-shell/src/app/components/process-service/process-service.component.html b/demo-shell/src/app/components/process-service/process-service.component.html index 74d2e07e01..487f0441ff 100644 --- a/demo-shell/src/app/components/process-service/process-service.component.html +++ b/demo-shell/src/app/components/process-service/process-service.component.html @@ -57,7 +57,7 @@ (nextPage)="onNextPage($event)" (prevPage)="onPrevPage($event)" [pagination]="taskPagination" - [supportedPageSizes]="[2, 4, 6, 8, 10, 12]"> + [supportedPageSizes]="supportedPages">
diff --git a/demo-shell/src/app/components/process-service/process-service.component.ts b/demo-shell/src/app/components/process-service/process-service.component.ts index e2d4b817aa..0456dab069 100644 --- a/demo-shell/src/app/components/process-service/process-service.component.ts +++ b/demo-shell/src/app/components/process-service/process-service.component.ts @@ -52,7 +52,7 @@ import { TaskListService } from '@alfresco/adf-process-services'; import { LogService } from '@alfresco/adf-core'; -import { AlfrescoApiService } from '@alfresco/adf-core'; +import { AlfrescoApiService, UserPreferencesService } from '@alfresco/adf-core'; import { DataSorting, ObjectDataRow, @@ -121,6 +121,8 @@ export class ProcessServiceComponent implements AfterViewInit, OnDestroy, OnInit taskPage = 0; processSchemaColumns: any[] = []; + supportedPages: number[]; + activeTab: number = this.tabs.tasks; // tasks|processes|reports taskFilter: FilterRepresentationModel; @@ -147,9 +149,12 @@ export class ProcessServiceComponent implements AfterViewInit, OnDestroy, OnInit private apiService: AlfrescoApiService, private logService: LogService, formRenderingService: FormRenderingService, - formService: FormService) { + formService: FormService, + private preferenceService: UserPreferencesService) { this.dataTasks = new ObjectDataTableAdapter(); this.dataTasks.setSorting(new DataSorting('created', 'desc')); + this.supportedPages = this.preferenceService.getDifferentPageSizes(); + this.taskPagination.maxItems = this.preferenceService.paginationSize; // Uncomment this line to replace all 'text' field editors with custom component // formRenderingService.setComponentTypeResolver('text', () => CustomEditorComponent, true); @@ -200,6 +205,7 @@ export class ProcessServiceComponent implements AfterViewInit, OnDestroy, OnInit this.taskPage = this.currentPage(skipCount, maxItems); this.taskPagination.maxItems = maxItems; this.taskPagination.skipCount = skipCount; + this.preferenceService.paginationSize = maxItems; } onChangePageNumber(pagination: Pagination): void { diff --git a/lib/core/services/user-preferences.service.spec.ts b/lib/core/services/user-preferences.service.spec.ts index a0eab114a8..3a613bee54 100644 --- a/lib/core/services/user-preferences.service.spec.ts +++ b/lib/core/services/user-preferences.service.spec.ts @@ -28,6 +28,7 @@ import { UserPreferencesService } from './user-preferences.service'; describe('UserPreferencesService', () => { const defaultPaginationSize: number = 10; + const supportedPaginationSize = [5, 10, 15, 20]; let preferences: UserPreferencesService; let storage: StorageService; let appConfig: AppConfigService; @@ -55,7 +56,8 @@ describe('UserPreferencesService', () => { appConfig = TestBed.get(AppConfigService); appConfig.config = { pagination: { - size: 10 + 'size': 10, + 'supportedPageSizes': [ 5, 10, 15, 20 ] } }; preferences = TestBed.get(UserPreferencesService); @@ -64,7 +66,12 @@ describe('UserPreferencesService', () => { }); it('should get default pagination from app config', () => { - expect(preferences.paginationSize).toBe(defaultPaginationSize); + expect(preferences.defaults.paginationSize).toBe(defaultPaginationSize); + }); + + it('should return supported page sizes defined in the app config', () => { + const supportedPages = preferences.getDifferentPageSizes(); + expect(supportedPages).toEqual(supportedPaginationSize); }); it('should use [GUEST] as default storage prefix', () => { diff --git a/lib/core/services/user-preferences.service.ts b/lib/core/services/user-preferences.service.ts index a8210551ab..acf7092653 100644 --- a/lib/core/services/user-preferences.service.ts +++ b/lib/core/services/user-preferences.service.ts @@ -26,8 +26,9 @@ import { StorageService } from './storage.service'; @Injectable() export class UserPreferencesService { - private defaults = { + defaults = { paginationSize: 25, + supportedPageSizes: [5, 10, 15, 20], locale: 'en' }; @@ -43,7 +44,8 @@ export class UserPreferencesService { const currentLocale = this.locale || this.getDefaultLocale(); this.localeSubject = new BehaviorSubject(currentLocale); this.locale$ = this.localeSubject.asObservable(); - this.defaults.paginationSize = appConfig.get('pagination.size', 25); + this.defaults.paginationSize = this.appConfig.get('pagination.size', this.defaults.paginationSize); + this.defaults.supportedPageSizes = this.appConfig.get('pagination.supportedPageSizes', this.defaults.supportedPageSizes); } get(property: string, defaultValue?: string): string { @@ -76,6 +78,10 @@ export class UserPreferencesService { return `${this.getStoragePrefix()}__${property}`; } + getDifferentPageSizes(): number[] { + return this.defaults.supportedPageSizes; + } + set authType(value: string) { this.storage.setItem('AUTH_TYPE', value); this.apiService.reset();