Commit 3812217d0e667091aaec71aa35d03e381f725c31

Authored by Fabio Teixeira
1 parent 3e0761f4

change_fields_order: Change edit fields order

Signed-off-by: Fabio Teixeira <fabio1079@gmail.com>
Showing 1 changed file with 44 additions and 1 deletions   Show diff stats
public/mpog-user-validations.js
... ... @@ -256,11 +256,54 @@
256 256  
257 257 return !correct_format_regex.test(value);
258 258 }
259   -
260 259 //End generic
261 260  
  261 + function get_privacy_selector_parent_div(field_id, actual) {
  262 + if( actual == undefined ) actual = jQuery(field_id);
  263 +
  264 + if( actual.is("form") || actual.length == 0 ) return null; // Not allow recursion over form
  265 +
  266 + if( actual.hasClass("field-with-privacy-selector") ) {
  267 + return actual;
  268 + } else {
  269 + return get_privacy_selector_parent_div(field_id, actual.parent());
  270 + }
  271 + }
  272 +
  273 + function get_edit_fields_in_insertion_order() {
  274 + var containers = [];
  275 +
  276 + containers.push(get_privacy_selector_parent_div("#profile_data_name").remove());
  277 + containers.push(get_privacy_selector_parent_div("#profile_data_email").remove());
  278 + containers.push(jQuery("#user_secondary_email").parent().parent().remove());
  279 + containers.push(jQuery("#select_institution").remove());
  280 + containers.push(get_privacy_selector_parent_div("#profile_data_cell_phone").remove());
  281 + containers.push(get_privacy_selector_parent_div("#profile_data_contact_phone").remove());
  282 + containers.push(get_privacy_selector_parent_div("#profile_data_comercial_phone").remove());
  283 + containers.push(get_privacy_selector_parent_div("#profile_data_personal_website").remove());
  284 + containers.push(get_privacy_selector_parent_div("#profile_data_organization_website").remove());
  285 + containers.push(get_privacy_selector_parent_div("#profile_data_birth_date").remove());
  286 + containers.push(get_privacy_selector_parent_div("#profile_data_country").remove());
  287 + containers.push(get_privacy_selector_parent_div("#state_field").remove());
  288 + containers.push(get_privacy_selector_parent_div("#city_field").remove());
  289 +
  290 + return containers;
  291 + }
  292 +
  293 + function change_edit_fields_order() {
  294 + var form = jQuery("#profile-data");
  295 + var containers = get_edit_fields_in_insertion_order();
  296 +
  297 + containers.reverse();
  298 +
  299 + containers.forEach(function(container){
  300 + form.prepend(container);
  301 + });
  302 + }
262 303  
263 304 jQuery(document).ready(function(){
  305 + change_edit_fields_order(); // To change the fields order, it MUST be the first function executed
  306 +
264 307 var selectFieldChoices = new SelectFieldChoices();
265 308 set_initial_form_custom_data(selectFieldChoices);
266 309  
... ...