feat: admin - system info

pull/621/head
NGPixel 7 years ago
parent 392cbe9388
commit 8462e18fc5

@ -7,7 +7,7 @@
v-layout.mt-3(row wrap) v-layout.mt-3(row wrap)
v-flex(lg6 xs12) v-flex(lg6 xs12)
v-card v-card
v-btn(fab, absolute, right, top, small, light): v-icon refresh v-btn(fab, absolute, right, top, small, light, @click='refresh'): v-icon refresh
v-list(two-line, dense) v-list(two-line, dense)
v-subheader Wiki.js v-subheader Wiki.js
v-list-tile(avatar) v-list-tile(avatar)
@ -15,13 +15,13 @@
v-icon.blue.white--text system_update_alt v-icon.blue.white--text system_update_alt
v-list-tile-content v-list-tile-content
v-list-tile-title Current Version v-list-tile-title Current Version
v-list-tile-sub-title 2.0.0 v-list-tile-sub-title {{ info.currentVersion }}
v-list-tile(avatar) v-list-tile(avatar)
v-list-tile-avatar v-list-tile-avatar
v-icon.blue.white--text open_in_browser v-icon.blue.white--text open_in_browser
v-list-tile-content v-list-tile-content
v-list-tile-title Latest Version v-list-tile-title Latest Version
v-list-tile-sub-title 2.0.0 v-list-tile-sub-title {{ info.latestVersion }}
v-list-tile-action v-list-tile-action
v-list-tile-action-text Published 4 days ago v-list-tile-action-text Published 4 days ago
@ -33,31 +33,31 @@
v-icon.blue-grey.white--text bubble_chart v-icon.blue-grey.white--text bubble_chart
v-list-tile-content v-list-tile-content
v-list-tile-title Operating System v-list-tile-title Operating System
v-list-tile-sub-title Linux (linux) 4.4.0-116-generic x64 v-list-tile-sub-title {{ info.operatingSystem }}
v-list-tile(avatar) v-list-tile(avatar)
v-list-tile-avatar v-list-tile-avatar
v-icon.blue-grey.white--text computer v-icon.blue-grey.white--text computer
v-list-tile-content v-list-tile-content
v-list-tile-title Hostname v-list-tile-title Hostname
v-list-tile-sub-title wikijs v-list-tile-sub-title {{ info.hostname }}
v-list-tile(avatar) v-list-tile(avatar)
v-list-tile-avatar v-list-tile-avatar
v-icon.blue-grey.white--text nfc v-icon.blue-grey.white--text nfc
v-list-tile-content v-list-tile-content
v-list-tile-title CPU Cores v-list-tile-title CPU Cores
v-list-tile-sub-title 8 v-list-tile-sub-title {{ info.cpuCores }}
v-list-tile(avatar) v-list-tile(avatar)
v-list-tile-avatar v-list-tile-avatar
v-icon.blue-grey.white--text memory v-icon.blue-grey.white--text memory
v-list-tile-content v-list-tile-content
v-list-tile-title Total RAM v-list-tile-title Total RAM
v-list-tile-sub-title 16.0 Gb v-list-tile-sub-title {{ info.ramTotal }}
v-list-tile(avatar) v-list-tile(avatar)
v-list-tile-avatar v-list-tile-avatar
v-icon.blue-grey.white--text last_page v-icon.blue-grey.white--text last_page
v-list-tile-content v-list-tile-content
v-list-tile-title Working Directory v-list-tile-title Working Directory
v-list-tile-sub-title /var/wiki v-list-tile-sub-title {{ info.workingDirectory }}
v-flex(lg6 xs12) v-flex(lg6 xs12)
v-card.pb-3 v-card.pb-3
@ -68,7 +68,7 @@
v-avatar.light-green(size='40') v-avatar.light-green(size='40')
icon-node-js(fillColor='#FFFFFF') icon-node-js(fillColor='#FFFFFF')
v-list-tile-content v-list-tile-content
v-list-tile-title 8.9.4 v-list-tile-title {{ info.nodeVersion }}
v-divider v-divider
@ -78,7 +78,10 @@
v-avatar.red(size='40') v-avatar.red(size='40')
icon-cube(fillColor='#FFFFFF') icon-cube(fillColor='#FFFFFF')
v-list-tile-content v-list-tile-content
v-list-tile-title 4.0.8 v-list-tile-title {{ info.redisVersion }}
v-list-tile-sub-title {{ info.redisHost }}
v-list-tile-action
v-list-tile-action-text RAM Usage: {{ info.redisUsedRAM }} / {{ info.redisTotalRAM }}
v-divider v-divider
@ -88,7 +91,16 @@
v-avatar.indigo.darken-1(size='40') v-avatar.indigo.darken-1(size='40')
icon-database(fillColor='#FFFFFF') icon-database(fillColor='#FFFFFF')
v-list-tile-content v-list-tile-content
v-list-tile-title 9.6.8 v-list-tile-title {{ info.postgreVersion }}
v-list-tile-sub-title {{ info.postgreHost }}
v-snackbar(
color='success'
top
v-model='refreshCompleted'
)
v-icon.mr-3(dark) cached
| System Info has been refreshed.
</template> </template>
@ -97,6 +109,8 @@ import IconCube from 'mdi/cube'
import IconDatabase from 'mdi/database' import IconDatabase from 'mdi/database'
import IconNodeJs from 'mdi/nodejs' import IconNodeJs from 'mdi/nodejs'
/* global CONSTANTS */
export default { export default {
components: { components: {
IconCube, IconCube,
@ -104,7 +118,22 @@ export default {
IconNodeJs IconNodeJs
}, },
data() { data() {
return {} return {
info: {},
refreshCompleted: false
}
},
apollo: {
info: {
query: CONSTANTS.GRAPH.SYSTEM.QUERY_INFO,
update: (data) => data.system.info
}
},
methods: {
async refresh() {
await this.$apollo.queries.info.refetch()
this.refreshCompleted = true
}
} }
} }
</script> </script>

@ -65,6 +65,31 @@ export default {
} }
` `
}, },
SYSTEM: {
QUERY_INFO: gql`
query {
system {
info {
currentVersion
latestVersion
latestVersionReleaseDate
operatingSystem
hostname
cpuCores
ramTotal
workingDirectory
nodeVersion
redisVersion
redisUsedRAM
redisTotalRAM
redisHost
postgreVersion
postgreHost
}
}
}
`
},
TRANSLATIONS: { TRANSLATIONS: {
QUERY_NAMESPACE: gql` QUERY_NAMESPACE: gql`
query($locale: String!, $namespace: String!) { query($locale: String!, $namespace: String!) {

@ -0,0 +1,36 @@
const _ = require('lodash')
const os = require('os')
const filesize = require('filesize')
/* global WIKI */
module.exports = {
Query: {
async system() { return {} }
},
Mutation: {
async system() { return {} }
},
SystemQuery: {
async info(obj, args, context, info) {
return {
currentVersion: WIKI.version,
latestVersion: WIKI.version, // TODO
latestVersionReleaseDate: new Date(), // TODO
operatingSystem: `${os.type()} (${os.platform()}) ${os.release()} ${os.arch()}`,
hostname: os.hostname(),
cpuCores: os.cpus().length,
ramTotal: filesize(os.totalmem()),
workingDirectory: process.cwd(),
nodeVersion: process.version.substr(1),
redisVersion: WIKI.redis.serverInfo.redis_version,
redisUsedRAM: WIKI.redis.serverInfo.used_memory_human,
redisTotalRAM: _.get(WIKI.redis.serverInfo, 'total_system_memory_human', 'N/A'),
redisHost: WIKI.redis.options.host,
postgreVersion: WIKI.db.inst.options.databaseVersion,
postgreHost: WIKI.db.inst.options.host
}
}
},
SystemMutation: { }
}

@ -37,9 +37,13 @@ type SystemInfo {
operatingSystem: String operatingSystem: String
hostname: String hostname: String
cpuCores: Int cpuCores: Int
ramTotal: Int ramTotal: String
workingDirectory: String workingDirectory: String
nodeVersion: String nodeVersion: String
redisVersion: String redisVersion: String
redisUsedRAM: String
redisTotalRAM: String
redisHost: String
postgreVersion: String postgreVersion: String
postgreHost: String
} }

@ -27,8 +27,7 @@ html
block head block head
link(href="/css/client.css?c473342a20546c545ebc" rel="stylesheet") script(type="text/javascript" src="/js/runtime.js")
script(type="text/javascript" src="/js/runtime.js?c473342a20546c545ebc") script(type="text/javascript" src="/js/client.js")
script(type="text/javascript" src="/js/client.js?c473342a20546c545ebc" async)
body body
block body block body

Loading…
Cancel
Save