Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jw epic questions bug after bootstrap merge #399

Merged
merged 3 commits into from
May 20, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
152 changes: 78 additions & 74 deletions app/assets/javascripts/studies.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,14 @@ $(document).ready ->

FormFxManager.registerListeners($('.edit-project-view'), display_dependencies)

study_type_form = $('.study_type')
study_selected_for_epic_radio = $('input[name=\'study[selected_for_epic]\']')
certificate_of_confidence_dropdown = $('#study_type_answer_certificate_of_conf_answer')
higher_level_of_privacy_dropdown = $('#study_type_answer_higher_level_of_privacy_answer')
access_required_dropdown = $('#study_type_answer_access_study_info_answer')
epic_inbasket_dropdown = $('#study_type_answer_epic_inbasket_answer')
research_active_dropdown = $('#study_type_answer_research_active_answer')
restrict_sending_dropdown = $('#study_type_answer_restrict_sending_answer')
study_type_form = '.study_type'
study_selected_for_epic_button = 'input[name=\'study[selected_for_epic]\']'
certificate_of_confidence_dropdown = '#study_type_answer_certificate_of_conf_answer'
higher_level_of_privacy_dropdown = '#study_type_answer_higher_level_of_privacy_answer'
access_required_dropdown = '#study_type_answer_access_study_info_answer'
epic_inbasket_dropdown = '#study_type_answer_epic_inbasket_answer'
research_active_dropdown = '#study_type_answer_research_active_answer'
restrict_sending_dropdown = '#study_type_answer_restrict_sending_answer'

$.prototype.hide_elt = () ->
this[0].selectedIndex = 0
Expand Down Expand Up @@ -89,89 +89,93 @@ $(document).ready ->

# If study is inactive, we want to force users to fill out new epic box questions
if $('input[name=\'study[selected_for_epic]\']:checked').val() == 'true'
study_type_form.show()
certificate_of_confidence_dropdown.show_elt()

# Logic for epic info box
study_selected_for_epic_radio.on 'change', (e) ->
if $('input[name=\'study[selected_for_epic]\']:checked').val() == 'true'
study_type_form.show()
certificate_of_confidence_dropdown.show_elt()
else
study_type_form.hide()
certificate_of_confidence_dropdown.hide_elt().trigger 'change'
return

certificate_of_confidence_dropdown.on 'change', (e) ->
$(study_type_form).show()
$(certificate_of_confidence_dropdown).show_elt().trigger 'change'
if $(higher_level_of_privacy_dropdown).val()
$(higher_level_of_privacy_dropdown).trigger 'change'
if $(access_required_dropdown).val()
$(access_required_dropdown).trigger 'change'

$(document).on 'change', study_selected_for_epic_button, ->
# Publish Study in Epic - Radio
switch $('input[name=\'study[selected_for_epic]\']:checked').val()
when 'true'
$(study_type_form).show()
$(certificate_of_confidence_dropdown).show_elt()
when 'false'
$(study_type_form).hide()
$(certificate_of_confidence_dropdown).hide_elt().trigger 'change'

$(document).on 'change', certificate_of_confidence_dropdown, (e) ->
new_value = $(e.target).val()
if new_value == 'false'
higher_level_of_privacy_dropdown.show_elt()
else
higher_level_of_privacy_dropdown.hide_elt()
access_required_dropdown.hide_elt()
epic_inbasket_dropdown.hide_elt()
research_active_dropdown.hide_elt()
restrict_sending_dropdown.hide_elt()
$(higher_level_of_privacy_dropdown).show_elt()
else if new_value == 'true'
$(higher_level_of_privacy_dropdown).hide_elt()
$(access_required_dropdown).hide_elt()
$(epic_inbasket_dropdown).hide_elt()
$(research_active_dropdown).hide_elt()
$(restrict_sending_dropdown).hide_elt()
return


higher_level_of_privacy_dropdown.on 'change', (e) ->
$(document).on 'change', higher_level_of_privacy_dropdown, (e) ->
new_value = $(e.target).val()
if new_value == 'false'
access_required_dropdown.hide_elt()
epic_inbasket_dropdown.show_elt()
research_active_dropdown.show_elt()
restrict_sending_dropdown.show_elt()
else
access_required_dropdown.show_elt()
epic_inbasket_dropdown.hide_elt()
research_active_dropdown.hide_elt()
restrict_sending_dropdown.hide_elt()
$(access_required_dropdown).hide_elt()
$(epic_inbasket_dropdown).show_elt()
$(research_active_dropdown).show_elt()
$(restrict_sending_dropdown).show_elt()
else if new_value == 'true' && $(access_required_dropdown).val() == ''
$(access_required_dropdown).show_elt()
$(epic_inbasket_dropdown).hide_elt()
$(research_active_dropdown).hide_elt()
$(restrict_sending_dropdown).hide_elt()
return

access_required_dropdown.on 'change', (e) ->
$(document).on 'change', access_required_dropdown, (e) ->
new_value = $(e.target).val()
if new_value == 'false'
epic_inbasket_dropdown.show_elt()
research_active_dropdown.show_elt()
restrict_sending_dropdown.show_elt()
else
epic_inbasket_dropdown.hide_elt()
research_active_dropdown.hide_elt()
restrict_sending_dropdown.hide_elt()
if new_value == 'false' || new_value == nil
$(epic_inbasket_dropdown).show_elt()
$(research_active_dropdown).show_elt()
$(restrict_sending_dropdown).show_elt()
else if new_value == 'true'
$(epic_inbasket_dropdown).hide_elt()
$(research_active_dropdown).hide_elt()
$(restrict_sending_dropdown).hide_elt()
return

