From bf3af072eb7145c8c426dee92975aac54b2d2d88 Mon Sep 17 00:00:00 2001 From: wh1te909 Date: Sun, 3 May 2020 07:51:48 +0000 Subject: [PATCH] allow email settings to be changed dynamically --- .../modals/coresettings/EditCoreSettings.vue | 253 ++++++++++++------ 1 file changed, 176 insertions(+), 77 deletions(-) diff --git a/src/components/modals/coresettings/EditCoreSettings.vue b/src/components/modals/coresettings/EditCoreSettings.vue index a7a19ec..f203147 100644 --- a/src/components/modals/coresettings/EditCoreSettings.vue +++ b/src/components/modals/coresettings/EditCoreSettings.vue @@ -1,78 +1,136 @@ @@ -85,12 +143,53 @@ export default { mixins: [mixins], data() { return { - settings: {} + ready: false, + settings: {}, + email: null, + AddEmailModal: false, + tab: "alerts", + splitterModel: 15, + isPwd: true, + thumbStyle: { + right: "2px", + borderRadius: "5px", + backgroundColor: "#027be3", + width: "5px", + opacity: 0.75 + } }; }, methods: { getCoreSettings() { - axios.get("/core/getcoresettings/").then(r => (this.settings = r.data)); + axios.get("/core/getcoresettings/").then(r => { + this.settings = r.data; + this.ready = true; + }); + }, + toggleAddEmail() { + this.$q + .dialog({ + title: "Add email", + prompt: { + model: "", + isValid: val => this.isValidEmail(val), + type: "email" + }, + cancel: true, + ok: { label: "Add", color: "primary" }, + persistent: false + }) + .onOk(data => { + this.settings.email_alert_recipients.push(data); + }); + }, + removeEmail(email) { + const removed = this.settings.email_alert_recipients.filter(k => k !== email); + this.settings.email_alert_recipients = removed; + }, + isValidEmail(val) { + const email = /^(?=[a-zA-Z0-9@._%+-]{6,254}$)[a-zA-Z0-9._%+-]{1,64}@(?:[a-zA-Z0-9-]{1,63}\.){1,8}[a-zA-Z]{2,63}$/; + return email.test(val); }, editSettings() { this.$q.loading.show(); @@ -103,7 +202,7 @@ export default { }) .catch(() => { this.$q.loading.hide(); - this.notifyError("Something weng wrong"); + this.notifyError("You have some invalid input. Please check all fields"); }); } },