52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
import Alpine from "./alpine.module.esm.min.js";
|
|
import persist from './persist.module.esm.min.js';
|
|
|
|
Alpine.plugin(persist)
|
|
window.Alpine = Alpine
|
|
|
|
Alpine.data("main", () => ({
|
|
/*
|
|
passwordDialog
|
|
*/
|
|
isDialogSetPasswordOpen: false,
|
|
password: '',
|
|
confirm_password: '',
|
|
isLoading: false,
|
|
error: '',
|
|
openDialogSetPassword(){
|
|
this.isDialogSetPasswordOpen = true;
|
|
},
|
|
closeDialogSetPassword(){
|
|
this.isDialogSetPasswordOpen = false;
|
|
},
|
|
savePassword(userid) {
|
|
this.error = '';
|
|
if(!this.password) { this.error = "Password is required"; return; }
|
|
if(this.password !== this.confirm_password) { this.error = "Passwords do not match"; return; }
|
|
this.isLoading = true;
|
|
fetch(BASEURL + '/setPassword', {
|
|
method: 'PATCH',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({ userid: userid, password: this.password })
|
|
})
|
|
.then(res => res.json())
|
|
.then(data => {
|
|
this.isLoading = false;
|
|
if(data.status === 'success') {
|
|
alert('Password changed successfully');
|
|
this.password = '';
|
|
this.confirm_password = '';
|
|
this.closeDialogSetPassword();
|
|
} else {
|
|
this.error = data.message || 'Unknown error occurred';
|
|
}
|
|
})
|
|
.catch(err => {
|
|
this.isLoading = false;
|
|
this.error = 'Network error occurred. Please try again.';
|
|
console.error(err);
|
|
});
|
|
}
|
|
}));
|
|
|
|
export default Alpine; |