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 | 35 | * If the Country if Brazil, set state to select field |
36 | 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 | 60 | select_element.setAttr("name", "profile_data[state]"); |
53 | 61 | select_element.setAttr("id", "state_field"); |
54 | 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 | 66 | select_element.addOption(option); |
59 | 67 | }); |
60 | 68 | |
61 | 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 | 108 | function set_form_count_custom_data() { |
113 | 109 | var divisor_option = SelectElement.generateOption("-1", "--------------------------------"); |
... | ... | @@ -125,7 +121,7 @@ |
125 | 121 | jQuery("#password-balloon").html(jQuery("#user_password_menssage").val()); |
126 | 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 | 127 | function check_reactivate_account(value, input_object){ |
... | ... | @@ -134,7 +130,7 @@ |
134 | 130 | type: "GET", |
135 | 131 | data: { "email": value }, |
136 | 132 | success: function(response) { |
137 | - if( jQuery("#forgot_link").length == 0 ) | |
133 | + if( jQuery("#forgot_link").length === 0 ) | |
138 | 134 | jQuery(input_object).parent().append(response); |
139 | 135 | else |
140 | 136 | jQuery("#forgot_link").html(response); |
... | ... | @@ -162,7 +158,7 @@ |
162 | 158 | |
163 | 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 | 164 | function validate_email_format(){ |
... | ... | @@ -233,7 +229,7 @@ |
233 | 229 | } |
234 | 230 | |
235 | 231 | function invalid_name_validation(text) { |
236 | - if( text.trim().length == 0 ) { | |
232 | + if( text.trim().length === 0 ) { | |
237 | 233 | return true; |
238 | 234 | } |
239 | 235 | |
... | ... | @@ -288,7 +284,7 @@ |
288 | 284 | } |
289 | 285 | |
290 | 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 | 288 | return false; |
293 | 289 | } |
294 | 290 | |
... | ... | @@ -305,9 +301,9 @@ |
305 | 301 | //End generic |
306 | 302 | |
307 | 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 | 308 | if( actual.hasClass("field-with-privacy-selector") ) { |
313 | 309 | return actual; |
... | ... | @@ -346,7 +342,7 @@ |
346 | 342 | |
347 | 343 | function change_edit_fields_order() { |
348 | 344 | var form = jQuery("#profile-data"); |
349 | - if( form.length != 0 ) { | |
345 | + if( form.length !== 0 ) { | |
350 | 346 | var containers = get_edit_fields_in_insertion_order(); |
351 | 347 | |
352 | 348 | containers.reverse(); |
... | ... | @@ -360,12 +356,10 @@ |
360 | 356 | jQuery(document).ready(function(){ |
361 | 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 | 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 | 364 | jQuery("#user_email").blur(put_brazil_based_on_email); |
371 | 365 | |
... | ... | @@ -381,15 +375,16 @@ |
381 | 375 | if( this.value == "-1" ) jQuery(this).val("BR"); |
382 | 376 | |
383 | 377 | if( this.value == "BR" && selectFieldChoices.actualFieldIsInput() ) { |
384 | - selectFieldChoices.setSelect(); | |
385 | - selectFieldChoices.setShowCity(); | |
378 | + selectFieldChoices.replaceStateWithSelectElement(); | |
379 | + selectFieldChoices.showCity(); | |
386 | 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 | 386 | show_or_hide_phone_mask(); |
387 | + jQuery("#profile_data_birth_date").mask("99/99/9999"); | |
393 | 388 | |
394 | 389 | fix_phone_mask_format("#profile_data_cell_phone"); |
395 | 390 | fix_phone_mask_format("#profile_data_comercial_phone"); | ... | ... |