Send a request to the server to update account image visibility

This commit is contained in:
Pierre 2018-05-01 11:42:23 +02:00
parent 14fc7daf15
commit df26ed4d38
4 changed files with 132 additions and 2 deletions

View File

@ -4,7 +4,7 @@
* @author Pierre HUBERT * @author Pierre HUBERT
*/ */
.box-account-image-settings { .box-account-image-settings .box-body {
text-align: center; text-align: center;
} }
@ -14,4 +14,8 @@
margin: auto; margin: auto;
margin-top: 10px; margin-top: 10px;
margin-bottom: 10px; margin-bottom: 10px;
}
.box-account-image-settings .account-image-visibility-form {
text-align: justify;
} }

View File

@ -191,8 +191,9 @@ function checkMail(emailAddress){
* @param {Object} infos Informations about the formgroup element to create * @param {Object} infos Informations about the formgroup element to create
* * @info {HTMLElement} target The target of the field * * @info {HTMLElement} target The target of the field
* * @info {String} label The label of the field * * @info {String} label The label of the field
* * @info {string} name The name of the field
* * @info {String} placeholder The placeholder of the field * * @info {String} placeholder The placeholder of the field
* * @info {Boolean} checked Defines if the fields has to be checked or not (checkbox only) * * @info {Boolean} checked Defines if the fields has to be checked or not (checkbox/radio only)
* * @info {Boolean} multiple Defines if the fields can accept more than one response * * @info {Boolean} multiple Defines if the fields can accept more than one response
* * @info {String} type The type of the field * * @info {String} type The type of the field
* * @info {string} value The default value of the input * * @info {string} value The default value of the input
@ -245,6 +246,41 @@ function createFormGroup(infos){
radioClass: 'iradio_flat-blue' radioClass: 'iradio_flat-blue'
}); });
} }
//In case of radio input
else if(infos.type == "radio"){
//Create radio
var input = createElem("input", labelElem) ;
input.type = "radio";
input.disabled = disabled;
if(infos.name)
input.name = infos.name;
if(infos.value)
input.value = infos.value;
//Check if input has to be checked by default
if(infos.checked){
if(infos.checked === true){
input.checked = "true";
}
}
//Add label value
var labelValue = createElem("span", labelElem);
labelValue.innerHTML = " "+infos.label;
//Enable iCheck
$(input).iCheck({
checkboxClass: 'icheckbox_flat-blue',
radioClass: 'iradio_flat-blue'
});
}
//Select2
else if(infos.type == "select2"){ else if(infos.type == "select2"){
//In case of select2 element //In case of select2 element
//Check for label //Check for label

View File

@ -117,5 +117,19 @@ ComunicWeb.components.settings.interface = {
var apiURI = "settings/delete_account_image"; var apiURI = "settings/delete_account_image";
var params = {}; var params = {};
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback); ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
},
/**
* Update the visibility of the account image
*
* @param {string} visibility The new visibility level for the account image
* @param {function} callback
*/
updateAccountImageVisibility: function(visibility, callback){
var apiURI = "settings/set_account_image_visibility";
var params = {
visibility: visibility
};
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
} }
} }

View File

@ -152,6 +152,7 @@ ComunicWeb.pages.settings.sections.accountImage = {
innerHTML: "Delete image" innerHTML: "Delete image"
}); });
//Make delete button lives
deleteImage.addEventListener("click", function(e){ deleteImage.addEventListener("click", function(e){
ComunicWeb.common.messages.confirm("Do you really want to delete your account image ? The operation can not be reverted !", function(res){ ComunicWeb.common.messages.confirm("Do you really want to delete your account image ? The operation can not be reverted !", function(res){
@ -181,5 +182,80 @@ ComunicWeb.pages.settings.sections.accountImage = {
}); });
}); });
//Add the form to update visibility level
add_space(accountImageForm);
add_space(accountImageForm);
var visibilityForm = createElem2({
appendTo: accountImageForm,
type: "form",
class: "account-image-visibility-form"
});
//Title
createElem2({
appendTo: visibilityForm,
type: "h4",
innerHTML: "Account image visibility"
});
//Add the options
//Open
createFormGroup({
target: visibilityForm,
label: "Everyone",
name: "account-image-visibility",
type: "radio",
value: "open",
checked: info.visibility == "open"
});
//Public
createFormGroup({
target: visibilityForm,
label: "All Comunic users",
name: "account-image-visibility",
type: "radio",
value: "public",
checked: info.visibility == "public"
});
//Friends
createFormGroup({
target: visibilityForm,
label: "My friends only",
name: "account-image-visibility",
type: "radio",
value: "friends",
checked: info.visibility == "friends"
});
//Add update button
var updateButton = createElem2({
appendTo: visibilityForm,
type: "div",
class: "btn btn-primary",
innerHTML: "Update visibility"
});
updateButton.addEventListener("click", function(e){
//Get the new visibility level
var newVisibility = visibilityForm.elements["account-image-visibility"].value;
//Make a request over the server
ComunicWeb.components.settings.interface.updateAccountImageVisibility(newVisibility, function(callback){
//Check for errors
if(callback.error){
notify("Could update the visibility of your account image!", "danger");
}
else
notify("The visibility of your account image have been successfully updated!", "success");
});
});
} }
} }