diff --git a/src/app/components/components.module.ts b/src/app/components/components.module.ts
index 24b31dc..7c31512 100644
--- a/src/app/components/components.module.ts
+++ b/src/app/components/components.module.ts
@@ -38,6 +38,7 @@ import {WysiwygEditorComponent} from './editor/database/editors/wysiwyg/wysiwyg-
import {WysiwygModalComponent} from './editor/database/editors/wysiwyg/wysiwyg-modal.component';
import {AngularResizedEventModule} from 'angular-resize-event';
import {DateTimeFilterComponent} from './editor/database/filters/date-time.filter';
+import {DatabasePageComponent} from './editor/database/database-page.component';
@NgModule({
declarations: [
@@ -70,6 +71,7 @@ import {DateTimeFilterComponent} from './editor/database/filters/date-time.filte
WysiwygEditorComponent,
WysiwygModalComponent,
DateTimeFilterComponent,
+ DatabasePageComponent,
],
imports: [
CommonModule,
@@ -114,6 +116,7 @@ import {DateTimeFilterComponent} from './editor/database/filters/date-time.filte
WysiwygEditorComponent,
WysiwygModalComponent,
DateTimeFilterComponent,
+ DatabasePageComponent,
],
exports: [
NodePickerComponent,
@@ -145,6 +148,7 @@ import {DateTimeFilterComponent} from './editor/database/filters/date-time.filte
WysiwygEditorComponent,
WysiwygModalComponent,
DateTimeFilterComponent,
+ DatabasePageComponent,
]
})
export class ComponentsModule {}
diff --git a/src/app/components/editor/database/database-page.component.ts b/src/app/components/editor/database/database-page.component.ts
new file mode 100644
index 0000000..5fb48e0
--- /dev/null
+++ b/src/app/components/editor/database/database-page.component.ts
@@ -0,0 +1,41 @@
+import {Component, Input, OnInit} from '@angular/core';
+import {EditorService} from '../../../service/editor.service';
+
+@Component({
+ selector: 'noded-database-page',
+ template: `
+
+
+
+ `,
+ styles: [
+ `
+ .container {
+ height: 100%;
+ }
+
+ editor-database {
+ height: 100%;
+ display: flex;
+ }
+ `,
+ ],
+})
+export class DatabasePageComponent implements OnInit {
+ @Input() nodeId: string;
+ @Input() pageId: string;
+
+ public ready = false;
+
+ constructor(
+ public editorService: EditorService,
+ ) {
+ this.editorService = editorService.getEditor();
+ }
+
+ ngOnInit() {
+ this.editorService.startEditing(this.pageId).then(() => {
+ this.ready = true;
+ });
+ }
+}
diff --git a/src/app/components/editor/database/database.component.html b/src/app/components/editor/database/database.component.html
index 724533b..d3463cc 100644
--- a/src/app/components/editor/database/database.component.html
+++ b/src/app/components/editor/database/database.component.html
@@ -1,20 +1,39 @@
-
+
-
+
+
+
+
+
+
Manage Columns
Insert Row
Delete Row
+ Open
{
+ this.columnDefs = [{
+ width: 20,
+ }, ...data.map(x => {
x.editable = !this.readonly;
x.minWidth = 150;
x.resizable = true;
@@ -264,7 +268,7 @@ export class DatabaseComponent extends EditorNodeContract implements OnInit {
}
return x;
- });
+ })];
this.agGridElement.api.setColumnDefs([]);
this.agGridElement.api.setColumnDefs(this.columnDefs);
@@ -325,7 +329,7 @@ export class DatabaseComponent extends EditorNodeContract implements OnInit {
}
public getSaveColumns() {
- return this.columnDefs.map(x => {
+ return this.columnDefs.slice(1).map(x => {
if ( !x.additionalData ) {
x.additionalData = {};
}
@@ -394,4 +398,25 @@ export class DatabaseComponent extends EditorNodeContract implements OnInit {
this.dirty = false;
}
+
+ async openDatabase() {
+ const modal = await this.modals.create({
+ component: DatabasePageComponent,
+ componentProps: {
+ nodeId: this.nodeId,
+ pageId: this.editorService.currentPageId,
+ },
+ cssClass: 'modal-big',
+ });
+
+ modal.onDidDismiss().then(() => {
+ this.editorService.reload();
+ });
+
+ await modal.present();
+ }
+
+ dismiss() {
+ this.modals.dismiss();
+ }
}
diff --git a/src/app/service/editor.service.ts b/src/app/service/editor.service.ts
index 38858f9..e273343 100644
--- a/src/app/service/editor.service.ts
+++ b/src/app/service/editor.service.ts
@@ -56,6 +56,10 @@ export class EditorService {
this.privTriggerSave();
}
+ public get currentPageId() {
+ return this.currentPage?.UUID;
+ }
+
public get isSaving() {
return this.saving;
}
@@ -111,6 +115,10 @@ export class EditorService {
return inst;
}
+ async reload() {
+ await this.startEditing(this.currentPageId);
+ }
+
async startEditing(pageId: string, version?: number) {
if ( this.currentPage ) {
await this.stopEditing();