[PATCH conductor] BZ#766163 Add reboot_multiple to grid view of instances, controller method and localization.
Jirka Tomasek
jtomasek at redhat.com
Fri Dec 23 13:39:19 UTC 2011
On 12/13/2011 03:08 PM, Tomas Hrcka wrote:
> ---
> src/app/controllers/instances_controller.rb | 22 ++++++++++++++++++++++
> src/app/views/instances/_list.html.haml | 1 +
> src/config/locales/en.yml | 2 ++
> src/config/routes.rb | 1 +
> 4 files changed, 26 insertions(+), 0 deletions(-)
>
> diff --git a/src/app/controllers/instances_controller.rb b/src/app/controllers/instances_controller.rb
> index 5979a1c..e302c3d 100644
> --- a/src/app/controllers/instances_controller.rb
> +++ b/src/app/controllers/instances_controller.rb
> @@ -178,6 +178,28 @@ class InstancesController< ApplicationController
> do_operation(:reboot)
> end
>
> + def multi_reboot
> + notices = ""
> + errors = ""
> + Instance.find(params[:instance_selected] || []).each do |instance|
> + begin
> + require_privilege(Privilege::USE,instance)
> + instance.reboot
> + notices<< "#{instance.name}: #{t('instances.flash.notice.reboot')}"
This generates strings like "My F15 deployment/My F15 Template: %{name}:
reboot action was successfully queued."
So it should be replaced with something like:
notices<< "#{instance.name}: #{t('instances.flash.notice.reboot', :name => instance.name)}"
> + rescue Exception => err
> + errors<< "#{instance.name}: " + err
> + end
> + end
> + # If nothing is selected, display an error message:
> + errors = t('instances.none_selected_to_reboot') if errors.blank?&& notices.blank?
> + flash[:notice] = notices unless notices.blank?
> + flash[:error] = errors unless errors.blank?
> + respond_to do |format|
> + format.html { redirect_to params[:backlink] || pools_path(:view => 'filter', :details_tab => 'instances') }
> + format.json { render :json => {:success => notices, :errors => errors} }
> + end
> + end
> +
> def filter
> redirect_to_original({"instances_preset_filter" => params[:instances_preset_filter], "instances_search" => params[:instances_search]})
> end
> diff --git a/src/app/views/instances/_list.html.haml b/src/app/views/instances/_list.html.haml
> index 8e68a2b..6b5a21a 100644
> --- a/src/app/views/instances/_list.html.haml
> +++ b/src/app/views/instances/_list.html.haml
> @@ -1,6 +1,7 @@
> - content_for :form_header do
> %li= link_to "#{t'instances.list.export_events'}", export_events_instances_path, :class => 'button'
> %li= restful_submit_tag "#{t'instances.list.stop_selected_instances'}", 'stop', multi_stop_instances_path, 'GET', :class => 'button', :id => 'stop_selected_instances'
> + %li= restful_submit_tag "#{t'instances.list.reboot_selected_instances'}", 'reboot', multi_reboot_instances_path, 'GET', :class => 'button', :id => 'reboot_selected_instances'
> = 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 99050d5..1f771cf 100644
> --- a/src/config/locales/en.yml
> +++ b/src/config/locales/en.yml
> @@ -268,6 +268,7 @@ en:
> reboot: Reboot
> 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."
> tab_captions:
> properties: Properties
> history: History
> @@ -275,6 +276,7 @@ en:
> list:
> export_events: Export events
> stop_selected_instances: Stop selected instances
> + reboot_selected_instances: Reboot selected instances
> stopped_instances_hidden: Stopped instances are hidden
> showing_all_instances: Showing all instances
> show_all: show all
> diff --git a/src/config/routes.rb b/src/config/routes.rb
> index 09e96be..94e87e8 100644
> --- a/src/config/routes.rb
> +++ b/src/config/routes.rb
> @@ -118,6 +118,7 @@ Conductor::Application.routes.draw do
> collection do
> get 'start'
> get 'multi_stop'
> + get 'multi_reboot'
> get 'remove_failed'
> get 'export_events'
> post 'filter'
ACK, note inline.
More information about the aeolus-devel
mailing list