ComunicWeb/assets/js/components/settings/helper.js

122 lines
2.9 KiB
JavaScript
Raw Normal View History

/**
* Settings helper
*
* @author Pierre HUBERT
*/
ComunicWeb.components.settings.helper = {
/**
* Request user account deletion
*/
requestAccountDeletion: function(){
//Prompt user confirmation
ComunicWeb.common.messages.confirm("Do you really want to delete your account ? This operation can not be reverted !", function(r){
//Check if the user cancelled the operation
if(!r) return;
//Prompt user password
var dialog = ComunicWeb.common.messages.createDialogSkeleton({
type: "danger",
title: "Password required"
});
$(dialog.modal).modal("show");
//Create modal close function
var closeModal = function(){
$(dialog.modal).modal("hide");
emptyElem(dialog.modal);
dialog.modal.remove();
};
dialog.cancelButton.addEventListener("click", closeModal);
dialog.closeModal.addEventListener("click", closeModal);
//Set dialog body
var passwordForm = createElem2({
appendTo: dialog.modalBody,
type: "div"
});
createElem2({
appendTo: passwordForm,
type: "p",
innerHTML: "We need your password to continue. Note: once you click 'Confirm', you will not be able to go back..."
});
//Create pasword input group
var inputGroup = createElem2({
appendTo: passwordForm,
type: "div",
class: "input-group input-group-sm"
});
//Create password input
var passwordInput = createElem2({
appendTo: inputGroup,
type: "input",
class: "form-control",
elemType: "password"
});
//Create input group
var inputGroupContainer = createElem2({
appendTo: inputGroup,
type: "span",
class: "input-group-btn"
});
//Add submit button
var submitButton = createElem2({
appendTo: inputGroupContainer,
type: "button",
class: "btn btn-danger",
innerHTML: "Confirm deletion"
});
submitButton.addEventListener("click", function(e){
//Check given password
var password = passwordInput.value;
if(password.length < 4)
return notify("Please check given password !", "danger");
//Close modal
closeModal();
//Perform a request over the interface
ComunicWeb.components.settings.helper.deleteAccount(password);
});
});
},
/**
* Delete the account of the user
*
* @param {string} password The password of the account to delete
*/
deleteAccount: function(password){
//Lock the screen with a loading splash screen
var splashScreen = ComunicWeb.common.page.showTransparentWaitSplashScreen();
//Perform the request over the interface
ComunicWeb.components.account.interface.deleteAccount(password, function(result){
//Remove loading splash screen
splashScreen.remove();
//Check for errors
if(result.error)
return notify("Could not delete your account (please check given password) !", "danger");
//Restart the page in case of success
ComunicWeb.common.system.restart();
});
},
}