156 lines
6.9 KiB
JavaScript
156 lines
6.9 KiB
JavaScript
import * as api from "../api/dashboard_user.js"
|
|
|
|
export default {
|
|
namespaced: true,
|
|
state: {
|
|
users: [],
|
|
selected_user: {},
|
|
project_options: [],
|
|
search_username: '',
|
|
search_project: { mcu_id: 'all', project_number: 'All', project_name: 'Semua Project' },
|
|
project_keyword: '',
|
|
page: 1,
|
|
limit: 20,
|
|
total_rows: 0,
|
|
total_pages: 0,
|
|
search_status: 0,
|
|
save_status: 0,
|
|
save_error_message: '',
|
|
dialog_success: false,
|
|
msg_success: ''
|
|
},
|
|
mutations: {
|
|
update_users(state, val) { state.users = val },
|
|
update_selected_user(state, val) { state.selected_user = val },
|
|
update_project_options(state, val) { state.project_options = val },
|
|
update_search_username(state, val) { state.search_username = val },
|
|
update_search_project(state, val) { state.search_project = val },
|
|
update_project_keyword(state, val) { state.project_keyword = val },
|
|
update_page(state, val) { state.page = val },
|
|
update_limit(state, val) { state.limit = val },
|
|
update_total_rows(state, val) { state.total_rows = val },
|
|
update_total_pages(state, val) { state.total_pages = val },
|
|
update_search_status(state, val) { state.search_status = val },
|
|
update_save_status(state, val) { state.save_status = val },
|
|
update_save_error_message(state, val) { state.save_error_message = val },
|
|
update_dialog_success(state, val) { state.dialog_success = val },
|
|
update_msg_success(state, val) { state.msg_success = val }
|
|
},
|
|
actions: {
|
|
async search(context, prm) {
|
|
context.commit('update_search_status', 1)
|
|
try {
|
|
prm.token = one_token()
|
|
let resp = await api.search(prm)
|
|
if (resp.status != 'OK') {
|
|
context.commit('update_search_status', 3)
|
|
context.commit('update_save_error_message', resp.message)
|
|
} else {
|
|
let data = resp.data || {}
|
|
let records = data.records || []
|
|
context.commit('update_users', records)
|
|
context.commit('update_total_rows', data.pagination ? data.pagination.total_rows : 0)
|
|
context.commit('update_total_pages', data.pagination ? data.pagination.total_pages : 0)
|
|
context.commit('update_limit', data.pagination ? data.pagination.limit : 20)
|
|
let selected = context.state.selected_user || {}
|
|
if (selected.User_ID) {
|
|
let refreshed = records.find(function (item) {
|
|
return item.User_ID == selected.User_ID
|
|
})
|
|
if (refreshed) {
|
|
context.commit('update_selected_user', refreshed)
|
|
}
|
|
}
|
|
context.commit('update_search_status', 2)
|
|
}
|
|
} catch (e) {
|
|
context.commit('update_search_status', 3)
|
|
context.commit('update_save_error_message', e.message)
|
|
}
|
|
},
|
|
async search_project(context, prm) {
|
|
try {
|
|
prm.token = one_token()
|
|
let resp = await api.search_project(prm)
|
|
if (resp.status != 'OK') {
|
|
context.commit('update_project_options', [])
|
|
} else {
|
|
context.commit('update_project_options', resp.data.records || [])
|
|
}
|
|
} catch (e) {
|
|
context.commit('update_project_options', [])
|
|
}
|
|
},
|
|
async save(context, prm) {
|
|
context.commit('update_save_status', 1)
|
|
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)
|
|
return resp
|
|
}
|
|
context.commit('update_save_status', 2)
|
|
context.commit('update_msg_success', (resp.data && resp.data.message) ? resp.data.message : 'User berhasil disimpan')
|
|
context.commit('update_dialog_success', true)
|
|
return resp
|
|
},
|
|
async reset_password(context, prm) {
|
|
context.commit('update_save_status', 1)
|
|
prm.token = one_token()
|
|
let resp = await api.reset_password(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 : 'Password berhasil direset')
|
|
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()
|
|
let resp = await api.assign_project(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 : 'Project berhasil di-assign')
|
|
context.commit('update_dialog_success', true)
|
|
return resp
|
|
},
|
|
async remove_project(context, prm) {
|
|
context.commit('update_save_status', 1)
|
|
prm.token = one_token()
|
|
let resp = await api.remove_project(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 : 'Project berhasil dihapus')
|
|
context.commit('update_dialog_success', true)
|
|
return resp
|
|
}
|
|
}
|
|
}
|