Align dashboard user search with staff pattern

This commit is contained in:
sas.fajri
2026-05-08 09:53:32 +07:00
parent ffe422f657
commit a6a1d4edf3
2 changed files with 4 additions and 38 deletions

View File

@@ -13,8 +13,6 @@ export default {
limit: 20,
total_rows: 0,
total_pages: 0,
last_search_signature: '',
last_search_at: 0,
search_status: 0,
save_status: 0,
save_error_message: '',
@@ -32,8 +30,6 @@ export default {
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_last_search_signature(state, val) { state.last_search_signature = val },
update_last_search_at(state, val) { state.last_search_at = 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 },
@@ -42,23 +38,10 @@ export default {
},
actions: {
async search(context, prm) {
let normalized = {
username: (prm && prm.username ? prm.username : '').trim(),
project: (prm && prm.project ? prm.project : 'all'),
page: Number(prm && prm.page ? prm.page : context.state.page) || 1,
limit: Number(prm && prm.limit ? prm.limit : context.state.limit) || 20
}
let signature = JSON.stringify(normalized)
let now = Date.now()
if (signature === context.state.last_search_signature && (now - context.state.last_search_at) < 1000) {
return { status: 'SKIP' }
}
context.commit('update_last_search_signature', signature)
context.commit('update_last_search_at', now)
context.commit('update_search_status', 1)
try {
let payload = Object.assign({}, normalized, { token: one_token() })
let resp = await api.search(payload)
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)