From fb920dc8acd7ac5b9304418c908395dd47daa108 Mon Sep 17 00:00:00 2001 From: Nuo Yan Date: Tue, 15 Dec 2009 16:45:24 -0800 Subject: fix deletion of databags in webui --- chef-server-webui/app/controllers/databags.rb | 28 ++++++++++++++++++---- .../app/views/databags/_item_navigation.html.haml | 2 +- 2 files changed, 24 insertions(+), 6 deletions(-) (limited to 'chef-server-webui') diff --git a/chef-server-webui/app/controllers/databags.rb b/chef-server-webui/app/controllers/databags.rb index e4e7ebfa1f..0d9c75d522 100644 --- a/chef-server-webui/app/controllers/databags.rb +++ b/chef-server-webui/app/controllers/databags.rb @@ -47,11 +47,29 @@ class ChefServerWebui::Databags < ChefServerWebui::Application end def show - @databag_name = params[:id] - r = Chef::REST.new(Chef::Config[:chef_server_url]) - @databag = r.get_rest("data/#{params[:id]}") - raise NotFound unless @databag - display @databag + begin + @databag_name = params[:id] + r = Chef::REST.new(Chef::Config[:chef_server_url]) + @databag = r.get_rest("data/#{params[:id]}") + raise NotFound unless @databag + display @databag + rescue + @databags = Chef::DataBag.list + @_message = { :error => $!} + render :index + end + end + + def destroy + begin + r = Chef::REST.new(Chef::Config[:chef_server_url]) + r.delete_rest("data/#{params[:id]}") + redirect(absolute_slice_url(:databags), {:message => { :notice => "Data bag #{params[:id]} deleted successfully" }, :permanent => true}) + rescue + @databags = Chef::DataBag.list + @_message = { :error => $!} + render :index + end end end diff --git a/chef-server-webui/app/views/databags/_item_navigation.html.haml b/chef-server-webui/app/views/databags/_item_navigation.html.haml index 87bb9bf57e..4ca92997a0 100644 --- a/chef-server-webui/app/views/databags/_item_navigation.html.haml +++ b/chef-server-webui/app/views/databags/_item_navigation.html.haml @@ -4,5 +4,5 @@ %li{ :class => (active == 'create_item' ? "active" : '')}= link_to('Create Item', slice_url(:new_databag_databag_item, :databag_id => @databag_name)) - if active != 'create' && active != 'index' %li{ :class => (active == 'show' ? "active" : '')}= link_to('Show', slice_url(:databag, :id => params[:id])) - %li= link_to('Delete', slice_url(:databag, :id => params[:id], :method => "delete", :confirm => "Really delete Databag #{params[:id]}? There is no undo.")) + %li= link_to('Delete', slice_url(:databag, :id => params[:id]), :method => "delete", :confirm => "Really delete Databag #{params[:id]}? There is no undo.") .clear -- cgit v1.2.1