|
|
|
@ -10,7 +10,9 @@ import {Codium} from './db/Codium';
|
|
|
|
|
import {Database} from './db/Database';
|
|
|
|
|
import {DatabaseColumn} from './db/DatabaseColumn';
|
|
|
|
|
import {DatabaseEntry} from './db/DatabaseEntry';
|
|
|
|
|
import {FileGroup} from "./db/FileGroup";
|
|
|
|
|
import {FileGroup} from './db/FileGroup';
|
|
|
|
|
import {Page} from './db/Page'
|
|
|
|
|
import {PageNode} from "./db/PageNode";
|
|
|
|
|
|
|
|
|
|
export class ResourceNotAvailableOfflineError extends Error {
|
|
|
|
|
constructor(msg = 'This resource is not yet available offline on this device.') {
|
|
|
|
@ -868,4 +870,101 @@ export class ApiService {
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public createPage(name: string): Promise<any> {
|
|
|
|
|
return new Promise(async (res, rej) => {
|
|
|
|
|
// If we're offline, create a stub page to be saved later
|
|
|
|
|
if ( this.isOffline ) {
|
|
|
|
|
const page = new Page(
|
|
|
|
|
Page.getUUID(),
|
|
|
|
|
'New Page',
|
|
|
|
|
'OrgUserId',
|
|
|
|
|
true,
|
|
|
|
|
true,
|
|
|
|
|
'0',
|
|
|
|
|
[],
|
|
|
|
|
String(new Date()),
|
|
|
|
|
String(new Date()),
|
|
|
|
|
true,
|
|
|
|
|
'create user id',
|
|
|
|
|
'update user id',
|
|
|
|
|
[],
|
|
|
|
|
false,
|
|
|
|
|
false,
|
|
|
|
|
true
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const firstNode = new PageNode(
|
|
|
|
|
PageNode.getUUID(),
|
|
|
|
|
'paragraph',
|
|
|
|
|
JSON.stringify({ Value: 'Click to edit...' }),
|
|
|
|
|
page.UUID,
|
|
|
|
|
String(new Date()),
|
|
|
|
|
String(new Date()),
|
|
|
|
|
'create user id',
|
|
|
|
|
'update user id',
|
|
|
|
|
true
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
await firstNode.save();
|
|
|
|
|
|
|
|
|
|
page.NodeIds.push(firstNode.UUID);
|
|
|
|
|
await page.save();
|
|
|
|
|
|
|
|
|
|
// Because we're offline, we need to manually create the menu item node
|
|
|
|
|
const topLevelItem = await this.db.menuItems.where({
|
|
|
|
|
serverId: 0,
|
|
|
|
|
name: 'My Info Tree',
|
|
|
|
|
}).first() as MenuItem;
|
|
|
|
|
|
|
|
|
|
if ( topLevelItem ) {
|
|
|
|
|
const newItem = new MenuItem(
|
|
|
|
|
page.Name,
|
|
|
|
|
MenuItem.getUUID(),
|
|
|
|
|
[],
|
|
|
|
|
false,
|
|
|
|
|
false,
|
|
|
|
|
false,
|
|
|
|
|
'page',
|
|
|
|
|
false,
|
|
|
|
|
true
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
await newItem.save();
|
|
|
|
|
|
|
|
|
|
topLevelItem.childIds.push(newItem.serverId);
|
|
|
|
|
await topLevelItem.save();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res(page.getSaveRecord());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// If we're online, the server will handle all of that mess...
|
|
|
|
|
this.post('/page/create', { name }).subscribe({
|
|
|
|
|
next: async result => {
|
|
|
|
|
const page = new Page(
|
|
|
|
|
result.data.UUID,
|
|
|
|
|
result.data.Name,
|
|
|
|
|
result.data.OrgUserId,
|
|
|
|
|
result.data.IsPublic,
|
|
|
|
|
result.data.IsVisibleInMenu,
|
|
|
|
|
result.data.ParentId,
|
|
|
|
|
result.data.NodeIds,
|
|
|
|
|
result.data.CreatedAt,
|
|
|
|
|
result.data.UpdatedAt,
|
|
|
|
|
true,
|
|
|
|
|
result.data.CreatedUserId,
|
|
|
|
|
result.data.UpdateUserId,
|
|
|
|
|
result.data.ChildPageIds,
|
|
|
|
|
result.data.noDelete,
|
|
|
|
|
result.data.virtual
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
await page.save();
|
|
|
|
|
return res(result.data);
|
|
|
|
|
},
|
|
|
|
|
error: rej,
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|