Commit 2ec7dec9bc3ad176ee4b9d109ff931e0d7991a95
1 parent
03d6fe1b
Exists in
master
and in
5 other branches
correcoes_aderencia: Refactoty some code on mpog-user-validations.js
Signed-off-by: Fabio Teixeira <fabio1079@gmail.com>
Showing
1 changed file
with
63 additions
and
68 deletions
Show diff stats
public/mpog-user-validations.js
@@ -35,79 +35,75 @@ | @@ -35,79 +35,75 @@ | ||
35 | * If the Country if Brazil, set state to select field | 35 | * If the Country if Brazil, set state to select field |
36 | * else set it as a input field | 36 | * else set it as a input field |
37 | */ | 37 | */ |
38 | - function SelectFieldChoices() { | ||
39 | - // Get the initial state html | ||
40 | - var input_select = jQuery("#state_field").parent().html(); | ||
41 | - var old_value = jQuery("#state_field").val(); | ||
42 | - var city_parent_div = jQuery("#city_field").parent().parent().parent(); | ||
43 | - | ||
44 | - function replace_with(html) { | ||
45 | - var parent_div = jQuery("#state_field").parent(); | ||
46 | - parent_div.html(html); | 38 | + var SelectFieldChoices = (function() { |
39 | + function SelectFieldChoices(state_id, city_id, state_url) { | ||
40 | + this.state_id = state_id; | ||
41 | + this.input_html = jQuery(state_id).parent().html(); | ||
42 | + this.old_value = jQuery(state_id).val(); | ||
43 | + this.city_parent_div = jQuery(city_id).parent().parent().parent(); | ||
44 | + this.state_url = state_url; | ||
47 | } | 45 | } |
48 | 46 | ||
49 | - function generate_select(state_list) { | ||
50 | - var select_element = new SelectElement(); | 47 | + SelectFieldChoices.prototype.getCurrentStateElement = function() { |
48 | + return jQuery(this.state_id); | ||
49 | + }; | ||
50 | + | ||
51 | + SelectFieldChoices.prototype.replaceWith = function(html) { | ||
52 | + var parent_div = this.getCurrentStateElement().parent(); | ||
53 | + parent_div.html(html); | ||
54 | + }; | ||
55 | + | ||
56 | + SelectFieldChoices.prototype.generateSelect = function(state_list) { | ||
57 | + var select_element, option; | ||
51 | 58 | ||
59 | + select_element = new SelectElement(); | ||
52 | select_element.setAttr("name", "profile_data[state]"); | 60 | select_element.setAttr("name", "profile_data[state]"); |
53 | select_element.setAttr("id", "state_field"); | 61 | select_element.setAttr("id", "state_field"); |
54 | select_element.setAttr("class", "type-select valid"); | 62 | select_element.setAttr("class", "type-select valid"); |
55 | 63 | ||
56 | - state_list.forEach(function(state){ | ||
57 | - var option = SelectElement.generateOption(state, state); | 64 | + state_list.forEach(function(state) { |
65 | + option = SelectElement.generateOption(state, state); | ||
58 | select_element.addOption(option); | 66 | select_element.addOption(option); |
59 | }); | 67 | }); |
60 | 68 | ||
61 | return select_element.getSelect(); | 69 | return select_element.getSelect(); |
62 | - } | 70 | + }; |
63 | 71 | ||
64 | - function replace_state_with_select() { | ||
65 | - jQuery.get("/plugin/mpog_software/get_brazil_states", function(response){ | ||
66 | - if( response.length > 0 ) { | ||
67 | - var select_html = generate_select(response); | ||
68 | - replace_with(select_html); | 72 | + SelectFieldChoices.prototype.replaceStateWithSelectElement = function() { |
73 | + var klass = this; | ||
69 | 74 | ||
70 | - if( old_value.length != 0 && response.include(old_value) ) { | ||
71 | - jQuery("#state_field").val(old_value); | 75 | + jQuery.get(this.state_url, function(response) { |
76 | + var select_html; | ||
77 | + | ||
78 | + if (response.length > 0) { | ||
79 | + select_html = klass.generateSelect(response); | ||
80 | + klass.replaceWith(select_html); | ||
81 | + | ||
82 | + if (klass.old_value.length !== 0 && response.include(klass.old_value)) { | ||
83 | + klass.getCurrentStateElement().val(klass.old_value); | ||
72 | } | 84 | } |
73 | } | 85 | } |
74 | }); | 86 | }); |
75 | - } | ||
76 | - | ||
77 | - function hide_city(){ | ||
78 | - city_parent_div.addClass("mpog_hidden_field"); | ||
79 | - } | ||
80 | - | ||
81 | - function show_city(){ | ||
82 | - city_parent_div.removeClass("mpog_hidden_field"); | ||
83 | - } | 87 | + }; |
84 | 88 | ||
85 | - function replace_state_with_input() { | ||
86 | - replace_with(input_select); | ||
87 | - } | 89 | + SelectFieldChoices.prototype.replaceStateWithInputElement = function() { |
90 | + this.replaceWith(this.input_html); | ||
91 | + }; | ||
88 | 92 | ||
89 | - return { | ||
90 | - actualFieldIsInput : function() { | ||
91 | - return jQuery("#state_field").attr("type") == "text"; | ||
92 | - }, | 93 | + SelectFieldChoices.prototype.hideCity = function() { |
94 | + this.city_parent_div.addClass("mpog_hidden_field"); | ||
95 | + }; | ||
93 | 96 | ||
94 | - setSelect : function() { | ||
95 | - replace_state_with_select(); | ||
96 | - }, | 97 | + SelectFieldChoices.prototype.showCity = function() { |
98 | + this.city_parent_div.removeClass("mpog_hidden_field"); | ||
99 | + }; | ||
97 | 100 | ||
98 | - setInput : function() { | ||
99 | - replace_state_with_input(); | ||
100 | - }, | ||
101 | - | ||
102 | - setHideCity : function(){ | ||
103 | - hide_city(); | ||
104 | - }, | 101 | + SelectFieldChoices.prototype.actualFieldIsInput = function() { |
102 | + return this.getCurrentStateElement().attr("type") === "text"; | ||
103 | + }; | ||
105 | 104 | ||
106 | - setShowCity : function(){ | ||
107 | - show_city(); | ||
108 | - } | ||
109 | - } | ||
110 | - } | 105 | + return SelectFieldChoices; |
106 | + })(); | ||
111 | 107 | ||
112 | function set_form_count_custom_data() { | 108 | function set_form_count_custom_data() { |
113 | var divisor_option = SelectElement.generateOption("-1", "--------------------------------"); | 109 | var divisor_option = SelectElement.generateOption("-1", "--------------------------------"); |
@@ -125,7 +121,7 @@ | @@ -125,7 +121,7 @@ | ||
125 | jQuery("#password-balloon").html(jQuery("#user_password_menssage").val()); | 121 | jQuery("#password-balloon").html(jQuery("#user_password_menssage").val()); |
126 | jQuery("#profile_data_email").parent().append(jQuery("#email_public_message").remove()); | 122 | jQuery("#profile_data_email").parent().append(jQuery("#email_public_message").remove()); |
127 | 123 | ||
128 | - if( jQuery("#state_field").length != 0 ) selectFieldChoices.setSelect(); | 124 | + if( jQuery("#state_field").length !== 0 ) selectFieldChoices.replaceStateWithSelectElement(); |
129 | } | 125 | } |
130 | 126 | ||
131 | function check_reactivate_account(value, input_object){ | 127 | function check_reactivate_account(value, input_object){ |
@@ -134,7 +130,7 @@ | @@ -134,7 +130,7 @@ | ||
134 | type: "GET", | 130 | type: "GET", |
135 | data: { "email": value }, | 131 | data: { "email": value }, |
136 | success: function(response) { | 132 | success: function(response) { |
137 | - if( jQuery("#forgot_link").length == 0 ) | 133 | + if( jQuery("#forgot_link").length === 0 ) |
138 | jQuery(input_object).parent().append(response); | 134 | jQuery(input_object).parent().append(response); |
139 | else | 135 | else |
140 | jQuery("#forgot_link").html(response); | 136 | jQuery("#forgot_link").html(response); |
@@ -162,7 +158,7 @@ | @@ -162,7 +158,7 @@ | ||
162 | 158 | ||
163 | jQuery("#profile_data_country").find(':not(:selected)').css('display', (gov_suffix?'none':'block')); | 159 | jQuery("#profile_data_country").find(':not(:selected)').css('display', (gov_suffix?'none':'block')); |
164 | 160 | ||
165 | - check_reactivate_account(value, input_object) | 161 | + check_reactivate_account(value, input_object); |
166 | } | 162 | } |
167 | 163 | ||
168 | function validate_email_format(){ | 164 | function validate_email_format(){ |
@@ -233,7 +229,7 @@ | @@ -233,7 +229,7 @@ | ||
233 | } | 229 | } |
234 | 230 | ||
235 | function invalid_name_validation(text) { | 231 | function invalid_name_validation(text) { |
236 | - if( text.trim().length == 0 ) { | 232 | + if( text.trim().length === 0 ) { |
237 | return true; | 233 | return true; |
238 | } | 234 | } |
239 | 235 | ||
@@ -288,7 +284,7 @@ | @@ -288,7 +284,7 @@ | ||
288 | } | 284 | } |
289 | 285 | ||
290 | function invalid_email_validation(value, allow_blank) { | 286 | function invalid_email_validation(value, allow_blank) { |
291 | - if( allow_blank && value.trim().length == 0 ) { | 287 | + if( allow_blank && value.trim().length === 0 ) { |
292 | return false; | 288 | return false; |
293 | } | 289 | } |
294 | 290 | ||
@@ -305,9 +301,9 @@ | @@ -305,9 +301,9 @@ | ||
305 | //End generic | 301 | //End generic |
306 | 302 | ||
307 | function get_privacy_selector_parent_div(field_id, actual) { | 303 | function get_privacy_selector_parent_div(field_id, actual) { |
308 | - if( actual == undefined ) actual = jQuery(field_id); | 304 | + if( actual === undefined ) actual = jQuery(field_id); |
309 | 305 | ||
310 | - if( actual.is("form") || actual.length == 0 ) return null; // Not allow recursion over form | 306 | + if( actual.is("form") || actual.length === 0 ) return null; // Not allow recursion over form |
311 | 307 | ||
312 | if( actual.hasClass("field-with-privacy-selector") ) { | 308 | if( actual.hasClass("field-with-privacy-selector") ) { |
313 | return actual; | 309 | return actual; |
@@ -346,7 +342,7 @@ | @@ -346,7 +342,7 @@ | ||
346 | 342 | ||
347 | function change_edit_fields_order() { | 343 | function change_edit_fields_order() { |
348 | var form = jQuery("#profile-data"); | 344 | var form = jQuery("#profile-data"); |
349 | - if( form.length != 0 ) { | 345 | + if( form.length !== 0 ) { |
350 | var containers = get_edit_fields_in_insertion_order(); | 346 | var containers = get_edit_fields_in_insertion_order(); |
351 | 347 | ||
352 | containers.reverse(); | 348 | containers.reverse(); |
@@ -360,12 +356,10 @@ | @@ -360,12 +356,10 @@ | ||
360 | jQuery(document).ready(function(){ | 356 | jQuery(document).ready(function(){ |
361 | change_edit_fields_order(); // To change the fields order, it MUST be the first function executed | 357 | change_edit_fields_order(); // To change the fields order, it MUST be the first function executed |
362 | 358 | ||
363 | - var selectFieldChoices = new SelectFieldChoices(); | 359 | + var selectFieldChoices = new SelectFieldChoices("#state_field", "#city_field", "/plugin/mpog_software/get_brazil_states"); |
364 | set_initial_form_custom_data(selectFieldChoices); | 360 | set_initial_form_custom_data(selectFieldChoices); |
365 | 361 | ||
366 | - jQuery('#secondary_email_field').blur( | ||
367 | - validate_email_format | ||
368 | - ); | 362 | + jQuery('#secondary_email_field').blur(validate_email_format); |
369 | 363 | ||
370 | jQuery("#user_email").blur(put_brazil_based_on_email); | 364 | jQuery("#user_email").blur(put_brazil_based_on_email); |
371 | 365 | ||
@@ -381,15 +375,16 @@ | @@ -381,15 +375,16 @@ | ||
381 | if( this.value == "-1" ) jQuery(this).val("BR"); | 375 | if( this.value == "-1" ) jQuery(this).val("BR"); |
382 | 376 | ||
383 | if( this.value == "BR" && selectFieldChoices.actualFieldIsInput() ) { | 377 | if( this.value == "BR" && selectFieldChoices.actualFieldIsInput() ) { |
384 | - selectFieldChoices.setSelect(); | ||
385 | - selectFieldChoices.setShowCity(); | 378 | + selectFieldChoices.replaceStateWithSelectElement(); |
379 | + selectFieldChoices.showCity(); | ||
386 | } else if( this.value != "BR" && !selectFieldChoices.actualFieldIsInput() ) { | 380 | } else if( this.value != "BR" && !selectFieldChoices.actualFieldIsInput() ) { |
387 | - selectFieldChoices.setInput(); | ||
388 | - selectFieldChoices.setHideCity(); | 381 | + selectFieldChoices.replaceStateWithInputElement(); |
382 | + selectFieldChoices.hideCity(); | ||
389 | } | 383 | } |
390 | }); | 384 | }); |
391 | 385 | ||
392 | show_or_hide_phone_mask(); | 386 | show_or_hide_phone_mask(); |
387 | + jQuery("#profile_data_birth_date").mask("99/99/9999"); | ||
393 | 388 | ||
394 | fix_phone_mask_format("#profile_data_cell_phone"); | 389 | fix_phone_mask_format("#profile_data_cell_phone"); |
395 | fix_phone_mask_format("#profile_data_comercial_phone"); | 390 | fix_phone_mask_format("#profile_data_comercial_phone"); |