@xh/hoist 71.0.0-SNAPSHOT.1735844948971 → 71.0.0-SNAPSHOT.1736119965537
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/admin/AppModel.ts +15 -8
- package/admin/tabs/cluster/ClusterTab.ts +14 -63
- package/admin/tabs/cluster/{BaseInstanceModel.ts → instances/BaseInstanceModel.ts} +2 -2
- package/admin/tabs/cluster/instances/InstancesTab.ts +73 -0
- package/admin/tabs/cluster/{ClusterTabModel.ts → instances/InstancesTabModel.ts} +16 -16
- package/admin/tabs/cluster/{connpool → instances/connpool}/ConnPoolMonitorModel.ts +1 -1
- package/admin/tabs/cluster/{connpool → instances/connpool}/ConnPoolMonitorPanel.ts +1 -1
- package/admin/tabs/cluster/{environment → instances/environment}/ServerEnvModel.ts +1 -1
- package/admin/tabs/cluster/{environment → instances/environment}/ServerEnvPanel.ts +1 -1
- package/admin/tabs/cluster/{logs → instances/logs}/LogViewer.ts +1 -1
- package/admin/tabs/cluster/{logs → instances/logs}/LogViewerModel.ts +1 -1
- package/admin/tabs/cluster/{logs → instances/logs}/levels/LogLevelDialog.ts +1 -1
- package/admin/tabs/cluster/{logs → instances/logs}/levels/LogLevelDialogModel.ts +1 -1
- package/admin/tabs/cluster/{memory → instances/memory}/MemoryMonitorModel.ts +1 -1
- package/admin/tabs/cluster/{memory → instances/memory}/MemoryMonitorPanel.ts +1 -1
- package/admin/tabs/cluster/{services → instances/services}/DetailsPanel.ts +1 -1
- package/admin/tabs/cluster/{services → instances/services}/ServiceModel.ts +3 -3
- package/admin/tabs/cluster/{services → instances/services}/ServicePanel.ts +1 -1
- package/admin/tabs/cluster/{websocket → instances/websocket}/WebSocketModel.ts +1 -1
- package/admin/tabs/cluster/{websocket → instances/websocket}/WebSocketPanel.ts +1 -1
- package/admin/tabs/cluster/objects/ClusterObjects.scss +25 -0
- package/admin/tabs/cluster/objects/ClusterObjectsModel.ts +427 -0
- package/admin/tabs/cluster/objects/ClusterObjectsPanel.ts +114 -0
- package/admin/tabs/cluster/objects/DetailModel.ts +158 -0
- package/admin/tabs/cluster/objects/DetailPanel.ts +51 -0
- package/build/types/admin/tabs/cluster/ClusterTab.d.ts +1 -4
- package/build/types/admin/tabs/cluster/{BaseInstanceModel.d.ts → instances/BaseInstanceModel.d.ts} +2 -2
- package/build/types/admin/tabs/cluster/instances/InstancesTab.d.ts +4 -0
- package/build/types/admin/tabs/cluster/{ClusterTabModel.d.ts → instances/InstancesTabModel.d.ts} +2 -1
- package/build/types/admin/tabs/cluster/{connpool → instances/connpool}/ConnPoolMonitorModel.d.ts +1 -1
- package/build/types/admin/tabs/cluster/{connpool → instances/connpool}/ConnPoolMonitorPanel.d.ts +1 -1
- package/build/types/admin/tabs/cluster/{environment → instances/environment}/ServerEnvModel.d.ts +1 -1
- package/build/types/admin/tabs/cluster/{environment → instances/environment}/ServerEnvPanel.d.ts +1 -1
- package/build/types/admin/tabs/cluster/{logs → instances/logs}/LogViewerModel.d.ts +1 -1
- package/build/types/admin/tabs/cluster/{logs → instances/logs}/levels/LogLevelDialog.d.ts +1 -1
- package/build/types/admin/tabs/cluster/{logs → instances/logs}/levels/LogLevelDialogModel.d.ts +1 -1
- package/build/types/admin/tabs/cluster/{memory → instances/memory}/MemoryMonitorModel.d.ts +1 -1
- package/build/types/admin/tabs/cluster/{memory → instances/memory}/MemoryMonitorPanel.d.ts +1 -1
- package/build/types/admin/tabs/cluster/{services → instances/services}/DetailsPanel.d.ts +1 -1
- package/build/types/admin/tabs/cluster/{services → instances/services}/ServiceModel.d.ts +1 -1
- package/build/types/admin/tabs/cluster/{websocket → instances/websocket}/WebSocketModel.d.ts +1 -1
- package/build/types/admin/tabs/cluster/{websocket → instances/websocket}/WebSocketPanel.d.ts +1 -1
- package/build/types/admin/tabs/cluster/objects/ClusterObjectsModel.d.ts +30 -0
- package/build/types/admin/tabs/cluster/objects/ClusterObjectsPanel.d.ts +3 -0
- package/build/types/admin/tabs/cluster/objects/DetailModel.d.ts +19 -0
- package/build/types/admin/tabs/cluster/objects/DetailPanel.d.ts +3 -0
- package/build/types/cmp/viewmanager/ViewManagerModel.d.ts +3 -3
- package/cmp/viewmanager/ViewManagerModel.ts +3 -3
- package/desktop/cmp/viewmanager/dialog/ViewPanelModel.ts +5 -11
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/admin/tabs/cluster/distobjects/DistributedObjectsModel.ts +0 -199
- package/admin/tabs/cluster/distobjects/DistributedObjectsPanel.ts +0 -99
- package/build/types/admin/tabs/cluster/distobjects/DistributedObjectsModel.d.ts +0 -16
- package/build/types/admin/tabs/cluster/distobjects/DistributedObjectsPanel.d.ts +0 -2
- /package/admin/tabs/cluster/{logs → instances/logs}/LogDisplay.ts +0 -0
- /package/admin/tabs/cluster/{logs → instances/logs}/LogDisplayModel.ts +0 -0
- /package/admin/tabs/cluster/{logs → instances/logs}/LogViewer.scss +0 -0
- /package/admin/tabs/cluster/{services → instances/services}/DetailsModel.ts +0 -0
- /package/admin/tabs/cluster/{websocket → instances/websocket}/WebSocketColumns.ts +0 -0
- /package/build/types/admin/tabs/cluster/{logs → instances/logs}/LogDisplay.d.ts +0 -0
- /package/build/types/admin/tabs/cluster/{logs → instances/logs}/LogDisplayModel.d.ts +0 -0
- /package/build/types/admin/tabs/cluster/{logs → instances/logs}/LogViewer.d.ts +0 -0
- /package/build/types/admin/tabs/cluster/{services → instances/services}/DetailsModel.d.ts +0 -0
- /package/build/types/admin/tabs/cluster/{services → instances/services}/ServicePanel.d.ts +0 -0
- /package/build/types/admin/tabs/cluster/{websocket → instances/websocket}/WebSocketColumns.d.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## v71.0.0-SNAPSHOT - unreleased
|
|
4
4
|
|
|
5
|
-
### 💥 Breaking Changes
|
|
5
|
+
### 💥 Breaking Changes (upgrade 🟢 Medium - Hoist core update, adjust imports)
|
|
6
6
|
|
|
7
7
|
* Requires `hoist-core >= 26.1` with new APIs to support `ViewManager`.
|
|
8
8
|
* `ErrorMessage` is now cross-platform - update imports from `@xh/hoist/desktop/cmp/error`
|
package/admin/AppModel.ts
CHANGED
|
@@ -71,14 +71,21 @@ export class AppModel extends HoistAppModel {
|
|
|
71
71
|
name: 'cluster',
|
|
72
72
|
path: '/cluster',
|
|
73
73
|
children: [
|
|
74
|
-
{
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
74
|
+
{
|
|
75
|
+
name: 'instances',
|
|
76
|
+
path: '/instances',
|
|
77
|
+
children: [
|
|
78
|
+
{name: 'logs', path: '/logs'},
|
|
79
|
+
{name: 'memory', path: '/memory'},
|
|
80
|
+
{name: 'jdbcPool', path: '/jdbcPool'},
|
|
81
|
+
{name: 'environment', path: '/environment'},
|
|
82
|
+
{name: 'services', path: '/services'},
|
|
83
|
+
{name: 'hibernate', path: '/hibernate'},
|
|
84
|
+
{name: 'consistency', path: '/consistency'},
|
|
85
|
+
{name: 'webSockets', path: '/webSockets'}
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
{name: 'objects', path: '/objects'}
|
|
82
89
|
]
|
|
83
90
|
},
|
|
84
91
|
{
|
|
@@ -4,70 +4,21 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import {clusterObjectsPanel} from '@xh/hoist/admin/tabs/cluster/objects/ClusterObjectsPanel';
|
|
8
|
+
import {instancesTab} from '@xh/hoist/admin/tabs/cluster/instances/InstancesTab';
|
|
8
9
|
import {tabContainer} from '@xh/hoist/cmp/tab';
|
|
9
|
-
import {
|
|
10
|
-
import {mask} from '@xh/hoist/cmp/mask';
|
|
11
|
-
import {panel} from '@xh/hoist/desktop/cmp/panel';
|
|
12
|
-
import {tabSwitcher} from '@xh/hoist/desktop/cmp/tab';
|
|
13
|
-
import {box, div, hspacer, p, placeholder, vframe} from '@xh/hoist/cmp/layout';
|
|
14
|
-
import {ClusterTabModel} from './ClusterTabModel';
|
|
10
|
+
import {hoistCmp} from '@xh/hoist/core';
|
|
15
11
|
import {Icon} from '@xh/hoist/icon';
|
|
16
12
|
|
|
17
|
-
export const clusterTab = hoistCmp.factory(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
collapsible: false,
|
|
27
|
-
persistWith: model.persistWith
|
|
28
|
-
},
|
|
29
|
-
item: grid()
|
|
30
|
-
}),
|
|
31
|
-
detailPanel(),
|
|
32
|
-
failedConnectionMask()
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
export const detailPanel = hoistCmp.factory<ClusterTabModel>({
|
|
38
|
-
render({model}) {
|
|
39
|
-
const {instance, lastLoadException} = model;
|
|
40
|
-
if (!instance?.isReady) {
|
|
41
|
-
return placeholder({
|
|
42
|
-
items: [Icon.server(), 'Select a running instance above.'],
|
|
43
|
-
omit: lastLoadException
|
|
44
|
-
});
|
|
13
|
+
export const clusterTab = hoistCmp.factory(() =>
|
|
14
|
+
tabContainer({
|
|
15
|
+
modelConfig: {
|
|
16
|
+
route: 'default.cluster',
|
|
17
|
+
switcher: {orientation: 'left', testId: 'cluster-tab-switcher'},
|
|
18
|
+
tabs: [
|
|
19
|
+
{id: 'instances', icon: Icon.info(), content: instancesTab},
|
|
20
|
+
{id: 'objects', icon: Icon.diff(), content: clusterObjectsPanel}
|
|
21
|
+
]
|
|
45
22
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
compactHeader: true,
|
|
49
|
-
tbar: [
|
|
50
|
-
Icon.server(),
|
|
51
|
-
box({width: 150, item: model.formatInstance(instance)}),
|
|
52
|
-
hspacer(25),
|
|
53
|
-
tabSwitcher()
|
|
54
|
-
],
|
|
55
|
-
flex: 1,
|
|
56
|
-
item: tabContainer()
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
export const failedConnectionMask = hoistCmp.factory<ClusterTabModel>({
|
|
62
|
-
render({model}) {
|
|
63
|
-
return mask({
|
|
64
|
-
message: div(
|
|
65
|
-
p('Attempting to connect to cluster.'),
|
|
66
|
-
p('Local instance may be unavailable, please wait.')
|
|
67
|
-
),
|
|
68
|
-
isDisplayed: true,
|
|
69
|
-
spinner: true,
|
|
70
|
-
omit: !model.lastLoadException
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
});
|
|
23
|
+
})
|
|
24
|
+
);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import {InstancesTabModel} from '@xh/hoist/admin/tabs/cluster/instances/InstancesTabModel';
|
|
8
8
|
import {HoistModel, LoadSpec, lookup, PlainObject, XH} from '@xh/hoist/core';
|
|
9
9
|
import {fmtDateTimeSec, fmtJson} from '@xh/hoist/format';
|
|
10
10
|
import {DAYS} from '@xh/hoist/utils/datetime';
|
|
@@ -15,7 +15,7 @@ import {isDisplayed} from '@xh/hoist/utils/js';
|
|
|
15
15
|
export class BaseInstanceModel extends HoistModel {
|
|
16
16
|
viewRef = createRef<HTMLElement>();
|
|
17
17
|
|
|
18
|
-
@lookup(() =>
|
|
18
|
+
@lookup(() => InstancesTabModel) parent: InstancesTabModel;
|
|
19
19
|
|
|
20
20
|
get instanceName(): string {
|
|
21
21
|
return this.parent.instanceName;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file belongs to Hoist, an application development toolkit
|
|
3
|
+
* developed by Extremely Heavy Industries (www.xh.io | info@xh.io)
|
|
4
|
+
*
|
|
5
|
+
* Copyright © 2024 Extremely Heavy Industries Inc.
|
|
6
|
+
*/
|
|
7
|
+
import {grid} from '@xh/hoist/cmp/grid';
|
|
8
|
+
import {tabContainer} from '@xh/hoist/cmp/tab';
|
|
9
|
+
import {creates, hoistCmp} from '@xh/hoist/core';
|
|
10
|
+
import {mask} from '@xh/hoist/cmp/mask';
|
|
11
|
+
import {panel} from '@xh/hoist/desktop/cmp/panel';
|
|
12
|
+
import {tabSwitcher} from '@xh/hoist/desktop/cmp/tab';
|
|
13
|
+
import {box, div, hspacer, p, placeholder, vframe} from '@xh/hoist/cmp/layout';
|
|
14
|
+
import {InstancesTabModel} from '@xh/hoist/admin/tabs/cluster/instances/InstancesTabModel';
|
|
15
|
+
import {Icon} from '@xh/hoist/icon';
|
|
16
|
+
|
|
17
|
+
export const instancesTab = hoistCmp.factory({
|
|
18
|
+
model: creates(InstancesTabModel),
|
|
19
|
+
render({model}) {
|
|
20
|
+
return vframe(
|
|
21
|
+
panel({
|
|
22
|
+
modelConfig: {
|
|
23
|
+
side: 'top',
|
|
24
|
+
defaultSize: 105,
|
|
25
|
+
minSize: 75,
|
|
26
|
+
collapsible: false,
|
|
27
|
+
persistWith: model.persistWith
|
|
28
|
+
},
|
|
29
|
+
item: grid()
|
|
30
|
+
}),
|
|
31
|
+
detailPanel(),
|
|
32
|
+
failedConnectionMask()
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
export const detailPanel = hoistCmp.factory<InstancesTabModel>({
|
|
38
|
+
render({model}) {
|
|
39
|
+
const {instance, lastLoadException} = model;
|
|
40
|
+
if (!instance?.isReady) {
|
|
41
|
+
return placeholder({
|
|
42
|
+
items: [Icon.server(), 'Select a running instance above.'],
|
|
43
|
+
omit: lastLoadException
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return panel({
|
|
48
|
+
compactHeader: true,
|
|
49
|
+
tbar: [
|
|
50
|
+
Icon.server(),
|
|
51
|
+
box({width: 150, item: model.formatInstance(instance)}),
|
|
52
|
+
hspacer(25),
|
|
53
|
+
tabSwitcher()
|
|
54
|
+
],
|
|
55
|
+
flex: 1,
|
|
56
|
+
item: tabContainer()
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
export const failedConnectionMask = hoistCmp.factory<InstancesTabModel>({
|
|
62
|
+
render({model}) {
|
|
63
|
+
return mask({
|
|
64
|
+
message: div(
|
|
65
|
+
p('Attempting to connect to cluster.'),
|
|
66
|
+
p('Local instance may be unavailable, please wait.')
|
|
67
|
+
),
|
|
68
|
+
isDisplayed: true,
|
|
69
|
+
spinner: true,
|
|
70
|
+
omit: !model.lastLoadException
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
@@ -6,14 +6,16 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import {AppModel} from '@xh/hoist/admin/AppModel';
|
|
8
8
|
import {timestampNoYear} from '@xh/hoist/admin/columns';
|
|
9
|
-
import {connPoolMonitorPanel} from '@xh/hoist/admin/tabs/cluster/connpool/ConnPoolMonitorPanel';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
import {
|
|
9
|
+
import {connPoolMonitorPanel} from '@xh/hoist/admin/tabs/cluster/instances/connpool/ConnPoolMonitorPanel';
|
|
10
|
+
import {serverEnvPanel} from '@xh/hoist/admin/tabs/cluster/instances/environment/ServerEnvPanel';
|
|
11
|
+
import {logViewer} from '@xh/hoist/admin/tabs/cluster/instances/logs/LogViewer';
|
|
12
|
+
import {
|
|
13
|
+
usedHeapMb,
|
|
14
|
+
usedPctMax
|
|
15
|
+
} from '@xh/hoist/admin/tabs/cluster/instances/memory/MemoryMonitorModel';
|
|
16
|
+
import {memoryMonitorPanel} from '@xh/hoist/admin/tabs/cluster/instances/memory/MemoryMonitorPanel';
|
|
17
|
+
import {servicePanel} from '@xh/hoist/admin/tabs/cluster/instances/services/ServicePanel';
|
|
18
|
+
import {webSocketPanel} from '@xh/hoist/admin/tabs/cluster/instances/websocket/WebSocketPanel';
|
|
17
19
|
import {badge} from '@xh/hoist/cmp/badge';
|
|
18
20
|
import {GridModel, numberCol} from '@xh/hoist/cmp/grid';
|
|
19
21
|
import {hbox} from '@xh/hoist/cmp/layout';
|
|
@@ -27,7 +29,7 @@ import {Timer} from '@xh/hoist/utils/async';
|
|
|
27
29
|
import {SECONDS} from '@xh/hoist/utils/datetime';
|
|
28
30
|
import {ReactNode} from 'react';
|
|
29
31
|
|
|
30
|
-
export class
|
|
32
|
+
export class InstancesTabModel extends HoistModel {
|
|
31
33
|
override persistWith = {localStorageKey: 'xhAdminClusterTabState'};
|
|
32
34
|
|
|
33
35
|
@lookup(TabModel) private tabModel: TabModel;
|
|
@@ -57,6 +59,10 @@ export class ClusterTabModel extends HoistModel {
|
|
|
57
59
|
return this.gridModel.store.allCount > 1;
|
|
58
60
|
}
|
|
59
61
|
|
|
62
|
+
get instanceNames(): string[] {
|
|
63
|
+
return this.gridModel.store.records.map(r => r.data.name);
|
|
64
|
+
}
|
|
65
|
+
|
|
60
66
|
override async doLoadAsync(loadSpec: LoadSpec) {
|
|
61
67
|
const {gridModel} = this;
|
|
62
68
|
|
|
@@ -182,7 +188,7 @@ export class ClusterTabModel extends HoistModel {
|
|
|
182
188
|
|
|
183
189
|
private createTabContainerModel() {
|
|
184
190
|
return new TabContainerModel({
|
|
185
|
-
route: 'default.cluster',
|
|
191
|
+
route: 'default.cluster.instances',
|
|
186
192
|
switcher: false,
|
|
187
193
|
tabs: [
|
|
188
194
|
{id: 'logs', icon: Icon.fileText(), content: logViewer},
|
|
@@ -195,12 +201,6 @@ export class ClusterTabModel extends HoistModel {
|
|
|
195
201
|
},
|
|
196
202
|
{id: 'environment', icon: Icon.globe(), content: serverEnvPanel},
|
|
197
203
|
{id: 'services', icon: Icon.gears(), content: servicePanel},
|
|
198
|
-
{
|
|
199
|
-
id: 'objects',
|
|
200
|
-
title: 'Distributed Objects',
|
|
201
|
-
icon: Icon.grip(),
|
|
202
|
-
content: distributedObjectsPanel
|
|
203
|
-
},
|
|
204
204
|
{id: 'webSockets', title: 'WebSockets', icon: Icon.bolt(), content: webSocketPanel}
|
|
205
205
|
]
|
|
206
206
|
});
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import {exportFilenameWithDate} from '@xh/hoist/admin/AdminUtils';
|
|
8
8
|
import {timestampNoYear} from '@xh/hoist/admin/columns';
|
|
9
|
-
import {BaseInstanceModel} from '@xh/hoist/admin/tabs/cluster/BaseInstanceModel';
|
|
9
|
+
import {BaseInstanceModel} from '@xh/hoist/admin/tabs/cluster/instances/BaseInstanceModel';
|
|
10
10
|
import {ChartModel} from '@xh/hoist/cmp/chart';
|
|
11
11
|
import {GridModel} from '@xh/hoist/cmp/grid';
|
|
12
12
|
import {LoadSpec, managed, PlainObject, XH} from '@xh/hoist/core';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
7
|
import {AppModel} from '@xh/hoist/admin/AppModel';
|
|
8
|
-
import {ConnPoolMonitorModel} from '@xh/hoist/admin/tabs/cluster/connpool/ConnPoolMonitorModel';
|
|
8
|
+
import {ConnPoolMonitorModel} from '@xh/hoist/admin/tabs/cluster/instances/connpool/ConnPoolMonitorModel';
|
|
9
9
|
import {chart} from '@xh/hoist/cmp/chart';
|
|
10
10
|
import {grid, gridCountLabel} from '@xh/hoist/cmp/grid';
|
|
11
11
|
import {filler, hframe, vframe} from '@xh/hoist/cmp/layout';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
|
-
import {BaseInstanceModel} from '@xh/hoist/admin/tabs/cluster/BaseInstanceModel';
|
|
7
|
+
import {BaseInstanceModel} from '@xh/hoist/admin/tabs/cluster/instances/BaseInstanceModel';
|
|
8
8
|
import {exportFilenameWithDate} from '@xh/hoist/admin/AdminUtils';
|
|
9
9
|
import {GridModel} from '@xh/hoist/cmp/grid';
|
|
10
10
|
import {LoadSpec, managed, XH} from '@xh/hoist/core';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
|
-
import {ServerEnvModel} from '@xh/hoist/admin/tabs/cluster/environment/ServerEnvModel';
|
|
7
|
+
import {ServerEnvModel} from '@xh/hoist/admin/tabs/cluster/instances/environment/ServerEnvModel';
|
|
8
8
|
import {grid, gridCountLabel} from '@xh/hoist/cmp/grid';
|
|
9
9
|
import {filler} from '@xh/hoist/cmp/layout';
|
|
10
10
|
import {storeFilterField} from '@xh/hoist/cmp/store';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
|
-
import {logLevelDialog} from '@xh/hoist/admin/tabs/cluster/logs/levels/LogLevelDialog';
|
|
7
|
+
import {logLevelDialog} from '@xh/hoist/admin/tabs/cluster/instances/logs/levels/LogLevelDialog';
|
|
8
8
|
import {grid} from '@xh/hoist/cmp/grid';
|
|
9
9
|
import {hframe} from '@xh/hoist/cmp/layout';
|
|
10
10
|
import {storeFilterField} from '@xh/hoist/cmp/store';
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import {exportFilenameWithDate} from '@xh/hoist/admin/AdminUtils';
|
|
8
8
|
import {AppModel} from '@xh/hoist/admin/AppModel';
|
|
9
|
-
import {BaseInstanceModel} from '@xh/hoist/admin/tabs/cluster/BaseInstanceModel';
|
|
9
|
+
import {BaseInstanceModel} from '@xh/hoist/admin/tabs/cluster/instances/BaseInstanceModel';
|
|
10
10
|
import {GridModel} from '@xh/hoist/cmp/grid';
|
|
11
11
|
import {LoadSpec, managed, XH} from '@xh/hoist/core';
|
|
12
12
|
import {RecordActionSpec} from '@xh/hoist/data';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
|
-
import {LogLevelDialogModel} from '@xh/hoist/admin/tabs/cluster/logs/levels/LogLevelDialogModel';
|
|
7
|
+
import {LogLevelDialogModel} from '@xh/hoist/admin/tabs/cluster/instances/logs/levels/LogLevelDialogModel';
|
|
8
8
|
import {filler, span} from '@xh/hoist/cmp/layout';
|
|
9
9
|
import {creates, hoistCmp} from '@xh/hoist/core';
|
|
10
10
|
import {button} from '@xh/hoist/desktop/cmp/button';
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import {exportFilenameWithDate} from '@xh/hoist/admin/AdminUtils';
|
|
8
8
|
import {AppModel} from '@xh/hoist/admin/AppModel';
|
|
9
9
|
import * as Col from '@xh/hoist/admin/columns/Rest';
|
|
10
|
-
import {LogViewerModel} from '@xh/hoist/admin/tabs/cluster/logs/LogViewerModel';
|
|
10
|
+
import {LogViewerModel} from '@xh/hoist/admin/tabs/cluster/instances/logs/LogViewerModel';
|
|
11
11
|
import {HoistModel, managed, lookup, LoadSpec} from '@xh/hoist/core';
|
|
12
12
|
import {FieldSpec} from '@xh/hoist/data';
|
|
13
13
|
import {textInput} from '@xh/hoist/desktop/cmp/input';
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import {exportFilenameWithDate} from '@xh/hoist/admin/AdminUtils';
|
|
8
8
|
import {timestampNoYear} from '@xh/hoist/admin/columns';
|
|
9
|
-
import {BaseInstanceModel} from '@xh/hoist/admin/tabs/cluster/BaseInstanceModel';
|
|
9
|
+
import {BaseInstanceModel} from '@xh/hoist/admin/tabs/cluster/instances/BaseInstanceModel';
|
|
10
10
|
import {ChartModel} from '@xh/hoist/cmp/chart';
|
|
11
11
|
import {ColumnSpec, GridModel} from '@xh/hoist/cmp/grid';
|
|
12
12
|
import {LoadSpec, managed, XH} from '@xh/hoist/core';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
7
|
import {AppModel} from '@xh/hoist/admin/AppModel';
|
|
8
|
-
import {MemoryMonitorModel} from '@xh/hoist/admin/tabs/cluster/memory/MemoryMonitorModel';
|
|
8
|
+
import {MemoryMonitorModel} from '@xh/hoist/admin/tabs/cluster/instances/memory/MemoryMonitorModel';
|
|
9
9
|
import {chart} from '@xh/hoist/cmp/chart';
|
|
10
10
|
import {grid, gridCountLabel} from '@xh/hoist/cmp/grid';
|
|
11
11
|
import {code, filler, fragment, hbox, hspacer, span, vframe} from '@xh/hoist/cmp/layout';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
|
-
import {DetailsModel} from '@xh/hoist/admin/tabs/cluster/services/DetailsModel';
|
|
7
|
+
import {DetailsModel} from '@xh/hoist/admin/tabs/cluster/instances/services/DetailsModel';
|
|
8
8
|
import {placeholder} from '@xh/hoist/cmp/layout';
|
|
9
9
|
import {creates, hoistCmp, XH} from '@xh/hoist/core';
|
|
10
10
|
import {errorMessage} from '@xh/hoist/cmp/error';
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import {exportFilenameWithDate} from '@xh/hoist/admin/AdminUtils';
|
|
8
8
|
import {AppModel} from '@xh/hoist/admin/AppModel';
|
|
9
9
|
import {timestampNoYear} from '@xh/hoist/admin/columns';
|
|
10
|
-
import {BaseInstanceModel} from '@xh/hoist/admin/tabs/cluster/BaseInstanceModel';
|
|
10
|
+
import {BaseInstanceModel} from '@xh/hoist/admin/tabs/cluster/instances/BaseInstanceModel';
|
|
11
11
|
import {GridModel} from '@xh/hoist/cmp/grid';
|
|
12
12
|
import {br, fragment} from '@xh/hoist/cmp/layout';
|
|
13
13
|
import {LoadSpec, managed, XH} from '@xh/hoist/core';
|
|
@@ -25,7 +25,7 @@ export class ServiceModel extends BaseInstanceModel {
|
|
|
25
25
|
textFilter: FilterTestFn = null;
|
|
26
26
|
|
|
27
27
|
clearCachesAction: RecordActionSpec = {
|
|
28
|
-
text: 'Clear Caches',
|
|
28
|
+
text: 'Clear Service Caches',
|
|
29
29
|
icon: Icon.reset(),
|
|
30
30
|
intent: 'warning',
|
|
31
31
|
actionFn: () => this.clearCachesAsync(false),
|
|
@@ -37,7 +37,7 @@ export class ServiceModel extends BaseInstanceModel {
|
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
clearClusterCachesAction: RecordActionSpec = {
|
|
40
|
-
text: 'Clear Caches (entire cluster)',
|
|
40
|
+
text: 'Clear Service Caches (entire cluster)',
|
|
41
41
|
icon: Icon.reset(),
|
|
42
42
|
intent: 'warning',
|
|
43
43
|
actionFn: () => this.clearCachesAsync(true),
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
|
-
import {detailsPanel} from '@xh/hoist/admin/tabs/cluster/services/DetailsPanel';
|
|
7
|
+
import {detailsPanel} from '@xh/hoist/admin/tabs/cluster/instances/services/DetailsPanel';
|
|
8
8
|
import {grid, gridCountLabel} from '@xh/hoist/cmp/grid';
|
|
9
9
|
import {filler, hframe} from '@xh/hoist/cmp/layout';
|
|
10
10
|
import {storeFilterField} from '@xh/hoist/cmp/store';
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import {exportFilenameWithDate} from '@xh/hoist/admin/AdminUtils';
|
|
8
8
|
import * as Col from '@xh/hoist/admin/columns';
|
|
9
|
-
import {BaseInstanceModel} from '@xh/hoist/admin/tabs/cluster/BaseInstanceModel';
|
|
9
|
+
import {BaseInstanceModel} from '@xh/hoist/admin/tabs/cluster/instances/BaseInstanceModel';
|
|
10
10
|
import {GridModel} from '@xh/hoist/cmp/grid';
|
|
11
11
|
import {div, p} from '@xh/hoist/cmp/layout';
|
|
12
12
|
import {LoadSpec, managed, XH} from '@xh/hoist/core';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
|
-
import {WebSocketModel} from '@xh/hoist/admin/tabs/cluster/websocket/WebSocketModel';
|
|
7
|
+
import {WebSocketModel} from '@xh/hoist/admin/tabs/cluster/instances/websocket/WebSocketModel';
|
|
8
8
|
import {grid, gridCountLabel} from '@xh/hoist/cmp/grid';
|
|
9
9
|
import {box, filler, fragment, p} from '@xh/hoist/cmp/layout';
|
|
10
10
|
import {relativeTimestamp} from '@xh/hoist/cmp/relativetimestamp';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file belongs to Hoist, an application development toolkit
|
|
3
|
+
* developed by Extremely Heavy Industries (www.xh.io | info@xh.io)
|
|
4
|
+
*
|
|
5
|
+
* Copyright © 2024 Extremely Heavy Industries Inc.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
.xh-cluster-objects-row-has-break:not(.ag-row-selected) {
|
|
9
|
+
background-color: var(--xh-intent-danger-trans1) !important;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.xh-cluster-objects-cell-danger {
|
|
13
|
+
background-color: var(--xh-intent-danger-trans1) !important;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.xh-cluster-objects-cell-success {
|
|
17
|
+
background-color: var(--xh-intent-success-trans1) !important;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.xh-cluster-objects-result-count {
|
|
21
|
+
align-items: center;
|
|
22
|
+
.xh-icon {
|
|
23
|
+
margin-right: 0.5em;
|
|
24
|
+
}
|
|
25
|
+
}
|