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;