Commit 619b7714b72f233b336c79f6b015d58adec7237f

Authored by Rodrigo Souto
1 parent 1a2ee096

[stoa] Adding usp fields to profile basic info

  * And tweaking interface
  * TODO: build filter to deal with controller logics
plugins/stoa/lib/stoa_plugin.rb
@@ -27,6 +27,16 @@ class StoaPlugin < Noosfero::Plugin @@ -27,6 +27,16 @@ class StoaPlugin < Noosfero::Plugin
27 } 27 }
28 end 28 end
29 29
  30 + def profile_info_extra_contents
  31 + lambda {
  32 + labelled_form_field(_('USP number'), text_field_tag('profile_data[usp_id]', '', :id => 'usp_id_field')) +
  33 + content_tag(:small, _('The usp id grants you special powers in the network. Don\'t forget to fill it if you have one.')) +
  34 + content_tag('div', required(labelled_form_field(_('Birth date (yyyy-mm-dd)'), text_field_tag('birth_date', ''))), :id => 'signup-birth-date', :style => 'display: none') +
  35 + content_tag('div', required(labelled_form_field(_('CPF'), text_field_tag('cpf', ''))), :id => 'signup-cpf', :style => 'display:none') +
  36 + javascript_include_tag('../plugins/stoa/javascripts/jquery.observe_field', '../plugins/stoa/javascripts/signup_complement')
  37 + } if context.profile.person? && context.profile.usp_id.blank?
  38 + end
  39 +
30 def account_controller_filters 40 def account_controller_filters
31 block = lambda do 41 block = lambda do
32 params[:profile_data] ||= {} 42 params[:profile_data] ||= {}
plugins/stoa/public/javascripts/signup_complement.js
1 jQuery("#usp_id_field").observe_field(1, function(){ 1 jQuery("#usp_id_field").observe_field(1, function(){
2 var me=this; 2 var me=this;
3 jQuery(this).addClass('checking').removeClass('validated'); 3 jQuery(this).addClass('checking').removeClass('validated');
  4 + jQuery(this.parentNode).addClass('checking')
4 jQuery.getJSON('/plugin/stoa/check_usp_id?usp_id='+me.value, 5 jQuery.getJSON('/plugin/stoa/check_usp_id?usp_id='+me.value,
5 function(data){ 6 function(data){
6 if(data.exists) { 7 if(data.exists) {
@@ -18,12 +19,14 @@ jQuery("#usp_id_field").observe_field(1, function(){ @@ -18,12 +19,14 @@ jQuery("#usp_id_field").observe_field(1, function(){
18 jQuery('#confirmation_field').remove(); 19 jQuery('#confirmation_field').remove();
19 jQuery('#signup-form').append('<input id="confirmation_field" type="hidden" value="birth_date" name="confirmation_field">') 20 jQuery('#signup-form').append('<input id="confirmation_field" type="hidden" value="birth_date" name="confirmation_field">')
20 } 21 }
21 - jQuery('#signup-form .submit').attr('disabled', false);  
22 - jQuery(me).removeClass('checking').addClass('validated'); 22 + jQuery('#signup-form .submit').attr('disabled', false);
  23 + jQuery(me).removeClass('checking').addClass('validated');
  24 + jQuery(me.parentNode).removeClass('checking')
23 }); 25 });
24 } 26 }
25 else { 27 else {
26 jQuery(me).removeClass('checking'); 28 jQuery(me).removeClass('checking');
  29 + jQuery(me.parentNode).removeClass('checking')
27 if(me.value) { 30 if(me.value) {
28 jQuery('#signup-form .submit').attr('disabled', true); 31 jQuery('#signup-form .submit').attr('disabled', true);
29 jQuery(me).addClass('invalid'); 32 jQuery(me).addClass('invalid');
plugins/stoa/public/style.css
@@ -29,3 +29,11 @@ @@ -29,3 +29,11 @@
29 right: 20px; 29 right: 20px;
30 bottom: 110px; 30 bottom: 110px;
31 } 31 }
  32 +
  33 +.controller-profile_editor input.checking {
  34 + cursor: progress;
  35 +}
  36 +
  37 +.controller-profile_editor div.checking {
  38 + background: transparent url(/images/loading-small.gif) 153px center no-repeat;
  39 +}