Refactor JS and add update test

This commit is contained in:
Fernando Blat
2017-02-10 09:48:28 +01:00
parent 132d5622ca
commit 04ad8bb6c7
3 changed files with 40 additions and 48 deletions

View File

@@ -1,45 +1,14 @@
App.LegislationAdmin = App.LegislationAdmin =
initialize: -> initialize: ->
$("input[type='checkbox']#debate_phase_active").on $("input[type='checkbox'][data-disable-date]").on
change: -> change: ->
if $("input[type='checkbox']#debate_phase_active").is(':checked') checkbox = $(this)
console.log("checked") parent = $(this).parents('.row:eq(0)')
$("input#debate_start_date").removeAttr("disabled") date_selector = $(this).data('disable-date')
$("input#debate_end_date").removeAttr("disabled") parent.find("input[type='text'][id^='"+date_selector+"']").each ->
else if checkbox.is(':checked')
console.log("unchecked") $(this).removeAttr("disabled")
$("input#debate_start_date").val("") else
$("input#debate_start_date").attr("disabled", true) $(this).val("")
$("input#debate_end_date").val("")
$("input#debate_end_date").attr("disabled", true)
$("input[type='checkbox']#allegations_phase_active").on
change: ->
if $("input[type='checkbox']#allegations_phase_active").is(':checked')
$("input#allegations_start_date").removeAttr("disabled")
$("input#allegations_end_date").removeAttr("disabled")
else
$("input#allegations_start_date").val("")
$("input#allegations_start_date").prop( "disabled", true )
$("input#allegations_end_date").val("")
$("input#allegations_end_date").prop( "disabled", true )
$("input[type='checkbox']#draft_publication_phase_active").on
change: ->
if $("input[type='checkbox']#draft_publication_phase_active").is(':checked')
$("input#draft_publication_date").removeAttr("disabled")
else
$("input#draft_publication_date").val("")
$("input#draft_publication_date").prop( "disabled", true )
$("input[type='checkbox']#final_version_publication_phase_active").on
change: ->
if $("input[type='checkbox']#final_version_publication_phase_active").is(':checked')
$("input#final_publication_date").removeAttr("disabled")
else
$("input#final_publication_date").val("")
$("input#final_publication_date").prop( "disabled", true )

View File

@@ -64,8 +64,8 @@
id: "debate_end_date" %> id: "debate_end_date" %>
</div> </div>
<div class="small-12 medium-2 column"> <div class="small-12 medium-2 column">
<%= check_box_tag :debate_phase_active, @process.active_phase?(:debate), @process.new_record? || @process.active_phase?(:debate) %> <%= check_box_tag :debate_phase_active, @process.active_phase?(:debate), @process.new_record? || @process.active_phase?(:debate), data: {disable_date: "debate"} %>
<%= t('admin.legislation.processes.form.active') %> <%= label_tag :debate_phase_active, t('admin.legislation.processes.form.active') %>
</div> </div>
<div class="small-12 medium-4 column"> <div class="small-12 medium-4 column">
@@ -92,8 +92,8 @@
id: "allegations_end_date" %> id: "allegations_end_date" %>
</div> </div>
<div class="small-12 medium-2 column"> <div class="small-12 medium-2 column">
<%= check_box_tag :allegations_phase_active, @process.active_phase?(:allegations), @process.new_record? || @process.active_phase?(:allegations) %> <%= check_box_tag :allegations_phase_active, @process.active_phase?(:allegations), @process.new_record? || @process.active_phase?(:allegations), data: {disable_date: "allegations"} %>
<%= t('admin.legislation.processes.form.active') %> <%= label_tag :allegations_phase_active, t('admin.legislation.processes.form.active') %>
</div> </div>
</div> </div>
@@ -109,8 +109,8 @@
id: "draft_publication_date" %> id: "draft_publication_date" %>
</div> </div>
<div class="small-12 medium-2 column"> <div class="small-12 medium-2 column">
<%= check_box_tag :draft_publication_phase_active, @process.active_phase?(:draft_publication), @process.new_record? || @process.active_phase?(:draft_publication) %> <%= check_box_tag :draft_publication_phase_active, @process.active_phase?(:draft_publication), @process.new_record? || @process.active_phase?(:draft_publication), data: {disable_date: "draft_publication"} %>
<%= t('admin.legislation.processes.form.active') %> <%= label_tag :draft_publication_phase_active, t('admin.legislation.processes.form.active') %>
</div> </div>
</div> </div>
@@ -126,8 +126,8 @@
id: "final_publication_date" %> id: "final_publication_date" %>
</div> </div>
<div class="small-12 medium-2 column"> <div class="small-12 medium-2 column">
<%= check_box_tag :final_version_publication_phase_active, @process.active_phase?(:final_version_publication), @process.new_record? || @process.active_phase?(:final_version_publication) %> <%= check_box_tag :final_version_publication_phase_active, @process.active_phase?(:final_version_publication), @process.new_record? || @process.active_phase?(:final_version_publication), data: {disable_date: "final_publication"} %>
<%= t('admin.legislation.processes.form.active') %> <%= label_tag :final_version_publication_phase_active, t('admin.legislation.processes.form.active') %>
</div> </div>
</div> </div>

View File

@@ -59,4 +59,27 @@ feature 'Admin legislation processes' do
expect(page).to have_content 'An example legislation process' expect(page).to have_content 'An example legislation process'
end end
end end
context 'Update' do
scenario 'Deactivate debate phase', js: true do
process = create(:legislation_process, title: 'An example legislation process')
visit admin_root_path
within('#side_menu') do
click_link "Collaborative Legislation"
end
click_link "An example legislation process"
expect(page).to have_selector("h1", text: "An example legislation process")
expect(find("#debate_phase_active")).to be_checked
uncheck "debate_phase_active"
click_button "Save changes"
expect(page).to have_content "Process updated successfully"
expect(find("#debate_start_date").value).to be_blank
expect(find("#debate_end_date").value).to be_blank
end
end
end end