1
0
Fork 0
mirror of https://github.com/mealie-recipes/mealie.git synced 2025-07-30 18:49:41 +02:00

Adding in Confirmation logic.

This commit is contained in:
zackbcom 2021-01-04 23:10:14 -06:00
parent 1aa9cbeebb
commit 92f00f41c6
2 changed files with 69 additions and 20 deletions

View file

@ -5,7 +5,9 @@
<div v-if="open">
<v-btn class="mr-2" fab dark small color="error" @click="deleteRecipe">
<v-icon>mdi-delete</v-icon>
<Confirmation ref="confirm" />
</v-btn>
<v-btn class="mr-2" fab dark small color="success" @click="save">
<v-icon>mdi-content-save</v-icon>
</v-btn>
@ -27,6 +29,9 @@ export default {
default: true,
},
},
components: {
Confirmation: () => import("../UI/Confirmation"),
},
methods: {
editor() {
this.$emit("editor");
@ -34,8 +39,16 @@ export default {
save() {
this.$emit("save");
},
deleteRecipe() {
this.$emit("delete");
async deleteRecipe() {
if (
await this.$refs.confirm.open(
"Delete Recpie",
"Are you sure you want to delete this recipie?",
{ color: "error", icon: "mdi-alert-circle" }
)
) {
this.$emit("delete");
}
},
json() {
this.$emit("json");

View file

@ -1,14 +1,27 @@
<template>
<v-dialog v-model="addRecipe" width="650" @click:outside="reset">
<v-card :loading="processing">
<v-card-title class="headline"> From URL </v-card-title>
<v-dialog
v-model="dialog"
:max-width="options.width"
:style="{ zIndex: options.zIndex }"
@click:outside="cancel"
@keydown.esc="cancel"
>
<v-card>
<v-toolbar v-if="Boolean(title)" :color="options.color" dense flat>
<v-icon v-if="Boolean(options.icon)" left> {{ options.icon }}</v-icon>
<v-toolbar-title v-text="title" />
</v-toolbar>
<v-card-text> </v-card-text>
<v-card-text
v-show="!!message"
class="pa-4 text--primary"
v-html="message"
/>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="primary" text @click="createRecipe"> Exit </v-btn>
<v-btn color="primary" text @click="confirm"> Confirm </v-btn>
<v-btn color="grey" text @click="cancel"> Cancel </v-btn>
<v-btn :color="options.color" text @click="confirm"> Confirm </v-btn>
</v-card-actions>
</v-card>
</v-dialog>
@ -16,19 +29,42 @@
<script>
export default {
props: {
type: String,
},
data() {
return {};
},
methods: {
confirm() {
this.$emit("confirm");
name: "Confirmation",
data: () => ({
dialog: false, // Wether to show or not
resolve: null,
reject: null,
message: null,
title: null,
options: {
color: "error",
icon: "mdi-alert-circle",
width: 400,
zIndex: 200,
noconfirm: false,
},
}),
methods: {
open(title, message, options) {
this.dialog = true;
this.title = title;
this.message = message;
this.options = Object.assign(this.options, options);
return new Promise((resolve, reject) => {
this.resolve = resolve;
this.reject = reject;
});
},
cancel() {
this.resolve(false);
this.dialog = false;
},
confirm() {
this.resolve(true);
this.dialog = false;
},
exit() {
// do something?
}
},
};
</script>