|
@@ -270,6 +270,9 @@ module.exports = class Page extends Model {
|
|
|
// -> Render page to HTML
|
|
|
await WIKI.models.pages.renderPage(page)
|
|
|
|
|
|
+ // -> Rebuild page tree
|
|
|
+ await WIKI.models.pages.rebuildTree()
|
|
|
+
|
|
|
// -> Add to Search Index
|
|
|
const pageContents = await WIKI.models.pages.query().findById(page.id).select('render')
|
|
|
page.safeContent = WIKI.models.pages.cleanHTML(pageContents.render)
|
|
@@ -370,6 +373,11 @@ module.exports = class Page extends Model {
|
|
|
destinationPath: opts.path,
|
|
|
user: opts.user
|
|
|
})
|
|
|
+ } else {
|
|
|
+ // -> Update title of page tree entry
|
|
|
+ await WIKI.models.knex.table('pageTree').where({
|
|
|
+ pageId: page.id
|
|
|
+ }).update('title', page.title)
|
|
|
}
|
|
|
|
|
|
return page
|
|
@@ -427,6 +435,9 @@ module.exports = class Page extends Model {
|
|
|
}).findById(page.id)
|
|
|
await WIKI.models.pages.deletePageFromCache(page)
|
|
|
|
|
|
+ // -> Rebuild page tree
|
|
|
+ await WIKI.models.pages.rebuildTree()
|
|
|
+
|
|
|
// -> Rename in Search Index
|
|
|
await WIKI.data.searchEngine.renamed({
|
|
|
...page,
|
|
@@ -499,6 +510,9 @@ module.exports = class Page extends Model {
|
|
|
await WIKI.models.pages.query().delete().where('id', page.id)
|
|
|
await WIKI.models.pages.deletePageFromCache(page)
|
|
|
|
|
|
+ // -> Rebuild page tree
|
|
|
+ await WIKI.models.pages.rebuildTree()
|
|
|
+
|
|
|
// -> Delete from Search Index
|
|
|
await WIKI.data.searchEngine.deleted(page)
|
|
|
|
|
@@ -519,14 +533,14 @@ module.exports = class Page extends Model {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * Reconnect links to new/updated/deleted page
|
|
|
+ * Reconnect links to new/move/deleted page
|
|
|
*
|
|
|
* @param {Object} opts - Page parameters
|
|
|
* @param {string} opts.path - Page Path
|
|
|
* @param {string} opts.locale - Page Locale Code
|
|
|
* @param {string} [opts.sourcePath] - Previous Page Path (move only)
|
|
|
* @param {string} [opts.sourceLocale] - Previous Page Locale Code (move only)
|
|
|
- * @param {string} opts.mode - Page Update mode (new, move, delete)
|
|
|
+ * @param {string} opts.mode - Page Update mode (create, move, delete)
|
|
|
* @returns {Promise} Promise with no value
|
|
|
*/
|
|
|
static async reconnectLinks (opts) {
|
|
@@ -595,6 +609,20 @@ module.exports = class Page extends Model {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Rebuild page tree for new/updated/deleted page
|
|
|
+ *
|
|
|
+ * @returns {Promise} Promise with no value
|
|
|
+ */
|
|
|
+ static async rebuildTree() {
|
|
|
+ const rebuildJob = await WIKI.scheduler.registerJob({
|
|
|
+ name: 'rebuild-tree',
|
|
|
+ immediate: true,
|
|
|
+ worker: true
|
|
|
+ })
|
|
|
+ return rebuildJob.finished
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Trigger the rendering of a page
|
|
|
*
|