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