diff --git a/client/js/components/modal-upgrade-system.vue b/client/js/components/modal-upgrade-system.vue index 4607a242..24859a4f 100644 --- a/client/js/components/modal-upgrade-system.vue +++ b/client/js/components/modal-upgrade-system.vue @@ -56,7 +56,7 @@ export default { }, upgradeStart() { this.$store.commit('modalUpgradeSystem/stepChange', 'running') - this.$http.post('/admin/settings/install', { + this.$http.post('/admin/system/install', { mode: this.mode }).then(resp => { // todo diff --git a/server/controllers/admin.js b/server/controllers/admin.js index b6f79ac6..bc7554e0 100644 --- a/server/controllers/admin.js +++ b/server/controllers/admin.js @@ -10,6 +10,8 @@ const _ = require('lodash') const axios = require('axios') const path = require('path') const fs = Promise.promisifyAll(require('fs-extra')) +const os = require('os') +const filesize = require('filesize.js') /** * Admin @@ -238,6 +240,15 @@ router.get('/system', (req, res) => { return res.render('error-forbidden') } + let hostInfo = { + cpus: os.cpus(), + hostname: os.hostname(), + nodeversion: process.version, + os: `${os.type()} (${os.platform()}) ${os.release()} ${os.arch()}`, + totalmem: filesize(os.totalmem()), + cwd: process.cwd() + } + fs.readJsonAsync(path.join(ROOTPATH, 'package.json')).then(packageObj => { axios.get('https://api.github.com/repos/Requarks/wiki/releases/latest').then(resp => { let sysversion = { @@ -246,10 +257,10 @@ router.get('/system', (req, res) => { latestPublishedAt: resp.data.published_at } - res.render('pages/admin/system', { adminTab: 'system', sysversion }) + res.render('pages/admin/system', { adminTab: 'system', hostInfo, sysversion }) }).catch(err => { winston.warn(err) - res.render('pages/admin/system', { adminTab: 'system', sysversion: { current: 'v' + packageObj.version } }) + res.render('pages/admin/system', { adminTab: 'system', hostInfo, sysversion: { current: 'v' + packageObj.version } }) }) }) }) diff --git a/server/locales/en/admin.json b/server/locales/en/admin.json index 1df4ed38..cc1e73c0 100644 --- a/server/locales/en/admin.json +++ b/server/locales/en/admin.json @@ -23,7 +23,10 @@ "users": "Users" }, "settings": { - "subtitle": "Manage site configuration", + "subtitle": "Manage site configuration" + }, + "system": { + "subtitle": "Information and utilities for your wiki", "systemversion": "System Version", "currentversion": "Current Version", "latestversion": "Latest Version", @@ -39,10 +42,14 @@ "resetaccountsbtn": "Reset System Accounts", "flushsessions": "Flush all active user sessions", "flushsessionstext": "All users will be logged out and forced to login again. Your current session will also be affected!", - "flushsessionsbtn": "Flush Sessions" - }, - "system": { - "subtitle": "Information and utilities for your wiki" + "flushsessionsbtn": "Flush Sessions", + "hostinfo": "Host Information", + "os": "Operating System", + "nodeversion": "Node.js Version", + "hostname": "Hostname", + "cores": "CPU Cores", + "totalmem": "Total Memory", + "cwd": "Working Directory" }, "theme": { "subtitle": "Change the look and feel of your wiki", diff --git a/server/views/pages/admin/system.pug b/server/views/pages/admin/system.pug index fe30712f..0972db0b 100644 --- a/server/views/pages/admin/system.pug +++ b/server/views/pages/admin/system.pug @@ -9,30 +9,39 @@ block adminContent .form-sections section img(src='/images/logo.png', style={width:'200px', float:'right'}) - label.label= t('admin:settings.systemversion') + label.label= t('admin:system.systemversion') .section-block - p #{t('admin:settings.currentversion')}: #[strong= sysversion.current] + p #{t('admin:system.currentversion')}: #[strong= sysversion.current] if sysversion.latest - p #{t('admin:settings.latestversion')}: #[strong= sysversion.latest] #[em (Published #{moment(sysversion.latestPublishedAt).fromNow()})] + p #{t('admin:system.latestversion')}: #[strong= sysversion.latest] #[em (Published #{moment(sysversion.latestPublishedAt).fromNow()})] p if sysversion.current !== sysversion.latest - button.button.is-deep-orange(@click='$store.dispatch("modalUpgradeSystem/open", { mode: "upgrade"})')= t('admin:settings.upgrade') + button.button.is-deep-orange(@click='$store.dispatch("modalUpgradeSystem/open", { mode: "upgrade"})')= t('admin:system.upgrade') else - button.button.is-disabled= t('admin:settings.upgrade') - button.button.is-deep-orange.is-outlined(@click='$store.dispatch("modalUpgradeSystem/open", { mode: "reinstall"})')= t('admin:settings.reinstall') + button.button.is-disabled= t('admin:system.upgrade') + button.button.is-deep-orange.is-outlined(@click='$store.dispatch("modalUpgradeSystem/open", { mode: "reinstall"})')= t('admin:system.reinstall') else - p: em= t('admin:settings.versioncheckfailed') + p: em= t('admin:system.versioncheckfailed') section - label.label= t('admin:settings.administrativetools') + label.label= t('admin:system.hostinfo') .section-block - h6 #{t('admin:settings.flushcache')}: - p.is-small= t('admin:settings.flushcachetext') - p: button.button.is-teal.is-outlined(v-on:click='flushcache')= t('admin:settings.flushcachebtn') - h6 #{t('admin:settings.resetaccounts')}: - p.is-small= t('admin:settings.resetaccountstext') - p: button.button.is-teal.is-outlined(v-on:click='resetaccounts')= t('admin:settings.resetaccountsbtn') - h6 #{t('admin:settings.flushsessions')}: - p.is-small= t('admin:settings.flushsessionstext') - p: button.button.is-teal.is-outlined(v-on:click='flushsessions')= t('admin:settings.flushsessionsbtn') + p #{t('admin:system.os')}: #[strong= hostInfo.os] + p #{t('admin:system.nodeversion')}: #[strong= hostInfo.nodeversion] + p #{t('admin:system.hostname')}: #[strong= hostInfo.hostname] + p #{t('admin:system.cores')}: #[strong= hostInfo.cpus.length] + p #{t('admin:system.totalmem')}: #[strong= hostInfo.totalmem] + p #{t('admin:system.cwd')}: #[strong= hostInfo.cwd] + section + label.label= t('admin:system.administrativetools') + .section-block + h6 #{t('admin:system.flushcache')}: + p.is-small= t('admin:system.flushcachetext') + p: button.button.is-teal.is-outlined(v-on:click='flushcache')= t('admin:system.flushcachebtn') + h6 #{t('admin:system.resetaccounts')}: + p.is-small= t('admin:system.resetaccountstext') + p: button.button.is-teal.is-outlined(v-on:click='resetaccounts')= t('admin:system.resetaccountsbtn') + h6 #{t('admin:system.flushsessions')}: + p.is-small= t('admin:system.flushsessionstext') + p: button.button.is-teal.is-outlined(v-on:click='flushsessions')= t('admin:system.flushsessionsbtn') modal-upgrade-system