diff --git a/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuDetail.vue b/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuDetail.vue
index c341108..426a8f1 100644
--- a/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuDetail.vue
+++ b/test/vuex/dashboard-user-mcu/components/oneDashboardUserMcuDetail.vue
@@ -42,7 +42,7 @@
>
- Assign Project
+ Assign Project
@@ -71,13 +71,14 @@ module.exports = {
displayName: '',
password: '',
selectedProject: null,
- projectKeyword: ''
+ projectKeyword: '',
+ pendingProjects: []
}
},
computed: {
selectedUser() { return this.$store.state.dashboard_user.selected_user || {} },
isEditMode() { return !!(this.selectedUser && this.selectedUser.User_ID) },
- assignedProjects() { return this.selectedUser.projects || [] },
+ assignedProjects() { return this.isEditMode ? (this.selectedUser.projects || []) : this.pendingProjects },
dialogsuccess() { return this.$store.state.dashboard_user.dialog_success },
msgsuccess() { return this.$store.state.dashboard_user.msg_success },
projectItems() {
@@ -94,6 +95,7 @@ module.exports = {
this.username = val.User_Username || ''
this.displayName = val.User_DisplayName || ''
this.password = ''
+ if (val && val.User_ID) this.pendingProjects = []
}
},
projectKeyword(val, old) {
@@ -139,7 +141,18 @@ module.exports = {
display_name: this.displayName
})
if (resp.status == 'OK') {
+ if (this.pendingProjects.length > 0) {
+ for (let i = 0; i < this.pendingProjects.length; i++) {
+ let p = this.pendingProjects[i]
+ await this.$store.dispatch('dashboard_user/assign_project', {
+ username: this.username,
+ mcu_id: p.mcu_id
+ })
+ }
+ this.pendingProjects = []
+ }
this.$store.commit('dashboard_user/update_selected_user', {})
+ this.refreshList()
} else {
alert(resp.message || 'Gagal simpan user')
}
@@ -172,10 +185,6 @@ module.exports = {
}
},
async assignProject() {
- if (!this.isEditMode) {
- alert('Simpan user dulu sebelum assign project')
- return
- }
if (!this.username) {
alert('Pilih atau isi username dulu')
return
@@ -184,6 +193,18 @@ module.exports = {
alert('Pilih project dulu')
return
}
+ if (!this.isEditMode) {
+ let exists = this.pendingProjects.find(p => p.mcu_id == this.selectedProject.mcu_id)
+ if (exists) {
+ this.selectedProject = null
+ this.projectKeyword = ''
+ return
+ }
+ this.pendingProjects.push(this.selectedProject)
+ this.selectedProject = null
+ this.projectKeyword = ''
+ return
+ }
let resp = await this.$store.dispatch('dashboard_user/assign_project', {
username: this.username,
mcu_id: this.selectedProject.mcu_id
@@ -197,7 +218,12 @@ module.exports = {
}
},
async removeProject(project) {
- if (!this.username || !project || !project.mcu_id) return
+ if (!project || !project.mcu_id) return
+ if (!this.isEditMode) {
+ this.pendingProjects = this.pendingProjects.filter(p => p.mcu_id != project.mcu_id)
+ return
+ }
+ if (!this.username) return
let resp = await this.$store.dispatch('dashboard_user/remove_project', {
username: this.username,
mcu_id: project.mcu_id
@@ -215,6 +241,7 @@ module.exports = {
this.password = ''
this.selectedProject = null
this.projectKeyword = ''
+ this.pendingProjects = []
}
}
}