module SideBarRenderer include Renderer include AdminHelper include ActionView::Helpers::TextHelper def render(request,params,user,current_module_app, af) @belong_module_app = get_module_app @current_module_app = current_module_app @request = request @params = params @site = Site.first @current_user = user @app_available_for = af if display? content_tag :div, class: "sub-nav-block #{@icon_class}" do concat content_tag :h4, I18n.t(@head_label) concat (content_tag :ul, class: "nav nav-list" do @context_links.sort_by {| obj | obj.priority}.map{ |link| link.render(request, params, @current_module_app, @current_user, @belong_module_app, link.get_active_action, link.available_for) }.join.html_safe end) end end end def render_head(request, params, user,current_module_app, available_for) @belong_module_app = get_module_app @current_module_app = current_module_app @request = request @params = params @site = Site.first @current_user = user @app_available_for = available_for if display? content_tag :li, class: (module_sidebar_active? ? 'active' : nil) do link_to Rails.application.routes.url_helpers.send(@head_link) do content_tag :span do content_tag(:i, nil, class: @icon_class) end end end end end protected def display? #控制sidebar 要不要算圖 status = "users" if @site.backend_openness_on && @current_user.nil? status = "users" elsif @current_user.is_admin? status = "admin" elsif @current_user.is_manager?(@belong_module_app) status = "managers" elsif @current_user.is_manager_with_role?(@belong_module_app) status = "managers" elsif @current_user.is_sub_manager?(@belong_module_app) status = "sub_managers" elsif @current_user.is_sub_manager_with_role?(@belong_module_app) status = "sub_managers" elsif @current_user.is_normal_user? status = "users" end return @app_available_for.include?status end def module_sidebar_active? active_for_controller? || active_for_app_auth? end def active_for_controller? @active_for_controllers.include? controller end end