diff --git a/server/models/pages.js b/server/models/pages.js
index bb5b6585..07f285e7 100644
--- a/server/models/pages.js
+++ b/server/models/pages.js
@@ -849,23 +849,54 @@ module.exports = class Page extends Model {
*/
static async reconnectLinks (opts) {
const pageHref = `/${opts.locale}/${opts.path}`
+ await this.reconnectLinksToSpecificHref({
+ path: opts.path,
+ locale: opts.locale,
+ pageHref: pageHref,
+ sourceHref: typeof opts.sourcePath !== 'undefined' ? `/${opts.sourceLocale}/${opts.sourcePath}` : undefined,
+ mode: opts.mode
+ })
+
+ if (opts.locale === WIKI.config.lang.code) {
+ const pageHrefWithoutLangCode = `/${opts.path}`
+ await this.reconnectLinksToSpecificHref({
+ path: opts.path,
+ locale: opts.locale,
+ pageHref: pageHrefWithoutLangCode,
+ sourceHref: typeof opts.sourcePath !== 'undefined' ? `/${opts.sourcePath}` : undefined,
+ mode: opts.mode
+ })
+ }
+ }
+
+ /**
+ * 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.pageHref - Page href (e.g. '/en/page', '/page')
+ * @param {string} [opts.sourceHref] - Previous Page Href (move only)
+ * @param {string} opts.mode - Page Update mode (create, move, delete)
+ * @returns {Promise} Promise with no value
+ */
+ static async reconnectLinksToSpecificHref(opts) {
let replaceArgs = {
from: '',
to: ''
}
switch (opts.mode) {
case 'create':
- replaceArgs.from = ``
- replaceArgs.to = ``
+ replaceArgs.from = ``
+ replaceArgs.to = ``
break
case 'move':
- const prevPageHref = `/${opts.sourceLocale}/${opts.sourcePath}`
- replaceArgs.from = ``
- replaceArgs.to = ``
+ replaceArgs.from = ``
+ replaceArgs.to = ``
break
case 'delete':
- replaceArgs.from = ``
- replaceArgs.to = ``
+ replaceArgs.from = ``
+ replaceArgs.to = ``
break
default:
return false