# When the epic box answers hit the validations with an unselected field,
# the html.haml sets display to none for unselected fields
# So if the user has not filled out one of the
# required fields in the epic box, it will hit this code and display
# the appropriate fields that need to be filled out with a visual cue of red border
if $('.field_with_errors label:contains("Study type questions")').length > 0
study_selected_for_epic_radio.change()
if certificate_of_confidence_dropdown.is(':visible')
certificate_of_confidence_dropdown.change()
if higher_level_of_privacy_dropdown.val() == 'true'
access_required_dropdown.show_elt()
access_required_dropdown.change()
if higher_level_of_privacy_dropdown.val() == 'false'
higher_level_of_privacy_dropdown.change()
if certificate_of_confidence_dropdown != "" && higher_level_of_privacy_dropdown.val() != "" && access_required_dropdown.val() == 'false'
access_required_dropdown.change()
add_and_check_visual_error_on_submit(certificate_of_confidence_dropdown)
add_and_check_visual_error_on_submit(higher_level_of_privacy_dropdown)
add_and_check_visual_error_on_submit(access_required_dropdown)
add_and_check_visual_error_on_submit(epic_inbasket_dropdown)
add_and_check_visual_error_on_submit(research_active_dropdown)
add_and_check_visual_error_on_submit(restrict_sending_dropdown)

certificate_of_confidence_dropdown.on 'change', (e) ->
add_and_check_visual_error_on_field_change(certificate_of_confidence_dropdown)

higher_level_of_privacy_dropdown.on 'change', (e) ->
add_and_check_visual_error_on_field_change(higher_level_of_privacy_dropdown)

access_required_dropdown.on 'change', (e) ->
add_and_check_visual_error_on_field_change(access_required_dropdown)
if $('#errorExplanation ul li:contains("Study type answers")').length > 0
$(study_selected_for_epic_button).change()
if $(certificate_of_confidence_dropdown).is(':visible')
$(certificate_of_confidence_dropdown).change()
if $(higher_level_of_privacy_dropdown).val() == 'true'
$(access_required_dropdown).show_elt()
$(higher_level_of_privacy_dropdown).change()
if $(higher_level_of_privacy_dropdown).val() == 'false'
$(higher_level_of_privacy_dropdown).change()
if $(certificate_of_confidence_dropdown) != "" && $(higher_level_of_privacy_dropdown).val() != "" && $(access_required_dropdown).val() == 'false'
$(access_required_dropdown).change()
add_and_check_visual_error_on_submit($(certificate_of_confidence_dropdown))
add_and_check_visual_error_on_submit($(higher_level_of_privacy_dropdown))
add_and_check_visual_error_on_submit($(access_required_dropdown))
add_and_check_visual_error_on_submit($(epic_inbasket_dropdown))
add_and_check_visual_error_on_submit($(research_active_dropdown))
add_and_check_visual_error_on_submit($(restrict_sending_dropdown))

$(document).on 'change', $(certificate_of_confidence_dropdown), (e) ->
add_and_check_visual_error_on_field_change($(certificate_of_confidence_dropdown))

$(document).on 'change', $(higher_level_of_privacy_dropdown), (e) ->
add_and_check_visual_error_on_field_change($(higher_level_of_privacy_dropdown))

$(document).on 'change', $(access_required_dropdown), (e) ->
add_and_check_visual_error_on_field_change($(access_required_dropdown))

######## End of send to epic study question logic ##############

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
it 'should throw an error when trying to submit incomplete epic box info' do
find('.continue_button').click
expect(page).to have_content("1 error prohibited this study from being saved")
expect(page).to have_content("Study type questions must be selected")
expect(page).to have_content("Study type answers must be selected")
expect(page).to have_select('study_type_answer_certificate_of_conf_answer', selected: 'No')
expect(page).to have_select('study_type_answer_higher_level_of_privacy_answer', selected: 'Select One')
end
Expand Down Expand Up @@ -103,7 +103,7 @@
it 'should throw an error when trying to submit incomplete epic box info' do
find('.continue_button').click
expect(page).to have_content("1 error prohibited this study from being saved")
expect(page).to have_content("Study type questions must be selected")
expect(page).to have_content("Study type answers must be selected")
expect(page).to have_select('study_type_answer_certificate_of_conf_answer', selected: 'No')
expect(page).to have_select('study_type_answer_higher_level_of_privacy_answer', selected: 'No')
expect(page).to_not have_selector('#study_type_answer_access_study_info')
Expand Down Expand Up @@ -137,7 +137,7 @@
it 'should throw an error when trying to submit incomplete epic box info' do
find('.continue_button').click
expect(page).to have_content("1 error prohibited this study from being saved")
expect(page).to have_content("Study type questions must be selected")
expect(page).to have_content("Study type answers must be selected")
expect(page).to have_select('study_type_answer_certificate_of_conf_answer', selected: 'No')
expect(page).to have_select('study_type_answer_higher_level_of_privacy_answer', selected: 'Yes')
expect(page).to have_select('study_type_answer_access_study_info_answer', selected: 'No')
Expand Down Expand Up @@ -180,11 +180,9 @@
wait_for_javascript_to_finish
find('.continue_button').click
wait_for_javascript_to_finish

end

it 'new study type should be 7' do

expect(Protocol.find(study.id).determine_study_type).to eq "7"

end
Expand Down