|
|
|
@ -19,7 +19,7 @@ import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.m |
|
|
|
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; |
|
|
|
import { Store } from '@ngrx/store'; |
|
|
|
import { AppState } from '@core/core.state'; |
|
|
|
import { buildPageStepSizeValues, isDefinedAndNotNull } from '@core/utils'; |
|
|
|
import { buildPageStepSizeValues } from '@home/components/widget/lib/table-widget.models'; |
|
|
|
|
|
|
|
@Component({ |
|
|
|
selector: 'tb-entities-table-widget-settings', |
|
|
|
@ -56,7 +56,7 @@ export class EntitiesTableWidgetSettingsComponent extends WidgetSettingsComponen |
|
|
|
displayEntityType: true, |
|
|
|
displayPagination: true, |
|
|
|
defaultPageSize: 10, |
|
|
|
pageStepSize: null, |
|
|
|
pageStepIncrement: null, |
|
|
|
pageStepCount: 3, |
|
|
|
defaultSortOrder: 'entityName', |
|
|
|
useRowStyleFunction: false, |
|
|
|
@ -80,61 +80,58 @@ export class EntitiesTableWidgetSettingsComponent extends WidgetSettingsComponen |
|
|
|
displayEntityType: [settings.displayEntityType, []], |
|
|
|
displayPagination: [settings.displayPagination, []], |
|
|
|
defaultPageSize: [settings.defaultPageSize, [Validators.min(1)]], |
|
|
|
pageStepCount: [isDefinedAndNotNull(settings.pageStepCount) ? settings.pageStepCount : 3, |
|
|
|
[Validators.min(1), Validators.max(100), Validators.required, Validators.pattern(/^\d*$/)]], |
|
|
|
pageStepSize: [isDefinedAndNotNull(settings.pageStepSize) ? settings.pageStepSize : settings.defaultPageSize, |
|
|
|
pageStepCount: [settings.pageStepCount ?? 3, [Validators.min(1), Validators.max(100), |
|
|
|
Validators.required, Validators.pattern(/^\d*$/)]], |
|
|
|
pageStepIncrement: [settings.pageStepIncrement ?? settings.defaultPageSize, |
|
|
|
[Validators.min(1), Validators.required, Validators.pattern(/^\d*$/)]], |
|
|
|
defaultSortOrder: [settings.defaultSortOrder, []], |
|
|
|
useRowStyleFunction: [settings.useRowStyleFunction, []], |
|
|
|
rowStyleFunction: [settings.rowStyleFunction, [Validators.required]] |
|
|
|
}); |
|
|
|
buildPageStepSizeValues(this.entitiesTableWidgetSettingsForm, this.pageStepSizeValues); |
|
|
|
} |
|
|
|
|
|
|
|
public onPaginationSettingsChange(): void { |
|
|
|
this.entitiesTableWidgetSettingsForm.get('defaultPageSize').reset(); |
|
|
|
buildPageStepSizeValues(this.entitiesTableWidgetSettingsForm, this.pageStepSizeValues); |
|
|
|
this.pageStepSizeValues = buildPageStepSizeValues(this.entitiesTableWidgetSettingsForm.get('pageStepCount').value, |
|
|
|
this.entitiesTableWidgetSettingsForm.get('pageStepIncrement').value); |
|
|
|
} |
|
|
|
|
|
|
|
protected validatorTriggers(): string[] { |
|
|
|
return ['useRowStyleFunction', 'displayPagination', 'displayEntityName', 'displayEntityLabel']; |
|
|
|
return ['useRowStyleFunction', 'displayPagination', 'displayEntityName', 'displayEntityLabel', 'pageStepCount', |
|
|
|
'pageStepIncrement']; |
|
|
|
} |
|
|
|
|
|
|
|
protected updateValidators(emitEvent: boolean) { |
|
|
|
protected updateValidators(emitEvent: boolean, trigger: string) { |
|
|
|
if (trigger === 'pageStepCount' || trigger === 'pageStepIncrement') { |
|
|
|
this.entitiesTableWidgetSettingsForm.get('defaultPageSize').reset(); |
|
|
|
this.pageStepSizeValues = buildPageStepSizeValues(this.entitiesTableWidgetSettingsForm.get('pageStepCount').value, |
|
|
|
this.entitiesTableWidgetSettingsForm.get('pageStepIncrement').value); |
|
|
|
return; |
|
|
|
} |
|
|
|
const useRowStyleFunction: boolean = this.entitiesTableWidgetSettingsForm.get('useRowStyleFunction').value; |
|
|
|
const displayPagination: boolean = this.entitiesTableWidgetSettingsForm.get('displayPagination').value; |
|
|
|
const displayEntityName: boolean = this.entitiesTableWidgetSettingsForm.get('displayEntityName').value; |
|
|
|
const displayEntityLabel: boolean = this.entitiesTableWidgetSettingsForm.get('displayEntityLabel').value; |
|
|
|
if (useRowStyleFunction) { |
|
|
|
this.entitiesTableWidgetSettingsForm.get('rowStyleFunction').enable(); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('rowStyleFunction').enable({emitEvent}); |
|
|
|
} else { |
|
|
|
this.entitiesTableWidgetSettingsForm.get('rowStyleFunction').disable(); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('rowStyleFunction').disable({emitEvent}); |
|
|
|
} |
|
|
|
if (displayPagination) { |
|
|
|
this.entitiesTableWidgetSettingsForm.get('defaultPageSize').enable(); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('pageStepCount').enable(); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('pageStepSize').enable(); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('defaultPageSize').enable({emitEvent}); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('pageStepCount').enable({emitEvent: false}); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('pageStepIncrement').enable({emitEvent: false}); |
|
|
|
} else { |
|
|
|
this.entitiesTableWidgetSettingsForm.get('defaultPageSize').disable(); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('pageStepCount').disable(); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('pageStepSize').disable(); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('defaultPageSize').disable({emitEvent}); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('pageStepCount').disable({emitEvent: false}); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('pageStepIncrement').disable({emitEvent: false}); |
|
|
|
} |
|
|
|
if (displayEntityName) { |
|
|
|
this.entitiesTableWidgetSettingsForm.get('entityNameColumnTitle').enable(); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('entityNameColumnTitle').enable({emitEvent}); |
|
|
|
} else { |
|
|
|
this.entitiesTableWidgetSettingsForm.get('entityNameColumnTitle').disable(); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('entityNameColumnTitle').disable({emitEvent}); |
|
|
|
} |
|
|
|
if (displayEntityLabel) { |
|
|
|
this.entitiesTableWidgetSettingsForm.get('entityLabelColumnTitle').enable(); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('entityLabelColumnTitle').enable({emitEvent}); |
|
|
|
} else { |
|
|
|
this.entitiesTableWidgetSettingsForm.get('entityLabelColumnTitle').disable(); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('entityLabelColumnTitle').disable({emitEvent}); |
|
|
|
} |
|
|
|
this.entitiesTableWidgetSettingsForm.get('rowStyleFunction').updateValueAndValidity({emitEvent}); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('defaultPageSize').updateValueAndValidity({emitEvent}); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('pageStepCount').updateValueAndValidity({emitEvent}); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('pageStepSize').updateValueAndValidity({emitEvent}); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('entityNameColumnTitle').updateValueAndValidity({emitEvent}); |
|
|
|
this.entitiesTableWidgetSettingsForm.get('entityLabelColumnTitle').updateValueAndValidity({emitEvent}); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|