Skip to content

Commit 81732e2

Browse files
committed
chore(FR-1757): remove legacy Lit components for summary and session pages (#4754)
Resolves #4747 ([FR-1757](https://lablup.atlassian.net/browse/FR-1757)) ## Summary - Remove legacy Lit-Element components for Summary page and Session page - Delete unused components: `backend-ai-summary-view`, `backend-ai-session-view`, `backend-ai-session-list`, `backend-ai-resource-monitor`, `backend-ai-resource-panel`, and related helper components - Clean up references to removed components in React and Lit files - Remove unused i18n translation keys ## Deleted Components - `backend-ai-summary-view.ts` - `backend-ai-session-view.ts` - `backend-ai-session-list.ts` - `backend-ai-resource-monitor.ts` - `backend-ai-resource-panel.ts` - `backend-ai-release-check.ts` - `backend-ai-list-status.ts` - `lablup-activity-panel.ts` - `lablup-grid-sort-filter-column.ts` - `lablup-loading-spinner.ts` - `lablup-progress-bar.ts` - `lablup-slider.ts` - `lablup-piechart.ts` ## Test plan - [ ] Verify Summary page works correctly with React implementation - [ ] Verify Session page works correctly with React implementation - [ ] Check that no runtime errors occur from missing component references - [ ] Confirm build completes successfully [FR-1757]: https://lablup.atlassian.net/browse/FR-1757?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
1 parent e7540db commit 81732e2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+9
-12073
lines changed

react/src/App.tsx

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -167,50 +167,34 @@ const router = createBrowserRouter([
167167
},
168168
},
169169
{
170+
// TODO: For the convenience of existing users, this path will be retained. It is scheduled for deletion in the future.
170171
path: '/summary',
171172
Component: () => {
172173
const location = useLocation();
173-
const [isClassicDashboardPage] = useBAISettingUserState(
174-
'classic_dashboard_page',
175-
);
176-
return !isClassicDashboardPage ? (
177-
<WebUINavigate to={'/dashboard' + location.search} replace />
178-
) : null;
174+
return <WebUINavigate to={'/dashboard' + location.search} replace />;
179175
},
180176
handle: { labelKey: 'webui.menu.Summary' },
181177
},
182178
{
183179
path: '/dashboard',
184180
handle: { labelKey: 'webui.menu.Dashboard' },
185181
Component: () => {
186-
const location = useLocation();
187-
const [isClassicDashboardPage] = useBAISettingUserState(
188-
'classic_dashboard_page',
189-
);
190-
return !isClassicDashboardPage ? (
182+
return (
191183
<BAIErrorBoundary>
192184
<Suspense fallback={<Skeleton active />}>
193185
<DashboardPage />
194186
</Suspense>
195187
</BAIErrorBoundary>
196-
) : (
197-
<WebUINavigate to={'/summary' + location.search} replace />
198188
);
199189
},
200190
},
201191
{
192+
// TODO: For the convenience of existing users, this path will be retained. It is scheduled for deletion in the future.
202193
path: '/job',
203194
handle: { labelKey: 'webui.menu.Sessions' },
204195
Component: () => {
205196
const location = useLocation();
206-
const [classic_session_list] = useBAISettingUserState(
207-
'classic_session_list',
208-
);
209-
return classic_session_list ? (
210-
<SessionDetailAndContainerLogOpenerLegacy />
211-
) : (
212-
<WebUINavigate to={'/session' + location.search} replace />
213-
);
197+
return <WebUINavigate to={'/session' + location.search} replace />;
214198
},
215199
},
216200
{
@@ -220,25 +204,13 @@ const router = createBrowserRouter([
220204
{
221205
path: '',
222206
Component: () => {
223-
const location = useLocation();
224-
const [classicSessionList] = useBAISettingUserState(
225-
'classic_session_list',
226-
);
227-
228207
useSuspendedBackendaiClient();
229208

230-
return !classicSessionList ? (
231-
<Suspense
232-
fallback={
233-
<Skeleton active />
234-
// <BAICard title={t('webui.menu.Sessions')} loading />
235-
}
236-
>
209+
return (
210+
<Suspense fallback={<Skeleton active />}>
237211
<ComputeSessionListPage />
238212
<SessionDetailAndContainerLogOpenerLegacy />
239213
</Suspense>
240-
) : (
241-
<WebUINavigate to={'/job' + location.search} replace />
242214
);
243215
},
244216
},

react/src/components/ComputeSessionNodeItems/EditableSessionName.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,6 @@ const EditableSessionName: React.FC<EditableSessionNameProps> = ({
165165
.toPromise()
166166
// ignore the error
167167
.catch();
168-
// ignore the error
169-
document.dispatchEvent(
170-
new CustomEvent('backend-ai-session-list-refreshed'),
171-
);
172168
},
173169
onError: () => {
174170
// if the session name is not changed, do not show error

react/src/components/ComputeSessionNodeItems/TerminateSessionModal.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -291,11 +291,6 @@ const TerminateSessionModal: React.FC<TerminateSessionModalProps> = ({
291291
Promise.allSettled(promises).then(() => {
292292
setIsForce(false);
293293
onRequestClose(true);
294-
// TODO: remove below code after session list migration to React
295-
const event = new CustomEvent('backend-ai-session-list-refreshed', {
296-
detail: 'running',
297-
});
298-
document.dispatchEvent(event);
299294
});
300295
}}
301296
okText={isForce ? t('button.ForceTerminate') : t('session.Terminate')}

react/src/hooks/useBAISetting.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,11 @@ interface UserSettings {
1717
endpoints?: Array<string>;
1818
auto_logout?: boolean;
1919
selected_language?: string;
20-
classic_dashboard_page?: boolean;
2120
recentSessionHistory?: Array<SessionHistory>;
2221
pinnedSessionHistory?: Array<SessionHistory>;
2322
start_board_items?: Array<Omit<BAIBoardItem, 'data'>>;
2423
start_page_board_items?: Array<Omit<BAIBoardItem, 'data'>>;
2524
experimental_ai_agents?: boolean;
26-
experimental_dashboard?: boolean;
2725
session_metrics_board_items?: Array<Omit<BAIBoardItem, 'data'>>;
2826
dashboard_board_items?: Array<Omit<BAIBoardItem, 'data'>>;
2927
admin_dashboard_board_items?: Array<Omit<BAIBoardItem, 'data'>>;
@@ -34,7 +32,6 @@ interface UserSettings {
3432
[key: `hiddenColumnKeys.${string}`]: Array<string>;
3533
[key: `table_column_overrides.${string}`]: BAITableColumnOverrideRecord;
3634

37-
classic_session_list?: boolean; // `experimental_neo_session_list` has been replaced with `classic_session_list`
3835
max_concurrent_uploads?: number;
3936
container_log_auto_refresh_enabled?: boolean;
4037
container_log_auto_refresh_interval?: number;

react/src/hooks/useCurrentProject.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,6 @@ export const useSetCurrentProject = () => {
160160
baiClient.current_group = projectName;
161161
// @ts-ignore
162162
globalThis.backendaiutils._writeRecentProjectGroup(projectName);
163-
const event: CustomEvent = new CustomEvent('backend-ai-group-changed', {
164-
detail: projectName,
165-
});
166-
document.dispatchEvent(event);
167163
},
168164
[set, baiClient],
169165
);

react/src/hooks/useWebUIMenuItems.tsx

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -108,13 +108,9 @@ export const useWebUIMenuItems = ({
108108
const inactiveList = baiClient?._config?.inactiveList ?? null;
109109
const { token } = theme.useToken();
110110

111-
const [classic_session_list] = useBAISettingUserState('classic_session_list');
112111
const [experimentalAIAgents] = useBAISettingUserState(
113112
'experimental_ai_agents',
114113
);
115-
const [isClassicDashboardPage] = useBAISettingUserState(
116-
'classic_dashboard_page',
117-
);
118114

119115
const generalMenu = filterOutEmpty<WebUIGeneralMenuItemType>([
120116
{
@@ -123,24 +119,14 @@ export const useWebUIMenuItems = ({
123119
key: 'start',
124120
group: 'none',
125121
},
126-
!isClassicDashboardPage && {
122+
{
127123
label: <WebUILink to="/dashboard">{t('webui.menu.Dashboard')}</WebUILink>,
128124
icon: <DashboardOutlined style={{ color: token.colorPrimary }} />,
129125
key: 'dashboard',
130126
group: 'none',
131127
},
132-
isClassicDashboardPage && {
133-
label: <WebUILink to="/summary">{t('webui.menu.Summary')}</WebUILink>,
134-
icon: <DashboardOutlined style={{ color: token.colorPrimary }} />,
135-
key: 'summary',
136-
group: 'none',
137-
},
138128
{
139-
label: (
140-
<WebUILink to={classic_session_list ? '/job' : '/session'}>
141-
{t('webui.menu.Sessions')}
142-
</WebUILink>
143-
),
129+
label: <WebUILink to={'/session'}>{t('webui.menu.Sessions')}</WebUILink>,
144130
icon: <BAISessionsIcon style={{ color: token.colorPrimary }} />,
145131
key: 'job',
146132
group: 'workload',

react/src/pages/UserSettingsPage.tsx

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,8 @@ const UserPreferencesPage = () => {
4949
] = useToggle(false);
5050
const [preserveLogin, setPreserveLogin] =
5151
useBAISettingUserState('preserve_login');
52-
const [classicSessionList, setClassicSessionList] = useBAISettingUserState(
53-
'classic_session_list',
54-
);
5552
const [experimentalAIAgents, setExperimentalAIAgents] =
5653
useBAISettingUserState('experimental_ai_agents');
57-
const [isClassicDashboardPage, setIsClassicDashboardPage] =
58-
useBAISettingUserState('classic_dashboard_page');
5954
const [shellInfo, setShellInfo] = useState<ShellScriptType>('bootstrap');
6055
const [isOpenShellScriptEditModal, { toggle: toggleShellScriptEditModal }] =
6156
useToggle(false);
@@ -335,37 +330,6 @@ const UserPreferencesPage = () => {
335330
},
336331
],
337332
},
338-
{
339-
'data-testid': 'group-classic-features',
340-
title: t('userSettings.BackToClassicFeatures'),
341-
description: t('userSettings.BackToClassicFeaturesDesc'),
342-
settingItems: [
343-
{
344-
'data-testid': 'items-experimental-neo-session-list',
345-
type: 'checkbox',
346-
title: t('userSettings.ClassicSessionList'),
347-
description: t('general.Enabled'),
348-
defaultValue: false,
349-
value: classicSessionList,
350-
setValue: setClassicSessionList,
351-
onChange: (e) => {
352-
setClassicSessionList(e.target.checked);
353-
},
354-
},
355-
{
356-
'data-testid': 'items-classic-dashboard',
357-
type: 'checkbox',
358-
title: t('webui.menu.ClassicDashboardPage'),
359-
description: t('general.Enabled'),
360-
defaultValue: false,
361-
value: isClassicDashboardPage,
362-
setValue: setIsClassicDashboardPage,
363-
onChange: (e) => {
364-
setIsClassicDashboardPage(e.target.checked);
365-
},
366-
},
367-
],
368-
},
369333
{
370334
'data-testid': 'group-experimental-features',
371335
title: t('userSettings.ExperimentalFeatures'),

resources/i18n/de.json

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1585,7 +1585,6 @@
15851585
"PreOpenPortRangeGuide": "Geben Sie mehrere Werte ein, getrennt durch ein Komma (,) oder ein Leerzeichen.",
15861586
"PreOpenPortTitle": "Vorgeöffnete Häfen",
15871587
"PrePortConfigWillDisappear": "Alle nicht gespeicherten, bereits geöffneten Ports werden gelöscht.",
1588-
"PreviousLauncher": "Classic",
15891588
"Project": "Projekt",
15901589
"ProxyConfiguratorNotResponding": "Der Proxy-Konfigurator antwortet nicht.",
15911590
"ProxyDirectTCPNotSupported": "Eine direkte Proxy-TCP-Verbindung wird noch nicht unterstützt",
@@ -1955,9 +1954,6 @@
19551954
"ValidationErrorTitle": "Fehler bei der Validierung des Eingabefelds"
19561955
}
19571956
},
1958-
"update": {
1959-
"NewWebUIVersionAvailable": "Neue Version ist verfügbar:"
1960-
},
19611957
"usagePanel": {
19621958
"CpuUsedTime": "CPU-Nutzungszeit",
19631959
"DiskUsed": "Festplattennutzung",
@@ -1970,16 +1966,11 @@
19701966
"userSettings": {
19711967
"AutoLogout": "Automatische Abmeldung",
19721968
"AutomaticUpdateCheck": "Automatische Update-Prüfung",
1973-
"BackToClassicFeatures": "Wechseln Sie zurück zur klassischen Benutzeroberfläche",
1974-
"BackToClassicFeaturesDesc": "Sie können die klassische Benutzeroberfläche anstelle der neuesten NEO -Benutzeroberfläche auswählen. \nBitte beachten Sie, dass einige der neuesten Funktionen in der klassischen Benutzeroberfläche möglicherweise nicht unterstützt werden.",
19751969
"BetaFeatures": "Beta-Funktionen",
19761970
"BootstrapScriptDeleted": "Bootstrap-Skript gelöscht",
19771971
"BootstrapScriptDescription": "Das Bootstrap-Skript wird nur einmal nach der Erstellung der Sitzung ausgeführt",
19781972
"BootstrapScriptEmpty": "Das Skript ist leer. \nBitte geben Sie das Skript ein.",
19791973
"BootstrapScriptUpdated": "Bootstrap-Skript aktualisiert.",
1980-
"ClassicFeatures": "Klassische Funktionen",
1981-
"ClassicFeaturesDesc": "Wenn Sie auf eine klassische Version zurückkehren, können Sie Stabilität und Funktionen wiedererlangen, während Sie auf die Veröffentlichung von Updates oder Korrekturen warten.",
1982-
"ClassicSessionList": "Klassische Sitzungsliste Seite",
19831974
"ClearSSHKeypairInput": "Geschriebenes SSH-Schlüsselpaar wird entfernt. Sind Sie sicher, dass Sie fortfahren möchten?",
19841975
"ConfigFilename": "Name der Konfigurationsdatei",
19851976
"CurrentSSHPublicKey": "Aktueller öffentlicher Schlüssel:",
@@ -2065,7 +2056,6 @@
20652056
},
20662057
"webTerminalUsageGuide": {
20672058
"CopyGuide": "Erweiterte Web-Terminal-Nutzung: Terminal-Inhalte kopieren",
2068-
"CopyGuideFour": "Um das Scrollen mit der Maus wieder einzuschalten, drücken Sie <code> Strg + B </code> und geben Sie <code> :set -g mouse on </code> ein und drücken Sie <code> Geben Sie </code> ein.",
20692059
"CopyGuideOne": "Drücken Sie die Taste <code> Strg + B </code>, um in den tmux-Steuerungsmodus zu gelangen.",
20702060
"CopyGuideThree": "Jetzt können Sie Text aus dem Terminal kopieren.",
20712061
"CopyGuideTwo": "Geben Sie <code> :set -g mouse off </code> ein und drücken Sie <code> Geben Sie </code> ein.",
@@ -2095,7 +2085,6 @@
20952085
"Cancel": "Stornieren",
20962086
"ChangePassword": "Kennwort ändern",
20972087
"Chat": "Chat",
2098-
"ClassicDashboardPage": "Klassische Dashboard -Seite (Zusammenfassung Seite)",
20992088
"ClickToDownload": "Klicken Sie hier, um herunterzuladen",
21002089
"ComputationResources": "Rechenressourcen",
21012090
"Configurations": "Konfigurationen",

resources/i18n/el.json

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1584,7 +1584,6 @@
15841584
"PreOpenPortRangeGuide": "Εισαγάγετε πολλές τιμές διαχωρισμένες είτε με κόμμα (,) είτε με κενό.",
15851585
"PreOpenPortTitle": "Προανοιχτά λιμάνια",
15861586
"PrePortConfigWillDisappear": "Τυχόν μη αποθηκευμένες προ-ανοιχτές θύρες θα εξαφανιστούν.",
1587-
"PreviousLauncher": "Classic",
15881587
"Project": "Εργο",
15891588
"ProxyConfiguratorNotResponding": "Ο διαμορφωτής μεσολάβησης δεν αποκρίνεται.",
15901589
"ProxyDirectTCPNotSupported": "Η απευθείας σύνδεση TCP μεσολάβησης δεν υποστηρίζεται ακόμη",
@@ -1954,9 +1953,6 @@
19541953
"ValidationErrorTitle": "Σφάλματα επικύρωσης πεδίου εισαγωγής"
19551954
}
19561955
},
1957-
"update": {
1958-
"NewWebUIVersionAvailable": "Η νέα έκδοση είναι διαθέσιμη:"
1959-
},
19601956
"usagePanel": {
19611957
"CpuUsedTime": "Χρησιμοποιημένος χρόνος CPU",
19621958
"DiskUsed": "Χρήση δίσκου",
@@ -1969,16 +1965,11 @@
19691965
"userSettings": {
19701966
"AutoLogout": "Αυτόματη αποσύνδεση",
19711967
"AutomaticUpdateCheck": "Έλεγχος αυτόματης ενημέρωσης",
1972-
"BackToClassicFeatures": "Επιστροφή στο κλασικό UI",
1973-
"BackToClassicFeaturesDesc": "Μπορείτε να επιλέξετε το κλασικό UI αντί για το τελευταίο NEO UI. \nΛάβετε υπόψη ότι ορισμένες από τις τελευταίες λειτουργίες ενδέχεται να μην υποστηρίζονται στο κλασικό UI.",
19741968
"BetaFeatures": "Χαρακτηριστικά beta",
19751969
"BootstrapScriptDeleted": "Το σενάριο Bootstrap διαγράφηκε",
19761970
"BootstrapScriptDescription": "Το σενάριο Bootstrap θα εκτελεστεί μόνο μία φορά μετά τη δημιουργία συνεδρίας",
19771971
"BootstrapScriptEmpty": "Το σενάριο είναι κενό. \nΕισαγάγετε το σενάριο.",
19781972
"BootstrapScriptUpdated": "Το σενάριο Bootstrap ενημερώθηκε.",
1979-
"ClassicFeatures": "Κλασικά χαρακτηριστικά",
1980-
"ClassicFeaturesDesc": "Η κύλιση πίσω σε μια κλασική έκδοση μπορεί να σας βοηθήσει να ανακτήσετε τη σταθερότητα και τη λειτουργικότητα ενώ περιμένετε να κυκλοφορήσουν ενημερώσεις ή διορθώσεις.",
1981-
"ClassicSessionList": "Κλασική σελίδα λίστας συνεδριών",
19821973
"ClearSSHKeypairInput": "Το γραπτό πληκτρολόγιο SSH θα αφαιρεθεί. Εισαι σιγουρος οτι θελεις να συνεχισεις?",
19831974
"ConfigFilename": "Διαμόρφωση ονόματος αρχείου",
19841975
"CurrentSSHPublicKey": "Τρέχον δημόσιο κλειδί:",
@@ -2063,7 +2054,6 @@
20632054
},
20642055
"webTerminalUsageGuide": {
20652056
"CopyGuide": "Σύνθετη χρήση τερματικού Web: Αντιγραφή περιεχομένου τερματικού",
2066-
"CopyGuideFour": "Για να ενεργοποιήσετε ξανά την κύλιση του ποντικιού, πατήστε <code> Ctrl + B </code> και Πληκτρολογήστε <code>: ορίστε -g ποντίκι στο </code> και πατήστε <code> Πληκτρολογήστε a0088771d5a",
20672057
"CopyGuideOne": "Πατήστε το πλήκτρο <code> Ctrl + B </code> για είσοδο στη λειτουργία ελέγχου tmux.",
20682058
"CopyGuideThree": "Τώρα μπορείτε να αντιγράψετε κείμενο από το τερματικό.",
20692059
"CopyGuideTwo": "Πληκτρολογήστε <code>: set -g mouse off </code> και πατήστε <code> Enter </code> Key.",
@@ -2093,7 +2083,6 @@
20932083
"Cancel": "Ματαίωση",
20942084
"ChangePassword": "Άλλαξε κωδικό",
20952085
"Chat": "Συνομιλία",
2096-
"ClassicDashboardPage": "Κλασική σελίδα ταμπλό (σελίδα συνοπτικής)",
20972086
"ClickToDownload": "Κάντε κλικ για λήψη",
20982087
"ComputationResources": "Πόροι υπολογισμού",
20992088
"Configurations": "Διαμορφώσεις",

resources/i18n/en.json

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1593,7 +1593,6 @@
15931593
"PreOpenPortRangeGuide": "Enter multiple values separated by either a comma (,) or a space.",
15941594
"PreOpenPortTitle": "Preopen Ports",
15951595
"PrePortConfigWillDisappear": "Any unsaved preopen ports will disappear.",
1596-
"PreviousLauncher": "Classic",
15971596
"Project": "Project",
15981597
"ProxyConfiguratorNotResponding": "Proxy configurator is not responding.",
15991598
"ProxyDirectTCPNotSupported": "Proxy direct TCP connection is not supported yet",
@@ -1963,9 +1962,6 @@
19631962
"ValidationErrorTitle": "Input field validation errors"
19641963
}
19651964
},
1966-
"update": {
1967-
"NewWebUIVersionAvailable": "New version is available:"
1968-
},
19691965
"usagePanel": {
19701966
"CpuUsedTime": "CPU Used Time",
19711967
"DiskUsed": "Disk Usage",
@@ -1979,16 +1975,11 @@
19791975
"AIAgents": "AI Agents",
19801976
"AutoLogout": "Auto Logout",
19811977
"AutomaticUpdateCheck": "Automatic Update Check",
1982-
"BackToClassicFeatures": "Switch back to the Classic UI",
1983-
"BackToClassicFeaturesDesc": "You can choose the Classic UI instead of the latest NEO UI. Please note that some of the latest features may not be supported in the Classic UI.",
19841978
"BetaFeatures": "Beta Features",
19851979
"BootstrapScriptDeleted": "Bootstrap script deleted",
19861980
"BootstrapScriptDescription": "Bootstrap script will be executed only once after session creation",
19871981
"BootstrapScriptEmpty": "The script is empty. \nPlease enter the script.",
19881982
"BootstrapScriptUpdated": "Bootstrap script updated.",
1989-
"ClassicFeatures": "Classic features",
1990-
"ClassicFeaturesDesc": "Rolling back to a classic version can help you regain stability and functionality while you wait for updates or fixes to be released.",
1991-
"ClassicSessionList": "Classic Session list page",
19921983
"ClearSSHKeypairInput": "Written SSH Keypair will be removed. Are you sure you want to continue?",
19931984
"ConfigFilename": "Config file name",
19941985
"CurrentSSHPublicKey": "Current public key: ",
@@ -2074,7 +2065,6 @@
20742065
},
20752066
"webTerminalUsageGuide": {
20762067
"CopyGuide": "Advanced Web Terminal Usage: Copy terminal contents",
2077-
"CopyGuideFour": "To turn on mouse scroll again, Press <code>Ctrl + B</code> and Type <code>:set -g mouse on</code> and Press <code>Enter</code> key.",
20782068
"CopyGuideOne": "Press <code>Ctrl + B</code> key to enter tmux control mode.",
20792069
"CopyGuideThree": "Now you can copy text from the terminal.",
20802070
"CopyGuideTwo": "Type <code>:set -g mouse off</code> and Press <code>Enter</code> Key.",
@@ -2104,7 +2094,6 @@
21042094
"Cancel": "Cancel",
21052095
"ChangePassword": "Change Password",
21062096
"Chat": "Chat",
2107-
"ClassicDashboardPage": "Classic Dashboard Page (Summary Page)",
21082097
"ClickToDownload": "Click to download",
21092098
"ComputationResources": "Computation Resources",
21102099
"Configurations": "Configurations",

0 commit comments

Comments
 (0)