Bladeren bron

feat: Host Information on System Info page

NGPixel 8 jaren geleden
bovenliggende
commit
3752e95b92

+ 1 - 1
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

+ 13 - 2
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 } })
     })
   })
 })

+ 12 - 5
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",

+ 26 - 17
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