fix: export + import tags in storage events

This commit is contained in:
NGPixel 2019-10-27 15:56:39 -04:00
parent 692e5ca0bd
commit 28fdf14002
3 changed files with 8 additions and 3 deletions

View File

@ -71,7 +71,7 @@ module.exports = {
['description', page.description],
['published', page.isPublished.toString()],
['date', page.updatedAt],
['tags', '']
['tags', page.tags ? page.tags.map(t => t.tag).join(', ') : '']
]
const inject = {
'markdown': '---\n' + meta.map(mt => `${mt[0]}: ${mt[1]}`).join('\n') + '\n---\n\n' + page.content,

View File

@ -95,5 +95,7 @@ module.exports = class Tag extends Model {
if (tagsToUnrelate.length > 0) {
await page.$relatedQuery('tags').unrelate().whereIn('tags.id', _.map(tagsToUnrelate, 'id'))
}
page.tags = targetTags
}
}

View File

@ -75,10 +75,11 @@ module.exports = {
const contentPath = pageHelper.getPagePath(relPath)
const itemContents = await fs.readFile(path.join(fullPath, relPath), 'utf8')
const pageData = WIKI.models.pages.parseMetadata(itemContents, contentType)
const currentPage = await WIKI.models.pages.query().findOne({
const currentPage = await WIKI.models.pages.getPageFromDb({
path: contentPath.path,
localeCode: contentPath.locale
locale: contentPath.locale
})
const newTags = !_.isNil(pageData.tags) ? _.get(pageData, 'tags', '').split(', ') : false
if (currentPage) {
// Already in the DB, can mark as modified
WIKI.logger.info(`(STORAGE/${moduleName}) Page marked as modified: ${relPath}`)
@ -86,6 +87,7 @@ module.exports = {
id: currentPage.id,
title: _.get(pageData, 'title', currentPage.title),
description: _.get(pageData, 'description', currentPage.description) || '',
tags: newTags || currentPage.tags.map(t => t.tag),
isPublished: _.get(pageData, 'isPublished', currentPage.isPublished),
isPrivate: false,
content: pageData.content,
@ -101,6 +103,7 @@ module.exports = {
locale: contentPath.locale,
title: _.get(pageData, 'title', _.last(contentPath.path.split('/'))),
description: _.get(pageData, 'description', '') || '',
tags: newTags || [],
isPublished: _.get(pageData, 'isPublished', true),
isPrivate: false,
content: pageData.content,