diff --git a/ayanova/src/views/adm-user.vue b/ayanova/src/views/adm-user.vue
index a99a6a27..66f0e11f 100644
--- a/ayanova/src/views/adm-user.vue
+++ b/ayanova/src/views/adm-user.vue
@@ -419,8 +419,52 @@
-
-
+
+
+
+ {{ $ay.t("SendEmail") }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ $ay.t("Close")
+ }}
+
+ {{ $ay.t("OK") }}
+
+
+
@@ -490,7 +534,10 @@ export default {
serverError: {}
},
rights: window.$gz.role.defaultRightsObject(),
- ayaType: window.$gz.type.User
+ ayaType: window.$gz.type.User,
+ emailDialog: false,
+ subject: null,
+ message: null
};
},
watch: {
@@ -586,6 +633,37 @@ export default {
window.$gz.eventBus.$off("menu-click", clickHandler);
},
methods: {
+ async sendEmail() {
+ if (
+ this.obj.id == 0 ||
+ this.subject == null ||
+ this.message == null ||
+ window.$gz.util.stringIsNullOrEmpty(this.obj.emailAddress)
+ ) {
+ return;
+ }
+ window.$gz.form.deleteAllErrorBoxErrors(this);
+ try {
+ const res = await window.$gz.api.upsert("notify/direct-smtp", {
+ ObjectId: this.obj.id,
+ aType: this.ayaType,
+ toAddress: this.obj.emailAddress,
+ subject: this.subject,
+ textBody: this.message
+ });
+ if (res.error) {
+ this.formState.serverError = res.error;
+ window.$gz.form.setErrorBoxErrors(this);
+ }
+ } catch (error) {
+ window.$gz.form.setFormState({
+ vm: this,
+ loading: false
+ });
+ window.$gz.errorHandler.handleFormError(error, this);
+ }
+ this.emailDialog = false;
+ },
goHelp() {
window.open(window.$gz.api.helpUrl() + "ay-start-localization", "_blank");
},
@@ -924,6 +1002,9 @@ async function clickHandler(menuItem) {
}
});
break;
+ case "sendemail":
+ m.vm.emailDialog = true;
+ break;
default:
window.$gz.eventBus.$emit(
"notify-warning",
@@ -1043,6 +1124,19 @@ function generateMenu(vm) {
}
}
+ if (
+ vm.rights.change &&
+ vm.$route.params.recordid != 0 &&
+ !window.$gz.util.stringIsNullOrEmpty(vm.obj.emailAddress)
+ ) {
+ menuOptions.menuItems.push({
+ title: "SendEmail",
+ icon: "$ayiAt",
+ key: FORM_KEY + ":sendemail",
+ vm: vm
+ });
+ }
+
menuOptions.menuItems.push({ divider: true, inset: false });
window.$gz.eventBus.$emit("menu-change", menuOptions);
@@ -1109,7 +1203,8 @@ async function fetchTranslatedText() {
"AuthTwoFactorDisabled",
"WorkOrderItemScheduledUserList",
"WorkOrderItemLaborList",
- "AllowLogin"
+ "AllowLogin",
+ "SendEmail"
]);
}
diff --git a/ayanova/src/views/cust-head-office.vue b/ayanova/src/views/cust-head-office.vue
index 95e1c3ba..fac3763c 100644
--- a/ayanova/src/views/cust-head-office.vue
+++ b/ayanova/src/views/cust-head-office.vue
@@ -672,6 +672,51 @@
+
+
+
+ {{ $ay.t("SendEmail") }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ $ay.t("Close")
+ }}
+
+ {{ $ay.t("OK") }}
+
+
+
@@ -742,7 +787,10 @@ export default {
availableRoles: [],
timeZoneName: window.$gz.locale.getResolvedTimeZoneName(),
languageName: window.$gz.locale.getResolvedLanguage(),
- hour12: window.$gz.locale.getHour12()
+ hour12: window.$gz.locale.getHour12(),
+ emailDialog: false,
+ subject: null,
+ message: null
};
},
watch: {
@@ -846,6 +894,37 @@ export default {
// });
// }
// },
+ async sendEmail() {
+ if (
+ this.obj.id == 0 ||
+ this.subject == null ||
+ this.message == null ||
+ window.$gz.util.stringIsNullOrEmpty(this.obj.emailAddress)
+ ) {
+ return;
+ }
+ window.$gz.form.deleteAllErrorBoxErrors(this);
+ try {
+ const res = await window.$gz.api.upsert("notify/direct-smtp", {
+ ObjectId: this.obj.id,
+ aType: this.ayaType,
+ toAddress: this.obj.emailAddress,
+ subject: this.subject,
+ textBody: this.message
+ });
+ if (res.error) {
+ this.formState.serverError = res.error;
+ window.$gz.form.setErrorBoxErrors(this);
+ }
+ } catch (error) {
+ window.$gz.form.setFormState({
+ vm: this,
+ loading: false
+ });
+ window.$gz.errorHandler.handleFormError(error, this);
+ }
+ this.emailDialog = false;
+ },
canSave: function() {
return this.formState.valid && this.formState.dirty;
},
@@ -1254,6 +1333,9 @@ async function clickHandler(menuItem) {
}
});
break;
+ case "sendemail":
+ m.vm.emailDialog = true;
+ break;
default:
window.$gz.eventBus.$emit(
"notify-warning",
@@ -1352,6 +1434,19 @@ function generateMenu(vm) {
vm: vm
});
+ if (
+ vm.rights.change &&
+ vm.$route.params.recordid != 0 &&
+ !window.$gz.util.stringIsNullOrEmpty(vm.obj.emailAddress)
+ ) {
+ menuOptions.menuItems.push({
+ title: "SendEmail",
+ icon: "$ayiAt",
+ key: FORM_KEY + ":sendemail",
+ vm: vm
+ });
+ }
+
menuOptions.menuItems.push({ divider: true, inset: false });
window.$gz.eventBus.$emit("menu-change", menuOptions);
}
@@ -1425,7 +1520,8 @@ async function fetchTranslatedText() {
"UserPageAddress",
"Contact",
"LastLogin",
- "CustomerList"
+ "CustomerList",
+ "SendEmail"
]);
}
diff --git a/ayanova/src/views/cust-user.vue b/ayanova/src/views/cust-user.vue
index 1b134e9c..aaa282ba 100644
--- a/ayanova/src/views/cust-user.vue
+++ b/ayanova/src/views/cust-user.vue
@@ -411,6 +411,51 @@
+
+
+
+ {{ $ay.t("SendEmail") }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ $ay.t("Close")
+ }}
+
+ {{ $ay.t("OK") }}
+
+
+
@@ -479,7 +524,10 @@ export default {
serverError: {}
},
rights: window.$gz.role.defaultRightsObject(),
- ayaType: window.$gz.type.User
+ ayaType: window.$gz.type.User,
+ emailDialog: false,
+ subject: null,
+ message: null
};
},
watch: {
@@ -588,6 +636,37 @@ export default {
window.$gz.eventBus.$off("menu-click", clickHandler);
},
methods: {
+ async sendEmail() {
+ if (
+ this.obj.id == 0 ||
+ this.subject == null ||
+ this.message == null ||
+ window.$gz.util.stringIsNullOrEmpty(this.obj.emailAddress)
+ ) {
+ return;
+ }
+ window.$gz.form.deleteAllErrorBoxErrors(this);
+ try {
+ const res = await window.$gz.api.upsert("notify/direct-smtp", {
+ ObjectId: this.obj.id,
+ aType: this.ayaType,
+ toAddress: this.obj.emailAddress,
+ subject: this.subject,
+ textBody: this.message
+ });
+ if (res.error) {
+ this.formState.serverError = res.error;
+ window.$gz.form.setErrorBoxErrors(this);
+ }
+ } catch (error) {
+ window.$gz.form.setFormState({
+ vm: this,
+ loading: false
+ });
+ window.$gz.errorHandler.handleFormError(error, this);
+ }
+ this.emailDialog = false;
+ },
goHelp() {
window.open(window.$gz.api.helpUrl() + "ay-start-localization", "_blank");
},
@@ -898,6 +977,9 @@ async function clickHandler(menuItem) {
case "disable2fa":
m.vm.disableTfa();
break;
+ case "sendemail":
+ m.vm.emailDialog = true;
+ break;
default:
window.$gz.eventBus.$emit(
"notify-warning",
@@ -998,6 +1080,20 @@ function generateMenu(vm) {
}
}
}
+
+ if (
+ vm.rights.change &&
+ vm.$route.params.recordid != 0 &&
+ !window.$gz.util.stringIsNullOrEmpty(vm.obj.emailAddress)
+ ) {
+ menuOptions.menuItems.push({
+ title: "SendEmail",
+ icon: "$ayiAt",
+ key: FORM_KEY + ":sendemail",
+ vm: vm
+ });
+ }
+
menuOptions.menuItems.push({ divider: true, inset: false });
window.$gz.eventBus.$emit("menu-change", menuOptions);
}
@@ -1062,7 +1158,8 @@ async function fetchTranslatedText() {
"SendPasswordResetCode",
"AuthDisableTwoFactor",
"AuthTwoFactorDisabled",
- "AllowLogin"
+ "AllowLogin",
+ "SendEmail"
]);
}
diff --git a/ayanova/src/views/vendor.vue b/ayanova/src/views/vendor.vue
index 567677fb..2c6d6dbd 100644
--- a/ayanova/src/views/vendor.vue
+++ b/ayanova/src/views/vendor.vue
@@ -602,6 +602,51 @@
+
+
+
+ {{ $ay.t("SendEmail") }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ $ay.t("Close")
+ }}
+
+ {{ $ay.t("OK") }}
+
+
+
@@ -661,7 +706,10 @@ export default {
serverError: {}
},
rights: window.$gz.role.defaultRightsObject(),
- ayaType: window.$gz.type.Vendor
+ ayaType: window.$gz.type.Vendor,
+ emailDialog: false,
+ subject: null,
+ message: null
};
},
watch: {
@@ -753,6 +801,37 @@ export default {
window.$gz.eventBus.$off("menu-click", clickHandler);
},
methods: {
+ async sendEmail() {
+ if (
+ this.obj.id == 0 ||
+ this.subject == null ||
+ this.message == null ||
+ window.$gz.util.stringIsNullOrEmpty(this.obj.emailAddress)
+ ) {
+ return;
+ }
+ window.$gz.form.deleteAllErrorBoxErrors(this);
+ try {
+ const res = await window.$gz.api.upsert("notify/direct-smtp", {
+ ObjectId: this.obj.id,
+ aType: this.ayaType,
+ toAddress: this.obj.emailAddress,
+ subject: this.subject,
+ textBody: this.message
+ });
+ if (res.error) {
+ this.formState.serverError = res.error;
+ window.$gz.form.setErrorBoxErrors(this);
+ }
+ } catch (error) {
+ window.$gz.form.setFormState({
+ vm: this,
+ loading: false
+ });
+ window.$gz.errorHandler.handleFormError(error, this);
+ }
+ this.emailDialog = false;
+ },
canSave: function() {
return this.formState.valid && this.formState.dirty;
},
@@ -1046,6 +1125,9 @@ async function clickHandler(menuItem) {
addressPostal: m.vm.obj.addressPostal
});
break;
+ case "sendemail":
+ m.vm.emailDialog = true;
+ break;
default:
window.$gz.eventBus.$emit(
"notify-warning",
@@ -1139,6 +1221,19 @@ function generateMenu(vm) {
vm: vm
});
+ if (
+ vm.rights.change &&
+ vm.$route.params.recordid != 0 &&
+ !window.$gz.util.stringIsNullOrEmpty(vm.obj.emailAddress)
+ ) {
+ menuOptions.menuItems.push({
+ title: "SendEmail",
+ icon: "$ayiAt",
+ key: FORM_KEY + ":sendemail",
+ vm: vm
+ });
+ }
+
menuOptions.menuItems.push({ divider: true, inset: false });
window.$gz.eventBus.$emit("menu-change", menuOptions);
@@ -1206,7 +1301,8 @@ async function fetchTranslatedText() {
"VendorCustom13",
"VendorCustom14",
"VendorCustom15",
- "VendorCustom16"
+ "VendorCustom16",
+ "SendEmail"
]);
}