forked from saurabh/orbit4-5
74 lines
2.2 KiB
Ruby
74 lines
2.2 KiB
Ruby
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 |