feat: admin - system info
This commit is contained in:
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!) {
|
||||||
|
36
server/graph/resolvers/system.js
Normal file
36
server/graph/resolvers/system.js
Normal file
@ -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…
Reference in New Issue
Block a user