orbit4-5/lib/orbit_app/helper/side_bar_renderer.rb

74 lines
2.2 KiB
Ruby
Raw Normal View History

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
2014-04-11 10:44:45 +00:00
@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)
2014-04-11 10:44:45 +00:00
}.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