diff --git a/dashboard/public/js/index.js b/dashboard/public/js/index.js index e26ee1f9f..9bfdb66ea 100644 --- a/dashboard/public/js/index.js +++ b/dashboard/public/js/index.js @@ -106,8 +106,8 @@ app.config(['$routeProvider', function ($routeProvider) { // controller: 'SupportController', // templateUrl: 'views/support.html?' + window.VITE_CACHE_ID }).when('/system', { - controller: 'SystemController', - templateUrl: 'views/system.html?' + window.VITE_CACHE_ID + // controller: 'SystemController', + // templateUrl: 'views/system.html?' + window.VITE_CACHE_ID }).when('/services', { // controller: 'ServicesController', // templateUrl: 'views/services.html?' + window.VITE_CACHE_ID diff --git a/dashboard/src/Index.vue b/dashboard/src/Index.vue index 5d7d53b33..7f7db14ac 100644 --- a/dashboard/src/Index.vue +++ b/dashboard/src/Index.vue @@ -13,6 +13,7 @@ import ProfileView from './views/ProfileView.vue'; import ServicesView from './views/ServicesView.vue'; import SettingsView from './views/SettingsView.vue'; import SupportView from './views/SupportView.vue'; +import SystemView from './views/SystemView.vue'; import UserDirectoryView from './views/UserDirectoryView.vue'; import UsersView from './views/UsersView.vue'; import VolumesView from './views/VolumesView.vue'; @@ -29,6 +30,7 @@ const VIEWS = { SERVICES: 'services', SETTINGS: 'settings', SUPPORT: 'support', + SYSTEM: 'system', USER_DIRECTORY: 'user-directory', USERS: 'users', VOLUMES: 'volumes', @@ -61,6 +63,8 @@ function onHashChange() { view.value = VIEWS.SETTINGS; } else if (v === VIEWS.SUPPORT) { view.value = VIEWS.SUPPORT; + } else if (v === VIEWS.SYSTEM) { + view.value = VIEWS.SYSTEM; } else if (v === VIEWS.USER_DIRECTORY) { view.value = VIEWS.USER_DIRECTORY; } else if (v === VIEWS.USERS) { @@ -102,6 +106,7 @@ onMounted(async () => { + diff --git a/dashboard/src/models/SystemModel.js b/dashboard/src/models/SystemModel.js index fff339ec7..a1800cd5a 100644 --- a/dashboard/src/models/SystemModel.js +++ b/dashboard/src/models/SystemModel.js @@ -26,7 +26,7 @@ function create() { } if (error || result.status !== 200) return [error || result]; - return [null, result.body]; + return [null, result.body.cpus]; }, async blockDevices() { let error, result; @@ -39,6 +39,28 @@ function create() { if (error || result.status !== 200) return [error || result]; return [null, result.body.devices]; }, + async info() { + let error, result; + try { + result = await fetcher.get(`${origin}/api/v1/system/info`, { access_token: accessToken }); + } catch (e) { + error = e; + } + + if (error || result.status !== 200) return [error || result]; + return [null, result.body.info]; + }, + async reboot() { + let error, result; + try { + result = await fetcher.post(`${origin}/api/v1/system/reboot`, {}, { access_token: accessToken }); + } catch (e) { + error = e; + } + + if (error || result.status !== 202) return [error || result]; + return [null]; + }, }; } diff --git a/dashboard/src/views/SystemView.vue b/dashboard/src/views/SystemView.vue new file mode 100644 index 000000000..7461ce034 --- /dev/null +++ b/dashboard/src/views/SystemView.vue @@ -0,0 +1,81 @@ + + +