From b89f5b59f03b5df59fd13e5f82251bc3bb784c55 Mon Sep 17 00:00:00 2001 From: Erik Clarizio Date: Mon, 20 Feb 2017 09:28:08 -0800 Subject: [PATCH] Force triggering of fields set to auto-refresh https://bugzilla.redhat.com/show_bug.cgi?id=1420555 --- app/helpers/application_helper/dialogs.rb | 4 ++++ .../shared/dialogs/_dialog_field_check_box.html.haml | 4 +++- .../_dialog_field_date_and_date_time_control.html.haml | 4 +++- .../shared/dialogs/_dialog_field_drop_down_list.html.haml | 4 +++- .../shared/dialogs/_dialog_field_radio_button.html.haml | 4 +++- .../shared/dialogs/_dialog_field_text_area_box.html.haml | 4 +++- app/views/shared/dialogs/_dialog_field_text_box.html.haml | 4 +++- spec/helpers/application_helper/dialogs_spec.rb | 8 ++++++++ 8 files changed, 30 insertions(+), 6 deletions(-) diff --git a/app/helpers/application_helper/dialogs.rb b/app/helpers/application_helper/dialogs.rb index 95faabdb038..8441255d06f 100644 --- a/app/helpers/application_helper/dialogs.rb +++ b/app/helpers/application_helper/dialogs.rb @@ -131,6 +131,10 @@ def build_auto_refreshable_field_indicies(workflow) auto_refreshable_field_indicies end + def auto_refresh_listening_options(options, trigger_override) + options.merge(:trigger => trigger_override) + end + private def auto_refresh_options(field, auto_refresh_options_hash) diff --git a/app/views/shared/dialogs/_dialog_field_check_box.html.haml b/app/views/shared/dialogs/_dialog_field_check_box.html.haml index 663e1493ae3..59ed8ce5cf3 100644 --- a/app/views/shared/dialogs/_dialog_field_check_box.html.haml +++ b/app/views/shared/dialogs/_dialog_field_check_box.html.haml @@ -5,7 +5,9 @@ :javascript dialogFieldRefresh.listenForAutoRefreshMessages(JSON.parse("#{j(auto_refresh_options.to_json)}"), function() { dialogFieldRefresh.refreshCheckbox("#{field.name}", "#{field.id}", function() { - dialogFieldRefresh.triggerAutoRefresh(JSON.parse('#{j(auto_refresh_options.to_json)}')); + dialogFieldRefresh.triggerAutoRefresh( + JSON.parse('#{j(auto_refresh_listening_options(auto_refresh_options, true).to_json)}') + ); }); }); diff --git a/app/views/shared/dialogs/_dialog_field_date_and_date_time_control.html.haml b/app/views/shared/dialogs/_dialog_field_date_and_date_time_control.html.haml index a3ad01efb9d..cc17dc500ad 100644 --- a/app/views/shared/dialogs/_dialog_field_date_and_date_time_control.html.haml +++ b/app/views/shared/dialogs/_dialog_field_date_and_date_time_control.html.haml @@ -27,7 +27,9 @@ :javascript dialogFieldRefresh.listenForAutoRefreshMessages(JSON.parse("#{j(auto_refresh_options.to_json)}"), function() { dialogFieldRefresh.refreshDateTime("#{field.name}", "#{field.id}", function() { - dialogFieldRefresh.triggerAutoRefresh(JSON.parse('#{j(auto_refresh_options.to_json)}')); + dialogFieldRefresh.triggerAutoRefresh( + JSON.parse('#{j(auto_refresh_listening_options(auto_refresh_options, true).to_json)}') + ); }); }); diff --git a/app/views/shared/dialogs/_dialog_field_drop_down_list.html.haml b/app/views/shared/dialogs/_dialog_field_drop_down_list.html.haml index 8e46c1b20fd..6073b603cbc 100644 --- a/app/views/shared/dialogs/_dialog_field_drop_down_list.html.haml +++ b/app/views/shared/dialogs/_dialog_field_drop_down_list.html.haml @@ -17,7 +17,9 @@ dialogFieldRefresh.listenForAutoRefreshMessages(JSON.parse("#{j(auto_refresh_options.to_json)}"), function() { var selectedValue = $('select[name="#{field.name}"]').val(); dialogFieldRefresh.refreshDropDownList("#{field.name}", "#{field.id}", selectedValue, function() { - dialogFieldRefresh.triggerAutoRefresh(JSON.parse('#{j(auto_refresh_options.to_json)}')); + dialogFieldRefresh.triggerAutoRefresh( + JSON.parse('#{j(auto_refresh_listening_options(auto_refresh_options, true).to_json)}') + ); }); }); diff --git a/app/views/shared/dialogs/_dialog_field_radio_button.html.haml b/app/views/shared/dialogs/_dialog_field_radio_button.html.haml index 9f146c814f2..ee1282d5ad0 100644 --- a/app/views/shared/dialogs/_dialog_field_radio_button.html.haml +++ b/app/views/shared/dialogs/_dialog_field_radio_button.html.haml @@ -32,7 +32,9 @@ checkedValue, "#{url}", JSON.parse('#{j(auto_refresh_options.to_json)}'), function() { - dialogFieldRefresh.triggerAutoRefresh(JSON.parse('#{j(auto_refresh_options.to_json)}')); + dialogFieldRefresh.triggerAutoRefresh( + JSON.parse('#{j(auto_refresh_listening_options(auto_refresh_options, true).to_json)}') + ); }); }); diff --git a/app/views/shared/dialogs/_dialog_field_text_area_box.html.haml b/app/views/shared/dialogs/_dialog_field_text_area_box.html.haml index 56a9f6519cf..fac49bcf5f1 100644 --- a/app/views/shared/dialogs/_dialog_field_text_area_box.html.haml +++ b/app/views/shared/dialogs/_dialog_field_text_area_box.html.haml @@ -8,7 +8,9 @@ :javascript dialogFieldRefresh.listenForAutoRefreshMessages(JSON.parse("#{j(auto_refresh_options.to_json)}"), function() { dialogFieldRefresh.refreshTextAreaBox("#{field.name}", "#{field.id}", function() { - dialogFieldRefresh.triggerAutoRefresh(JSON.parse('#{j(auto_refresh_options.to_json)}')); + dialogFieldRefresh.triggerAutoRefresh( + JSON.parse('#{j(auto_refresh_listening_options(auto_refresh_options, true).to_json)}') + ); }); }); diff --git a/app/views/shared/dialogs/_dialog_field_text_box.html.haml b/app/views/shared/dialogs/_dialog_field_text_box.html.haml index b84adfda6ea..e4eb9d0c040 100644 --- a/app/views/shared/dialogs/_dialog_field_text_box.html.haml +++ b/app/views/shared/dialogs/_dialog_field_text_box.html.haml @@ -9,7 +9,9 @@ :javascript dialogFieldRefresh.listenForAutoRefreshMessages(JSON.parse('#{j(auto_refresh_options.to_json)}'), function() { dialogFieldRefresh.refreshTextBox("#{field.name}", "#{field.id}", function() { - dialogFieldRefresh.triggerAutoRefresh(JSON.parse('#{j(auto_refresh_options.to_json)}')); + dialogFieldRefresh.triggerAutoRefresh( + JSON.parse('#{j(auto_refresh_listening_options(auto_refresh_options, true).to_json)}') + ); }); }); diff --git a/spec/helpers/application_helper/dialogs_spec.rb b/spec/helpers/application_helper/dialogs_spec.rb index 89a64e482a5..8e83539e277 100644 --- a/spec/helpers/application_helper/dialogs_spec.rb +++ b/spec/helpers/application_helper/dialogs_spec.rb @@ -498,4 +498,12 @@ ]) end end + + describe "#auto_refresh_listening_options" do + let(:options) { {:trigger => false} } + + it "overrides the trigger attribute" do + expect(helper.auto_refresh_listening_options(options, true)).to eq(:trigger => true) + end + end end