This commit is contained in:
2021-03-12 00:48:37 +00:00
parent 3c726defa6
commit 765c25987a

View File

@@ -34,7 +34,7 @@
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-btn color="primary" text @click="authenticate()">{{ <v-btn color="primary" text @click="authenticate()">{{
$ay.t("OK") $ay.t("Save")
}}</v-btn> }}</v-btn>
</v-card-actions> </v-card-actions>
</v-card> </v-card>
@@ -88,17 +88,6 @@ export default {
window.$gz.errorHandler.handleFormError(err, vm); window.$gz.errorHandler.handleFormError(err, vm);
} }
}, },
async beforeRouteLeave(to, from, next) {
if (!this.formState.dirty) {
next();
return;
}
if ((await window.$gz.dialog.confirmLeaveUnsaved()) === true) {
next();
} else {
next(false);
}
},
beforeDestroy() { beforeDestroy() {
window.$gz.eventBus.$off("menu-click", clickHandler); window.$gz.eventBus.$off("menu-click", clickHandler);
}, },
@@ -125,37 +114,37 @@ export default {
}; };
}, },
//WATCHERS //WATCHERS
watch: { // watch: {
formState: { // formState: {
handler: function(val) { // handler: function(val) {
//,oldval is available here too if necessary // //,oldval is available here too if necessary
if (this.formState.loading) { // if (this.formState.loading) {
return; // return;
} // }
//enable / disable save button // //enable / disable save button
let canSave = val.dirty && val.valid && !val.readOnly; // let canSave = val.dirty && val.valid && !val.readOnly;
if (canSave) { // if (canSave) {
window.$gz.eventBus.$emit("menu-enable-item", FORM_KEY + ":save"); // window.$gz.eventBus.$emit("menu-enable-item", FORM_KEY + ":save");
} else { // } else {
window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":save"); // window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":save");
} // }
}, // },
deep: true // deep: true
} // }
}, // },
computed: { computed: {
canSave: function() { // canSave: function() {
return this.formState.valid && this.formState.dirty; // return this.formState.valid && this.formState.dirty;
}, // },
qCode: function() { qCode: function() {
return `data:image/png;base64,${this.obj.qr}`; return `data:image/png;base64,${this.obj.qr}`;
} }
}, },
methods: { methods: {
translation() { // translation() {
return window.$gz.translation; // return window.$gz.translation;
}, // },
form() { form() {
return window.$gz.form; return window.$gz.form;
}, },
@@ -164,35 +153,34 @@ export default {
window.$gz.form.fieldValueChanged(this, ref); window.$gz.form.fieldValueChanged(this, ref);
} }
}, },
async authenticate() { async authenticate() {
let vm = this; let vm = this;
if (vm.canSave) {
vm.formState.loading = true;
//always submit from this form for the current logged in user id vm.formState.loading = true;
let url = API_BASE_URL;
//clear any errors vm might be around from previous submit //clear any errors vm might be around from previous submit
window.$gz.form.deleteAllErrorBoxErrors(vm); window.$gz.form.deleteAllErrorBoxErrors(vm);
try { try {
let res = await window.$gz.api.upsert(url, vm.pin); let res = await window.$gz.api.post("auth/totp-validate", {
pin: vm.pin
});
if (res.error) { if (res.error) {
vm.formState.serverError = res.error; vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm); window.$gz.form.setErrorBoxErrors(vm);
} else { } else {
//Only a post, no data returned console.log(res);
window.$gz.form.setFormState({ //Only a post, no data returned
vm: vm, window.$gz.form.setFormState({
dirty: false vm: vm,
}); dirty: false
} });
} catch (error) {
window.$gz.errorHandler.handleFormError(error, vm);
} finally {
vm.loading = false;
} }
} catch (error) {
window.$gz.errorHandler.handleFormError(error, vm);
} finally {
vm.loading = false;
} }
} }
} }
@@ -208,9 +196,9 @@ function clickHandler(menuItem) {
let m = window.$gz.menu.parseMenuItem(menuItem); let m = window.$gz.menu.parseMenuItem(menuItem);
if (m.owner == FORM_KEY && !m.disabled) { if (m.owner == FORM_KEY && !m.disabled) {
switch (m.key) { switch (m.key) {
case "save": // case "save":
m.vm.submit(); // m.vm.submit();
break; // break;
default: default:
window.$gz.eventBus.$emit( window.$gz.eventBus.$emit(
@@ -236,17 +224,17 @@ function generateMenu(vm) {
menuItems: [] menuItems: []
}; };
if (vm.rights.change) { // if (vm.rights.change) {
menuOptions.menuItems.push({ // menuOptions.menuItems.push({
title: "Save", // title: "Save",
icon: "$ayiSave", // icon: "$ayiSave",
surface: true, // surface: true,
key: FORM_KEY + ":save", // key: FORM_KEY + ":save",
vm: vm // vm: vm
}); // });
} // }
window.$gz.eventBus.$emit("menu-change", menuOptions); // window.$gz.eventBus.$emit("menu-change", menuOptions);
} }
///////////////////////////////// /////////////////////////////////
@@ -266,7 +254,9 @@ async function fetchTranslatedText(vm) {
"AuthConnectAppSubTitle", "AuthConnectAppSubTitle",
"AuthConnectAppManualEntry", "AuthConnectAppManualEntry",
"AuthEnterPin", "AuthEnterPin",
"AuthTwoFactor" "AuthTwoFactor",
"AuthPinInvalid",
"AuthConnectCompleted"
]); ]);
} }
</script> </script>