diff --git a/lib/mpog_software_plugin.rb b/lib/mpog_software_plugin.rb index c1f4af3..9fcfab0 100644 --- a/lib/mpog_software_plugin.rb +++ b/lib/mpog_software_plugin.rb @@ -41,13 +41,16 @@ class MpogSoftwarePlugin < Noosfero::Plugin content_tag(:div, labelled_form_field( _('Institution'), - text_field(:institution, :name, :id => 'input_institution')+ + content_tag(:div, + text_field(:institution, :name, :class=>"input_institution"), + :class => 'institution_container')+ content_tag( :small, _('Fill with your institution') ,:class => 'signup-form', :id =>'institution-balloon' ) + content_tag(:div, _("The searched institution does not exist"), :id=>"institution_empty_ajax_message", :class=>"errorExplanation hide-field") + - link_to(_("Add new institution"), "#", :id=>"create_institution_link", :class=>'button with-text icon-add')+ - hidden_field_tag("user[institution_id]", "", :id => 'user_institution_id')+ + link_to(_("Add new institution"), "#", :class=>'button with-text icon-add add_new_institution') + + link_to(_("Create new institution"), "#", :id=>"create_institution_link", :class=>'button with-text icon-add')+ + hidden_field_tag("user[institutions][]", "", :class => 'user_institutions')+ content_tag(:div, "", :id=>"institution_dialog") ), :id => 'signup-institution' diff --git a/public/mpog-institution-validations.js b/public/mpog-institution-validations.js index 6d4ce3f..f349be1 100644 --- a/public/mpog-institution-validations.js +++ b/public/mpog-institution-validations.js @@ -113,6 +113,50 @@ } } + + function institution_autocomplete() { + jQuery(".input_institution").autocomplete({ + source : function(request, response){ + jQuery.ajax({ + type: "GET", + url: "/plugin/mpog_software/get_institutions", + data: {query: request.term}, + success: function(result){ + response(result); + + if( result.length == 0 ) { + jQuery('#institution_empty_ajax_message').switchClass("hide-field", "show-field"); + } else { + jQuery('#institution_empty_ajax_message').switchClass("show-field", "hide-field"); + } + }, + error: function(ajax, stat, errorThrown) { + console.log('Link not found : ' + errorThrown); + } + }); + }, + + minLength: 2, + + select : function (event, selected) { + var user_institutions = jQuery(".user_institutions").first().clone(); + user_institutions.val(selected.item.id); + + jQuery(".institution_container").append(user_institutions); + } + }); + } + + function add_new_institution(evt) { + evt.preventDefault(); + var institution_input_field = jQuery(".institution_container .input_institution").first().clone(); + + institution_input_field.val(""); + + jQuery(".institution_container").append(institution_input_field); + institution_autocomplete(); + } + function set_events() { jQuery("#create_institution_link").click(open_create_institution_modal); @@ -123,7 +167,16 @@ jQuery('#save_institution_button').click(save_institution); jQuery("#community_name").keyup(institution_already_exists); + + jQuery(".add_new_institution").click(add_new_institution); + + institution_autocomplete(); + + jQuery(".input_institution").blur(function(){ + if( this.value == "" ) + jQuery("#user_institution_id").val(""); + }); } jQuery(document).ready(set_events); -})(); \ No newline at end of file +})(); diff --git a/public/mpog-user-validations.js b/public/mpog-user-validations.js index cb8b5ac..a023795 100644 --- a/public/mpog-user-validations.js +++ b/public/mpog-user-validations.js @@ -42,36 +42,6 @@ function validate_email_format(){ this.className = ""; } -function institution_autocomplete() { - jQuery("#input_institution").autocomplete({ - source : function(request, response){ - jQuery.ajax({ - type: "GET", - url: "/plugin/mpog_software/get_institutions", - data: {query: request.term}, - success: function(result){ - response(result); - - if( result.length == 0 ) { - jQuery('#institution_empty_ajax_message').switchClass("hide-field", "show-field"); - } else { - jQuery('#institution_empty_ajax_message').switchClass("show-field", "hide-field"); - } - }, - error: function(ajax, stat, errorThrown) { - console.log('Link not found : ' + errorThrown); - } - }); - }, - - minLength: 2, - - select : function (event, selected) { - jQuery("#user_institution_id").val(selected.item.id); - } - }); -} - jQuery(document).ready(function(){ jQuery('#secondary_email_field').blur( @@ -90,11 +60,4 @@ jQuery(document).ready(function(){ jQuery('#area_interest_field').focus(function() { jQuery('#area-interest-balloon').fadeIn('slow'); }); jQuery('#area_interest_field').blur(function() { jQuery('#area-interest-balloon').fadeOut('slow'); }); - - institution_autocomplete(); - - jQuery("#input_institution").blur(function(){ - if( this.value == "" ) - jQuery("#user_institution_id").val(""); - }); }); -- libgit2 0.21.2