feat: dev flags
This commit is contained in:
parent
bf505e6901
commit
2141366335
@ -80,13 +80,12 @@
|
||||
v-list-tile-avatar: v-icon(color='grey lighten-2') build
|
||||
v-list-tile-title {{ $t('admin:utilities.title') }}
|
||||
v-list-group(
|
||||
prepend-icon='weekend'
|
||||
value='true'
|
||||
to='/dev'
|
||||
no-action
|
||||
v-if='hasPermission([`manage:system`, `manage:api`])'
|
||||
)
|
||||
v-list-tile(slot='activator')
|
||||
v-list-tile-avatar: v-icon weekend
|
||||
v-list-tile-title {{ $t('admin:dev.title') }}
|
||||
|
||||
v-list-tile(to='/dev-flags')
|
||||
|
@ -133,7 +133,7 @@
|
||||
v-icon(color='grey') public
|
||||
v-divider
|
||||
v-list-tile
|
||||
v-list-tile-avatar
|
||||
v-list-tile-avatar(tile)
|
||||
img(src='/svg/logo-icons8.svg', alt='Icons8')
|
||||
v-list-tile-content
|
||||
v-list-tile-title Icons8
|
||||
@ -141,6 +141,16 @@
|
||||
v-list-tile-action
|
||||
v-btn(icon, href='https://icons8.com', target='_blank')
|
||||
v-icon(color='grey') public
|
||||
v-divider
|
||||
v-list-tile
|
||||
v-list-tile-avatar(tile)
|
||||
img(src='https://static.requarks.io/logo/lokalise.png', alt='Lokalise')
|
||||
v-list-tile-content
|
||||
v-list-tile-title Lokalise
|
||||
v-list-tile-sub-title Lokalise is a translation management system built for agile teams who want to automate their localization process.
|
||||
v-list-tile-action
|
||||
v-btn(icon, href='https://lokalise.co', target='_blank')
|
||||
v-icon(color='grey') public
|
||||
|
||||
</template>
|
||||
|
||||
|
@ -38,6 +38,9 @@
|
||||
<script>
|
||||
import _ from 'lodash'
|
||||
|
||||
import flagsQuery from 'gql/admin/dev/dev-query-flags.gql'
|
||||
import flagsMutation from 'gql/admin/dev/dev-mutation-save-flags.gql'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@ -47,8 +50,39 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
save() {
|
||||
|
||||
async save() {
|
||||
try {
|
||||
await this.$apollo.mutate({
|
||||
mutation: flagsMutation,
|
||||
variables: {
|
||||
flags: _.transform(this.flags, (result, value, key) => {
|
||||
result.push({ key, value })
|
||||
}, [])
|
||||
},
|
||||
watchLoading (isLoading) {
|
||||
this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-dev-flags-update')
|
||||
}
|
||||
})
|
||||
this.$store.commit('showNotification', {
|
||||
style: 'success',
|
||||
message: 'Flags applied successfully.',
|
||||
icon: 'check'
|
||||
})
|
||||
} catch (err) {
|
||||
this.$store.commit('pushGraphError', err)
|
||||
}
|
||||
}
|
||||
},
|
||||
apollo: {
|
||||
flags: {
|
||||
query: flagsQuery,
|
||||
fetchPolicy: 'network-only',
|
||||
update: (data) => _.transform(data.system.flags, (result, row) => {
|
||||
_.set(result, row.key, row.value)
|
||||
}, {}),
|
||||
watchLoading (isLoading) {
|
||||
this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-dev-flags-refresh')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
16
client/graph/admin/dev/dev-mutation-save-flags.gql
Normal file
16
client/graph/admin/dev/dev-mutation-save-flags.gql
Normal file
@ -0,0 +1,16 @@
|
||||
mutation (
|
||||
$flags: [SystemFlagInput]!
|
||||
) {
|
||||
system {
|
||||
updateFlags(
|
||||
flags: $flags
|
||||
) {
|
||||
responseResult {
|
||||
succeeded
|
||||
errorCode
|
||||
slug
|
||||
message
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
8
client/graph/admin/dev/dev-query-flags.gql
Normal file
8
client/graph/admin/dev/dev-query-flags.gql
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
system {
|
||||
flags {
|
||||
key
|
||||
value
|
||||
}
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
port: $(PORT)
|
||||
port: 3000
|
||||
bindIP: 0.0.0.0
|
||||
db:
|
||||
type: $(DB_TYPE)
|
||||
|
@ -33,6 +33,8 @@ defaults:
|
||||
theming:
|
||||
theme: 'default'
|
||||
darkMode: false
|
||||
flags:
|
||||
sqllog: false
|
||||
# System defaults
|
||||
setup: false
|
||||
paths:
|
||||
|
@ -96,5 +96,11 @@ module.exports = {
|
||||
}
|
||||
|
||||
return true
|
||||
},
|
||||
/**
|
||||
* Apply Dev Flags
|
||||
*/
|
||||
async applyFlags() {
|
||||
WIKI.models.knex.client.config.debug = WIKI.config.flags.sqllog
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,7 @@ module.exports = {
|
||||
try {
|
||||
await WIKI.models.onReady
|
||||
await WIKI.configSvc.loadFromDb()
|
||||
await WIKI.configSvc.applyFlags()
|
||||
} catch (err) {
|
||||
WIKI.logger.error('Database Initialization Error: ' + err.message)
|
||||
if (WIKI.IS_DEBUG) {
|
||||
|
@ -6,6 +6,7 @@ const filesize = require('filesize')
|
||||
const path = require('path')
|
||||
const fs = require('fs-extra')
|
||||
const moment = require('moment')
|
||||
const graphHelper = require('../../helpers/graph')
|
||||
|
||||
/* global WIKI */
|
||||
|
||||
@ -21,9 +22,29 @@ module.exports = {
|
||||
Query: {
|
||||
async system() { return {} }
|
||||
},
|
||||
Mutation: {
|
||||
async system() { return {} }
|
||||
},
|
||||
SystemQuery: {
|
||||
flags() {
|
||||
return _.transform(WIKI.config.flags, (result, value, key) => {
|
||||
result.push({ key, value })
|
||||
}, [])
|
||||
},
|
||||
async info() { return {} }
|
||||
},
|
||||
SystemMutation: {
|
||||
async updateFlags(obj, args, context) {
|
||||
WIKI.config.flags = _.transform(args.flags, (result, row) => {
|
||||
_.set(result, row.key, row.value)
|
||||
}, {})
|
||||
await WIKI.configSvc.applyFlags()
|
||||
await WIKI.configSvc.saveToDb(['flags'])
|
||||
return {
|
||||
responseResult: graphHelper.generateSuccess('System Flags applied successfully')
|
||||
}
|
||||
}
|
||||
},
|
||||
SystemInfo: {
|
||||
configFile() {
|
||||
return path.join(process.cwd(), 'config.yml')
|
||||
|
@ -6,11 +6,16 @@ extend type Query {
|
||||
system: SystemQuery
|
||||
}
|
||||
|
||||
extend type Mutation {
|
||||
system: SystemMutation
|
||||
}
|
||||
|
||||
# -----------------------------------------------
|
||||
# QUERIES
|
||||
# -----------------------------------------------
|
||||
|
||||
type SystemQuery {
|
||||
flags: [SystemFlag] @auth(requires: ["manage:system"])
|
||||
info: SystemInfo
|
||||
}
|
||||
|
||||
@ -18,10 +23,26 @@ type SystemQuery {
|
||||
# MUTATIONS
|
||||
# -----------------------------------------------
|
||||
|
||||
type SystemMutation {
|
||||
updateFlags(
|
||||
flags: [SystemFlagInput]!
|
||||
): DefaultResponse @auth(requires: ["manage:system"])
|
||||
}
|
||||
|
||||
# -----------------------------------------------
|
||||
# TYPES
|
||||
# -----------------------------------------------
|
||||
|
||||
type SystemFlag {
|
||||
key: String!
|
||||
value: Boolean!
|
||||
}
|
||||
|
||||
input SystemFlagInput {
|
||||
key: String!
|
||||
value: Boolean!
|
||||
}
|
||||
|
||||
type SystemInfo {
|
||||
configFile: String @auth(requires: ["manage:system"])
|
||||
cpuCores: Int @auth(requires: ["manage:system"])
|
||||
|
Loading…
Reference in New Issue
Block a user