minor usability enhancements
This commit is contained in:
parent
3852d6aab7
commit
dc4f8fe7ed
@ -2,7 +2,7 @@ import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} f
|
||||
import HostRecord from '../../../structures/HostRecord';
|
||||
import {ApiService} from '../../../service/api.service';
|
||||
import {Observable} from 'rxjs';
|
||||
import {AlertController, ModalController} from '@ionic/angular';
|
||||
import {AlertController, LoadingController, ModalController} from '@ionic/angular';
|
||||
import {ColumnsComponent} from './columns/columns.component';
|
||||
import {AgGridAngular} from 'ag-grid-angular';
|
||||
|
||||
@ -27,6 +27,7 @@ export class DatabaseComponent implements OnInit {
|
||||
protected api: ApiService,
|
||||
protected modals: ModalController,
|
||||
protected alerts: AlertController,
|
||||
protected loader: LoadingController,
|
||||
) { }
|
||||
|
||||
title = 'app';
|
||||
@ -34,10 +35,14 @@ export class DatabaseComponent implements OnInit {
|
||||
rowData = [];
|
||||
|
||||
ngOnInit() {
|
||||
this.getInitObservable().subscribe(() => {
|
||||
this.getColumnLoadObservable().subscribe(() => {
|
||||
this.getDataLoadObservable().subscribe(() => {
|
||||
|
||||
this.loader.create({message: 'Loading database...'}).then(loader => {
|
||||
loader.present().then(() => {
|
||||
this.getInitObservable().subscribe(() => {
|
||||
this.getColumnLoadObservable().subscribe(() => {
|
||||
this.getDataLoadObservable().subscribe(() => {
|
||||
loader.dismiss();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@ -86,6 +91,7 @@ export class DatabaseComponent implements OnInit {
|
||||
onInsertRow() {
|
||||
this.rowData.push({});
|
||||
this.agGridElement.api.setRowData(this.rowData);
|
||||
this.dirty = true;
|
||||
}
|
||||
|
||||
async onRemoveRow() {
|
||||
@ -107,6 +113,7 @@ export class DatabaseComponent implements OnInit {
|
||||
this.rowData = newRows;
|
||||
this.agGridElement.api.setRowData(this.rowData);
|
||||
this.lastClickRow = -1;
|
||||
this.dirty = true;
|
||||
},
|
||||
}
|
||||
],
|
||||
@ -153,11 +160,16 @@ export class DatabaseComponent implements OnInit {
|
||||
}
|
||||
|
||||
onSyncRecords() {
|
||||
this.api.post(`/db/${this.hostRecord.PageId}/${this.hostRecord.UUID}/set/${this.hostRecord.Value.Value}/data`, this.rowData)
|
||||
.subscribe(res => {
|
||||
this.rowData = res.data.map(x => x.RowData);
|
||||
this.agGridElement.api.setRowData(this.rowData);
|
||||
this.dirty = false;
|
||||
this.loader.create({message: 'Syncing the database...'}).then(loader => {
|
||||
loader.present().then(() => {
|
||||
this.api.post(`/db/${this.hostRecord.PageId}/${this.hostRecord.UUID}/set/${this.hostRecord.Value.Value}/data`, this.rowData)
|
||||
.subscribe(res => {
|
||||
this.rowData = res.data.map(x => x.RowData);
|
||||
this.agGridElement.api.setRowData(this.rowData);
|
||||
this.dirty = false;
|
||||
loader.dismiss();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@ import HostRecord from '../../structures/HostRecord';
|
||||
import PageRecord from '../../structures/PageRecord';
|
||||
import {PageService} from '../../service/page.service';
|
||||
import {ActivatedRoute, Router} from '@angular/router';
|
||||
import {PopoverController} from '@ionic/angular';
|
||||
import {LoadingController, PopoverController} from '@ionic/angular';
|
||||
import {NodePickerComponent} from '../../components/editor/node-picker/node-picker.component';
|
||||
|
||||
@Component({
|
||||
@ -24,6 +24,7 @@ export class EditorPage implements OnInit {
|
||||
protected route: ActivatedRoute,
|
||||
protected router: Router,
|
||||
protected popover: PopoverController,
|
||||
protected loader: LoadingController,
|
||||
) {
|
||||
this.route.params.subscribe(params => {
|
||||
this.pageId = params.id;
|
||||
@ -174,15 +175,20 @@ export class EditorPage implements OnInit {
|
||||
}
|
||||
|
||||
onSaveClick() {
|
||||
this.pageRecord.Name = this.titleBar.el.innerText.trim();
|
||||
this.loader.create({message: 'Saving changes...'}).then(loader => {
|
||||
loader.present().then(() => {
|
||||
this.pageRecord.Name = this.titleBar.el.innerText.trim();
|
||||
|
||||
// First, save the page record itself
|
||||
this.pages.save(this.pageRecord).subscribe(pageRecord => {
|
||||
this.pageRecord = pageRecord;
|
||||
// First, save the page record itself
|
||||
this.pages.save(this.pageRecord).subscribe(pageRecord => {
|
||||
this.pageRecord = pageRecord;
|
||||
|
||||
// Now, save the nodes
|
||||
this.pages.save_nodes(pageRecord, this.hostRecords).subscribe(result => {
|
||||
this.hostRecords = result;
|
||||
// Now, save the nodes
|
||||
this.pages.save_nodes(pageRecord, this.hostRecords).subscribe(result => {
|
||||
this.hostRecords = result;
|
||||
loader.dismiss();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user