feat: page locale migration + deps update

This commit is contained in:
Nick
2019-07-14 16:12:26 -04:00
parent 35c09a3602
commit 5689444a17
11 changed files with 735 additions and 892 deletions

View File

@@ -58,6 +58,13 @@ router.get(['/e', '/e/*'], async (req, res, next) => {
userId: req.user.id,
isPrivate: false
})
const injectCode = {
css: WIKI.config.theming.injectCSS,
head: WIKI.config.theming.injectHead,
body: WIKI.config.theming.injectBody
}
if (page) {
if (!WIKI.auth.checkAccess(req.user, ['manage:pages'], pageArgs)) {
_.set(res.locals, 'pageMeta.title', 'Unauthorized')
@@ -84,7 +91,7 @@ router.get(['/e', '/e/*'], async (req, res, next) => {
content: null
}
}
res.render('editor', { page })
res.render('editor', { page, injectCode })
})
/**

View File

@@ -98,9 +98,10 @@ module.exports = {
},
async migrateToLocale(obj, args, context) {
try {
const count = await WIKI.models.pages.migrateToLocale(args)
return {
responseResult: graphHelper.generateSuccess('Migrated all content to target locale successfully.')
responseResult: graphHelper.generateSuccess('Migrated content to target locale successfully.'),
count
}
} catch (err) {
return graphHelper.generateError(err)

View File

@@ -77,7 +77,7 @@ type PageMutation {
migrateToLocale(
sourceLocale: String!
targetLocale: String!
): DefaultResponse @auth(requires: ["manage:system"])
): PageMigrationResponse @auth(requires: ["manage:system"])
}
# -----------------------------------------------
@@ -89,6 +89,11 @@ type PageResponse {
page: Page
}
type PageMigrationResponse {
responseResult: ResponseStatus!
count: Int
}
type Page {
id: Int!
path: String!

View File

@@ -421,6 +421,19 @@ module.exports = class Page extends Model {
return fs.emptyDir(path.join(process.cwd(), `data/cache`))
}
static async migrateToLocale({ sourceLocale, targetLocale }) {
return WIKI.models.pages.query()
.patch({
localeCode: targetLocale
})
.where({
localeCode: sourceLocale
})
.whereNotExists(function() {
this.select('id').from('pages AS pagesm').where('pagesm.localeCode', targetLocale).andWhereRaw('pagesm.path = pages.path')
})
}
static cleanHTML(rawHTML = '') {
return striptags(rawHTML || '')
.replace(emojiRegex(), '')

View File

@@ -1,5 +1,9 @@
extends master.pug
block head
if injectCode.css
style(type='text/css')!= injectCode.css
block body
#root
editor(