Commit 7da23487725aa017ac605abcc309e40c1ed77d76

Authored by Fabio Teixeira
Committed by Gabriela Navarro
1 parent 8c5d6d8b

Remove dead code from user profile_editor

controllers/software_communities_plugin_controller.rb
1 1 require 'csv'
2 2 class SoftwareCommunitiesPluginController < ApplicationController
3 3  
4   - def check_reactivate_account
5   - if request.xhr? && params[:email]
6   - result = ""
7   - user = User.where(:email => params[:email])
8   -
9   - if user.length == 1 && !user[0].person.visible
10   - result = "<span id='forgot_link'><a href='/account/forgot_password'> Reactive account</a></span>"
11   - end
12   -
13   - render :json => result.to_json
14   - end
15   - end
16   -
17 4 def hide_registration_incomplete_percentage
18 5 response = false
19 6  
... ...
lib/software_communities_plugin.rb
... ... @@ -119,7 +119,6 @@ class SoftwareCommunitiesPlugin &lt; Noosfero::Plugin
119 119 end
120 120  
121 121 def js_files
122   - #mpog-user-validations.js
123 122 %w(
124 123 vendor/jquery.maskedinput.min.js
125 124 vendor/modulejs-1.5.0.min.js
... ... @@ -134,7 +133,6 @@ class SoftwareCommunitiesPlugin &lt; Noosfero::Plugin
134 133 views/user-edit-profile.js
135 134 initializer.js
136 135 app.js
137   -
138 136 mpog-institution-validations.js
139 137 mpog-incomplete-registration.js
140 138 mpog-search.js
... ...
public/mpog-user-validations.js
... ... @@ -1,332 +0,0 @@
1   -(function(){
2   - var AJAX_URL = {
3   - check_reactivate_account:
4   - url_with_subdirectory("/plugin/software_communities/check_reactivate_account")
5   - };
6   -
7   -
8   - /*
9   - * "Class" that switch state field between input and select
10   - * If the Country if Brazil, set state to select field
11   - * else set it as a input field
12   - */
13   - var SelectFieldChoices = (function() {
14   - function SelectFieldChoices(state_id, city_id, state_url) {
15   - this.state_id = state_id;
16   - this.input_html = jQuery(state_id).parent().html();
17   - this.old_value = jQuery(state_id).val();
18   - this.city_parent_div = jQuery(city_id).parent().parent().parent();
19   - this.state_url = state_url;
20   - }
21   -
22   - SelectFieldChoices.prototype.getCurrentStateElement = function() {
23   - return jQuery(this.state_id);
24   - };
25   -
26   - SelectFieldChoices.prototype.replaceWith = function(html) {
27   - var parent_div = this.getCurrentStateElement().parent();
28   - parent_div.html(html);
29   - };
30   -
31   - SelectFieldChoices.prototype.generateSelect = function(state_list) {
32   - var select_element, option;
33   -
34   - select_element = new SelectElement();
35   - select_element.setAttr("name", "profile_data[state]");
36   - select_element.setAttr("id", "state_field");
37   - select_element.setAttr("class", "type-select valid");
38   -
39   - state_list.forEach(function(state) {
40   - option = SelectElement.generateOption(state, state);
41   - select_element.addOption(option);
42   - });
43   -
44   - return select_element.getSelect();
45   - };
46   -
47   - SelectFieldChoices.prototype.replaceStateWithSelectElement = function() {
48   - var klass = this;
49   -
50   - jQuery.get(this.state_url, function(response) {
51   - var select_html;
52   -
53   - if (response.length > 0) {
54   - select_html = klass.generateSelect(response);
55   - klass.replaceWith(select_html);
56   -
57   - if (klass.old_value.length !== 0 && response.include(klass.old_value)) {
58   - klass.getCurrentStateElement().val(klass.old_value);
59   - }
60   - }
61   - });
62   - };
63   -
64   - SelectFieldChoices.prototype.replaceStateWithInputElement = function() {
65   - this.replaceWith(this.input_html);
66   - };
67   -
68   - SelectFieldChoices.prototype.hideCity = function() {
69   - this.city_parent_div.addClass("mpog_hidden_field");
70   - };
71   -
72   - SelectFieldChoices.prototype.showCity = function() {
73   - this.city_parent_div.removeClass("mpog_hidden_field");
74   - };
75   -
76   - SelectFieldChoices.prototype.actualFieldIsInput = function() {
77   - return this.getCurrentStateElement().attr("type") === "text";
78   - };
79   -
80   - return SelectFieldChoices;
81   - })();
82   -
83   - function set_form_count_custom_data() {
84   - var divisor_option = SelectElement.generateOption("-1", "--------------------------------");
85   - var default_option = SelectElement.generateOption("BR", "Brazil");
86   -
87   - jQuery('#profile_data_country').find("option[value='']").remove();
88   - jQuery('#profile_data_country').prepend(divisor_option);
89   - jQuery('#profile_data_country').prepend(default_option);
90   - jQuery('#profile_data_country').val("BR");
91   - }
92   -
93   - function set_initial_form_custom_data(selectFieldChoices) {
94   - set_form_count_custom_data();
95   -
96   - jQuery("#password-balloon").html(jQuery("#user_password_menssage").val());
97   - jQuery("#profile_data_email").parent().append(jQuery("#email_public_message").remove());
98   -
99   - if( jQuery("#state_field").length !== 0 ) selectFieldChoices.replaceStateWithSelectElement();
100   - }
101   -
102   - function check_reactivate_account(value, input_object){
103   - jQuery.ajax({
104   - url : AJAX_URL.check_reactivate_account,
105   - type: "GET",
106   - data: { "email": value },
107   - success: function(response) {
108   - if( jQuery("#forgot_link").length === 0 )
109   - jQuery(input_object).parent().append(response);
110   - else
111   - jQuery("#forgot_link").html(response);
112   - },
113   - error: function(type, err, message) {
114   - console.log(type+" -- "+err+" -- "+message);
115   - }
116   - });
117   - }
118   -
119   - function put_brazil_based_on_email(){
120   - var suffixes = ['gov.br', 'jus.br', 'leg.br', 'mp.br'];
121   - var value = this.value;
122   - var input_object = this;
123   - var gov_suffix = false;
124   -
125   - suffixes.each(function(suffix){
126   - var has_suffix = new RegExp("(.*)"+suffix+"$", "i");
127   -
128   - if( has_suffix.test(value) ) {
129   - gov_suffix = true;
130   - jQuery("#profile_data_country").val("BR");
131   - }
132   - });
133   -
134   - jQuery("#profile_data_country").find(':not(:selected)').css('display', (gov_suffix?'none':'block'));
135   -
136   - check_reactivate_account(value, input_object);
137   - }
138   -
139   - function validate_email_format(){
140   - var correct_format_regex = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;
141   -
142   - if( this.value.length > 0 ) {
143   - if(correct_format_regex.test(this.value))
144   - this.className = "validated";
145   - else
146   - this.className = "invalid";
147   - } else
148   - this.className = "";
149   - }
150   -
151   - function verify_user_password_size() {
152   - if( this.value.length < 6 ) {
153   - jQuery(this).switchClass("validated", "invalid");
154   - } else {
155   - jQuery(this).switchClass("invalid", "validated");
156   - }
157   - }
158   -
159   - function show_or_hide_phone_mask() {
160   - if(jQuery("#profile_data_country").val() == "BR") {
161   - if( (typeof jQuery("#profile_data_cell_phone").data("rawMaskFn") === 'undefined') ) {
162   - jQuery("#profile_data_cell_phone").mask("(99) 9999?9-9999");
163   - jQuery("#profile_data_comercial_phone").mask("(99) 9999?9-9999");
164   - jQuery("#profile_data_contact_phone").mask("(99) 9999?9-9999");
165   - }
166   - } else {
167   - jQuery("#profile_data_cell_phone").unmask();
168   - jQuery("#profile_data_comercial_phone").unmask();
169   - jQuery("#profile_data_contact_phone").unmask();
170   - }
171   - }
172   -
173   - function fix_phone_mask_format(id) {
174   - jQuery(id).blur(function() {
175   - var last = jQuery(this).val().substr( jQuery(this).val().indexOf("-") + 1 );
176   -
177   - if( last.length == 3 ) {
178   - var move = jQuery(this).val().substr( jQuery(this).val().indexOf("-") - 1, 1 );
179   - var lastfour = move + last;
180   - var first = jQuery(this).val().substr( 0, 9 );
181   -
182   - jQuery(this).val( first + '-' + lastfour );
183   - }
184   - });
185   - }
186   -
187   - // Generic
188   - function show_plugin_error_message(field_selector, hidden_message_id ) {
189   - var field = jQuery(field_selector);
190   -
191   - field.removeClass("validated").addClass("invalid");
192   -
193   - if(!jQuery("." + hidden_message_id)[0]) {
194   - var message = jQuery("#" + hidden_message_id).val();
195   - field.parent().append("<div class='" + hidden_message_id + " errorExplanation'>"+message+"</span>");
196   - } else {
197   - jQuery("." + hidden_message_id).show();
198   - }
199   - }
200   -
201   - function hide_plugin_error_message(field_selector, hidden_message_id) {
202   - jQuery(field_selector).removeClass("invalid").addClass("validated");
203   - jQuery("." + hidden_message_id).hide();
204   - }
205   -
206   - function addBlurFields(field_selector, hidden_message_id, validation_function, allow_blank) {
207   - jQuery(field_selector).blur(function(){
208   - jQuery(this).attr("class", "");
209   -
210   - if( validation_function(this.value, !!allow_blank) ) {
211   - show_plugin_error_message(field_selector, hidden_message_id);
212   - } else {
213   - hide_plugin_error_message(field_selector, hidden_message_id);
214   - }
215   - });
216   - }
217   -
218   - function invalid_email_validation(value, allow_blank) {
219   - if( allow_blank && value.trim().length === 0 ) {
220   - return false;
221   - }
222   -
223   - var correct_format_regex = new RegExp(/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/);
224   -
225   - return !correct_format_regex.test(value);
226   - }
227   -
228   - function invalid_site_validation(value) {
229   - var correct_format_regex = new RegExp(/(^|)(http[s]{0,1})\:\/\/(\w+[.])\w+/g);
230   -
231   - return !correct_format_regex.test(value);
232   - }
233   - //End generic
234   -
235   - function get_privacy_selector_parent_div(field_id, actual) {
236   - if( actual === undefined ) actual = jQuery(field_id);
237   -
238   - if( actual.is("form") || actual.length === 0 ) return null; // Not allow recursion over form
239   -
240   - if( actual.hasClass("field-with-privacy-selector") ) {
241   - return actual;
242   - } else {
243   - return get_privacy_selector_parent_div(field_id, actual.parent());
244   - }
245   - }
246   -
247   - function try_to_remove(list, field) {
248   - try {
249   - list.push(field.remove());
250   - } catch(e) {
251   - console.log("Cound not remove field");
252   - }
253   - }
254   -
255   - function get_edit_fields_in_insertion_order() {
256   - var containers = [];
257   -
258   - try_to_remove(containers, jQuery("h2")[0]);
259   - try_to_remove(containers, jQuery(".pseudoformlabel").parent().parent());
260   - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_name"));
261   - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_email"));
262   - try_to_remove(containers, jQuery("#user_secondary_email").parent().parent());
263   - try_to_remove(containers, jQuery("#select_institution"));
264   - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_cell_phone"));
265   - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_contact_phone"));
266   - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_comercial_phone"));
267   - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_personal_website"));
268   - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_organization_website"));
269   - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_birth_date"));
270   - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_country"));
271   - try_to_remove(containers, get_privacy_selector_parent_div("#state_field"));
272   - try_to_remove(containers, get_privacy_selector_parent_div("#city_field"));
273   -
274   - return containers;
275   - }
276   -
277   - function change_edit_fields_order() {
278   - var form = jQuery("#profile-data");
279   - if( form.length !== 0 ) {
280   - var containers = get_edit_fields_in_insertion_order();
281   -
282   - containers.reverse();
283   -
284   - containers.forEach(function(container){
285   - form.prepend(container);
286   - });
287   - }
288   - }
289   -
290   - jQuery(document).ready(function(){
291   - change_edit_fields_order(); // To change the fields order, it MUST be the first function executed
292   -
293   - var selectFieldChoices = new SelectFieldChoices("#state_field", "#city_field", "/plugin/software_communities/get_brazil_states");
294   - set_initial_form_custom_data(selectFieldChoices);
295   -
296   - jQuery('#secondary_email_field').blur(validate_email_format);
297   -
298   - jQuery("#user_email").blur(put_brazil_based_on_email);
299   -
300   - jQuery('#secondary_email_field').focus(function() { jQuery('#secondary-email-balloon').fadeIn('slow'); });
301   - jQuery('#secondary_email_field').blur(function() { jQuery('#secondary-email-balloon').fadeOut('slow'); });
302   -
303   - jQuery("#user_pw").blur(verify_user_password_size);
304   -
305   - jQuery("#profile_data_country").blur(show_or_hide_phone_mask);
306   -
307   - // Event that calls the "Class" to siwtch state field types
308   - jQuery("#profile_data_country").change(function(){
309   - if( this.value == "-1" ) jQuery(this).val("BR");
310   -
311   - if( this.value == "BR" && selectFieldChoices.actualFieldIsInput() ) {
312   - selectFieldChoices.replaceStateWithSelectElement();
313   - selectFieldChoices.showCity();
314   - } else if( this.value != "BR" && !selectFieldChoices.actualFieldIsInput() ) {
315   - selectFieldChoices.replaceStateWithInputElement();
316   - selectFieldChoices.hideCity();
317   - }
318   - });
319   -
320   - show_or_hide_phone_mask();
321   - jQuery("#profile_data_birth_date").mask("99/99/9999");
322   -
323   - fix_phone_mask_format("#profile_data_cell_phone");
324   - fix_phone_mask_format("#profile_data_comercial_phone");
325   - fix_phone_mask_format("#profile_data_contact_phone");
326   -
327   - addBlurFields("#profile_data_email", "email_error", invalid_email_validation);
328   - addBlurFields("#user_secondary_email", "email_error", invalid_email_validation, true);
329   - addBlurFields("#profile_data_personal_website", "site_error", invalid_site_validation);
330   - addBlurFields("#profile_data_organization_website", "site_error", invalid_site_validation);
331   - });
332   -})();
public/views/user-edit-profile.js
1   -modulejs.define('UserEditProfile', ['jquery', 'NoosferoRoot', 'SelectElement', 'SelectFieldChoices'], function($, NoosferoRoot, SelectElement, SelectFieldChoices) {
  1 +modulejs.define('UserEditProfile', ['jquery', 'SelectElement', 'SelectFieldChoices'], function($, SelectElement, SelectFieldChoices) {
2 2 'use strict';
3 3  
4   - var AJAX_URL = {
5   - check_reactivate_account:
6   - NoosferoRoot.urlWithSubDirectory("/plugin/software_communities/check_reactivate_account")
7   - };
8   -
9   -
10 4 function set_form_count_custom_data() {
11 5 var divisor_option = SelectElement.generateOption("-1", "--------------------------------");
12 6 var default_option = SelectElement.generateOption("BR", "Brazil");
... ... @@ -28,71 +22,26 @@ modulejs.define(&#39;UserEditProfile&#39;, [&#39;jquery&#39;, &#39;NoosferoRoot&#39;, &#39;SelectElement&#39;, &#39;
28 22 }
29 23  
30 24  
31   - function check_reactivate_account(value, input_object){
32   - $.ajax({
33   - url : AJAX_URL.check_reactivate_account,
34   - type: "GET",
35   - data: { "email": value },
36   - success: function(response) {
37   - if( $("#forgot_link").length === 0 )
38   - $(input_object).parent().append(response);
39   - else
40   - $("#forgot_link").html(response);
41   - },
42   - error: function(type, err, message) {
43   - console.log(type+" -- "+err+" -- "+message);
44   - }
45   - });
46   - }
47   -
48   -
49   - function put_brazil_based_on_email(){
50   - var suffixes = ['gov.br', 'jus.br', 'leg.br', 'mp.br'];
51   - var value = this.value;
52   - var input_object = this;
53   - var gov_suffix = false;
  25 + function show_state_if_country_is_brazil() {
  26 + var selectFieldChoices = new SelectFieldChoices("#state_field", "#city_field", "/plugin/software_communities/get_brazil_states");
  27 + set_initial_form_custom_data(selectFieldChoices);
54 28  
55   - suffixes.each(function(suffix){
56   - var has_suffix = new RegExp("(.*)"+suffix+"$", "i");
  29 + $("#profile_data_country").change(function(){
  30 + if( this.value === "-1" ) $(this).val("BR");
57 31  
58   - if( has_suffix.test(value) ) {
59   - gov_suffix = true;
60   - $("#profile_data_country").val("BR");
  32 + if( this.value === "BR" && selectFieldChoices.actualFieldIsInput() ) {
  33 + selectFieldChoices.replaceStateWithSelectElement();
  34 + selectFieldChoices.showCity();
  35 + } else if( this.value !== "BR" && !selectFieldChoices.actualFieldIsInput() ) {
  36 + selectFieldChoices.replaceStateWithInputElement();
  37 + selectFieldChoices.hideCity();
61 38 }
62 39 });
63   -
64   - $("#profile_data_country").find(':not(:selected)').css('display', (gov_suffix?'none':'block'));
65   -
66   - check_reactivate_account(value, input_object);
67   - }
68   -
69   -
70   - function validate_email_format(){
71   - var correct_format_regex = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;
72   -
73   - if( this.value.length > 0 ) {
74   - if(correct_format_regex.test(this.value)) {
75   - this.className = "validated";
76   - } else {
77   - this.className = "invalid";
78   - }
79   - } else {
80   - this.className = "";
81   - }
82   - }
83   -
84   -
85   - function verify_user_password_size() {
86   - if( this.value.length < 6 ) {
87   - $(this).switchClass("validated", "invalid");
88   - } else {
89   - $(this).switchClass("invalid", "validated");
90   - }
91 40 }
92 41  
93 42  
94 43 function show_or_hide_phone_mask() {
95   - if($("#profile_data_country").val() == "BR") {
  44 + if($("#profile_data_country").val() === "BR") {
96 45 if( (typeof $("#profile_data_cell_phone").data("rawMaskFn") === 'undefined') ) {
97 46 $("#profile_data_cell_phone").mask("(99) 9999?9-9999");
98 47 $("#profile_data_comercial_phone").mask("(99) 9999?9-9999");
... ... @@ -110,7 +59,7 @@ modulejs.define(&#39;UserEditProfile&#39;, [&#39;jquery&#39;, &#39;NoosferoRoot&#39;, &#39;SelectElement&#39;, &#39;
110 59 $(id).blur(function() {
111 60 var last = $(this).val().substr( $(this).val().indexOf("-") + 1 );
112 61  
113   - if( last.length == 3 ) {
  62 + if( last.length === 3 ) {
114 63 var move = $(this).val().substr( $(this).val().indexOf("-") - 1, 1 );
115 64 var lastfour = move + last;
116 65 var first = $(this).val().substr( 0, 9 );
... ... @@ -231,13 +180,18 @@ modulejs.define(&#39;UserEditProfile&#39;, [&#39;jquery&#39;, &#39;NoosferoRoot&#39;, &#39;SelectElement&#39;, &#39;
231 180  
232 181  
233 182 function set_fields_validations() {
234   - $('#secondary_email_field').blur(validate_email_format);
  183 + $("#profile_data_country").blur(show_or_hide_phone_mask);
235 184  
236   - $("#user_email").blur(put_brazil_based_on_email);
  185 + $("#profile_data_birth_date").mask("99/99/9999");
237 186  
238   - $("#user_pw").blur(verify_user_password_size);
  187 + fix_phone_mask_format("#profile_data_cell_phone");
  188 + fix_phone_mask_format("#profile_data_comercial_phone");
  189 + fix_phone_mask_format("#profile_data_contact_phone");
239 190  
240   - $("#profile_data_country").blur(show_or_hide_phone_mask);
  191 + add_blur_fields("#profile_data_email", "email_error", invalid_email_validation);
  192 + add_blur_fields("#user_secondary_email", "email_error", invalid_email_validation, true);
  193 + add_blur_fields("#profile_data_personal_website", "site_error", invalid_site_validation);
  194 + add_blur_fields("#profile_data_organization_website", "site_error", invalid_site_validation);
241 195 }
242 196  
243 197  
... ... @@ -250,35 +204,11 @@ modulejs.define(&#39;UserEditProfile&#39;, [&#39;jquery&#39;, &#39;NoosferoRoot&#39;, &#39;SelectElement&#39;, &#39;
250 204 init: function() {
251 205 change_edit_fields_order(); // To change the fields order, it MUST be the first function executed
252 206  
253   - var selectFieldChoices = new SelectFieldChoices("#state_field", "#city_field", "/plugin/software_communities/get_brazil_states");
254   - set_initial_form_custom_data(selectFieldChoices);
255   -
256   -
257   -
258   - // Event that calls the "Class" to siwtch state field types
259   - $("#profile_data_country").change(function(){
260   - if( this.value == "-1" ) $(this).val("BR");
261   -
262   - if( this.value == "BR" && selectFieldChoices.actualFieldIsInput() ) {
263   - selectFieldChoices.replaceStateWithSelectElement();
264   - selectFieldChoices.showCity();
265   - } else if( this.value != "BR" && !selectFieldChoices.actualFieldIsInput() ) {
266   - selectFieldChoices.replaceStateWithInputElement();
267   - selectFieldChoices.hideCity();
268   - }
269   - });
  207 + show_state_if_country_is_brazil();
270 208  
271 209 show_or_hide_phone_mask();
272   - $("#profile_data_birth_date").mask("99/99/9999");
273   -
274   - fix_phone_mask_format("#profile_data_cell_phone");
275   - fix_phone_mask_format("#profile_data_comercial_phone");
276   - fix_phone_mask_format("#profile_data_contact_phone");
277 210  
278   - add_blur_fields("#profile_data_email", "email_error", invalid_email_validation);
279   - add_blur_fields("#user_secondary_email", "email_error", invalid_email_validation, true);
280   - add_blur_fields("#profile_data_personal_website", "site_error", invalid_site_validation);
281   - add_blur_fields("#profile_data_organization_website", "site_error", invalid_site_validation);
  211 + set_fields_validations();
282 212 }
283 213 }
284 214 });
... ...