Skip to content

Commit 4f287da

Browse files
committed
feat(FR-873): set dashboard page as a default (#3554)
Resolves #3546 ([FR-873](https://lablup.atlassian.net/browse/FR-873)) ## Rename `experimental_dashboard` to `classic_dashboard_page` with inverted logic This PR renames the user setting `experimental_dashboard` to `classic_dashboard_page` and inverts its logic. The dashboard page is now the default view, and users can opt to use the classic summary page instead. The change affects: - Router configuration in App.tsx - WebUISider menu item display logic - User settings definition and UI controls - All language translation files with updated descriptions This change better reflects that the dashboard is now the standard view rather than an experimental feature, while still allowing users to switch back to the classic summary page if preferred. ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/2HueYSdFvL8pOB5mgrUQ/83d03b46-701d-484f-97e4-73da95fe446c.png) **Checklist:** - [x] Documentation - [ ] Minium required manager version - [ ] Specific setting for review (eg., KB link, endpoint or how to setup) - [ ] Minimum requirements to check during review - [ ] Test case(s) to demonstrate the difference of before/after [FR-873]: https://lablup.atlassian.net/browse/FR-873?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
1 parent 11f7d5a commit 4f287da

File tree

25 files changed

+93
-48
lines changed

25 files changed

+93
-48
lines changed

react/src/App.tsx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,10 @@ const router = createBrowserRouter([
170170
path: '/summary',
171171
Component: () => {
172172
const location = useLocation();
173-
const [experimentalDashboard] = useBAISettingUserState(
174-
'experimental_dashboard',
173+
const [isClassicDashboardPage] = useBAISettingUserState(
174+
'classic_dashboard_page',
175175
);
176-
return experimentalDashboard ? (
176+
return !isClassicDashboardPage ? (
177177
<WebUINavigate to={'/dashboard' + location.search} replace />
178178
) : null;
179179
},
@@ -184,13 +184,15 @@ const router = createBrowserRouter([
184184
handle: { labelKey: 'webui.menu.Dashboard' },
185185
Component: () => {
186186
const location = useLocation();
187-
const [experimentalDashboard] = useBAISettingUserState(
188-
'experimental_dashboard',
187+
const [isClassicDashboardPage] = useBAISettingUserState(
188+
'classic_dashboard_page',
189189
);
190-
return experimentalDashboard ? (
191-
<Suspense fallback={<Skeleton active />}>
192-
<DashboardPage />
193-
</Suspense>
190+
return !isClassicDashboardPage ? (
191+
<BAIErrorBoundary>
192+
<Suspense fallback={<Skeleton active />}>
193+
<DashboardPage />
194+
</Suspense>
195+
</BAIErrorBoundary>
194196
) : (
195197
<WebUINavigate to={'/summary' + location.search} replace />
196198
);

react/src/components/MainLayout/WebUISider.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ const WebUISider: React.FC<WebUISiderProps> = (props) => {
152152
const [experimentalAIAgents] = useBAISettingUserState(
153153
'experimental_ai_agents',
154154
);
155-
const [experimentalDashboard] = useBAISettingUserState(
156-
'experimental_dashboard',
155+
const [isClassicDashboardPage] = useBAISettingUserState(
156+
'classic_dashboard_page',
157157
);
158158
const generalMenu = filterOutEmpty<WebUIGeneralMenuItemType>([
159159
{
@@ -162,13 +162,13 @@ const WebUISider: React.FC<WebUISiderProps> = (props) => {
162162
key: 'start',
163163
group: 'none',
164164
},
165-
experimentalDashboard && {
165+
!isClassicDashboardPage && {
166166
label: <WebUILink to="/dashboard">{t('webui.menu.Dashboard')}</WebUILink>,
167167
icon: <DashboardOutlined style={{ color: token.colorPrimary }} />,
168168
key: 'dashboard',
169169
group: 'none',
170170
},
171-
!experimentalDashboard && {
171+
isClassicDashboardPage && {
172172
label: <WebUILink to="/summary">{t('webui.menu.Summary')}</WebUILink>,
173173
icon: <DashboardOutlined style={{ color: token.colorPrimary }} />,
174174
key: 'summary',

react/src/hooks/useBAISetting.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ interface UserSettings {
1616
endpoints?: Array<string>;
1717
auto_logout?: boolean;
1818
selected_language?: string;
19+
classic_dashboard_page?: boolean;
1920
recentSessionHistory?: Array<SessionHistory>;
2021
pinnedSessionHistory?: Array<SessionHistory>;
2122
start_board_items?: Array<Omit<BAIBoardItem, 'data'>>;

react/src/pages/UserSettingsPage.tsx

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ const UserPreferencesPage = () => {
5252
);
5353
const [experimentalAIAgents, setExperimentalAIAgents] =
5454
useBAISettingUserState('experimental_ai_agents');
55-
const [experimentalDashboard, setExperimentalDashboard] =
56-
useBAISettingUserState('experimental_dashboard');
55+
const [isClassicDashboardPage, setIsClassicDashboardPage] =
56+
useBAISettingUserState('classic_dashboard_page');
5757
const [shellInfo, setShellInfo] = useState<ShellScriptType>('bootstrap');
5858
const [isOpenShellScriptEditModal, { toggle: toggleShellScriptEditModal }] =
5959
useToggle(false);
@@ -306,6 +306,18 @@ const UserPreferencesPage = () => {
306306
setClassicSessionList(e.target.checked);
307307
},
308308
},
309+
{
310+
'data-testid': 'items-classic-dashboard',
311+
type: 'checkbox',
312+
title: t('webui.menu.ClassicDashboardPage'),
313+
description: t('general.Enabled'),
314+
defaultValue: false,
315+
value: isClassicDashboardPage,
316+
setValue: setIsClassicDashboardPage,
317+
onChange: (e) => {
318+
setIsClassicDashboardPage(e.target.checked);
319+
},
320+
},
309321
],
310322
},
311323
{
@@ -325,18 +337,6 @@ const UserPreferencesPage = () => {
325337
setExperimentalAIAgents(e.target.checked);
326338
},
327339
},
328-
{
329-
'data-testid': 'items-experimental-dashboard',
330-
type: 'checkbox',
331-
title: t('webui.menu.Dashboard'),
332-
description: t('userSettings.DescExperimentalDashboard'),
333-
defaultValue: false,
334-
value: experimentalDashboard,
335-
setValue: setExperimentalDashboard,
336-
onChange: (e) => {
337-
setExperimentalDashboard(e.target.checked);
338-
},
339-
},
340340
],
341341
},
342342
];

resources/i18n/de.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1926,6 +1926,8 @@
19261926
"BootstrapScriptDescription": "Das Bootstrap-Skript wird nur einmal nach der Erstellung der Sitzung ausgeführt",
19271927
"BootstrapScriptEmpty": "Das Skript ist leer. \nBitte geben Sie das Skript ein.",
19281928
"BootstrapScriptUpdated": "Bootstrap-Skript aktualisiert.",
1929+
"ClassicFeatures": "Klassische Funktionen",
1930+
"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.",
19291931
"ClassicSessionList": "Klassische Sitzungsliste Seite",
19301932
"ClearSSHKeypairInput": "Geschriebenes SSH-Schlüsselpaar wird entfernt. Sind Sie sicher, dass Sie fortfahren möchten?",
19311933
"ConfigFilename": "Name der Konfigurationsdatei",
@@ -1935,7 +1937,6 @@
19351937
"DescAutoLogout": "Melden Sie sich automatisch ab, wenn alle angemeldeten Seiten geschlossen sind, mit Ausnahme von sitzungsbasierten Seiten für Apps (z. B. Jupyter Notebook, Webterminal usw.)",
19361938
"DescAutomaticUpdateCheck": "Benachrichtigen, wenn eine neue WebUI-Version veröffentlicht wird.<br />Wenn die Funktion automatisch deaktiviert wird, wird durch erneutes Klicken auf den Schalter die Updateprüfung fortgesetzt.",
19371939
"DescBetaFeatures": "Verwenden Sie Betafunktionen für die Web-Benutzeroberfläche. <br /> Beta-Funktionen können instabil sein. Einige Betafunktionen werden möglicherweise nicht als offizielle Funktionen übernommen.",
1938-
"DescClassicSessionLauncher": "Verwenden Sie den Classic-Sitzungsstarter anstelle des NEO-Sitzungsstarters. \nDer Classic Sitzungsstarter verfügt möglicherweise nicht über die neuesten Funktionen.",
19391940
"DescDesktopNotification": "Aktiviert Desktop-Benachrichtigungen. <br />Wenn eingeschaltet, verwendet Backend.AI auch das Benachrichtigungssystem des Betriebssystems. Das Ausschalten dieser Option wirkt sich nicht auf Benachrichtigungen in der Web-UI aus. Je nach Betriebssystem müssen Benachrichtigungsberechtigungen möglicherweise in den Systemeinstellungen aktiviert werden.",
19401941
"DescExperimentalDashboard": "Verwenden Sie die Dashboard -Seite anstelle einer zusammenfassenden Seite.",
19411942
"DescKeepLoginSessionInformation": "Lassen Sie die Webui-App beim nächsten Mal die aktuellen Anmeldesitzungsinformationen beibehalten. <br /> Wenn die Option deaktiviert ist, werden die Anmeldeinformationen bei jeder Abmeldung gelöscht.",
@@ -2019,6 +2020,7 @@
20192020
"Cancel": "Stornieren",
20202021
"ChangePassword": "Kennwort ändern",
20212022
"Chat": "Chat",
2023+
"ClassicDashboardPage": "Klassische Dashboard -Seite (Zusammenfassung Seite)",
20222024
"ClickToDownload": "Klicken Sie hier, um herunterzuladen",
20232025
"ComputationResources": "Rechenressourcen",
20242026
"Configurations": "Konfigurationen",

resources/i18n/el.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1925,6 +1925,8 @@
19251925
"BootstrapScriptDescription": "Το σενάριο Bootstrap θα εκτελεστεί μόνο μία φορά μετά τη δημιουργία συνεδρίας",
19261926
"BootstrapScriptEmpty": "Το σενάριο είναι κενό. \nΕισαγάγετε το σενάριο.",
19271927
"BootstrapScriptUpdated": "Το σενάριο Bootstrap ενημερώθηκε.",
1928+
"ClassicFeatures": "Κλασικά χαρακτηριστικά",
1929+
"ClassicFeaturesDesc": "Η κύλιση πίσω σε μια κλασική έκδοση μπορεί να σας βοηθήσει να ανακτήσετε τη σταθερότητα και τη λειτουργικότητα ενώ περιμένετε να κυκλοφορήσουν ενημερώσεις ή διορθώσεις.",
19281930
"ClassicSessionList": "Κλασική σελίδα λίστας συνεδριών",
19291931
"ClearSSHKeypairInput": "Το γραπτό πληκτρολόγιο SSH θα αφαιρεθεί. Εισαι σιγουρος οτι θελεις να συνεχισεις?",
19301932
"ConfigFilename": "Διαμόρφωση ονόματος αρχείου",
@@ -1934,7 +1936,6 @@
19341936
"DescAutoLogout": "Αποσυνδεθείτε αυτόματα εάν όλες οι συνδεδεμένες σελίδες είναι κλειστές εκτός από τις σελίδες που προέρχονται από περίοδο σύνδεσης για εφαρμογές (π.χ. jupyter notebook, web terminal κ.λπ.)",
19351937
"DescAutomaticUpdateCheck": "Ειδοποίηση όταν κυκλοφορεί μια νέα έκδοση webui.<br />Εάν η λειτουργία απενεργοποιηθεί αυτόματα, το κλικ στον διακόπτη ξανά θα συνεχίσει τους ελέγχους ενημέρωσης.",
19361938
"DescBetaFeatures": "Χρησιμοποιήστε λειτουργίες beta για διεπαφή χρήστη Ιστού. <br /> Οι λειτουργίες beta ενδέχεται να είναι ασταθείς. Ορισμένες λειτουργίες beta ενδέχεται να μην υιοθετηθούν ως επίσημη λειτουργία.",
1937-
"DescClassicSessionLauncher": "Χρησιμοποιήστε το πρόγραμμα εκκίνησης συνεδρίας Classic αντί για το πρόγραμμα εκκίνησης συνεδρίας NEO. \nΤο πρόγραμμα εκκίνησης περιόδου λειτουργίας Classic ενδέχεται να μην έχει τις πιο πρόσφατες δυνατότητες.",
19381939
"DescDesktopNotification": "Ενεργοποιεί τις ειδοποιήσεις επιφάνειας εργασίας. <br />Όταν ενεργοποιηθεί, το Backend.AI χρησιμοποιεί επίσης το σύστημα ειδοποιήσεων του λειτουργικού συστήματος. Η απενεργοποίηση αυτού δεν επηρεάζει τις ειδοποιήσεις εντός του web UI. Ανάλογα με το λειτουργικό σύστημα, οι άδειες ειδοποιήσεων ενδέχεται να χρειάζονται ενεργοποίηση στις ρυθμίσεις συστήματος.",
19391940
"DescExperimentalDashboard": "Χρησιμοποιήστε τη σελίδα ταμπλό αντί για συνοπτική σελίδα.",
19401941
"DescKeepLoginSessionInformation": "Αφήστε την εφαρμογή webui να διατηρήσει τις τρέχουσες πληροφορίες σύνδεσης κατά την επόμενη φορά. <br /> Εάν η επιλογή είναι απενεργοποιημένη, οι πληροφορίες σύνδεσης θα εκκαθαρίζονται σε κάθε αποσύνδεση.",
@@ -2017,6 +2018,7 @@
20172018
"Cancel": "Ματαίωση",
20182019
"ChangePassword": "Άλλαξε κωδικό",
20192020
"Chat": "Συνομιλία",
2021+
"ClassicDashboardPage": "Κλασική σελίδα ταμπλό (σελίδα συνοπτικής)",
20202022
"ClickToDownload": "Κάντε κλικ για λήψη",
20212023
"ComputationResources": "Πόροι υπολογισμού",
20222024
"Configurations": "Διαμορφώσεις",

resources/i18n/en.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1936,6 +1936,8 @@
19361936
"BootstrapScriptDescription": "Bootstrap script will be executed only once after session creation",
19371937
"BootstrapScriptEmpty": "The script is empty. \nPlease enter the script.",
19381938
"BootstrapScriptUpdated": "Bootstrap script updated.",
1939+
"ClassicFeatures": "Classic features",
1940+
"ClassicFeaturesDesc": "Rolling back to a classic version can help you regain stability and functionality while you wait for updates or fixes to be released.",
19391941
"ClassicSessionList": "Classic Session list page",
19401942
"ClearSSHKeypairInput": "Written SSH Keypair will be removed. Are you sure you want to continue?",
19411943
"ConfigFilename": "Config file name",
@@ -1945,7 +1947,6 @@
19451947
"DescAutoLogout": "Log out automatically if all logined pages are closed except session originated pages for apps(e.g. jupyter notebook, web terminal, etc.)",
19461948
"DescAutomaticUpdateCheck": "Notify when a new webui version is released.<br />If the feature is automatically disabled, clicking the toggle again will resume update checks.",
19471949
"DescBetaFeatures": "Use beta features for Web UI.<br />Beta features may be unstable. Some beta features may not be adopted as official feature.",
1948-
"DescClassicSessionLauncher": "Use the Classic session launcher instead of the NEO session launcher. Classic session launcher may not have the latest features.",
19491950
"DescDesktopNotification": "Enables desktop notifications. <br />When turned on, Backend.AI also uses the operating system’s notification system. Turning this off does not affect notifications within the web UI. Depending on the operating system, notification permissions may need to be enabled in system settings.",
19501951
"DescExperimentalDashboard": "Use Dashboard page instead of Summary page.",
19511952
"DescKeepLoginSessionInformation": "Let webui app keep current login session information next time.<br />If the option is turned off, login information will be cleared each logout.",
@@ -2029,6 +2030,7 @@
20292030
"Cancel": "Cancel",
20302031
"ChangePassword": "Change Password",
20312032
"Chat": "Chat",
2033+
"ClassicDashboardPage": "Classic Dashboard Page (Summary Page)",
20322034
"ClickToDownload": "Click to download",
20332035
"ComputationResources": "Computation Resources",
20342036
"Configurations": "Configurations",

resources/i18n/es.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1928,6 +1928,8 @@
19281928
"BootstrapScriptDescription": "El script Bootstrap se ejecutará sólo una vez tras la creación de la sesión",
19291929
"BootstrapScriptEmpty": "El guión está vacío. \nPor favor ingrese el guión.",
19301930
"BootstrapScriptUpdated": "Script Bootstrap actualizado.",
1931+
"ClassicFeatures": "Características clásicas",
1932+
"ClassicFeaturesDesc": "Regresar a una versión clásica puede ayudarlo a recuperar la estabilidad y la funcionalidad mientras espera que sean actualizaciones o correcciones.",
19311933
"ClassicSessionList": "Página de lista de sesiones clásicas",
19321934
"ClearSSHKeypairInput": "Se eliminará el par de claves SSH escrito. ¿Está seguro de que desea continuar?",
19331935
"ConfigFilename": "Nombre del archivo de configuración",
@@ -1937,7 +1939,6 @@
19371939
"DescAutoLogout": "Cierre de sesión automático si se cierran todas las páginas de inicio de sesión, excepto las páginas de inicio de sesión para aplicaciones (p. ej., cuaderno jupyter, terminal web, etc.).",
19381940
"DescAutomaticUpdateCheck": "Notificar cuando se publique una nueva versión de webui.<br />En los casos en que Internet sea inestable o esté desconectado, esta opción se desactivará automáticamente. Puede activar este interruptor para iniciar la comprobación de actualización automática de nuevo.",
19391941
"DescBetaFeatures": "Utilice las funciones beta para la interfaz de usuario web.<br />Las funciones beta pueden ser inestables. Es posible que algunas funciones beta no se adopten como funciones oficiales.",
1940-
"DescClassicSessionLauncher": "Utilice el iniciador de sesiones Classic en lugar del iniciador de sesiones NEO. \nEs posible que el iniciador de sesiones Classic no tenga las funciones más recientes.",
19411942
"DescDesktopNotification": "Habilita la notificación de escritorio. \n<br /> Si está activado, Backend.Ai usa el sistema de notificación integrado del sistema operativo también. \nDesactivar esta opción no afecta las notificaciones dentro de la interfaz de usuario web. \nDependiendo del sistema operativo, las notificaciones de escritorio pueden requerir habilitar los permisos de notificación en la configuración del sistema.",
19421943
"DescExperimentalDashboard": "Use la página del tablero en lugar de la página de resumen.",
19431944
"DescKeepLoginSessionInformation": "Permite que la aplicación webui conserve la información de la sesión de inicio de sesión actual la próxima vez.<br />Si la opción está desactivada, la información de inicio de sesión se borrará cada vez que se cierre la sesión.",
@@ -2021,6 +2022,7 @@
20212022
"Cancel": "Cancelar",
20222023
"ChangePassword": "Cambiar contraseña",
20232024
"Chat": "Chat",
2025+
"ClassicDashboardPage": "Página clásica del tablero (página de resumen)",
20242026
"ClickToDownload": "Haga clic para descargar",
20252027
"ComputationResources": "Recursos informáticos",
20262028
"Configurations": "Configuraciones",

resources/i18n/fi.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1927,6 +1927,8 @@
19271927
"BootstrapScriptDescription": "Bootstrap-skripti suoritetaan vain kerran istunnon luomisen jälkeen.",
19281928
"BootstrapScriptEmpty": "Käsikirjoitus on tyhjä. \nAnna käsikirjoitus.",
19291929
"BootstrapScriptUpdated": "Bootstrap-skripti päivitetty.",
1930+
"ClassicFeatures": "Klassiset ominaisuudet",
1931+
"ClassicFeaturesDesc": "Klassiseen versioon palaaminen voi auttaa sinua palauttamaan vakauden ja toiminnallisuuden odottaessasi päivitysten tai korjausten julkaisua.",
19301932
"ClassicSessionList": "Klassinen istuntoluettelosivu",
19311933
"ClearSSHKeypairInput": "Kirjoitettu SSH-avainpari poistetaan. Haluatko varmasti jatkaa?",
19321934
"ConfigFilename": "Konfigurointitiedoston nimi",
@@ -1936,7 +1938,6 @@
19361938
"DescAutoLogout": "Kirjaudu ulos automaattisesti, jos kaikki kirjautuneet sivut suljetaan, lukuun ottamatta sovellusten (esim. jupyter notebook, verkkopääte jne.) istunnon luomia sivuja.",
19371939
"DescAutomaticUpdateCheck": "Ilmoita kun uusi webui-versio julkaistaan.<br />Jos ominaisuus poistetaan automaattisesti käytöstä, kytkimen uudelleen klikkaaminen jatkaa päivitystarkistuksia.",
19381940
"DescBetaFeatures": "Käytä web-käyttöliittymän beta-ominaisuuksia.<br />Beta-ominaisuudet voivat olla epävakaita. Joitakin beta-ominaisuuksia ei ehkä hyväksytä viralliseksi ominaisuudeksi.",
1939-
"DescClassicSessionLauncher": "Käytä Classic-istunnonkäynnistysohjelmaa NEO-istunnonkäynnistimen sijaan. \nClassic istunnonkäynnistysohjelmassa ei välttämättä ole uusimpia ominaisuuksia.",
19401941
"DescDesktopNotification": "Ottaa käyttöön työpöytäilmoitukset. <br />Kun päällä, Backend.AI käyttää myös käyttöjärjestelmän ilmoitusjärjestelmää. Tämän sammuttaminen ei vaikuta web-käyttöliittymän sisäisiin ilmoituksiin. Käyttöjärjestelmästä riippuen ilmoitusoikeudet saattaa tarvita ottaa käyttöön järjestelmäasetuksissa.",
19411942
"DescExperimentalDashboard": "Käytä kojelaudan sivua yhteenvetosivun sijasta.",
19421943
"DescKeepLoginSessionInformation": "Anna webui-sovelluksen säilyttää nykyisen kirjautumisistunnon tiedot seuraavalla kerralla.<br />Jos vaihtoehto on pois päältä, kirjautumistiedot tyhjennetään jokaisen uloskirjautumisen yhteydessä.",
@@ -2020,6 +2021,7 @@
20202021
"Cancel": "Peruuta",
20212022
"ChangePassword": "Vaihda salasana",
20222023
"Chat": "Chat",
2024+
"ClassicDashboardPage": "Klassinen kojelaudan sivu (yhteenvetosivu)",
20232025
"ClickToDownload": "Napsauta ladataksesi",
20242026
"ComputationResources": "Laskentaresurssit",
20252027
"Configurations": "Kokoonpanot",

0 commit comments

Comments
 (0)