mirror of https://github.com/requarks/wiki
parent
040f840807
commit
aa27554bc7
@ -0,0 +1,114 @@
|
||||
<template lang='pug'>
|
||||
v-toolbar(flat, :color='$vuetify.dark ? "grey darken-4-l3" : "grey lighten-3"')
|
||||
.body-2.mr-3 Every
|
||||
v-text-field(
|
||||
solo
|
||||
hide-details
|
||||
flat
|
||||
reverse
|
||||
v-model='minutes'
|
||||
)
|
||||
.body-2.mx-3 Minute(s)
|
||||
v-divider.mr-3()
|
||||
v-text-field(
|
||||
solo
|
||||
hide-details
|
||||
flat
|
||||
reverse
|
||||
v-model='hours'
|
||||
)
|
||||
.body-2.mx-3 Hour(s)
|
||||
v-divider.mr-3()
|
||||
v-text-field(
|
||||
solo
|
||||
hide-details
|
||||
flat
|
||||
reverse
|
||||
v-model='days'
|
||||
)
|
||||
.body-2.mx-3 Day(s)
|
||||
v-divider.mr-3()
|
||||
v-text-field(
|
||||
solo
|
||||
hide-details
|
||||
flat
|
||||
reverse
|
||||
v-model='months'
|
||||
)
|
||||
.body-2.mx-3 Month(s)
|
||||
v-divider.mr-3()
|
||||
v-text-field(
|
||||
solo
|
||||
hide-details
|
||||
flat
|
||||
reverse
|
||||
v-model='years'
|
||||
)
|
||||
.body-2.mx-3 Year(s)
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import _ from 'lodash'
|
||||
import moment from 'moment'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
value: {
|
||||
type: String,
|
||||
default: 'PT5M'
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
duration: moment.duration(0)
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
years: {
|
||||
get() { return this.duration.years() || 0 },
|
||||
set(val) { this.rebuild(_.toNumber(val), 'years') }
|
||||
},
|
||||
months: {
|
||||
get() { return this.duration.months() || 0 },
|
||||
set(val) { this.rebuild(_.toNumber(val), 'months') }
|
||||
},
|
||||
days: {
|
||||
get() { return this.duration.days() || 0 },
|
||||
set(val) { this.rebuild(_.toNumber(val), 'days') }
|
||||
},
|
||||
hours: {
|
||||
get() { return this.duration.hours() || 0 },
|
||||
set(val) { this.rebuild(_.toNumber(val), 'hours') }
|
||||
},
|
||||
minutes: {
|
||||
get() { return this.duration.minutes() || 0 },
|
||||
set(val) { this.rebuild(_.toNumber(val), 'minutes') }
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value(newValue, oldValue) {
|
||||
this.duration = moment.duration(newValue)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
rebuild(val, unit) {
|
||||
if (!_.isFinite(val) || val < 0) {
|
||||
val = 0
|
||||
}
|
||||
const newDuration = {
|
||||
minutes: this.duration.minutes(),
|
||||
hours: this.duration.hours(),
|
||||
days: this.duration.days(),
|
||||
months: this.duration.months(),
|
||||
years: this.duration.years()
|
||||
}
|
||||
_.set(newDuration, unit, val)
|
||||
this.duration = moment.duration(newDuration)
|
||||
this.$emit('input', this.duration.toISOString())
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.duration = moment.duration(this.value)
|
||||
}
|
||||
}
|
||||
</script>
|
@ -0,0 +1,10 @@
|
||||
query {
|
||||
storage {
|
||||
status {
|
||||
key
|
||||
title
|
||||
status
|
||||
message
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
exports.up = knex => {
|
||||
return knex.schema
|
||||
.table('storage', table => {
|
||||
table.string('syncInterval')
|
||||
table.json('state')
|
||||
})
|
||||
}
|
||||
|
||||
exports.down = knex => {
|
||||
return knex.schema
|
||||
.table('storage', table => {
|
||||
table.dropColumn('syncInterval')
|
||||
table.dropColumn('state')
|
||||
})
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
const { createRateLimitDirective } = require('graphql-rate-limit-directive')
|
||||
|
||||
module.exports = createRateLimitDirective({
|
||||
keyGenerator: (directiveArgs, source, args, context, info) => `${context.req.ip}:${info.parentType}.${info.fieldName}`
|
||||
})
|
@ -1,20 +1,18 @@
|
||||
require('../core/worker')
|
||||
|
||||
/* global WIKI */
|
||||
|
||||
module.exports = async (job) => {
|
||||
module.exports = async ({ target }) => {
|
||||
WIKI.logger.info(`Syncing with storage provider ${job.data.target.title}...`)
|
||||
|
||||
try {
|
||||
const target = require(`../modules/storage/${job.data.target.key}/storage.js`)
|
||||
target[job.data.event].call({
|
||||
config: job.data.target.config,
|
||||
mode: job.data.target.mode,
|
||||
page: job.data.page
|
||||
})
|
||||
WIKI.logger.info(`Syncing with storage provider ${job.data.target.title}: [ COMPLETED ]`)
|
||||
} catch (err) {
|
||||
WIKI.logger.error(`Syncing with storage provider ${job.data.target.title}: [ FAILED ]`)
|
||||
WIKI.logger.error(err.message)
|
||||
}
|
||||
// try {
|
||||
// const target = require(`../modules/storage/${job.data.target.key}/storage.js`)
|
||||
// target[job.data.event].call({
|
||||
// config: job.data.target.config,
|
||||
// mode: job.data.target.mode,
|
||||
// page: job.data.page
|
||||
// })
|
||||
// WIKI.logger.info(`Syncing with storage provider ${job.data.target.title}: [ COMPLETED ]`)
|
||||
// } catch (err) {
|
||||
// WIKI.logger.error(`Syncing with storage provider ${job.data.target.title}: [ FAILED ]`)
|
||||
// WIKI.logger.error(err.message)
|
||||
// }
|
||||
}
|
||||
|
Loading…
Reference in new issue