in modules/frontend/app/configuration/components/page-configure-basic/controller.ts [97:172]
$onInit() {
this.onBeforeTransition = this.$uiRouter.transitionService.onBefore({}, (t) => this._uiCanExit(t));
this.memorySizeInputVisible$ = this.IgniteVersion.currentSbj.pipe(
map((version) => this.IgniteVersion.since(version.ignite, '2.0.0'))
);
const clusterID$ = this.$uiRouter.globals.params$.pipe(
take(1),
pluck('clusterID'),
filter((v) => v),
take(1)
);
this.clusterID$ = clusterID$;
this.isNew$ = this.$uiRouter.globals.params$.pipe(pluck('clusterID'), map((id) => id === 'new'));
this.shortCaches$ = this.ConfigureState.state$.pipe(this.ConfigSelectors.selectCurrentShortCaches);
this.shortClusters$ = this.ConfigureState.state$.pipe(this.ConfigSelectors.selectShortClustersValue());
this.originalCluster$ = clusterID$.pipe(
distinctUntilChanged(),
switchMap((id) => {
return this.ConfigureState.state$.pipe(this.ConfigSelectors.selectClusterToEdit(id));
}),
distinctUntilChanged(),
publishReplay(1),
refCount()
);
this.subscription = merge(
this.shortCaches$.pipe(
map((caches) => caches.sort((a, b) => naturalCompare(a.name, b.name))),
tap((v) => this.shortCaches = v)
),
this.shortClusters$.pipe(tap((v) => this.shortClusters = v)),
this.originalCluster$.pipe(tap((v) => {
this.originalCluster = v;
// clonedCluster should be set only when particular cluster edit starts.
//
// Stored cluster changes should not propagate to clonedCluster because it's assumed
// that last saved copy has same shape to what's already loaded. If stored cluster would overwrite
// clonedCluster every time, then data rollback on server errors would undo all changes
// made by user and we don't want that. Advanced configuration forms do the same too.
if (get(v, '_id') !== get(this.clonedCluster, '_id')) this.clonedCluster = cloneDeep(v);
this.defaultMemoryPolicy = this.Clusters.getDefaultClusterMemoryPolicy(this.clonedCluster);
}))
).subscribe();
this.formActionsMenu = [
{
text: 'Save and Download',
click: () => this.save(true),
icon: 'download'
},
{
text: 'Save',
click: () => this.save(),
icon: 'checkmark'
}
];
this.cachesColDefs = [
{name: 'Name:', cellClass: 'pc-form-grid-col-10'},
{name: 'Mode:', cellClass: 'pc-form-grid-col-10'},
{name: 'Atomicity:', cellClass: 'pc-form-grid-col-20', tip: `
Atomicity:
<ul>
<li>ATOMIC - in this mode distributed transactions and distributed locking are not supported</li>
<li>TRANSACTIONAL - in this mode specified fully ACID-compliant transactional cache behavior</li>
<li>TRANSACTIONAL_SNAPSHOT - in this mode specified fully ACID-compliant transactional cache behavior for both key-value API and SQL transactions</li>
</ul>
`},
{name: 'Backups:', cellClass: 'pc-form-grid-col-10', tip: `
Number of nodes used to back up single partition for partitioned cache
`}
];
}