|
@@ -23,6 +23,7 @@ class PageService {
|
|
|
constructor(crowi) {
|
|
constructor(crowi) {
|
|
|
this.crowi = crowi;
|
|
this.crowi = crowi;
|
|
|
this.pageEvent = crowi.event('page');
|
|
this.pageEvent = crowi.event('page');
|
|
|
|
|
+ this.tagEvent = crowi.event('tag');
|
|
|
|
|
|
|
|
// init
|
|
// init
|
|
|
this.initPageEvent();
|
|
this.initPageEvent();
|
|
@@ -379,6 +380,7 @@ class PageService {
|
|
|
if (originTags != null) {
|
|
if (originTags != null) {
|
|
|
await PageTagRelation.updatePageTags(createdPage.id, originTags);
|
|
await PageTagRelation.updatePageTags(createdPage.id, originTags);
|
|
|
savedTags = await PageTagRelation.listTagNamesByPage(createdPage.id);
|
|
savedTags = await PageTagRelation.listTagNamesByPage(createdPage.id);
|
|
|
|
|
+ this.tagEvent.emit('update', createdPage, savedTags);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const result = serializePageSecurely(createdPage);
|
|
const result = serializePageSecurely(createdPage);
|
|
@@ -513,6 +515,7 @@ class PageService {
|
|
|
|
|
|
|
|
async deletePage(page, user, options = {}, isRecursively = false) {
|
|
async deletePage(page, user, options = {}, isRecursively = false) {
|
|
|
const Page = this.crowi.model('Page');
|
|
const Page = this.crowi.model('Page');
|
|
|
|
|
+ const PageTagRelation = this.crowi.model('PageTagRelation');
|
|
|
const Revision = this.crowi.model('Revision');
|
|
const Revision = this.crowi.model('Revision');
|
|
|
|
|
|
|
|
const newPath = Page.getDeletedPageName(page.path);
|
|
const newPath = Page.getDeletedPageName(page.path);
|
|
@@ -537,6 +540,7 @@ class PageService {
|
|
|
path: newPath, status: Page.STATUS_DELETED, deleteUser: user._id, deletedAt: Date.now(),
|
|
path: newPath, status: Page.STATUS_DELETED, deleteUser: user._id, deletedAt: Date.now(),
|
|
|
},
|
|
},
|
|
|
}, { new: true });
|
|
}, { new: true });
|
|
|
|
|
+ await PageTagRelation.updateMany({ relatedPage: page._id }, { $set: { isPageTrashed: true } });
|
|
|
const body = `redirect ${newPath}`;
|
|
const body = `redirect ${newPath}`;
|
|
|
await Page.create(page.path, body, user, { redirectTo: newPath });
|
|
await Page.create(page.path, body, user, { redirectTo: newPath });
|
|
|
|
|
|
|
@@ -755,6 +759,7 @@ class PageService {
|
|
|
|
|
|
|
|
async revertDeletedPage(page, user, options = {}, isRecursively = false) {
|
|
async revertDeletedPage(page, user, options = {}, isRecursively = false) {
|
|
|
const Page = this.crowi.model('Page');
|
|
const Page = this.crowi.model('Page');
|
|
|
|
|
+ const PageTagRelation = this.crowi.model('PageTagRelation');
|
|
|
const Revision = this.crowi.model('Revision');
|
|
const Revision = this.crowi.model('Revision');
|
|
|
|
|
|
|
|
const newPath = Page.getRevertDeletedPageName(page.path);
|
|
const newPath = Page.getRevertDeletedPageName(page.path);
|
|
@@ -783,6 +788,7 @@ class PageService {
|
|
|
path: newPath, status: Page.STATUS_PUBLISHED, lastUpdateUser: user._id, deleteUser: null, deletedAt: null,
|
|
path: newPath, status: Page.STATUS_PUBLISHED, lastUpdateUser: user._id, deleteUser: null, deletedAt: null,
|
|
|
},
|
|
},
|
|
|
}, { new: true });
|
|
}, { new: true });
|
|
|
|
|
+ await PageTagRelation.updateMany({ relatedPage: page._id }, { $set: { isPageTrashed: false } });
|
|
|
await Revision.updateMany({ path: page.path }, { $set: { path: newPath } });
|
|
await Revision.updateMany({ path: page.path }, { $set: { path: newPath } });
|
|
|
|
|
|
|
|
return updatedPage;
|
|
return updatedPage;
|