Refactor JS and add update test
This commit is contained in:
@@ -1,45 +1,14 @@
|
||||
App.LegislationAdmin =
|
||||
|
||||
initialize: ->
|
||||
$("input[type='checkbox']#debate_phase_active").on
|
||||
$("input[type='checkbox'][data-disable-date]").on
|
||||
change: ->
|
||||
if $("input[type='checkbox']#debate_phase_active").is(':checked')
|
||||
console.log("checked")
|
||||
$("input#debate_start_date").removeAttr("disabled")
|
||||
$("input#debate_end_date").removeAttr("disabled")
|
||||
else
|
||||
console.log("unchecked")
|
||||
$("input#debate_start_date").val("")
|
||||
$("input#debate_start_date").attr("disabled", true)
|
||||
$("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 )
|
||||
|
||||
|
||||
checkbox = $(this)
|
||||
parent = $(this).parents('.row:eq(0)')
|
||||
date_selector = $(this).data('disable-date')
|
||||
parent.find("input[type='text'][id^='"+date_selector+"']").each ->
|
||||
if checkbox.is(':checked')
|
||||
$(this).removeAttr("disabled")
|
||||
else
|
||||
$(this).val("")
|
||||
|
||||
|
||||
@@ -64,8 +64,8 @@
|
||||
id: "debate_end_date" %>
|
||||
</div>
|
||||
<div class="small-12 medium-2 column">
|
||||
<%= check_box_tag :debate_phase_active, @process.active_phase?(:debate), @process.new_record? || @process.active_phase?(:debate) %>
|
||||
<%= t('admin.legislation.processes.form.active') %>
|
||||
<%= check_box_tag :debate_phase_active, @process.active_phase?(:debate), @process.new_record? || @process.active_phase?(:debate), data: {disable_date: "debate"} %>
|
||||
<%= label_tag :debate_phase_active, t('admin.legislation.processes.form.active') %>
|
||||
</div>
|
||||
|
||||
<div class="small-12 medium-4 column">
|
||||
@@ -92,8 +92,8 @@
|
||||
id: "allegations_end_date" %>
|
||||
</div>
|
||||
<div class="small-12 medium-2 column">
|
||||
<%= check_box_tag :allegations_phase_active, @process.active_phase?(:allegations), @process.new_record? || @process.active_phase?(:allegations) %>
|
||||
<%= t('admin.legislation.processes.form.active') %>
|
||||
<%= check_box_tag :allegations_phase_active, @process.active_phase?(:allegations), @process.new_record? || @process.active_phase?(:allegations), data: {disable_date: "allegations"} %>
|
||||
<%= label_tag :allegations_phase_active, t('admin.legislation.processes.form.active') %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -109,8 +109,8 @@
|
||||
id: "draft_publication_date" %>
|
||||
</div>
|
||||
<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) %>
|
||||
<%= t('admin.legislation.processes.form.active') %>
|
||||
<%= 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"} %>
|
||||
<%= label_tag :draft_publication_phase_active, t('admin.legislation.processes.form.active') %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -126,8 +126,8 @@
|
||||
id: "final_publication_date" %>
|
||||
</div>
|
||||
<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) %>
|
||||
<%= t('admin.legislation.processes.form.active') %>
|
||||
<%= 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"} %>
|
||||
<%= label_tag :final_version_publication_phase_active, t('admin.legislation.processes.form.active') %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -59,4 +59,27 @@ feature 'Admin legislation processes' do
|
||||
expect(page).to have_content 'An example legislation process'
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user