[Ovirt-devel] [PATCH] added confirmation dialogs for remaining actions
Hugh O. Brock
hbrock at redhat.com
Tue May 27 17:49:06 UTC 2008
On Tue, May 27, 2008 at 12:20:04PM -0400, Scott Seago wrote:
>
> >From cd827b580ca56c8b552acf21cb2d3f457dcfbe0a Mon Sep 17 00:00:00 2001
> From: Scott Seago <sseago at redhat.com>
> Date: Tue, 27 May 2008 12:17:51 -0400
> Subject: [PATCH] added confirmation dialogs for remaining actions
>
>
> Signed-off-by: Scott Seago <sseago at redhat.com>
> ---
> wui/src/app/controllers/hardware_controller.rb | 52 ++++++++++++++++------
> wui/src/app/controllers/permission_controller.rb | 38 ++++++++++-----
> wui/src/app/controllers/resources_controller.rb | 19 +++++---
> wui/src/app/controllers/storage_controller.rb | 18 +++++---
> wui/src/app/controllers/vm_controller.rb | 17 +++++---
> wui/src/app/views/hardware/move.rhtml | 5 ++-
> wui/src/app/views/hardware/show_hosts.rhtml | 5 ++-
> wui/src/app/views/hardware/show_storage.rhtml | 10 +++-
> wui/src/app/views/hardware/show_vms.rhtml | 5 ++-
> wui/src/app/views/host/addhost.html.erb | 5 ++-
> wui/src/app/views/layouts/_side_toolbar.rhtml | 2 +-
> wui/src/app/views/resources/show_vms.rhtml | 5 ++-
> wui/src/app/views/storage/addstorage.html.erb | 5 ++-
> wui/src/app/views/user/_show.rhtml | 12 ++++-
> 14 files changed, 141 insertions(+), 57 deletions(-)
>
> diff --git a/wui/src/app/controllers/hardware_controller.rb b/wui/src/app/controllers/hardware_controller.rb
> index a052885..ad857f1 100644
> --- a/wui/src/app/controllers/hardware_controller.rb
> +++ b/wui/src/app/controllers/hardware_controller.rb
> @@ -310,11 +310,17 @@ class HardwareController < ApplicationController
> def add_hosts
> host_ids_str = params[:host_ids]
> host_ids = host_ids_str.split(",").collect {|x| x.to_i}
> -
> - @pool.transaction do
> - @pool.move_hosts(host_ids, @pool.id)
> +
> + begin
> + @pool.transaction do
> + @pool.move_hosts(host_ids, @pool.id)
> + end
> + render :json => { :object => "host", :success => true,
> + :alert => "Hosts were successfully added to this Hardware pool." }
> + rescue
> + render :json => { :object => "host", :success => false,
> + :alert => "Error adding Hosts to this Hardware pool." }
> end
> - render :text => "added hosts (#{host_ids.join(', ')})"
> end
>
> #FIXME: we need permissions checks. user must have permission on src pool
> @@ -325,10 +331,16 @@ class HardwareController < ApplicationController
> host_ids_str = params[:resource_ids]
> host_ids = host_ids_str.split(",").collect {|x| x.to_i}
>
> - @pool.transaction do
> - @pool.move_hosts(host_ids, target_pool_id)
> + begin
> + @pool.transaction do
> + @pool.move_hosts(host_ids, target_pool_id)
> + end
> + render :json => { :object => "host", :success => true,
> + :alert => "Hosts were successfully moved." }
> + rescue
> + render :json => { :object => "host", :success => false,
> + :alert => "Error moving hosts." }
> end
> - render :text => "added hosts (#{host_ids.join(', ')})"
> end
>
> #FIXME: we need permissions checks. user must have permission on src pool
> @@ -338,10 +350,16 @@ class HardwareController < ApplicationController
> storage_pool_ids_str = params[:storage_pool_ids]
> storage_pool_ids = storage_pool_ids_str.split(",").collect {|x| x.to_i}
>
> - @pool.transaction do
> - @pool.move_storage(storage_pool_ids, @pool.id)
> + begin
> + @pool.transaction do
> + @pool.move_storage(storage_pool_ids, @pool.id)
> + end
> + render :json => { :object => "storage_pool", :success => true,
> + :alert => "Storage Pools were successfully added to this Hardware pool." }
> + rescue
> + render :json => { :object => "storage_pool", :success => false,
> + :alert => "Error adding storage pools to this Hardware pool." }
> end
> - render :text => "added storage (#{storage_pool_ids.join(', ')})"
> end
>
> #FIXME: we need permissions checks. user must have permission on src pool
> @@ -351,11 +369,17 @@ class HardwareController < ApplicationController
> target_pool_id = params[:target_pool_id]
> storage_pool_ids_str = params[:resource_ids]
> storage_pool_ids = storage_pool_ids_str.split(",").collect {|x| x.to_i}
> -
> - @pool.transaction do
> - @pool.move_storage(storage_pool_ids, target_pool_id)
> +
> + begin
> + @pool.transaction do
> + @pool.move_storage(storage_pool_ids, target_pool_id)
> + end
> + render :json => { :object => "storage_pool", :success => true,
> + :alert => "Storage Pools were successfully moved." }
> + rescue
> + render :json => { :object => "storage_pool", :success => false,
> + :alert => "Error moving storage pools." }
> end
> - render :text => "added storage (#{storage_pool_ids.join(', ')})"
> end
>
> def destroy
> diff --git a/wui/src/app/controllers/permission_controller.rb b/wui/src/app/controllers/permission_controller.rb
> index 1787a27..14358de 100644
> --- a/wui/src/app/controllers/permission_controller.rb
> +++ b/wui/src/app/controllers/permission_controller.rb
> @@ -74,15 +74,21 @@ class PermissionController < ApplicationController
> role = params[:user_role]
> permission_ids_str = params[:permission_ids]
> permission_ids = permission_ids_str.split(",").collect {|x| x.to_i}
> -
> - Permission.transaction do
> - permissions = Permission.find(:all, :conditions => "id in (#{permission_ids.join(', ')})")
> - permissions.each do |permission|
> - permission.user_role = role
> - permission.save!
> +
> + begin
> + Permission.transaction do
> + permissions = Permission.find(:all, :conditions => "id in (#{permission_ids.join(', ')})")
> + permissions.each do |permission|
> + permission.user_role = role
> + permission.save!
> + end
> end
> + render :json => { :object => "permission", :success => true,
> + :alert => "User roles were successfully updated." }
> + rescue
> + render :json => { :object => "permission", :success => false,
> + :alert => "Error updating user roles: #{$!}" }
> end
> - render :text => "deleted user permissions (#{permission_ids.join(', ')})"
> end
>
> #FIXME: we need permissions checks. user must have permission. We also need to fail
> @@ -90,14 +96,20 @@ class PermissionController < ApplicationController
> def delete
> permission_ids_str = params[:permission_ids]
> permission_ids = permission_ids_str.split(",").collect {|x| x.to_i}
> -
> - Permission.transaction do
> - permissions = Permission.find(:all, :conditions => "id in (#{permission_ids.join(', ')})")
> - permissions.each do |permission|
> - permission.destroy
> +
> + begin
> + Permission.transaction do
> + permissions = Permission.find(:all, :conditions => "id in (#{permission_ids.join(', ')})")
> + permissions.each do |permission|
> + permission.destroy
> + end
> end
> + render :json => { :object => "permission", :success => true,
> + :alert => "User roles were successfully deleted." }
> + rescue
> + render :json => { :object => "permission", :success => false,
> + :alert => "Error deleting user roles." }
> end
> - render :text => "deleted user permissions (#{permission_ids.join(', ')})"
> end
>
> def destroy
> diff --git a/wui/src/app/controllers/resources_controller.rb b/wui/src/app/controllers/resources_controller.rb
> index febbbb6..c891447 100644
> --- a/wui/src/app/controllers/resources_controller.rb
> +++ b/wui/src/app/controllers/resources_controller.rb
> @@ -127,14 +127,21 @@ class ResourcesController < ApplicationController
> def delete
> vm_pool_ids_str = params[:vm_pool_ids]
> vm_pool_ids = vm_pool_ids_str.split(",").collect {|x| x.to_i}
> -
> - VmResourcePool.transaction do
> - pools = VmResourcePool.find(:all, :conditions => "id in (#{vm_pool_ids.join(', ')})")
> - pools.each do |pool|
> - pool.destroy
> + vm_pool_names = []
> + begin
> + VmResourcePool.transaction do
> + pools = VmResourcePool.find(:all, :conditions => "id in (#{vm_pool_ids.join(', ')})")
> + pools.each do |pool|
> + vm_pool_names << pool.name
> + pool.destroy
> + end
> end
> + render :json => { :object => "vm_resource_pool", :success => true,
> + :alert => "Virtual Machine Pools #{vm_pool_names.join(', ')} were successfully deleted." }
> + rescue
> + render :json => { :object => "vm_resource_pool", :success => false,
> + :alert => "Error in deleting Virtual Machine Pools."}
> end
> - render :text => "deleted vm pools (#{vm_pool_ids.join(', ')})"
> end
>
> def destroy
> diff --git a/wui/src/app/controllers/storage_controller.rb b/wui/src/app/controllers/storage_controller.rb
> index 618acb4..853472a 100644
> --- a/wui/src/app/controllers/storage_controller.rb
> +++ b/wui/src/app/controllers/storage_controller.rb
> @@ -155,14 +155,20 @@ class StorageController < ApplicationController
> def delete_pools
> storage_pool_ids_str = params[:storage_pool_ids]
> storage_pool_ids = storage_pool_ids_str.split(",").collect {|x| x.to_i}
> -
> - StoragePool.transaction do
> - storage = StoragePool.find(:all, :conditions => "id in (#{storage_pool_ids.join(', ')})")
> - storage.each do |storage_pool|
> - storage_pool.destroy
> +
> + begin
> + StoragePool.transaction do
> + storage = StoragePool.find(:all, :conditions => "id in (#{storage_pool_ids.join(', ')})")
> + storage.each do |storage_pool|
> + storage_pool.destroy
> + end
> end
> + render :json => { :object => "storage_pool", :success => true,
> + :alert => "Storage Pools were successfully deleted." }
> + rescue
> + render :json => { :object => "storage_pool", :success => true,
> + :alert => "Error deleting storage pools." }
> end
> - render :text => "deleted storage (#{storage_pool_ids.join(', ')})"
> end
>
> def vm_action
> diff --git a/wui/src/app/controllers/vm_controller.rb b/wui/src/app/controllers/vm_controller.rb
> index ac29beb..8e6d7f8 100644
> --- a/wui/src/app/controllers/vm_controller.rb
> +++ b/wui/src/app/controllers/vm_controller.rb
> @@ -102,13 +102,18 @@ class VmController < ApplicationController
> vm_ids_str = params[:vm_ids]
> vm_ids = vm_ids_str.split(",").collect {|x| x.to_i}
>
> - Vm.transaction do
> - vms = Vm.find(:all, :conditions => "id in (#{vm_ids.join(', ')})")
> - vms.each do |vm|
> - vm.destroy
> - end
> + begin
> + Vm.transaction do
> + vms = Vm.find(:all, :conditions => "id in (#{vm_ids.join(', ')})")
> + vms.each do |vm|
> + vm.destroy
> + end
> + end render :json => { :object => "vm", :success => true,
> + :alert => "Virtual Machines were successfully deleted." }
> + rescue
> + render :json => { :object => "vm", :success => false,
> + :alert => "Error deleting virtual machines." }
> end
> - render :text => "deleted vms (#{vm_ids.join(', ')})"
> end
>
> def destroy
> diff --git a/wui/src/app/views/hardware/move.rhtml b/wui/src/app/views/hardware/move.rhtml
> index fb0bf51..190fc03 100644
> --- a/wui/src/app/views/hardware/move.rhtml
> +++ b/wui/src/app/views/hardware/move.rhtml
> @@ -19,7 +19,10 @@
> function(data,status){
> $("#<%= @resource_type %>_grid").flexReload()
> jQuery(document).trigger('close.facebox');
> - });
> + if (data.alert) {
> + alert(data.alert);
> + }
> + }, 'json');
> }
> $('#move_to_new_pool').click(function(){
> $('#window').fadeOut('fast');
> diff --git a/wui/src/app/views/hardware/show_hosts.rhtml b/wui/src/app/views/hardware/show_hosts.rhtml
> index 7f126a2..ae0e8af 100644
> --- a/wui/src/app/views/hardware/show_hosts.rhtml
> +++ b/wui/src/app/views/hardware/show_hosts.rhtml
> @@ -28,7 +28,10 @@
> { resource_ids: hosts.toString(), target_pool_id: <%= Pool.root.id %> },
> function(data,status){
> $("#hosts_grid").flexReload()
> - });
> + if (data.alert) {
> + alert(data.alert);
> + }
> + }, 'json');
> }
> }
> function hosts_select(selected_rows)
> diff --git a/wui/src/app/views/hardware/show_storage.rhtml b/wui/src/app/views/hardware/show_storage.rhtml
> index f673e07..3d547db 100644
> --- a/wui/src/app/views/hardware/show_storage.rhtml
> +++ b/wui/src/app/views/hardware/show_storage.rhtml
> @@ -30,7 +30,10 @@
> { resource_ids: storage.toString(), target_pool_id: <%= Pool.root.id %> },
> function(data,status){
> $("#storage_grid").flexReload()
> - });
> + if (data.alert) {
> + alert(data.alert);
> + }
> + }, 'json');
> }
> }
> function delete_storage()
> @@ -41,7 +44,10 @@
> { storage_pool_ids: storage.toString() },
> function(data,status){
> $("#storage_grid").flexReload()
> - });
> + if (data.alert) {
> + alert(data.alert);
> + }
> + }, 'json');
> }
> }
> function storage_select(selected_rows)
> diff --git a/wui/src/app/views/hardware/show_vms.rhtml b/wui/src/app/views/hardware/show_vms.rhtml
> index 44b6f50..285f2c2 100644
> --- a/wui/src/app/views/hardware/show_vms.rhtml
> +++ b/wui/src/app/views/hardware/show_vms.rhtml
> @@ -17,7 +17,10 @@
> { vm_pool_ids: vm_pools.toString() },
> function(data,status){
> $("#vmpools_grid").flexReload()
> - });
> + if (data.alert) {
> + alert(data.alert);
> + }
> + }, 'json');
> }
> }
> function vmpools_select(selected_rows)
> diff --git a/wui/src/app/views/host/addhost.html.erb b/wui/src/app/views/host/addhost.html.erb
> index f485d8f..69e0e66 100644
> --- a/wui/src/app/views/host/addhost.html.erb
> +++ b/wui/src/app/views/host/addhost.html.erb
> @@ -34,7 +34,10 @@
> function(data,status){
> jQuery(document).trigger('close.facebox');
> $("#hosts_grid").flexReload()
> - });
> + if (data.alert) {
> + alert(data.alert);
> + }
> + }, 'json');
> }
> }
> </script>
> diff --git a/wui/src/app/views/layouts/_side_toolbar.rhtml b/wui/src/app/views/layouts/_side_toolbar.rhtml
> index 1613799..000cb66 100644
> --- a/wui/src/app/views/layouts/_side_toolbar.rhtml
> +++ b/wui/src/app/views/layouts/_side_toolbar.rhtml
> @@ -10,11 +10,11 @@
> <%= image_tag "icon_add_vmpool.png", :title=>"Add Virtual Machine Pool" %>
> </a>
> </div>
> +<% end -%>
> <div class="toolbar" style="float:left;">
> <%= link_to image_tag ("icon_delete.gif", :title=>"Delete Selected Pool"),
> { :action => 'destroy', :id => pool },
> { :method => :post, :confirm => 'Are you sure you want to delete - %s?' % pool.name} %>
> -<% end -%>
> </div>
>
> <div class="toolbar"></div>
> diff --git a/wui/src/app/views/resources/show_vms.rhtml b/wui/src/app/views/resources/show_vms.rhtml
> index 8e951bf..34764a6 100644
> --- a/wui/src/app/views/resources/show_vms.rhtml
> +++ b/wui/src/app/views/resources/show_vms.rhtml
> @@ -31,7 +31,10 @@
> { vm_ids: vms.toString() },
> function(data,status){
> $("#vms_grid").flexReload()
> - });
> + if (data.alert) {
> + alert(data.alert);
> + }
> + }, 'json');
> }
> }
> function vm_actions(action)
> diff --git a/wui/src/app/views/storage/addstorage.html.erb b/wui/src/app/views/storage/addstorage.html.erb
> index cf75ae5..a747502 100644
> --- a/wui/src/app/views/storage/addstorage.html.erb
> +++ b/wui/src/app/views/storage/addstorage.html.erb
> @@ -34,7 +34,10 @@
> function(data,status){
> jQuery(document).trigger('close.facebox');
> $("#storage_grid").flexReload()
> - });
> + if (data.alert) {
> + alert(data.alert);
> + }
> + }, 'json');
> }
> }
> </script>
> diff --git a/wui/src/app/views/user/_show.rhtml b/wui/src/app/views/user/_show.rhtml
> index 03ecec6..d1c0ec1 100644
> --- a/wui/src/app/views/user/_show.rhtml
> +++ b/wui/src/app/views/user/_show.rhtml
> @@ -18,18 +18,24 @@
> { permission_ids: permissions.toString() },
> function(data,status){
> $("#users_grid").flexReload()
> - });
> + if (data.alert) {
> + alert(data.alert);
> + }
> + }, 'json');
> }
> }
> function update_users(role)
> {
> permissions = get_selected_users()
> - if (validate_selected(permissions, "users)) {
> + if (validate_selected(permissions, "users")) {
> $.post('<%= url_for :controller => "permission", :action => "update_roles" %>',
> { permission_ids: permissions.toString(), user_role: role },
> function(data,status){
> $("#users_grid").flexReload()
> - });
> + if (data.alert) {
> + alert(data.alert);
> + }
> + }, 'json');
> }
> }
> </script>
> --
> 1.5.4.1
Tested, works with the patch that follows (confirmation-dialog-2.patch)... therefore ACKed
and committed
--Hugh
More information about the ovirt-devel
mailing list