Commit 52a816c0f9986088170f99a4b10dda269c9cb6cd

Authored by Gabriela Navarro
Committed by Fabio Teixeira
1 parent 85bd4347

Fix the form problem. When there is a error when creating an institution through…

… the admin panel, it would empty the form.

Signed-off-by: Gabriela Navarro <navarro1703@gmail.com>
Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>
controllers/gov_user_plugin_controller.rb
... ... @@ -16,6 +16,14 @@ class GovUserPluginController &lt; ApplicationController
16 16 @show_sisp_field = environment.admins.include?(current_user.person)
17 17 @state_list = get_state_list()
18 18  
  19 + params[:community] ||= {}
  20 + params[:institutions] ||= {}
  21 +
  22 + @state_options = [[_('Select a state'), '-1']] | @state_list.collect {|state| [state.name, state.name]}
  23 + @governmental_sphere_options = [[_("Select a Governmental Sphere"), 0]]|GovernmentalSphere.all.map {|s| [s.name, s.id]}
  24 + @governmental_power_options = [[_("Select a Governmental Power"), 0]]|GovernmentalPower.all.map {|g| [g.name, g.id]}
  25 + @juridical_nature_options = [[_("Select a Juridical Nature"), 0]]|JuridicalNature.all.map {|j| [j.name, j.id]}
  26 +
19 27 if request.xhr?
20 28 render :layout=>false
21 29 else
... ... @@ -35,6 +43,14 @@ class GovUserPluginController &lt; ApplicationController
35 43 @state_list = get_state_list()
36 44  
37 45 @url_token = split_http_referer request.original_url()
  46 +
  47 + params[:community] ||= {}
  48 + params[:institutions] ||= {}
  49 +
  50 + @state_options = [[_('Select a state'), '-1']] | @state_list.collect {|state| [state.name, state.name]}
  51 + @governmental_sphere_options = [[_("Select a Governmental Sphere"), 0]]|GovernmentalSphere.all.map {|s| [s.name, s.id]}
  52 + @governmental_power_options = [[_("Select a Governmental Power"), 0]]|GovernmentalPower.all.map {|g| [g.name, g.id]}
  53 + @juridical_nature_options = [[_("Select a Juridical Nature"), 0]]|JuridicalNature.all.map {|j| [j.name, j.id]}
38 54 end
39 55  
40 56 def new_institution
... ... @@ -45,10 +61,10 @@ class GovUserPluginController &lt; ApplicationController
45 61 institution_template = Community["institution"]
46 62 add_template_in_params institution_template
47 63  
48   - institution = private_create_institution
49   - add_environment_admins_to_institution institution
  64 + @institutions = private_create_institution
  65 + add_environment_admins_to_institution @institutions
50 66  
51   - response_message = save_institution institution
  67 + response_message = save_institution @institutions
52 68  
53 69 if request.xhr? #User create institution
54 70 render :json => response_message.to_json
... ... @@ -203,7 +219,7 @@ class GovUserPluginController &lt; ApplicationController
203 219 redirect_to :controller => "/admin_panel", :action => "index"
204 220 else
205 221 flash[:errors] = response_message[:errors]
206   - render :controller => "gov_user_plugin", :action => "create_institution_admin"
  222 + redirect_to :controller => "gov_user_plugin", :action => "create_institution_admin", :params => params
207 223 end
208 224 end
209 225  
... ...
public/views/create-institution.js
... ... @@ -102,8 +102,12 @@ modulejs.define(&#39;CreateInstitution&#39;, [&#39;jquery&#39;, &#39;NoosferoRoot&#39;, &#39;SelectElement&#39;]
102 102 errors += "<li>"+response.errors[i]+"</li>";
103 103 }
104 104 errors += "</ul>";
105   -
106   - $("#create_institution_errors").switchClass("hide-field", "show-field").html("<h2>"+response.message+"</h2>"+errors);
  105 + if($('#institution_dialog') != []){
  106 + $('#create_institution_errors').switchClass("show-field", "hide-field");
  107 + $('#errorExplanation').html("<h2>"+response.message+"</h2>"+errors);
  108 + }else{
  109 + $("#create_institution_errors").switchClass("hide-field", "show-field").html("<h2>"+response.message+"</h2>"+errors);
  110 + }
107 111 }
108 112 }
109 113  
... ...
views/gov_user_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   - <div class="fields-required">
24   - <span class="errorExplanation"><%= _("All fields with (*) are mandatory") %></span>
25   - </div>
26   - <br/>
27 23 <%= labelled_form_for :community, :url => {:action=>"new_institution"}, :html => { :multipart => true, :id=>"institution_form" } do |f| %>
  24 + <div class="fields-required">
  25 + <span class="errorExplanation"><%= required_fields_message %></span>
  26 + </div>
  27 + <br/>
