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();