Added restful submit button, controller action and transtalions to enable selection of instances for event exportation. --- src/app/controllers/instances_controller.rb | 11 +++++++++++ src/app/views/instances/_list.html.haml | 3 ++- src/config/locales/en.yml | 2 ++ src/config/routes.rb | 1 + src/public/javascripts/application.js | 2 +- 5 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/app/controllers/instances_controller.rb b/src/app/controllers/instances_controller.rb index 7773d81..6d45b39 100644 --- a/src/app/controllers/instances_controller.rb +++ b/src/app/controllers/instances_controller.rb @@ -175,6 +175,17 @@ class InstancesController < ApplicationController :filename => "export.csv") end
+ def export_selected_events + if params[:instance_selected].present? + send_data(Instance.csv_export(Instance.find(params[:instance_selected] || [])), + :type => 'text/csv; charset=utf-8; header=present', + :filename => "export.csv") + else + flash[:error] = t('instances.none_selected_to_export_events') + redirect_to params[:backlink] || pools_path(:view => 'filter', :details_tab => 'instances') + end + end + def stop if @inaccessible_instances.include?(@instance) do_operation(:forced_stop) diff --git a/src/app/views/instances/_list.html.haml b/src/app/views/instances/_list.html.haml index dac5d69..39276dc 100644 --- a/src/app/views/instances/_list.html.haml +++ b/src/app/views/instances/_list.html.haml @@ -1,11 +1,12 @@ - content_for :form_header do %li= restful_submit_tag t('instances.list.stop_selected_instances'), 'stop', multi_stop_instances_path, 'GET', :class => 'button', :id => 'stop_selected_instances', 'data-none_selected' => t('instances.none_selected') %li= restful_submit_tag t('instances.list.reboot_selected_instances'), 'reboot', multi_reboot_instances_path, 'GET', :class => 'button', :id => 'reboot_selected_instances', 'data-none_selected' => t('instances.none_selected_to_reboot') + %li= restful_submit_tag t('instances.list.export_events'), 'export', export_selected_events_instances_path, 'GET', :class => 'button', :id => 'export_selected_instances_events', 'data-none_selected' => t('instances.none_selected_to_export_events') %li.more_actions %span = image_tag "more_actions_drop.png" %ul - %li= link_to "#{t'instances.list.export_events'}", export_events_instances_path(:deployment_id => @deployment) + %li= link_to "#{t'instances.list.export_all_events'}", export_events_instances_path(:deployment_id => @deployment) = hidden_field_tag 'backlink', request.url
- content_for :filter_controls do diff --git a/src/config/locales/en.yml b/src/config/locales/en.yml index a3044ad..1154786 100644 --- a/src/config/locales/en.yml +++ b/src/config/locales/en.yml @@ -299,12 +299,14 @@ en: instance: Instance none_selected: "You must select one or more instances to stop." none_selected_to_reboot: "You must select one or more instances to reboot." + none_selected_to_export_events: "You must select one or more instances to export events." tab_captions: properties: Properties history: History permissions: Permissions list: export_events: Export events + export_all_events: Export all events stop_selected_instances: Stop selected instances reboot_selected_instances: Reboot selected instances stopped_instances_hidden: Stopped instances are hidden diff --git a/src/config/routes.rb b/src/config/routes.rb index a95389f..2199911 100644 --- a/src/config/routes.rb +++ b/src/config/routes.rb @@ -115,6 +115,7 @@ Conductor::Application.routes.draw do collection do get 'multi_stop' get 'multi_reboot' + get 'export_selected_events' get 'remove_failed' get 'export_events' post 'filter' diff --git a/src/public/javascripts/application.js b/src/public/javascripts/application.js index f4054fb..6784101 100644 --- a/src/public/javascripts/application.js +++ b/src/public/javascripts/application.js @@ -118,7 +118,7 @@ $.extend(Conductor, { },
multiActionValidation: function() { - $('#delete_button, #revoke_button, #stop_button, #stop_selected_instances, #reboot_selected_instances').live('click', function(e) { + $('#delete_button, #revoke_button, #stop_button, #stop_selected_instances, #reboot_selected_instances, #export_selected_instances_events').live('click', function(e) {
var $checkbox_table = $(this).closest("form.filterable-data").find("table.checkbox_table"); var confirm_message = $checkbox_table.data('confirm');
On Monday 23 April 2012 13:31:14 Tomas Hrcka wrote:
Added restful submit button, controller action and transtalions to enable selection of instances for event exportation.
src/app/controllers/instances_controller.rb | 11 +++++++++++ src/app/views/instances/_list.html.haml | 3 ++- src/config/locales/en.yml | 2 ++ src/config/routes.rb | 1 + src/public/javascripts/application.js | 2 +- 5 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/app/controllers/instances_controller.rb b/src/app/controllers/instances_controller.rb index 7773d81..6d45b39 100644 --- a/src/app/controllers/instances_controller.rb +++ b/src/app/controllers/instances_controller.rb @@ -175,6 +175,17 @@ class InstancesController < ApplicationController
:filename => "export.csv")
end
- def export_selected_events
- if params[:instance_selected].present?
send_data(Instance.csv_export(Instance.find(params[:instance_selected] || [])), + :type => 'text/csv; charset=utf-8; header=present',
It could return 404 flash msg when instance is not found. Not need to create empty csv file.
:filename => "export.csv")
- else
flash[:error] = t('instances.none_selected_to_export_events')
redirect_to params[:backlink] || pools_path(:view => 'filter',
:details_tab => 'instances') + end
- end
- def stop if @inaccessible_instances.include?(@instance) do_operation(:forced_stop)
diff --git a/src/app/views/instances/_list.html.haml b/src/app/views/instances/_list.html.haml index dac5d69..39276dc 100644 --- a/src/app/views/instances/_list.html.haml +++ b/src/app/views/instances/_list.html.haml @@ -1,11 +1,12 @@
- content_for :form_header do %li= restful_submit_tag t('instances.list.stop_selected_instances'),
'stop', multi_stop_instances_path, 'GET', :class => 'button', :id => 'stop_selected_instances', 'data-none_selected' => t('instances.none_selected') %li= restful_submit_tag t('instances.list.reboot_selected_instances'), 'reboot', multi_reboot_instances_path, 'GET', :class => 'button', :id => 'reboot_selected_instances', 'data-none_selected' => t('instances.none_selected_to_reboot') + %li= restful_submit_tag t('instances.list.export_events'), 'export', export_selected_events_instances_path, 'GET', :class => 'button', :id => 'export_selected_instances_events', 'data-none_selected' => t('instances.none_selected_to_export_events') %li.more_actions %span = image_tag "more_actions_drop.png" %ul
%li= link_to "#{t'instances.list.export_events'}",
export_events_instances_path(:deployment_id => @deployment) + %li= link_to "#{t'instances.list.export_all_events'}", export_events_instances_path(:deployment_id => @deployment) = hidden_field_tag 'backlink', request.url
- content_for :filter_controls do
diff --git a/src/config/locales/en.yml b/src/config/locales/en.yml index a3044ad..1154786 100644 --- a/src/config/locales/en.yml +++ b/src/config/locales/en.yml @@ -299,12 +299,14 @@ en: instance: Instance none_selected: "You must select one or more instances to stop." none_selected_to_reboot: "You must select one or more instances to reboot." + none_selected_to_export_events: "You must select one or more instances to export events." tab_captions: properties: Properties history: History permissions: Permissions list: export_events: Export events
export_all_events: Export all events stop_selected_instances: Stop selected instances reboot_selected_instances: Reboot selected instances stopped_instances_hidden: Stopped instances are hidden
diff --git a/src/config/routes.rb b/src/config/routes.rb index a95389f..2199911 100644 --- a/src/config/routes.rb +++ b/src/config/routes.rb @@ -115,6 +115,7 @@ Conductor::Application.routes.draw do collection do get 'multi_stop' get 'multi_reboot'
get 'export_selected_events' get 'remove_failed' get 'export_events' post 'filter'
diff --git a/src/public/javascripts/application.js b/src/public/javascripts/application.js index f4054fb..6784101 100644 --- a/src/public/javascripts/application.js +++ b/src/public/javascripts/application.js @@ -118,7 +118,7 @@ $.extend(Conductor, { },
multiActionValidation: function() {
- $('#delete_button, #revoke_button, #stop_button,
#stop_selected_instances, #reboot_selected_instances').live('click', function(e) { + $('#delete_button, #revoke_button, #stop_button, #stop_selected_instances, #reboot_selected_instances, #export_selected_instances_events').live('click', function(e) {
var $checkbox_table =
$(this).closest("form.filterable-data").find("table.checkbox_table"); var confirm_message = $checkbox_table.data('confirm');
one inline note and could you write tests for it? otherwise it works well.
aeolus-devel@lists.fedorahosted.org