AAE-12578 added fn to save col width with preferences (#8296)

* AAE-12578 added fn to save col width with preferences Resolved Conflict

* AAE-12578 fixed formatting issues

* Empty-Commit

* AAE-12578 added resizing column feature to process list

* AAE-12578: Removed duplicate component entry

---------

Co-authored-by: Ehsan Rezaei <ehsan.rezaei@hyland.com>
This commit is contained in:
tomasz hanaj
2023-02-20 16:11:16 +01:00
committed by GitHub
parent b876102098
commit 477d49eaee
11 changed files with 128 additions and 28 deletions

View File

@@ -20,7 +20,9 @@
(row-unselect)="onRowUnselect($any($event))"
(row-keyup)="onRowKeyUp($any($event))"
(sorting-changed)="onSortingChanged($any($event))"
(columnOrderChanged)="onColumnOrderChanged($event)">
(columnOrderChanged)="onColumnOrderChanged($event)"
(columnsWidthChanged)="onColumnsWidthChanged($event)"
>
<adf-loading-content-template>
<ng-template>
<mat-progress-spinner

View File

@@ -238,14 +238,16 @@ export class ProcessListCloudComponent extends DataTableSchema<ProcessListDataCo
const preferencesList = preferences?.list?.entries ?? [];
const columnsOrder = preferencesList.find(preference => preference.entry.key === ProcessListCloudPreferences.columnOrder);
const columnsVisibility = preferencesList.find(preference => preference.entry.key === ProcessListCloudPreferences.columnsVisibility);
const columnsWidths = preferencesList.find(preference => preference.entry.key === ProcessListCloudPreferences.columnsWidths);
return {
columnsOrder: columnsOrder ? JSON.parse(columnsOrder.entry.value) : undefined,
columnsVisibility: columnsVisibility ? JSON.parse(columnsVisibility.entry.value) : this.columnsVisibility
columnsVisibility: columnsVisibility ? JSON.parse(columnsVisibility.entry.value) : this.columnsVisibility,
columnsWidths: columnsWidths ? JSON.parse(columnsWidths.entry.value) : undefined
};
}))
)
.subscribe(({ columnsOrder, columnsVisibility }) => {
.subscribe(({ columnsOrder, columnsVisibility, columnsWidths }) => {
if (columnsVisibility) {
this.columnsVisibility = columnsVisibility;
}
@@ -254,6 +256,11 @@ export class ProcessListCloudComponent extends DataTableSchema<ProcessListDataCo
this.columnsOrder = columnsOrder;
}
if (columnsWidths) {
this.columnsWidths = columnsWidths;
}
this.createDatatableSchema();
});
}
@@ -385,6 +392,23 @@ export class ProcessListCloudComponent extends DataTableSchema<ProcessListDataCo
}
}
onColumnsWidthChanged(columns: DataColumn[]): void {
this.columnsWidths = columns.reduce((widthsColumnsMap, column) => {
if (column.width) {
widthsColumnsMap[column.id] = Math.ceil(column.width);
}
return widthsColumnsMap;
}, {});
if (this.appName) {
this.cloudPreferenceService.updatePreference(
this.appName,
ProcessListCloudPreferences.columnsWidths,
this.columnsWidths
);
}
}
onRowClick(item: DataRowEvent) {
this.currentInstanceId = item.value.getValue('id');
this.rowClick.emit(this.currentInstanceId);

View File

@@ -18,5 +18,6 @@
// eslint-disable-next-line no-shadow
export enum ProcessListCloudPreferences {
columnOrder = 'processes-cloud-list-columns-order',
columnsVisibility = 'processes-cloud-columns-visibility'
columnsVisibility = 'processes-cloud-columns-visibility',
columnsWidths = 'processes-cloud-columns-widths'
}

View File

@@ -23,7 +23,9 @@
(rowClick)="onRowClick($any($event))"
(row-keyup)="onRowKeyUp($any($event))"
(sorting-changed)="onSortingChanged($any($event))"
(columnOrderChanged)="onColumnOrderChanged($event)">
(columnOrderChanged)="onColumnOrderChanged($event)"
(columnsWidthChanged)="onColumnsWidthChanged($event)"
>
<adf-loading-content-template>
<ng-template>
<!-- Add your custom loading template here -->

View File

@@ -130,10 +130,10 @@ export abstract class BaseTaskListCloudComponent<T = unknown> extends DataTableS
private onDestroy$ = new Subject<boolean>();
constructor(appConfigService: AppConfigService,
private taskCloudService: TaskCloudService,
private userPreferences: UserPreferencesService,
presetKey: string,
private cloudPreferenceService: PreferenceCloudServiceInterface) {
private taskCloudService: TaskCloudService,
private userPreferences: UserPreferencesService,
presetKey: string,
private cloudPreferenceService: PreferenceCloudServiceInterface) {
super(appConfigService, presetKey, taskPresetsCloudDefaultModel);
this.size = userPreferences.paginationSize;
@@ -172,23 +172,29 @@ export abstract class BaseTaskListCloudComponent<T = unknown> extends DataTableS
const preferencesList = preferences?.list?.entries ?? [];
const columnsOrder = preferencesList.find(preference => preference.entry.key === TasksListCloudPreferences.columnOrder);
const columnsVisibility = preferencesList.find(preference => preference.entry.key === TasksListCloudPreferences.columnsVisibility);
const columnsWidths = preferencesList.find(preference => preference.entry.key === TasksListCloudPreferences.columnsWidths);
return {
columnsOrder: columnsOrder ? JSON.parse(columnsOrder.entry.value) : undefined,
columnsVisibility: columnsVisibility ? JSON.parse(columnsVisibility.entry.value) : undefined
columnsVisibility: columnsVisibility ? JSON.parse(columnsVisibility.entry.value) : undefined,
columnsWidths: columnsWidths ? JSON.parse(columnsWidths.entry.value) : undefined
};
}))
).subscribe(({ columnsOrder, columnsVisibility }) => {
if (columnsOrder) {
this.columnsOrder = columnsOrder;
}
if (columnsVisibility) {
this.columnsVisibility = columnsVisibility;
}
this.createDatatableSchema();
).subscribe(({ columnsOrder, columnsVisibility, columnsWidths }) => {
if (columnsOrder) {
this.columnsOrder = columnsOrder;
}
if (columnsVisibility) {
this.columnsVisibility = columnsVisibility;
}
if (columnsWidths) {
this.columnsWidths = columnsWidths;
}
this.createDatatableSchema();
}
);
}
@@ -266,7 +272,7 @@ export abstract class BaseTaskListCloudComponent<T = unknown> extends DataTableS
this.columnsOrder = columnsWithNewOrder.map(column => column.id);
if (this.appName) {
this.cloudPreferenceService.updatePreference(
this.cloudPreferenceService.updatePreference(
this.appName,
TasksListCloudPreferences.columnOrder,
this.columnsOrder
@@ -296,6 +302,23 @@ export abstract class BaseTaskListCloudComponent<T = unknown> extends DataTableS
this.reload();
}
onColumnsWidthChanged(columns: DataColumn[]): void {
this.columnsWidths = columns.reduce((widthsColumnsMap, column) => {
if (column.width) {
widthsColumnsMap[column.id] = Math.ceil(column.width);
}
return widthsColumnsMap;
}, {});
if (this.appName) {
this.cloudPreferenceService.updatePreference(
this.appName,
TasksListCloudPreferences.columnsWidths,
this.columnsWidths
);
}
}
setSorting(sortDetail) {
const sorting = sortDetail ? {
orderBy: sortDetail.key,
@@ -317,10 +340,10 @@ export abstract class BaseTaskListCloudComponent<T = unknown> extends DataTableS
replacePriorityValues(row: DataRow, column: DataColumn) {
return column.key.split('.').reduce((source, key) => {
if (key === 'priority' && source && typeof(source[key]) === 'number') {
if (key === 'priority' && source && typeof (source[key]) === 'number') {
return source[key] = this.taskCloudService.getPriorityLabel(source[key]);
}
return source && typeof(source) === 'object' ? source[key] : undefined;
return source && typeof (source) === 'object' ? source[key] : undefined;
}, row.obj);
}

View File

@@ -18,5 +18,6 @@
// eslint-disable-next-line no-shadow
export enum TasksListCloudPreferences {
columnOrder = 'tasks-list-cloud-columns-order',
columnsVisibility = 'tasks-list-cloud-columns-visibility'
columnsVisibility = 'tasks-list-cloud-columns-visibility',
columnsWidths = 'tasks-list-cloud-columns-widths'
}