diff --git a/test/vuex/one-md-email-notification-config/api/form.js b/test/vuex/one-md-email-notification-config/api/form.js
new file mode 100644
index 0000000..ebe92ca
--- /dev/null
+++ b/test/vuex/one-md-email-notification-config/api/form.js
@@ -0,0 +1,39 @@
+const URL = "/one-api/mockup/email_notification/Config_email/";
+
+export async function getdata(token,id) {
+ try {
+ var resp = await axios.post(URL + 'getdata', { token:token });
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function save(prm) {
+ try {
+ var resp = await axios.post(URL + 'save', prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
diff --git a/test/vuex/one-md-email-notification-config/api/listing.js b/test/vuex/one-md-email-notification-config/api/listing.js
new file mode 100644
index 0000000..674bfb3
--- /dev/null
+++ b/test/vuex/one-md-email-notification-config/api/listing.js
@@ -0,0 +1,78 @@
+const URL = "/one-api/mockup/email_notification/Config_email/";
+
+export async function lookup(token, search,all ) {
+ try {
+ var resp = await axios.post(URL + 'lookup', { token: token, search: search, all:all });
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function save(prm) {
+ try {
+ var resp = await axios.post(URL + 'save', prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function update(prm) {
+ try {
+ var resp = await axios.post(URL + 'update', prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+
+export async function xdelete(token,id) {
+ try {
+ var resp = await axios.post(URL + 'delete', { id: id, token:token });
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
diff --git a/test/vuex/one-md-email-notification-config/components/oneMdEmailNotificationConfig.vue b/test/vuex/one-md-email-notification-config/components/oneMdEmailNotificationConfig.vue
new file mode 100644
index 0000000..3db45a3
--- /dev/null
+++ b/test/vuex/one-md-email-notification-config/components/oneMdEmailNotificationConfig.vue
@@ -0,0 +1,246 @@
+
+
+
+ {{msgsnackbar}}
+
+ Tutup
+
+
+
+
+
+ Email Notification Konfigurasi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FORMAT EMAIL APS
+
+
+
+
+
+
+
+
+
+
+
+
+ SIMPAN
+
+
+
+
+
+
+ Tampilan Email
+
+
+ FORMAT EMAIL APD
+
+
+
+
+
+
+
+
+
+
+ FORMAT EMAIL APS
+
+
+
+
+
+
+
+
+ FORMAT EMAIL REKANAN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/vuex/one-md-email-notification-config/index.php b/test/vuex/one-md-email-notification-config/index.php
new file mode 100644
index 0000000..9b506ca
--- /dev/null
+++ b/test/vuex/one-md-email-notification-config/index.php
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+ One
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/vuex/one-md-email-notification-config/modules/form.js b/test/vuex/one-md-email-notification-config/modules/form.js
new file mode 100644
index 0000000..7494675
--- /dev/null
+++ b/test/vuex/one-md-email-notification-config/modules/form.js
@@ -0,0 +1,139 @@
+// 1 => LOADING
+// 2 => DONE
+// 3 => ERROR
+import * as api from "../api/form.js"
+
+export default {
+ namespaced: true,
+ state: {
+ errors:[],
+ save_status: 0,
+ save_error_message: '',
+ get_data_status: 0,
+ get_data_error_message: '',
+ xid:0,
+ sender:'',
+ server:'',
+ username:'',
+ password:'',
+ maxretry:0,
+ emailcc:'',
+ formatemail:'',
+ formatemailaps:'',
+ formatemailrk:'',
+ formatemailwaaps: '',
+ formatemailwagreetingaps: '',
+ alert_success:false,
+ msg_success: "",
+ },
+ mutations: {
+ update_errors(state, val) {
+ state.errors = val
+ },
+ update_save_status(state, val) {
+ state.save_status = val
+ },
+ update_save_error_message(state, val) {
+ state.save_error_message = val
+ },
+ update_get_data_status(state, val) {
+ state.get_data_status = val
+ },
+ update_get_data_error_message(state, val) {
+ state.get_data_error_message = val
+ },
+ update_xid(state, val) {
+ state.xid = val
+ },
+ update_sender(state, val) {
+ state.sender = val
+ },
+ update_server(state, val) {
+ state.server = val
+ },
+ update_username(state, val) {
+ state.username = val
+ },
+ update_password(state, val) {
+ state.password = val
+ },
+ update_maxretry(state, val) {
+ state.maxretry = val
+ },
+ update_emailcc(state, val) {
+ state.emailcc = val
+ },
+ update_formatemail(state, val) {
+ state.formatemail = val
+ },
+ update_formatemailaps(state, val) {
+ state.formatemailaps = val
+ },
+ update_formatemailrk(state, val) {
+ state.formatemailrk = val
+ },
+ update_formatemailwaaps(state, val) {
+ state.formatemailwaaps = val
+ },
+ update_formatemailwagreetingaps(state, val) {
+ state.formatemailwagreetingaps = val
+ },
+ update_alert_success(state, val) {
+ state.alert_success = val
+ },
+ update_msg_success(state, val) {
+ state.msg_success = val
+ }
+ },
+ actions: {
+ async getdata(context) {
+ context.commit("update_get_data_status", 1)
+ try {
+ let resp = await api.getdata(one_token())
+ if (resp.status != "OK") {
+ context.commit("update_get_data_status", 3)
+ } else {
+ context.commit("update_get_data_status", 2)
+ let data = {
+ records: resp.data.records,
+ total: resp.data.total
+ }
+ context.commit("update_save_status",2)
+ context.commit("update_xid", data.records.M_EmailConfigID)
+ context.commit("update_sender", data.records.M_EmailConfigSender)
+ context.commit("update_server", data.records.M_EmailConfigServer)
+ context.commit("update_username", data.records.M_EmailConfigUsername)
+ context.commit("update_password", data.records.M_EmailConfigPassword)
+ context.commit("update_maxretry", data.records.M_EmailConfigMaxRetry)
+ context.commit("update_emailcc", data.records.M_EmailConfigCc)
+ context.commit("update_formatemail", data.records.M_EmailConfigResultFormatAPD)
+ context.commit("update_formatemailaps", data.records.M_EmailConfigResultFormatAPS)
+ context.commit("update_formatemailrk", data.records.M_EmailConfigResultFormatRK)
+ context.commit("update_formatemailwaaps", data.records.M_EmailConfigWaAPS)
+ context.commit("update_formatemailwagreetingaps", data.records.M_EmailConfigWaGreetingAPS)
+ }
+ } catch (e) {
+ context.commit("update_get_data_status", 3)
+ }
+ },
+ async save(context,prm) {
+ context.commit("update_save_status",1)
+ try {
+ prm.token = one_token()
+ let resp= await api.save(prm)
+ if (resp.status != "OK") {
+ context.commit("update_save_status",3)
+ } else {
+ context.commit("update_save_status",2)
+
+ var msg = "Email Konfigurasi sudah terupdate dong ..."
+ context.commit("update_msg_success", msg)
+ context.commit("update_alert_success", true)
+ context.dispatch("getdata")
+ }
+ } catch(e) {
+ context.commit("update_save_status",3)
+ }
+ }
+ }
+}
diff --git a/test/vuex/one-md-email-notification-config/modules/listing.js b/test/vuex/one-md-email-notification-config/modules/listing.js
new file mode 100644
index 0000000..27405bd
--- /dev/null
+++ b/test/vuex/one-md-email-notification-config/modules/listing.js
@@ -0,0 +1,198 @@
+// 1 => LOADING
+// 2 => DONE
+// 3 => ERROR
+import * as api from "../api/listing.js"
+
+export default {
+ namespaced: true,
+ state: {
+ act:'new',
+ lookup_bahan: 0,
+ lookup_error_message: '',
+ bahans: [],
+ total_bahans: 0,
+ total_filter_bahans: 0,
+ selected_bahan: { name: "[ Belum memilih Bahan ]" },
+ save_status: 0,
+ save_error_message: '',
+ dialog_form_bahan: false,
+ dialog_edit_form_bahan:false,
+ alert_success: false,
+ msg_success: "",
+ show_all:'N',
+ errors:[]
+ },
+ mutations: {
+ update_act(state, val) {
+ state.act = val
+ },
+ update_errors(state, val) {
+ state.errors = val
+ },
+ update_show_all(state, val) {
+ state.show_all = val
+ },
+ update_lookup_error_message(state, status) {
+ state.lookup_error_message = status
+ },
+ update_lookup_bahan(state, status) {
+ state.lookup_bahan = status
+ },
+ update_bahans(state, data) {
+ state.bahans = data.records
+ state.total_bahans = data.total
+ state.total_filter_bahans = data.total_filter
+ },
+ update_selected_bahan(state, val) {
+ state.selected_bahan = val
+ },
+ update_save_status(state, val) {
+ state.save_status = val
+ },
+ update_save_error_message(state, val) {
+ state.save_error_message = val
+ },
+ update_dialog_form_bahan(state, val) {
+ state.dialog_form_bahan = val
+ },
+ update_dialog_edit_form_bahan(state, val) {
+ state.dialog_edit_form_bahan = val
+ },
+ update_alert_success(state, val) {
+ state.alert_success = val
+ },
+ update_msg_success(state, val) {
+ state.msg_success = val
+ }
+
+ },
+ actions: {
+ async lookup(context, prm) {
+ context.commit("update_lookup_bahan", 1)
+ try {
+ let resp = await api.lookup(one_token(), prm.search, prm.all)
+ if (resp.status != "OK") {
+ context.commit("update_lookup_bahan", 3)
+ context.commit("update_lookup_error_message", resp.message)
+ } else {
+ context.commit("update_lookup_bahan", 2)
+ context.commit("update_lookup_error_message", "")
+ let data = {
+ records: resp.data.records,
+ total: resp.data.total,
+ total_filter: resp.data.total_filter
+ }
+ context.commit("update_bahans", data)
+ }
+ } catch (e) {
+ context.commit("update_lookup_bahan", 3)
+ context.commit("update_lookup_error_message", e.message)
+ }
+ },
+ async save(context, prm) {
+ context.commit("update_save_status", 1)
+ context.commit("update_error_code", false)
+ context.commit("update_error_name", false)
+ try {
+ prm.token = one_token()
+ let resp = await api.save(prm)
+ if (resp.status != "OK") {
+ context.commit("update_save_status", 3)
+ context.commit("update_save_error_message", resp.message)
+ } else {
+ context.commit("update_save_status", 2)
+ context.commit("update_save_error_message", resp.message)
+ context.commit("update_save_error_message", resp.message)
+ var data = {
+ records: resp.data.records,
+ total: resp.data.total
+ }
+
+ if(data.total !== -1){
+ context.commit("update_errors",[])
+ context.commit("update_alert_success", true)
+ context.commit("update_dialog_form_bahan", false)
+ var msg = "Bahan " + prm.name + " sudah tersimpan dong ..."
+ context.commit("update_msg_success", msg)
+ context.dispatch("lookup", { search: "" , all:context.show_all})
+ }else{
+ context.commit("update_errors", resp.data.errors)
+
+ }
+
+ }
+ } catch (e) {
+ context.commit("update_save_status", 3)
+ context.commit("update_save_error_message", e.message)
+ console.log(e)
+ }
+ },
+ async update(context, prm) {
+ context.commit("update_save_status", 1)
+ context.commit("update_error_code", false)
+ context.commit("update_error_name", false)
+ try {
+ prm.token = one_token()
+ let resp = await api.update(prm)
+ if (resp.status != "OK") {
+ context.commit("update_save_status", 3)
+ context.commit("update_save_error_message", resp.message)
+ } else {
+ context.commit("update_save_status", 2)
+ context.commit("update_save_error_message", resp.message)
+ context.commit("update_save_error_message", resp.message)
+ let data = {
+ records: resp.data.records,
+ total: resp.data.total
+ }
+
+ if(data.total !== -1){
+ context.commit("update_error_code", false)
+ context.commit("update_error_name", false)
+ context.commit("update_alert_success", true)
+ context.commit("update_dialog_form_bahan", false)
+ var msg = "Bahan " + prm.name + " sudah terupdate dong ..."
+ context.commit("update_msg_success", msg)
+ context.dispatch("lookup", { search: "" , all:context.show_all})
+ }else{
+ if(resp.data.errorcode === 'Y'){
+ context.commit("update_error_code", true)
+ }
+ if(resp.data.errorname === 'Y'){
+ context.commit("update_error_name", true)
+ }
+ }
+
+ }
+ } catch (e) {
+ context.commit("update_save_status", 3)
+ context.commit("update_save_error_message", e.message)
+ console.log(e)
+ }
+ },
+ async delete(context, prm) {
+ context.commit("update_save_status", 1)
+ try {
+ let resp = await api.xdelete(one_token(),prm.bahanid)
+ if (resp.status != "OK") {
+ context.commit("update_save_status", 3)
+ context.commit("update_save_error_message", resp.message)
+ } else {
+ context.commit("update_save_status", 2)
+ context.commit("update_save_error_message", resp.message)
+ context.commit("update_alert_success", true)
+
+ var msg = "Schedule " + prm.bahanname + " sudah dihapus dong"
+ context.commit("update_msg_success", msg)
+ context.commit("update_alert_success", true)
+ context.commit("update_selected_bahan", {})
+ context.dispatch("lookup", { search: "" })
+ context.commit("sampletype/update_bahan_sampletype", [], { root: true })
+ }
+ } catch (e) {
+ context.commit("update_save_status", 3)
+ console.log(e)
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/vuex/one-md-email-notification-config/store.js b/test/vuex/one-md-email-notification-config/store.js
new file mode 100644
index 0000000..906bec3
--- /dev/null
+++ b/test/vuex/one-md-email-notification-config/store.js
@@ -0,0 +1,23 @@
+// State
+// data ...
+// Mutations
+//
+//
+// Actions
+import form from "./modules/form.js";
+import system from "../../../apps/modules/system/system.js";
+export const store = new Vuex.Store({
+ modules: {
+ form: form,
+ system:system
+ },
+ state: {
+
+ },
+ mutations: {
+
+ },
+ actions: {
+
+ }
+});