Merge pull request #1002 from consul/dossier-form

changes visible fields in dossier form
This commit is contained in:
Enrique García
2016-03-17 13:14:51 +01:00
4 changed files with 119 additions and 23 deletions

View File

@@ -41,6 +41,7 @@
//= require registration_form
//= require suggest
//= require forms
//= require valuation_spending_proposal_form
var initialize_modules = function() {
App.Comments.initialize();
@@ -57,6 +58,7 @@ var initialize_modules = function() {
App.RegistrationForm.initialize();
App.Suggest.initialize();
App.Forms.initialize();
App.ValuationSpendingProposalForm.initialize();
};
$(function(){

View File

@@ -0,0 +1,32 @@
App.ValuationSpendingProposalForm =
showFeasibleFields: ->
$('#valuation_spending_proposal_edit_form #not_feasible_fields').hide('down')
$('#valuation_spending_proposal_edit_form #feasible_fields').show()
showNotFeasibleFields: ->
$('#valuation_spending_proposal_edit_form #feasible_fields').hide('down')
$('#valuation_spending_proposal_edit_form #not_feasible_fields').show()
showAllFields: ->
$('#valuation_spending_proposal_edit_form #feasible_fields').show('down')
$('#valuation_spending_proposal_edit_form #not_feasible_fields').show('down')
showFeasibilityFields: ->
feasible = $("#valuation_spending_proposal_edit_form input[type=radio][name='spending_proposal[feasible]']:checked").val()
if feasible == 'true'
App.ValuationSpendingProposalForm.showFeasibleFields()
else if feasible == 'false'
App.ValuationSpendingProposalForm.showNotFeasibleFields()
showFeasibilityFieldsOnChange: ->
$("#valuation_spending_proposal_edit_form input[type=radio][name='spending_proposal[feasible]']").change ->
App.ValuationSpendingProposalForm.showAllFields()
App.ValuationSpendingProposalForm.showFeasibilityFields()
initialize: ->
App.ValuationSpendingProposalForm.showFeasibilityFields()
App.ValuationSpendingProposalForm.showFeasibilityFieldsOnChange()
false

View File

@@ -1,7 +1,7 @@
<%= link_to "#{t('valuation.spending_proposals.show.heading')} #{@spending_proposal.id}", valuation_spending_proposal_path(@spending_proposal), class: 'back' %>
<h2><%= t("valuation.spending_proposals.edit.dossier") %></h2>
<%= form_for(@spending_proposal, url: valuate_valuation_spending_proposal_path(@spending_proposal)) do |f| %>
<%= form_for(@spending_proposal, url: valuate_valuation_spending_proposal_path(@spending_proposal), html: {id: "valuation_spending_proposal_edit_form"}) do |f| %>
<%= render 'shared/errors', resource: @spending_proposal %>
<div class="row">
<div class="small-12 medium-8 column">
@@ -31,37 +31,45 @@
</div>
</div>
<div class="row">
<div class="small-12 medium-8 column">
<%= f.label :feasible_explanation, t("valuation.spending_proposals.edit.feasible_explanation_html") %>
<%= f.text_area :feasible_explanation, label: false, rows: 3 %>
<div id="not_feasible_fields" >
<div class="row">
<div class="small-12 medium-8 column">
<%= f.label :feasible_explanation, t("valuation.spending_proposals.edit.feasible_explanation_html") %>
<%= f.text_area :feasible_explanation, label: false, rows: 3 %>
</div>
</div>
</div>
<div class="row">
<div class="small-12 medium-4 column">
<%= f.label :price, "#{t('valuation.spending_proposals.edit.price_html', currency: t('valuation.spending_proposals.edit.currency'))}" %>
<%= f.number_field :price, label: false, max: 1000000000000000 %>
<div id="feasible_fields">
<div class="row">
<div class="small-12 medium-4 column">
<%= f.label :price, "#{t('valuation.spending_proposals.edit.price_html', currency: t('valuation.spending_proposals.edit.currency'))}" %>
<%= f.number_field :price, label: false, max: 1000000000000000 %>
</div>
<div class="small-12 medium-4 column end">
<%= f.label :price_first_year, "#{t('valuation.spending_proposals.edit.price_first_year_html', currency: t('valuation.spending_proposals.edit.currency'))}" %>
<%= f.number_field :price_first_year, label: false, max: 1000000000000000 %>
</div>
</div>
<div class="small-12 medium-4 column end">
<%= f.label :price_first_year, "#{t('valuation.spending_proposals.edit.price_first_year_html', currency: t('valuation.spending_proposals.edit.currency'))}" %>
<%= f.number_field :price_first_year, label: false, max: 1000000000000000 %>
<div class="row">
<div class="small-12 medium-8 column">
<%= f.label :price_explanation, t("valuation.spending_proposals.edit.price_explanation_html") %>
<%= f.text_area :price_explanation, label: false, rows: 3 %>
</div>
</div>
</div>
<div class="row">
<div class="small-12 medium-8 column">
<%= f.label :price_explanation, t("valuation.spending_proposals.edit.price_explanation_html") %>
<%= f.text_area :price_explanation, label: false, rows: 3 %>
<div class="row">
<div class="small-12 medium-8 column">
<%= f.label :time_scope, t("valuation.spending_proposals.edit.time_scope_html") %>
<%= f.text_field :time_scope, label: false %>
</div>
</div>
</div>
<div class="row">
<div class="small-12 medium-8 column">
<%= f.label :time_scope, t("valuation.spending_proposals.edit.time_scope_html") %>
<%= f.text_field :time_scope, label: false %>
</div>
</div>
<div class="row">

View File

@@ -288,6 +288,60 @@ feature 'Valuation spending proposals' do
expect(find "#spending_proposal_feasible_nil").to be_checked
end
scenario 'Feasibility selection makes proper fields visible', :js do
feasible_true_fields = ['Price (€)','Cost during the first year (€)','Price explanation','Time scope']
feasible_false_fields = ['Feasibility explanation']
feasible_any_fields = ['Valuation finished','Internal comments']
feasible_nil_fields = feasible_true_fields + feasible_false_fields + feasible_any_fields
visit edit_valuation_spending_proposal_path(@spending_proposal)
expect(find "#spending_proposal_feasible_nil").to be_checked
feasible_nil_fields.each do |field|
expect(page).to have_content(field)
end
choose 'spending_proposal_feasible_true'
feasible_false_fields.each do |field|
expect(page).to_not have_content(field)
end
(feasible_true_fields + feasible_any_fields).each do |field|
expect(page).to have_content(field)
end
choose 'spending_proposal_feasible_false'
feasible_true_fields.each do |field|
expect(page).to_not have_content(field)
end
(feasible_false_fields + feasible_any_fields).each do |field|
expect(page).to have_content(field)
end
click_button 'Save changes'
visit edit_valuation_spending_proposal_path(@spending_proposal)
expect(find "#spending_proposal_feasible_false").to be_checked
feasible_true_fields.each do |field|
expect(page).to_not have_content(field)
end
(feasible_false_fields + feasible_any_fields).each do |field|
expect(page).to have_content(field)
end
choose 'spending_proposal_feasible_nil'
feasible_nil_fields.each do |field|
expect(page).to have_content(field)
end
end
scenario 'Finish valuation' do
visit valuation_spending_proposal_path(@spending_proposal)
click_link 'Edit dossier'