first version of confined sidebar render
This commit is contained in:
1 parent
194b42c1e4
commit
36f6a6fdd6
17 files changed
+352
-119
No files matched your search
@@ -1,17 +0,0 @@
|
||||
module OrbitApp
|
||||
module Module
|
||||
class BackendSideBar
|
||||
attr_reader :name
|
||||
|
||||
def initialize(name, &block)
|
||||
@name = name
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
# def personal_plugin(*args)
|
||||
# binding.pry
|
||||
# end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -33,11 +33,15 @@ module OrbitApp
|
||||
|
||||
def initialize(name, &block)
|
||||
@name = name
|
||||
@side_bar = nil
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
def plugin
|
||||
|
||||
def side_bar(&block)
|
||||
@side_bar = SideBarRegisition::SideBar.new(&block)
|
||||
@side_bar.module_app_key = @name
|
||||
@side_bar.finalize!
|
||||
OrbitApp::Module::SideBarRegisition.add(@side_bar)
|
||||
end
|
||||
|
||||
def personal_plugin(params)
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
module OrbitApp
|
||||
module Module
|
||||
module SideBarRegisition
|
||||
Version = "0.1"
|
||||
|
||||
module ClassMethods
|
||||
@@side_bars = []
|
||||
|
||||
def add(var)
|
||||
@@side_bars << var
|
||||
end
|
||||
|
||||
def find_by_key(key)
|
||||
@@side_bars.each{|t|
|
||||
return t if t.name == key
|
||||
}
|
||||
return nil
|
||||
end
|
||||
|
||||
def all
|
||||
return @@side_bars
|
||||
end
|
||||
end
|
||||
|
||||
extend ClassMethods
|
||||
def self.included( other )
|
||||
other.extend( ClassMethods )
|
||||
end
|
||||
|
||||
class SideBar
|
||||
# include ApplicationHelper
|
||||
# include AdminHelper
|
||||
include SideBarRenderer
|
||||
# def is_admin?
|
||||
# binding.pry
|
||||
# end
|
||||
# def is_manager?
|
||||
# binding.pry
|
||||
# end
|
||||
def initialize( &block)
|
||||
name = ''
|
||||
@head_label = name
|
||||
@context_links = []
|
||||
@available_for = []
|
||||
@active_for_controllers = []
|
||||
@active_for_object_auth = []
|
||||
@active_for_app_auth = []
|
||||
@head_link = ""
|
||||
@app_base_path = ''
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
|
||||
def module_app_key=(var)
|
||||
@module_app_title = var
|
||||
@module_app = ModuleApp.where(:title=>var).desc(:create_date).first
|
||||
@module_app_key = @module_app.key
|
||||
end
|
||||
|
||||
def head_label_i18n(var,optoins =nil)
|
||||
@head_label = var
|
||||
@icon_class = optoins[:icon_class]
|
||||
end
|
||||
|
||||
def available_for(var)
|
||||
@available_for = var
|
||||
end
|
||||
|
||||
def active_for_controllers(var)
|
||||
@active_for_controllers = var
|
||||
end
|
||||
|
||||
def active_for_object_auth(var)
|
||||
@active_for_object_auth = var
|
||||
end
|
||||
|
||||
def head_link_path(var)
|
||||
@head_link = var
|
||||
end
|
||||
|
||||
def context_link(*var)
|
||||
new_context_link = ContextLink.new(*var)
|
||||
@context_links << new_context_link
|
||||
end
|
||||
|
||||
def finalize!
|
||||
set_controllers_scope
|
||||
set_default_active_app_auth
|
||||
@context_links.each do |t|
|
||||
t.set_module_app = @module_app
|
||||
t.finalize!
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
def set_default_active_app_auth
|
||||
@active_for_app_auth = @module_app.title
|
||||
end
|
||||
|
||||
def set_controllers_scope
|
||||
var = @active_for_controllers
|
||||
@active_for_controllers = []
|
||||
var[:private].each do |controller|
|
||||
@active_for_controllers << "panel/#{@module_app_key}/back_end/"+controller
|
||||
end unless var[:private].nil?
|
||||
var[:public].each do |controller|
|
||||
@active_for_controllers << controller
|
||||
end unless var[:public].nil?
|
||||
end
|
||||
end
|
||||
|
||||
class ContextLink
|
||||
include ContextLinkRenderer
|
||||
attr_reader :label_i18n,:available_for,:priority,:path,:active_for_action
|
||||
|
||||
def initialize(label_i18n="NoNameLink",options={})
|
||||
@label_i18n = label_i18n
|
||||
@available_for = options[:available_for]
|
||||
@priority = options[:priority] || 0
|
||||
@path = options[:link_path] || ""
|
||||
@active_for_action = options[:active_for_action] || []
|
||||
@active_for_object_auth = options[:active_for_object_auth] || []
|
||||
@active_for_app_auth = options[:active_for_app_auth] || []
|
||||
end
|
||||
|
||||
def active?
|
||||
active_for_action? || active_for_app_auth? || active_for_ob_auths?
|
||||
end
|
||||
|
||||
def active_for_action?
|
||||
@active_for_action[controller] == action
|
||||
end
|
||||
|
||||
def set_module_app=(var)
|
||||
@module_app = var
|
||||
@module_app_key = var.key
|
||||
end
|
||||
|
||||
def finalize!
|
||||
set_active_actions
|
||||
end
|
||||
|
||||
protected
|
||||
def set_active_actions
|
||||
controller_action_hash = @active_for_action
|
||||
@active_for_action = Hash[controller_action_hash.map{|controller,action| ["panel/#{@module_app_key}/back_end/"+controller.to_s,action.to_s]}]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user