|
|
@ -634,6 +634,51 @@ export class EditorService {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async revertPageToVersion(pageId: string, versionNum: number): Promise<PageRecord> {
|
|
|
|
|
|
|
|
return new Promise(async (res, rej) => {
|
|
|
|
|
|
|
|
const existingLocalPage = await this.db.pages.where({ UUID: pageId }).first() as Page;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ( this.api.isOffline ) {
|
|
|
|
|
|
|
|
return rej(new ResourceNotAvailableOfflineError());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.api.post(`/page/${pageId}/versions/revert`, { version_num: versionNum }).subscribe({
|
|
|
|
|
|
|
|
next: async result => {
|
|
|
|
|
|
|
|
const page = new PageRecord(result.data);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ( existingLocalPage ) {
|
|
|
|
|
|
|
|
existingLocalPage.fillFromRecord(result.data);
|
|
|
|
|
|
|
|
existingLocalPage.needsServerUpdate = 0;
|
|
|
|
|
|
|
|
await existingLocalPage.save();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
const newLocalPage = new Page(
|
|
|
|
|
|
|
|
page.UUID,
|
|
|
|
|
|
|
|
page.Name,
|
|
|
|
|
|
|
|
page.OrgUserId,
|
|
|
|
|
|
|
|
page.IsPublic,
|
|
|
|
|
|
|
|
page.IsVisibleInMenu,
|
|
|
|
|
|
|
|
page.ParentId,
|
|
|
|
|
|
|
|
page.NodeIds,
|
|
|
|
|
|
|
|
String(page.CreatedAt),
|
|
|
|
|
|
|
|
String(page.UpdatedAt),
|
|
|
|
|
|
|
|
true,
|
|
|
|
|
|
|
|
page.CreatedUserId,
|
|
|
|
|
|
|
|
page.UpdateUserId,
|
|
|
|
|
|
|
|
page.ChildPageIds,
|
|
|
|
|
|
|
|
result.data.noDelete,
|
|
|
|
|
|
|
|
result.data.virtual,
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await newLocalPage.save();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
res(page);
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
error: rej,
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
async loadNodes(pageId: string, version?: number): Promise<HostRecord[]> {
|
|
|
|
async loadNodes(pageId: string, version?: number): Promise<HostRecord[]> {
|
|
|
|
return new Promise(async (res, rej) => {
|
|
|
|
return new Promise(async (res, rej) => {
|
|
|
|
const existingNodes = await this.db.pageNodes.where({ PageId: pageId }).toArray() as PageNode[];
|
|
|
|
const existingNodes = await this.db.pageNodes.where({ PageId: pageId }).toArray() as PageNode[];
|
|
|
|