/** * Settings general section * * @author Pierre HUBERT */ ComunicWeb.pages.settings.sections.general = { /** * Open settings section * * @param {object} args Additionnal arguments * @param {HTMLElement} target The target for the page */ open: function(args, target){ //Create a box var box = createElem2({ appendTo: target, type: "div", class: "box box-primary box-general-settings" }); //Add box header var boxHead = createElem2({ appendTo: box, type: "div", class: "box-header", }); var boxTitle = createElem2({ appendTo: boxHead, type: "h3", class: "box-title", innerHTML: "General settings" }); //Create box body var boxBody = createElem2({ appendTo: box, type: "div", class: "box-body" }); //Display loading message var loadingMsg = ComunicWeb.common.messages.createCalloutElem("Loading", "Please wait while this page is loading...", "info"); boxBody.appendChild(loadingMsg); //Load general settings information ComunicWeb.components.settings.interface.getGeneral(function(infos){ //Remove loading message loadingMsg.remove(); //Check for errors if(infos.error){ var errMsg = ComunicWeb.common.messages.createCalloutElem("Error", "An error occured while retrieving account settings...", "danger"); boxBody.appendChild(errMsg); } //Display the settings form ComunicWeb.pages.settings.sections.general._show_form(infos, boxBody); }); }, /** * Show the settings form * * @param {object} infos Informations about the user (General settings) * @param {HTMLElement} target The target for the page */ _show_form: function(infos, target){ //Main account information createElem2({ appendTo: target, type: "h4", innerHTML: "Main account information" }); //Display user ID createFormGroup({ target: target, label: "User ID", type: "text", value: infos.id, disabled: true, additionalGroupClasses: "input-user-id" }); //Display user email createFormGroup({ target: target, label: "Email address", type: "email", value: infos.email, disabled: true, additionalGroupClasses: "input-user-email" }); //Display user first name var firstName = createFormGroup({ target: target, label: "First name", placeholder: "Your first name", type: "text", value: infos.firstName, }); //Last name var lastName = createFormGroup({ target: target, label: "Last name", placeholder: "Your last name", type: "text", value: infos.lastName }); //Page settings add_space(target); createElem2({ appendTo: target, type: "h4", innerHTML: "Page settings" }); //Public page var publicPage = createFormGroup({ target: target, type: "checkbox", label: "Make your page public (available to every Comunic users)", checked: infos.is_public }); //Open page var openPage = createFormGroup({ target: target, type: "checkbox", label: "Make your page open (available for the entire world)", checked: infos.is_open }); //Make the public and open button begin synchronized $(publicPage).on("ifChanged", function(){ if(!publicPage.checked){ $(openPage).iCheck("uncheck"); } }); $(openPage).on("ifChanged", function(){ if(openPage.checked){ $(publicPage).iCheck("check"); } }); //Allow comments creation var allowComments = createFormGroup({ target: target, type: "checkbox", label: "Allow the comments on your page", checked: infos.allow_comments }); //Allow posts from friends var allowPostsFromFriends = createFormGroup({ target: target, type: "checkbox", label: "Allow the posts from your friends on your page", checked: infos.allow_posts_from_friends }); //Public friends list var allowPostsFromFriends = createFormGroup({ target: target, type: "checkbox", label: "Make your friend list public", checked: infos.allow_posts_from_friends }); //Personnal website var personnalWebsite = createFormGroup({ target: target, label: "Personnal website (optionnal)", type: "text", placeholder: "https://...", value: infos.personnal_website != "null" ? infos.personnal_website : "" }); //Virtual directory var virtualDirectory = createFormGroup({ target: target, label: "Virtual directory for your user page (" + ComunicWeb.__config.siteURL + "user/{virtual_directory})", type: "text", placeholder: "Eg. john.way", value: infos.virtual_directory != "null" ? infos.virtual_directory : "" }); //Auto-check the virtual directory when it is updated var checkTarget = createElem2({ appendTo: target, type: "small" }); virtualDirectory.onkeyup = function(){ checkTarget.innerHTML = "Checking availability..."; //Get the directory to check var directory = virtualDirectory.value; //Check if the directory is empty if(directory == ""){ checkTarget.innerHTML = ""; return; } //Perform a request on the API ComunicWeb.components.settings.interface.checkUserDirectoryAvailability(directory, function(callback){ //Check if the directory is available or not checkTarget.innerHTML = callback.error ? "This directory is not available!" : "This directory seems to be available!"; }) } //Submit button var sendButton = createElem2({ appendTo: target, type: "div", class: "btn btn-primary submit-form", innerHTML: "Update" }); //Make the submit button lives sendButton.onclick = function(){ //Check the given values }; }, };