in modules/frontend/app/configuration/components/page-configure-advanced/components/page-configure-advanced-igfs/controller.ts [53:141]
$onInit() {
this.visibleRows$ = new Subject();
this.selectedRows$ = new Subject();
this.columnDefs = [
{
name: 'name',
displayName: 'Name',
field: 'name',
enableHiding: false,
filter: {
placeholder: 'Filter by name…'
},
sort: {direction: 'asc', priority: 0},
sortingAlgorithm: naturalCompare,
minWidth: 165
},
{
name: 'defaultMode',
displayName: 'Mode',
field: 'defaultMode',
multiselectFilterOptions: this.IGFSs.defaultMode.values,
width: 160
},
{
name: 'affinnityGroupSize',
displayName: 'Group size',
field: 'affinnityGroupSize',
enableFiltering: false,
width: 130
}
];
this.itemID$ = this.$uiRouter.globals.params$.pipe(pluck('igfsID'));
this.shortItems$ = this.ConfigureState.state$.pipe(
this.ConfigSelectors.selectCurrentShortIGFSs,
map((items = []) => items.map((i) => ({
_id: i._id,
name: i.name,
affinnityGroupSize: i.affinnityGroupSize || this.IGFSs.affinnityGroupSize.default,
defaultMode: i.defaultMode || this.IGFSs.defaultMode.default
})))
);
this.originalItem$ = this.itemID$.pipe(
distinctUntilChanged(),
switchMap((id) => {
return this.ConfigureState.state$.pipe(this.ConfigSelectors.selectIGFSToEdit(id));
}),
distinctUntilChanged(),
publishReplay(1),
refCount()
);
this.isNew$ = this.itemID$.pipe(map((id) => id === 'new'));
this.itemEditTitle$ = combineLatest(this.isNew$, this.originalItem$, (isNew, item) => {
return `${isNew ? 'Create' : 'Edit'} IGFS ${!isNew && get(item, 'name') ? `‘${get(item, 'name')}’` : ''}`;
});
this.selectionManager = this.configSelectionManager({
itemID$: this.itemID$,
selectedItemRows$: this.selectedRows$,
visibleRows$: this.visibleRows$,
loadedItems$: this.shortItems$
});
this.tableActions$ = this.selectionManager.selectedItemIDs$.pipe(map((selectedItems) => [
{
action: 'Clone',
click: () => this.clone(selectedItems),
available: false
},
{
action: 'Delete',
click: () => {
this.remove(selectedItems);
},
available: true
}
]));
this.subscription = merge(
this.originalItem$,
this.selectionManager.editGoes$.pipe(tap((id) => this.edit(id))),
this.selectionManager.editLeaves$.pipe(tap((options) => this.$state.go('base.configuration.edit.advanced.igfs', null, options)))
).subscribe();
}