ref: refs/heads/master commit c5e15712ef21574bb2a3df5dd043c1d8ae938747 Author: Josef Reidinger <jreidinger@suse.cz> Date: Tue Aug 4 10:36:36 2009 +0200 improve readability of language controller --- .../app/controllers/language_controller.rb | 71 +++++++------------- 1 files changed, 25 insertions(+), 46 deletions(-) diff --git a/plugins/language/app/controllers/language_controller.rb b/plugins/language/app/controllers/language_controller.rb index eb89a61..43cdd7d 100644 --- a/plugins/language/app/controllers/language_controller.rb +++ b/plugins/language/app/controllers/language_controller.rb @@ -3,73 +3,52 @@ require 'yast/service_resource' class LanguageController < ApplicationController before_filter :login_required layout 'main' + include ProxyLoader # Initialize GetText and Content-Type. init_gettext "yast_webclient_language" # textdomain, options(:charset, :content_type) def index - proxy = YaST::ServiceResource.proxy_for('org.opensuse.yast.modules.yapi.language') - if proxy.nil? - access_denied - return - end - @permissions = proxy.permissions - begin - @language = proxy.find - rescue ActiveResource::ClientError => e - flash[:error] = YaST::ServiceResource.error(e) + language = load_proxy 'org.opensuse.yast.modules.yapi.language' + + unless language + return false end - @valid = [] - + unless@permissions[:read] + flash[:warning] = _("No permissions for language module") + redirect_to root_path + return false + end + if @language - @language.available.each do |avail| - @valid << avail.name - if avail.id.size>0 && avail.id == @language.current - @current = avail.name - end - end + @valid = language.available.collect { |item| item.name } || [] @valid.sort! - @rootlocale=@language.rootlocale - @utf8 = @language.utf8 + cur = language.available.find { |avail| avail.id.size>0 && avail.id == language.current } + @current = cur.name if cur + @rootlocale=language.rootlocale + @utf8 = language.utf8 end end def commit_language - proxy = YaST::ServiceResource.proxy_for('org.opensuse.yast.modules.yapi.language') - proxy.timeout = 120 - @permissions = proxy.permissions - begin - lang = proxy.find - rescue ActiveResource::ClientError => e - flash[:error] = YaST::ServiceResource.error(e) - end + lang = load_proxy 'org.opensuse.yast.modules.yapi.language' if lang - lang.available.each do |avail| - if params[:first_language]==avail.name - lang.current = avail.id - break - end - end + cur = lang.available.find { |avail| params[:first_language]==avail.name } + lang.current = cur.id if cur lang.available = [] #not needed anymore - if params[:utf8] && params[:utf8]=="true" - lang.utf8 = "true" - else - lang.utf8 = "false" - end + lang.utf8 = (params[:utf8] && params[:utf8]=="true") ? "true" : "false" lang.rootlocale = params[:rootlocale] - - response = true + begin - response = lang.save + lang.save + flash[:notice] = _("Settings have been written.") rescue ActiveResource::ClientError => e - flash[:error] = YaST::ServiceResource.error(e) - response = false - end - flash[:notice] = _("Settings have been written.") if response + flash[:error] = YaST::ServiceResource.error(e) + end end redirect_to :action => :index end -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org