63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| module SideBarRenderer
 | |
|   include Renderer
 | |
|   include AdminHelper
 | |
|   include ActionView::Helpers::TextHelper
 | |
| 
 | |
|   def render(request,params,user,current_module_app)
 | |
|     @belong_module_app = get_module_app
 | |
|     @current_module_app = current_module_app
 | |
|     @request = request
 | |
|     @params = params
 | |
|     @current_user = user
 | |
|     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)
 | |
|           }.join.html_safe
 | |
|         end)
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def render_head(request, params, user, current_module_app)
 | |
|     @belong_module_app = get_module_app
 | |
|     @current_module_app = current_module_app
 | |
|     @request = request
 | |
|     @params = params
 | |
|     @current_user = user
 | |
|     if display?
 | |
|       content_tag :li, class: (module_sidebar_active? ? 'active' : nil) do
 | |
|         link_to eval(@head_link) do
 | |
|           content_tag :span do
 | |
|             content_tag(:i, nil, class: @icon_class)
 | |
|           end
 | |
|         end
 | |
|       end 
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   protected
 | |
| 
 | |
|   def display? #控制sidebar 要不要算圖
 | |
|     if is_manager? || is_admin?  #如果是系統管理員 或 是模組管理員
 | |
|       true
 | |
|     elsif (@current_module_app.open rescue true) # 如果app 被設定成 開放
 | |
|       true
 | |
|      elsif is_member? #如果app 是封閉  那至少需要是 member
 | |
|       true
 | |
|     else 
 | |
|       false
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def module_sidebar_active?
 | |
|     active_for_controller? or active_for_app_auth? or active_for_ob_auths?or active_for_category? or active_for_tag?
 | |
|   end
 | |
| 
 | |
|   def active_for_controller?
 | |
|     @active_for_controllers.include? controller
 | |
|   end
 | |
| 
 | |
| end |