Commit 3812217d0e667091aaec71aa35d03e381f725c31
1 parent
3e0761f4
Exists in
master
and in
5 other branches
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 | ... | ... |