From e7697f7827caad5a3d8c819875fc6e98b6565667 Mon Sep 17 00:00:00 2001 From: "sas.fajri" Date: Fri, 8 May 2026 11:06:01 +0700 Subject: [PATCH] Add remove user action on dashboard --- .../dashboard-user-mcu/api/dashboard_user.js | 4 ++++ .../components/oneDashboardUserMcuDetail.vue | 20 ++++++++++++++++++- .../modules/dashboard_user.js | 14 +++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/test/vuex/dashboard-user-mcu/api/dashboard_user.js b/test/vuex/dashboard-user-mcu/api/dashboard_user.js index 5bbdccc..27eda89 100644 --- a/test/vuex/dashboard-user-mcu/api/dashboard_user.js +++ b/test/vuex/dashboard-user-mcu/api/dashboard_user.js @@ -26,6 +26,10 @@ export async function reset_password(prm) { return post('reset_password', prm) } +export async function remove_user(prm) { + return post('remove_user', prm) +} + export async function assign_project(prm) { return post('assign_project', prm) } diff --git a/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuDetail.vue b/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuDetail.vue index 3a90875..8975e68 100644 --- a/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuDetail.vue +++ b/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuDetail.vue @@ -18,12 +18,13 @@ Baru Simpan Reset Password + Hapus User - + @@ -75,6 +76,7 @@ module.exports = { }, computed: { selectedUser() { return this.$store.state.dashboard_user.selected_user || {} }, + isEditMode() { return !!(this.selectedUser && this.selectedUser.User_ID) }, assignedProjects() { return this.selectedUser.projects || [] }, dialogsuccess() { return this.$store.state.dashboard_user.dialog_success }, msgsuccess() { return this.$store.state.dashboard_user.msg_success }, @@ -153,6 +155,22 @@ module.exports = { alert(resp.message || 'Gagal reset password') } }, + async removeUser() { + if (!this.isEditMode || !this.username) { + alert('Pilih user dulu') + return + } + if (!window.confirm('Hapus user ini?')) return + let resp = await this.$store.dispatch('dashboard_user/remove_user', { + username: this.username + }) + if (resp.status == 'OK') { + this.newForm() + this.refreshList() + } else { + alert(resp.message || 'Gagal hapus user') + } + }, async assignProject() { if (!this.username) { alert('Pilih atau isi username dulu') diff --git a/test/vuex/dashboard-user-mcu/modules/dashboard_user.js b/test/vuex/dashboard-user-mcu/modules/dashboard_user.js index a95b093..2996ba3 100644 --- a/test/vuex/dashboard-user-mcu/modules/dashboard_user.js +++ b/test/vuex/dashboard-user-mcu/modules/dashboard_user.js @@ -109,6 +109,20 @@ export default { context.commit('update_dialog_success', true) return resp }, + async remove_user(context, prm) { + context.commit('update_save_status', 1) + prm.token = one_token() + let resp = await api.remove_user(prm) + if (resp.status != 'OK') { + context.commit('update_save_status', 3) + context.commit('update_save_error_message', resp.message) + return resp + } + context.commit('update_save_status', 2) + context.commit('update_msg_success', (resp.data && resp.data.message) ? resp.data.message : 'User berhasil dihapus') + context.commit('update_dialog_success', true) + return resp + }, async assign_project(context, prm) { context.commit('update_save_status', 1) prm.token = one_token()