28 28 <%= hidden_field_tag "edit_institution_page", false %>
29 29 <%= fields_for :institutions do |inst| %>
30 30 <span class=''>
... ... @@ -40,22 +40,24 @@
40 40 </div>
41 41 </span>
42 42  
43   - <%= required f.text_field(:name) %>
  43 + <%= required f.text_field(:name, :value => params[:community][:name]) %>
44 44 <%= content_tag :span, _("Institution name already exists"), :id=>"already_exists_text", :class=>"errorExplanation hide-field" %>
45 45  
46   - <span class='required-field'>
47   - <div class="formfield type-text">
48   - <%= inst.label "corporate_name", _("Corporate Name"), :class=>"formlabel" %>
49   - <%= required inst.text_field(:corporate_name) %>
50   - </div>
51   - </span>
  46 + <div class= <%= @error_corporate_name %> >
  47 + <span class='required-field'>
  48 + <div class="formfield type-text">
  49 + <%= inst.label "corporate_name", _("Corporate Name"), :class=>"formlabel" %>
  50 + <%= required inst.text_field(:corporate_name, :value => params[:institutions][:corporate_name]) %>
  51 + </div>
  52 + </span>
  53 + </div>
52 54  
53 55 <span class='optional-field'>
54 56 <div class="formfield type-text">
55 57 <%= hidden_field_tag "acronym_translate", _("Acronym") %>
56 58 <%= hidden_field_tag "fantasy_name_translate", _("Fantasy name") %>
57 59 <%= inst.label("acronym" ,_("Acronym"), :class=>"formlabel") %>
58   - <%= inst.text_field(:acronym) %>
  60 + <%= inst.text_field(:acronym, :value => params[:institutions][:acronym]) %>
59 61 </div>
60 62 </span>
61 63  
... ... @@ -64,37 +66,37 @@
64 66 <span class='required-field'>
65 67 <div class="formfield">
66 68 <label for="community_state" class="formlabel"><%= _("State") %></label>
67   - <%= f.select(:state, [[_('Select a state'), '-1']] | @state_list.collect {|state| [state.name, state.name]}) %>
  69 + <%= f.select(:state, @state_options, :selected => params[:community][:state]) %>
68 70 </div>
69 71 </span>
70 72  
71   - <%= required f.text_field(:city, :id => "city_field") %>
  73 + <%= required f.text_field(:city, :value => params[:community][:city], :id => "city_field") %>
72 74  
73 75  
74 76 <span class='required-field'>
75 77 <div class="formfield type-text">
76 78 <%= inst.label("cnpj" ,_("CNPJ"), :class=>"formlabel") %>
77   - <%= required inst.text_field(:cnpj, :placeholder=>"99.999.999/9999-99", :class=>"intitution_cnpj_field") %>
  79 + <%= required inst.text_field(:cnpj, :value => params[:institutions][:cnpj], :placeholder=>"99.999.999/9999-99", :class=>"intitution_cnpj_field") %>
78 80 </div>
79 81 </span>
80 82  
81 83 <span class='required-field public-institutions-fields'>
82 84 <div class="formfield type-text">
83 85 <%= inst.label("governmental_sphere_id" ,_("Governmental Sphere:"), :class=>"formlabel") %>
84   - <%= inst.select(:governmental_sphere, [[_("Select a Governmental Sphere"), 0]]|GovernmentalSphere.all.map {|s| [s.name, s.id]}, {:selected=>0})%>
  86 + <%= inst.select(:governmental_sphere, @governmental_sphere_options, :selected => params[:institutions][:governmental_sphere])%>
85 87 </div>
86 88 </span>
87 89  
88 90 <span class='required-field public-institutions-fields'>
89 91 <div class="formfield type-text">
90 92 <%= inst.label("governmental_power_id" ,_("Governmental Power:"), :class=>"formlabel") %>
91   - <%= inst.select(:governmental_power, [[_("Select a Governmental Power"), 0]]|GovernmentalPower.all.map {|g| [g.name, g.id]}, {:selected=>0})%>
  93 + <%= inst.select(:governmental_power, @governmental_power_options, :selected => params[:institutions][:governmental_power])%>
92 94 </div>
93 95 </span>
94 96 <span class='required-field public-institutions-fields'>
95 97 <div class="formfield type-text">
96 98 <%= inst.label("juridical_nature_id" ,_("Juridical Nature:"), :class=>"formlabel") %>
97   - <%= inst.select(:juridical_nature, [[_("Select a Juridical Nature"), 0]]|JuridicalNature.all.map {|j| [j.name, j.id]}, {:selected=>0})%>
  99 + <%= inst.select(:juridical_nature, @juridical_nature_options, :selected => params[:institutions][:juridical_nature])%>
98 100 </div>
99 101 </span>
100 102  
... ...