first version of confined sidebar render
This commit is contained in:
1 parent
b4a2737407
commit
c6894be962
18 files changed
+353
-158
No files matched your search
@@ -0,0 +1,12 @@
|
||||
module ContextLinkRenderer
|
||||
include Renderer
|
||||
|
||||
def render(request,params)
|
||||
@request = request
|
||||
@params = params
|
||||
if display?
|
||||
content_tag :li, link_to((I18n.t(@label_i18n) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, eval(@path)), :class => (active? ? 'active' : nil)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,62 @@
|
||||
module Renderer
|
||||
include Rails.application.routes.url_helpers
|
||||
include ActionView::Helpers::UrlHelper
|
||||
include ActionView::Helpers::TagHelper
|
||||
include ActionView::Helpers::RenderingHelper
|
||||
include ActionView::Context
|
||||
include OrbitBasis::RenderAnywhere
|
||||
|
||||
protected
|
||||
def active_for_app_auth?
|
||||
@module_app.id.to_s == @params[:module_app_id] ? true : false
|
||||
end
|
||||
|
||||
def active_for_ob_auths?
|
||||
if @params.has_key? :object_auth_id
|
||||
oa = ObjectAuth.find @params[:object_auth_id]
|
||||
check_controller = @params[:controller] == 'admin/object_auths_new_interface'
|
||||
check_object_class = @active_for_object_auth.include? oa.obj_authable_type
|
||||
return (check_controller and check_object_class)
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
def current_user
|
||||
current_or_guest_user
|
||||
end
|
||||
|
||||
def current_or_guest_user
|
||||
@current_user
|
||||
end
|
||||
|
||||
def request
|
||||
@request
|
||||
end
|
||||
|
||||
def default_url_options
|
||||
_routes.default_url_options
|
||||
end
|
||||
|
||||
def _routes
|
||||
@request.env["action_dispatch.routes"]
|
||||
end
|
||||
|
||||
def controller
|
||||
@params[:controller]
|
||||
end
|
||||
|
||||
def action
|
||||
@params[:action]
|
||||
end
|
||||
|
||||
def check_user_available_for
|
||||
|
||||
end
|
||||
|
||||
protected
|
||||
def display?
|
||||
true
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,43 @@
|
||||
module SideBarRenderer
|
||||
include Renderer
|
||||
include AdminHelper
|
||||
|
||||
def render(request,params,user)
|
||||
@request = request
|
||||
@params = params
|
||||
@current_user = user
|
||||
if display?
|
||||
content_tag :li, :class => (module_sidebar_active? ? 'active' : nil) do
|
||||
buf = link_to( content_tag(:i, nil, :class => @icon_class ) + content_tag(:span, I18n.t( @head_label )), eval(@head_link))
|
||||
buf << content_tag( :ul, :class => ("nav nav-list active") )do # visible_for_controllers('bulletins', '/panel/announcement/back_end/tags', 'bulletin_categorys', 'approvals')||active_for_ob_auths_object("BulletinCategory"))
|
||||
@context_links.sort_by! {| obj | obj.priority}.collect do |link|
|
||||
link.render(request,params)
|
||||
end.join.html_safe
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def display? #控制sidebar 要不要算圖
|
||||
if is_manager? || is_admin? #如果是系統管理員 或 是模組管理員
|
||||
true
|
||||
elsif (@module_app.open rescue false) # 如果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?
|
||||
end
|
||||
|
||||
def active_for_controller?
|
||||
@active_for_controllers.include? controller
|
||||
end
|
||||
|
||||
end
|
||||
Reference in new issue
Block a user