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 */
|
/* global WIKI */
|
||||||
|
|
||||||
module.exports = async (job) => {
|
module.exports = async ({ target }) => {
|
||||||
WIKI.logger.info(`Syncing with storage provider ${job.data.target.title}...`)
|
WIKI.logger.info(`Syncing with storage provider ${job.data.target.title}...`)
|
||||||
|
|
||||||
try {
|
// try {
|
||||||
const target = require(`../modules/storage/${job.data.target.key}/storage.js`)
|
// const target = require(`../modules/storage/${job.data.target.key}/storage.js`)
|
||||||
target[job.data.event].call({
|
// target[job.data.event].call({
|
||||||
config: job.data.target.config,
|
// config: job.data.target.config,
|
||||||
mode: job.data.target.mode,
|
// mode: job.data.target.mode,
|
||||||
page: job.data.page
|
// page: job.data.page
|
||||||
})
|
// })
|
||||||
WIKI.logger.info(`Syncing with storage provider ${job.data.target.title}: [ COMPLETED ]`)
|
// WIKI.logger.info(`Syncing with storage provider ${job.data.target.title}: [ COMPLETED ]`)
|
||||||
} catch (err) {
|
// } catch (err) {
|
||||||
WIKI.logger.error(`Syncing with storage provider ${job.data.target.title}: [ FAILED ]`)
|
// WIKI.logger.error(`Syncing with storage provider ${job.data.target.title}: [ FAILED ]`)
|
||||||
WIKI.logger.error(err.message)
|
// WIKI.logger.error(err.message)
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in new issue