Commit 673c1bceda0380d7c226ae648b0fb6e87e3d05a2
Committed by
Gabriela Navarro
1 parent
79b3cc89
Exists in
master
and in
5 other branches
fix_institution: Both admin's create and user's modal use the same action
Signed-off-by: Fabio Teixeira <fabio1079@gmail.com> Signed-off-by: Gabriela Navarro <navarro1703@gmail.com>
Showing
3 changed files
with
42 additions
and
65 deletions
Show diff stats
controllers/mpog_software_plugin_controller.rb
... | ... | @@ -48,19 +48,6 @@ class MpogSoftwarePluginController < ApplicationController |
48 | 48 | |
49 | 49 | def create_institution_admin |
50 | 50 | @url_token = split_http_referer request.original_url() |
51 | - | |
52 | - if request.post? | |
53 | - governmental = {} | |
54 | - juridical = {} | |
55 | - governmental[:power] = params[:institutions][:governmental_power] | |
56 | - governmental[:sphere] = params[:institutions][:governmental_sphere] | |
57 | - juridical[:nature] = params[:institutions][:juridical_nature] | |
58 | - params[:community][:country] = "BR" | |
59 | - params[:institutions].delete :governmental_power | |
60 | - params[:institutions].delete :governmental_sphere | |
61 | - params[:institutions].delete :juridical_nature | |
62 | - redirect_to :action => "new_institution", :community => params[:community], :institution => params[:institutions], :governmental => governmental, :juridical => juridical | |
63 | - end | |
64 | 51 | end |
65 | 52 | |
66 | 53 | def split_http_referer http_referer |
... | ... | @@ -70,24 +57,24 @@ class MpogSoftwarePluginController < ApplicationController |
70 | 57 | return @url_token |
71 | 58 | end |
72 | 59 | |
73 | - | |
74 | 60 | def new_institution |
75 | - if !params[:community].nil? and !params[:institution].nil? | |
61 | + if !params[:community].nil? and !params[:institutions].nil? | |
76 | 62 | response_message = {} |
77 | 63 | |
78 | 64 | institution = private_create_institution |
79 | 65 | |
80 | 66 | response_message = if institution.errors.full_messages.empty? and institution.valid? and institution.save |
81 | - {:success => true, :message => _("Institution successful created!"), :institution_data=>{:name=>institution.name, :id=>institution.id}} | |
82 | - else | |
83 | - {:success => false, :message => _("Institution could not be created!"), :errors => institution.errors.full_messages} | |
84 | - end | |
85 | - if request.xhr? and (split_http_referer(request.referer()) != "create_institution_admin") | |
86 | - render :json => response_message.to_json | |
87 | - else | |
88 | - session[:notice] = response_message[:message] # consume the notice | |
89 | - redirect_to :controller => "/admin_panel", :action => "index" | |
90 | - end | |
67 | + {:success => true, :message => _("Institution successful created!"), :institution_data=>{:name=>institution.name, :id=>institution.id}} | |
68 | + else | |
69 | + {:success => false, :message => _("Institution could not be created!"), :errors => institution.errors.full_messages} | |
70 | + end | |
71 | + | |
72 | + if request.xhr? | |
73 | + render :json => response_message.to_json | |
74 | + else | |
75 | + session[:notice] = response_message[:message] # consume the notice | |
76 | + redirect_to :controller => "/admin_panel", :action => "index" | |
77 | + end | |
91 | 78 | else |
92 | 79 | redirect_to "/" |
93 | 80 | end |
... | ... | @@ -182,10 +169,10 @@ class MpogSoftwarePluginController < ApplicationController |
182 | 169 | community = Community.new(params[:community]) |
183 | 170 | community.environment = environment |
184 | 171 | |
185 | - institution = if params[:institution][:type] == "PublicInstitution" | |
186 | - PublicInstitution::new params[:institution] | |
172 | + institution = if params[:institutions][:type] == "PublicInstitution" | |
173 | + PublicInstitution::new params[:institutions].except(:governmental_power, :governmental_sphere, :juridical_nature) | |
187 | 174 | else |
188 | - PrivateInstitution::new params[:institution] | |
175 | + PrivateInstitution::new params[:institutions].except(:governmental_power, :governmental_sphere, :juridical_nature) | |
189 | 176 | end |
190 | 177 | |
191 | 178 | institution.name = community[:name] |
... | ... | @@ -193,9 +180,9 @@ class MpogSoftwarePluginController < ApplicationController |
193 | 180 | |
194 | 181 | if institution.type == "PublicInstitution" |
195 | 182 | begin |
196 | - govPower = GovernmentalPower.find params[:governmental][:power] | |
197 | - govSphere = GovernmentalSphere.find params[:governmental][:sphere] | |
198 | - jur_nature = JuridicalNature.find params[:juridical][:nature] | |
183 | + govPower = GovernmentalPower.find params[:institutions][:governmental_power] | |
184 | + govSphere = GovernmentalSphere.find params[:institutions][:governmental_sphere] | |
185 | + jur_nature = JuridicalNature.find params[:institutions][:juridical_nature] | |
199 | 186 | |
200 | 187 | institution.juridical_nature = jur_nature |
201 | 188 | institution.governmental_power = govPower |
... | ... | @@ -211,7 +198,7 @@ class MpogSoftwarePluginController < ApplicationController |
211 | 198 | end |
212 | 199 | |
213 | 200 | InstitutionHelper.register_institution_modification institution |
214 | - | |
201 | + | |
215 | 202 | institution |
216 | 203 | end |
217 | 204 | ... | ... |
public/mpog-institution-validations.js
... | ... | @@ -32,38 +32,21 @@ |
32 | 32 | jQuery("#institutions_governmental_sphere option").selected(0); |
33 | 33 | } |
34 | 34 | |
35 | - function get_selected_institution_type() { | |
36 | - var radio_buttons = jQuery("input[type='radio'][name='type']"); | |
37 | - var type = ""; | |
38 | - | |
39 | - for( var i = 0; i < radio_buttons.length; i++ ) { | |
40 | - if( radio_buttons[i].checked ) { | |
41 | - type = radio_buttons[i].value; | |
42 | - break; | |
43 | - } | |
44 | - } | |
45 | - | |
46 | - return type; | |
47 | - } | |
48 | - | |
49 | 35 | function get_post_data() { |
50 | 36 | return { |
51 | - community : { name : jQuery("#community_name").val(), | |
37 | + community : { | |
38 | + name : jQuery("#community_name").val(), | |
52 | 39 | country : jQuery("#community_country").val(), |
53 | 40 | state : jQuery("#community_state").val(), |
54 | 41 | city : jQuery("#community_city").val() |
55 | 42 | }, |
56 | - governmental : { | |
57 | - power : jQuery("#institutions_governmental_power").selected().val(), | |
58 | - sphere : jQuery("#institutions_governmental_sphere").selected().val() | |
59 | - }, | |
60 | - juridical : { | |
61 | - nature : jQuery("#institutions_juridical_nature").selected().val() | |
62 | - }, | |
63 | - institution : { | |
43 | + institutions : { | |
64 | 44 | cnpj: jQuery("#institutions_cnpj").val(), |
65 | - type: get_selected_institution_type(), | |
45 | + type: jQuery("input[name='institutions[type]']:checked").val(), | |
66 | 46 | acronym : jQuery("#institutions_acronym").val(), |
47 | + governmental_power: jQuery("#institutions_governmental_power").selected().val(), | |
48 | + governmental_sphere: jQuery("#institutions_governmental_sphere").selected().val(), | |
49 | + juridical_nature: jQuery("#institutions_juridical_nature").selected().val() | |
67 | 50 | }, |
68 | 51 | } |
69 | 52 | } |
... | ... | @@ -204,9 +187,12 @@ |
204 | 187 | |
205 | 188 | jQuery("#create_institution_link").click(open_create_institution_modal); |
206 | 189 | |
207 | - jQuery("#type_PrivateInstitution").click(show_private_institutions_fields); | |
208 | - | |
209 | - jQuery("#type_PublicInstitution").click(show_public_institutions_fields); | |
190 | + jQuery("input[type='radio']").click(function(){ | |
191 | + if( this.value == "PublicInstitution" ) | |
192 | + show_public_institutions_fields(); | |
193 | + else | |
194 | + show_private_institutions_fields(); | |
195 | + }); | |
210 | 196 | |
211 | 197 | jQuery('#save_institution_button').click(save_institution); |
212 | 198 | ... | ... |
views/mpog_software_plugin/_institution.html.erb
... | ... | @@ -20,11 +20,11 @@ |
20 | 20 | <div id = 'create_institution_errors' class='errorExplanation hide-field'></div> |
21 | 21 | |
22 | 22 | <div> |
23 | - <%= labelled_form_for :community, :html => { :multipart => true, :id=>"institution_form" } do |f| %> | |
23 | + <%= labelled_form_for :community, :url => {:action=>"new_institution"}, :html => { :multipart => true, :id=>"institution_form" } do |f| %> | |
24 | 24 | <%= required f.text_field(:name) %> |
25 | 25 | <%= content_tag :span, _("Institution name already exists"), :id=>"already_exists_text", :class=>"errorExplanation hide-field" %> |
26 | 26 | |
27 | - <%= required select_country(_('Country'), f, 'country', {:class => 'type-select', :id => "community_country"}) %> | |
27 | + <%= required select_country(_('Country'), 'community', 'country', {:class => 'type-select', :id => "community_country"}) %> | |
28 | 28 | <%= required f.text_field(:state) %> |
29 | 29 | <%= required f.text_field(:city) %> |
30 | 30 | |
... | ... | @@ -39,10 +39,14 @@ |
39 | 39 | |
40 | 40 | <span class=''> |
41 | 41 | <div class='formfield type-radio'> |
42 | - <%= label_tag("type_PublicInstitution", _("Public Institution")) %> | |
43 | - <%= radio_button_tag(:type,"PublicInstitution", true)%> | |
44 | - <%= label_tag("type_PrivateInstitution", _("Private Institution")) %> | |
45 | - <%= radio_button_tag(:type,"PrivateInstitution")%> | |
42 | + <label> <%= _("Public Institution") %> | |
43 | + <%= radio_button_tag("institutions[type]", "PublicInstitution", true) %> | |
44 | + </label> | |
45 | + | |
46 | + <label> | |
47 | + <%= _("Private Institution") %> | |
48 | + <%= radio_button_tag("institutions[type]" ,"PrivateInstitution")%> | |
49 | + </label> | |
46 | 50 | </div> |
47 | 51 | </span> |
48 | 52 | ... | ... |