[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
This commit is contained in:
madhukar23 2017-12-04 23:03:45 +05:30 committed by Eugenio Romano
parent 910b2b344c
commit 4462486df1
5 changed files with 28 additions and 10 deletions

View File

@ -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": [
{

View File

@ -57,7 +57,7 @@
(nextPage)="onNextPage($event)"
(prevPage)="onPrevPage($event)"
[pagination]="taskPagination"
[supportedPageSizes]="[2, 4, 6, 8, 10, 12]">
[supportedPageSizes]="supportedPages">
</adf-pagination>
</div>
<div class="adf-grid-item adf-tasks-details" *ngIf="!isStartTaskMode()" fxFlex.gt-md="1 1 auto">

View File

@ -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 {

View File

@ -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', () => {

View File

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