Start page versions modal
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-11-02 21:47:29 -06:00
parent 36d97c9eca
commit 0e0d237d4f
11 changed files with 229 additions and 20 deletions

View File

@@ -12,10 +12,18 @@
></ion-input>
</ion-title>
<ion-buttons slot="end">
<button class="save-button" (click)="editorService.triggerSave()" title="Manually save this note">
<button
class="save-button"
(click)="editorService.triggerSave()"
title="Manually save this note"
*ngIf="editorService.isEditing && editorService.canEdit()"
>
<i *ngIf="!(editorService.isSaving || editorService.willSave)" class="fa fa-check-circle"></i>
{{ (editorService.isSaving || editorService.willSave) ? 'Saving...' : 'Saved!' }}
</button>
<ion-button *ngIf="editorService.isEditing && editorService.canEdit()" title="More page options" (click)="onPageMenuClick($event)">
<i class="fa fa-ellipsis-v"></i>
</ion-button>
</ion-buttons>
</ion-toolbar>
</ion-header>

View File

@@ -1,11 +1,13 @@
import {Component, HostListener, Input, OnInit} from '@angular/core';
import HostRecord from '../../structures/HostRecord';
import {ActivatedRoute, Router} from '@angular/router';
import {AlertController, LoadingController, PopoverController} from '@ionic/angular';
import {AlertController, LoadingController, ModalController, PopoverController} from '@ionic/angular';
import {NodePickerComponent} from '../../components/editor/node-picker/node-picker.component';
import {HostOptionsComponent} from '../../components/editor/host-options/host-options.component';
import {EditorService} from '../../service/editor.service';
import {NodeTypeIcons} from '../../structures/node-types';
import {OptionMenuComponent} from '../../components/option-menu/option-menu.component';
import {VersionModalComponent} from "../../components/version-modal/version-modal.component";
@Component({
selector: 'app-editor',
@@ -22,6 +24,7 @@ export class EditorPage implements OnInit {
protected loader: LoadingController,
protected popover: PopoverController,
protected alerts: AlertController,
protected modals: ModalController,
public readonly editorService: EditorService,
) {
this.route.params.subscribe(params => {
@@ -86,9 +89,9 @@ export class EditorPage implements OnInit {
} else if ( value === 'move_down' ) {
this.editorService.moveNode(node, 'down');
} else if ( value === 'add_before' ) {
this.onAddClick(dismissEvent, 'before', node.UUID);
this.onAddClick(event, 'before', node.UUID);
} else if ( value === 'add_after' ) {
this.onAddClick(dismissEvent, 'after', node.UUID);
this.onAddClick(event, 'after', node.UUID);
}
});
@@ -115,4 +118,43 @@ export class EditorPage implements OnInit {
await popover.present();
}
async onPageMenuClick(event: MouseEvent) {
const popover = await this.popover.create({
event,
component: OptionMenuComponent,
componentProps: {
menuItems: [
{
name: 'Versions',
icon: 'fa fa-history',
value: 'view-versions',
title: 'View other versions of this page',
},
],
},
});
popover.onDidDismiss().then(async value => {
const { data } = value;
if ( data === 'view-versions' ) {
await this.showVersionModal();
}
});
await popover.present();
}
async showVersionModal() {
const modal = await this.modals.create({
component: VersionModalComponent,
componentProps: {
pageId: this.pageId,
},
cssClass: 'modal-big',
});
await modal.present();
}
}