From 7b0b5a8e9661f519670ef0d279c65dbe1d3fcf06 Mon Sep 17 00:00:00 2001 From: Jakub Kupsik Date: Fri, 3 Jan 2025 18:33:16 -0800 Subject: [PATCH] Renames on FE --- admin/tabs/cluster/ClusterTab.ts | 4 +-- .../ClusterObjects.scss} | 0 .../ClusterObjectsModel.ts} | 34 ++++++++----------- .../ClusterObjectsPanel.ts} | 14 ++++---- 4 files changed, 23 insertions(+), 29 deletions(-) rename admin/tabs/cluster/{distobjects/DistributedObjects.scss => objects/ClusterObjects.scss} (100%) rename admin/tabs/cluster/{distobjects/DistributedObjectsModel.ts => objects/ClusterObjectsModel.ts} (95%) rename admin/tabs/cluster/{distobjects/DistributedObjectsPanel.ts => objects/ClusterObjectsPanel.ts} (92%) diff --git a/admin/tabs/cluster/ClusterTab.ts b/admin/tabs/cluster/ClusterTab.ts index 77c910edc..bbd350cfb 100644 --- a/admin/tabs/cluster/ClusterTab.ts +++ b/admin/tabs/cluster/ClusterTab.ts @@ -4,7 +4,7 @@ * * Copyright © 2025 Extremely Heavy Industries Inc. */ -import {distributedObjectsPanel} from '@xh/hoist/admin/tabs/cluster/distobjects/DistributedObjectsPanel'; +import {clusterObjectsPanel} from '@xh/hoist/admin/tabs/cluster/objects/ClusterObjectsPanel'; import {instancesTab} from '@xh/hoist/admin/tabs/cluster/instances/InstancesTab'; import {tabContainer} from '@xh/hoist/cmp/tab'; import {hoistCmp} from '@xh/hoist/core'; @@ -17,7 +17,7 @@ export const clusterTab = hoistCmp.factory(() => switcher: {orientation: 'left', testId: 'cluster-tab-switcher'}, tabs: [ {id: 'instances', icon: Icon.info(), content: instancesTab}, - {id: 'objects', icon: Icon.diff(), content: distributedObjectsPanel} + {id: 'objects', icon: Icon.diff(), content: clusterObjectsPanel} ] } }) diff --git a/admin/tabs/cluster/distobjects/DistributedObjects.scss b/admin/tabs/cluster/objects/ClusterObjects.scss similarity index 100% rename from admin/tabs/cluster/distobjects/DistributedObjects.scss rename to admin/tabs/cluster/objects/ClusterObjects.scss diff --git a/admin/tabs/cluster/distobjects/DistributedObjectsModel.ts b/admin/tabs/cluster/objects/ClusterObjectsModel.ts similarity index 95% rename from admin/tabs/cluster/distobjects/DistributedObjectsModel.ts rename to admin/tabs/cluster/objects/ClusterObjectsModel.ts index db7277356..2b272ba59 100644 --- a/admin/tabs/cluster/distobjects/DistributedObjectsModel.ts +++ b/admin/tabs/cluster/objects/ClusterObjectsModel.ts @@ -17,7 +17,6 @@ import {bindable, makeObservable} from '@xh/hoist/mobx'; import {DAYS} from '@xh/hoist/utils/datetime'; import {isDisplayed, pluralize} from '@xh/hoist/utils/js'; import { - capitalize, cloneDeep, forOwn, groupBy, @@ -33,7 +32,7 @@ import { import {action, computed, observable, runInAction} from 'mobx'; import {createRef} from 'react'; -export class DistributedObjectsModel extends HoistModel { +export class ClusterObjectsModel extends HoistModel { viewRef = createRef(); @observable.ref startTimestamp: Date = null; @@ -80,7 +79,7 @@ export class DistributedObjectsModel extends HoistModel { {name: 'parentName', type: 'string'}, {name: 'provider', type: 'string'}, {name: 'compareState', type: 'string'}, - {name: 'comparisonFields', type: 'auto'}, + {name: 'comparableAdminStats', type: 'auto'}, {name: 'adminStatsbyInstance', type: 'auto'} ], idSpec: 'name' @@ -107,7 +106,7 @@ export class DistributedObjectsModel extends HoistModel { {field: 'displayName', isTreeColumn: true}, {field: 'type'}, { - field: 'comparisonFields', + field: 'comparableAdminStats', renderer: v => (!isEmpty(v) ? tagsRenderer(v) : null), hidden: true }, @@ -252,11 +251,6 @@ export class DistributedObjectsModel extends HoistModel { url: 'clusterObjectsAdmin/getClusterObjectsReport' }); - report.info = report.info.map(it => ({ - ...it, - comparableFields: it.comparableAdminStats - })); - this.gridModel.loadData(this.processReport(report)); runInAction(() => { this.startTimestamp = report.startTimestamp @@ -294,15 +288,15 @@ export class DistributedObjectsModel extends HoistModel { return; } - const {adminStatsbyInstance, comparisonFields} = record.data, + const {adminStatsbyInstance, comparableAdminStats} = record.data, instanceNames = Object.keys(adminStatsbyInstance), nonComparisonFields = without( Object.keys(adminStatsbyInstance[instanceNames[0]] ?? {}), - ...comparisonFields + ...comparableAdminStats ), {selectedId} = this.detailGridModel ?? {}; - // Always re-create the grid model, as its not trivial to check if columns have changed. + // Always re-create the grid model, as it is not trivial to check if columns have changed. XH.safeDestroy(this.detailGridModel); const createColumnForField = fieldName => ({ field: {name: fieldName, displayName: fieldName}, @@ -310,7 +304,7 @@ export class DistributedObjectsModel extends HoistModel { autosizeMaxWidth: 200 }); this.detailGridModel = this.createDetailGridModel( - comparisonFields.map(createColumnForField), + comparableAdminStats.map(createColumnForField), nonComparisonFields.map(createColumnForField) ); @@ -339,7 +333,7 @@ export class DistributedObjectsModel extends HoistModel { field: {name: 'instanceName', type: 'string', displayName: 'Instance'} }, { - groupId: 'comparisonFields', + groupId: 'comparableAdminStats', headerName: 'Compared Stats', headerTooltip: 'Stats that are expected to be eventually consistent between all instances.', @@ -409,7 +403,7 @@ export class DistributedObjectsModel extends HoistModel { }): DistributedObjectRecord[] { const byName = groupBy(info, 'name'), recordsByName: Record = mapValues(byName, objs => { - const {name, type, comparisonFields} = objs[0], + const {name, type, comparableAdminStats} = objs[0], adminStatsbyInstance: PlainObject = Object.fromEntries( objs.map(obj => [obj.instanceName, obj.adminStats]) ); @@ -418,12 +412,12 @@ export class DistributedObjectsModel extends HoistModel { displayName: this.deriveDisplayName(name, type), type, parentName: this.deriveParent(name, type), - compareState: (isEmpty(comparisonFields) || objs.length < 2 + compareState: (isEmpty(comparableAdminStats) || objs.length < 2 ? 'inactive' : !isEmpty(breaks[name]) ? 'failed' : 'passed') as CompareState, - comparisonFields: comparisonFields ?? [], + comparableAdminStats: comparableAdminStats ?? [], adminStatsbyInstance, children: [] }; @@ -503,7 +497,7 @@ export class DistributedObjectsModel extends HoistModel { return { ...args, compareState: 'inactive', - comparisonFields: [], + comparableAdminStats: [], adminStatsbyInstance: {}, children: [] }; @@ -517,7 +511,7 @@ export class DistributedObjectsModel extends HoistModel { const last = name.substring(lastDotIdx + 1), rest = name.substring(0, lastDotIdx); // Identify collection caches by lowercase name after last dot. - if (last !== capitalize(last)) return rest; + if (!isEmpty(last) && last[0] !== last[0].toUpperCase()) return rest; } // Otherwise, group under the correct hibernate group record. return name.startsWith('io.xh.hoist') || @@ -612,7 +606,7 @@ interface DistributedObjectRecord { type: string; parentName?: string; compareState: CompareState; - comparisonFields: string[]; + comparableAdminStats: string[]; adminStatsbyInstance: Record; children: DistributedObjectRecord[]; } diff --git a/admin/tabs/cluster/distobjects/DistributedObjectsPanel.ts b/admin/tabs/cluster/objects/ClusterObjectsPanel.ts similarity index 92% rename from admin/tabs/cluster/distobjects/DistributedObjectsPanel.ts rename to admin/tabs/cluster/objects/ClusterObjectsPanel.ts index 9aaf968d8..289bf1d34 100644 --- a/admin/tabs/cluster/distobjects/DistributedObjectsPanel.ts +++ b/admin/tabs/cluster/objects/ClusterObjectsPanel.ts @@ -17,12 +17,12 @@ import {toolbar, toolbarSep} from '@xh/hoist/desktop/cmp/toolbar'; import {fmtNumber} from '@xh/hoist/format'; import {Icon} from '@xh/hoist/icon'; import {pluralize} from '@xh/hoist/utils/js'; -import {DistributedObjectsModel} from './DistributedObjectsModel'; -import './DistributedObjects.scss'; +import {ClusterObjectsModel} from './ClusterObjectsModel'; +import './ClusterObjects.scss'; -export const distributedObjectsPanel = hoistCmp.factory({ +export const clusterObjectsPanel = hoistCmp.factory({ displayName: 'DistributedObjectsPanel', - model: creates(DistributedObjectsModel), + model: creates(ClusterObjectsModel), render({model}) { return panel({ @@ -41,7 +41,7 @@ export const distributedObjectsPanel = hoistCmp.factory({ } }); -const tbar = hoistCmp.factory(({model}) => { +const tbar = hoistCmp.factory(({model}) => { const {counts, isSingleInstance} = model; return toolbar({ items: [ @@ -87,7 +87,7 @@ const tbar = hoistCmp.factory(({model}) => { }); }); -const adminSpecsPanel = hoistCmp.factory(({model}) => { +const adminSpecsPanel = hoistCmp.factory(({model}) => { const { instanceName, selectedAdminStats, @@ -134,7 +134,7 @@ const adminSpecsPanel = hoistCmp.factory(({model}) => { }); }); -const bbar = hoistCmp.factory(({model}) => { +const bbar = hoistCmp.factory(({model}) => { return toolbar( recordActionBar({ selModel: model.gridModel.selModel,