[PATCH conductor] BZ#800242 Export events for a single instance display the events of all other instances too.

Tomas Hrcka thrcka at redhat.com
Mon Apr 23 11:31:14 UTC 2012


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');
-- 
1.7.1




More information about the aeolus-devel mailing list