ref: refs/heads/dmacvicar_log_viewer
commit 5ed72639e4dbf4fa8834c0d146a7713deb26dba7
Author: Jiri Suchomel
Date: Wed Aug 19 16:09:19 2009 +0200
different UI for custom and standard services
---
.../app/controllers/services_controller.rb | 10 ++--
plugins/services/app/views/services/_result.rhtml | 10 +++-
plugins/services/app/views/services/index.rhtml | 25 +++++++---
plugins/services/shortcuts.yml | 9 ++++
.../test/functional/services_controller_test.rb | 49 +++++++------------
5 files changed, 59 insertions(+), 44 deletions(-)
diff --git a/plugins/services/app/controllers/services_controller.rb b/plugins/services/app/controllers/services_controller.rb
index 9d86f9d..2b72bf6 100644
--- a/plugins/services/app/controllers/services_controller.rb
+++ b/plugins/services/app/controllers/services_controller.rb
@@ -26,9 +26,10 @@ class ServicesController < ApplicationController
# GET /services.xml
def index
return unless client_permissions
+
@services = []
begin
- @services = @client.find(:all)
+ @services = @client.find(:all, :params => params)
rescue ActiveResource::ClientError => e
flash[:error] = YaST::ServiceResource.error(e)
end
@@ -40,9 +41,10 @@ class ServicesController < ApplicationController
end
def execute
+
return unless client_permissions
- @service = @client.find(params[:service_id])
+ # PUT /services/1.xml
response = @client.put(params[:service_id], :execute => params[:id])
# we get a hash with exit, stderr, stdout
@@ -54,10 +56,10 @@ class ServicesController < ApplicationController
@result_string << ret["stdout"] if ret["stdout"]
@result_string << ret["stderr"] if ret["stderr"]
@error_string = ret["exit"].to_s
- if ret["exit"] == 0
+ if ret["exit"] == 0 || ret["exit"] == "0"
@error_string = _("success")
end
- render(:partial =>'result')
+ render(:partial =>'result', :params => params)
end
diff --git a/plugins/services/app/views/services/_result.rhtml b/plugins/services/app/views/services/_result.rhtml
index 3af3d5f..7e38e85 100644
--- a/plugins/services/app/views/services/_result.rhtml
+++ b/plugins/services/app/views/services/_result.rhtml
@@ -15,6 +15,12 @@
<td class="last"><%=h @result_string %></td>
</tr>
</table>
- <p><a href="services" class="button"><%=_("Back")%></a></p>
+ <p>
+ <% if params.has_key?("custom") -%>
+ <a href="services?custom=1" class="button"><%=_("Back")%></a>
+ <% else -%>
+ <a href="services" class="button"><%=_("Back")%></a>
+ </p>
+ <% end -%>
+ </div>
</div>
- </div>
\ No newline at end of file
diff --git a/plugins/services/app/views/services/index.rhtml b/plugins/services/app/views/services/index.rhtml
index 6e44625..3ff8399 100644
--- a/plugins/services/app/views/services/index.rhtml
+++ b/plugins/services/app/views/services/index.rhtml
@@ -6,7 +6,15 @@
<div class='plugin-icon'><img src='/icons/yast-online_update.png'/></div>
<div class='plugin-content'>
-<h2><%=_("Services")%></h2>
+<h2><%=
+
+if params.has_key?("custom")
+ _("Custom Services")
+else
+ _("System Services")
+end
+%></h2>
+
<br>
<% unless @permissions[:execute] %>
@@ -19,12 +27,15 @@
<% [ "start", "stop" ].each do |cmd|
if @permissions[:execute] %>
<%=
- link_to_remote cmd,
- :update => "resultdlg",
- :url=>{ :id=> cmd,
- :action => "execute",
- :service_id=> service.name
- }
+ url = {
+ :id => cmd,
+ :action => "execute",
+ :service_id => service.name
+ }
+ url[:custom] = 1 if params.has_key?("custom")
+ link_to_remote cmd,
+ :update => "resultdlg",
+ :url => url
%>
<%
else %>
diff --git a/plugins/services/shortcuts.yml b/plugins/services/shortcuts.yml
index 9fd76ab..af2b2f8 100644
--- a/plugins/services/shortcuts.yml
+++ b/plugins/services/shortcuts.yml
@@ -6,3 +6,12 @@ main:
tags: [ init, script, service ]
title: System Services
description: Manage the LSB init scripts
+
+custom:
+# FIXME: use the correct icon
+ icon: '/icons/yast-online_update.png'
+ url: /services?custom=1
+ groups: [ Services ]
+ tags: [ init, script, service ]
+ title: Custom Services
+ description: Manage custom service
diff --git a/plugins/services/test/functional/services_controller_test.rb b/plugins/services/test/functional/services_controller_test.rb
index f3dd307..a43049e 100644
--- a/plugins/services/test/functional/services_controller_test.rb
+++ b/plugins/services/test/functional/services_controller_test.rb
@@ -1,45 +1,32 @@
require 'test_helper'
class ServicesControllerTest < ActionController::TestCase
- def test_should_get_index
- get :index
- assert_response :success
- assert_not_nil assigns(:services)
- end
- def test_should_get_new
- get :new
- assert_response :success
- end
- def test_should_create_service
- assert_difference('Service.count') do
- post :create, :service => { }
+ class Proxy
+ attr_accessor :result, :permissions, :timeout
+ def find
+ return result
end
-
- assert_redirected_to service_path(assigns(:service))
end
- def test_should_show_service
- get :show, :id => services(:one).id
- assert_response :success
+ def setup
+ ServicesController.any_instance.stubs(:login_required)
+ @controller = ServicesController.new
+ @request = ActionController::TestRequest.new
+ # http://railsforum.com/viewtopic.php?id=1719
+ @request.session[:account_id] = 1 # defined in fixtures
+ @permissions = { :read => true, :execute => true }
+ @proxy = Proxy.new
+ @proxy.permissions = @permissions
+ @proxy.result = @result
end
- def test_should_get_edit
- get :edit, :id => services(:one).id
+ def test_should_get_index
+ YaST::ServiceResource.stubs(:proxy_for).with('org.opensuse.yast.modules.yapi.services').returns(@proxy)
+ get :index
assert_response :success
+ assert_not_nil assigns(:services)
end
- def test_should_update_service
- put :update, :id => services(:one).id, :service => { }
- assert_redirected_to service_path(assigns(:service))
- end
-
- def test_should_destroy_service
- assert_difference('Service.count', -1) do
- delete :destroy, :id => services(:one).id
- end
-
- assert_redirected_to services_path
- end
end
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org