Add dialog for confirmation before save

This commit is contained in:
Tobias Eidelpes
2021-05-03 12:27:32 +02:00
parent 779637d52b
commit 506f33336a
7 changed files with 109 additions and 25 deletions
@@ -33,7 +33,7 @@
</div>
<div class="input-row margin-auto einstellungen_buttons_wrapper">
<button routerLink="/einstellungen" mat-raised-button>Abbrechen</button>
<button mat-raised-button (click)="saveFeed(feedForm.value)" [disabled]="feedForm.invalid">
<button mat-raised-button (click)="saveDialog(feedForm.value)" [disabled]="feedForm.invalid">
<mat-icon>save</mat-icon>
Speichern
</button>
@@ -8,6 +8,8 @@ import {throwError} from 'rxjs';
import {NGXLogger} from 'ngx-logger';
import {MatSnackBar} from '@angular/material/snack-bar';
import {isElementScrolledOutsideView} from '@angular/cdk/overlay/position/scroll-clip';
import {DialogComponent} from '../../dialog/dialog.component';
import {MatDialog} from '@angular/material/dialog';
@Component({
selector: 'app-editieren',
@@ -31,7 +33,8 @@ export class EditierenComponent implements OnInit {
private formBuilder: FormBuilder,
private http: HttpClient,
private _snackbar: MatSnackBar,
private _logger: NGXLogger) {
private _logger: NGXLogger,
private _dialog: MatDialog) {
this.route.paramMap.subscribe(paramMap => {
this.id = paramMap.get('id');
if (this.id) {
@@ -50,7 +53,7 @@ export class EditierenComponent implements OnInit {
});
}
loadFeed(id) {
public loadFeed(id) {
this.http.get('http://127.0.0.1:8000/feeds/' + id + '/').subscribe(
(data: any) => {
this._logger.debug('Data: ' + JSON.stringify(data));
@@ -71,7 +74,7 @@ export class EditierenComponent implements OnInit {
);
}
saveFeed(feedData) {
public saveFeed(feedData) {
const form: FormData = new FormData();
form.append('url', feedData.url);
form.append('active', feedData.active);
@@ -105,4 +108,25 @@ export class EditierenComponent implements OnInit {
);
}
}
public saveDialog(feedData) {
const dialogRef = this._dialog.open(DialogComponent, {
data: {
title: 'Neuen Feed erstellen',
body: 'Neuen Feed erstellen?',
abort: 'Abbrechen',
confirm: 'OK',
hideAbort: false
}
});
dialogRef.afterClosed().subscribe(
data => {
if (data === true) {
// Confirm button was clicked
this.saveFeed(feedData);
}
}
);
}
}