Selaa lähdekoodia

fix: export + import tags in storage events

NGPixel 5 vuotta sitten
vanhempi
sitoutus
28fdf14002
3 muutettua tiedostoa jossa 8 lisäystä ja 3 poistoa
  1. 1 1
      server/helpers/page.js
  2. 2 0
      server/models/tags.js
  3. 5 2
      server/modules/storage/disk/common.js

+ 1 - 1
server/helpers/page.js

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

+ 2 - 0
server/models/tags.js

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

+ 5 - 2
server/modules/storage/disk/common.js

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