put module app json into init,making orbit app work with module app.
This commit is contained in:
1 parent
36f6a6fdd6
commit
6995bb1622
15 files changed
+1317
-467
No files matched your search
@@ -0,0 +1,56 @@
|
||||
module OrbitApp
|
||||
module Module
|
||||
module FrontendUtility
|
||||
Version = "0.1"
|
||||
|
||||
module ClassMethods
|
||||
@@frontend_pages = []
|
||||
|
||||
def add(var)
|
||||
@@frontend_pages << var
|
||||
end
|
||||
|
||||
def all
|
||||
return @@frontend_pages
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
extend ClassMethods
|
||||
def self.included( other )
|
||||
other.extend( ClassMethods )
|
||||
end
|
||||
|
||||
class AppPageSet
|
||||
def initialize(&block)
|
||||
@frontend_pages = []
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
def app_page(name,options ={})
|
||||
@frontend_pages << AppPage.new(name,options)
|
||||
end
|
||||
|
||||
def to_module_app_format
|
||||
@frontend_pages.collect{|t| t.name}
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class AppPage
|
||||
attr_reader :name
|
||||
|
||||
def initialize(name,options ={})
|
||||
@name = name
|
||||
end
|
||||
|
||||
def finalize!
|
||||
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
end# of AppPage
|
||||
end # of FrontendUtility
|
||||
end # of Module
|
||||
end # of OrbitApp
|
||||
@@ -12,7 +12,7 @@ module OrbitApp
|
||||
|
||||
def find_by_key(key)
|
||||
@@registrations.each{|t|
|
||||
return t if t.name == key
|
||||
return t if t.key == key
|
||||
}
|
||||
return nil
|
||||
end
|
||||
@@ -28,20 +28,69 @@ module OrbitApp
|
||||
end
|
||||
|
||||
class DataSheet
|
||||
attr_reader :name
|
||||
attr_reader :base_path
|
||||
attr_reader :name,:key,:base_path,:module_label
|
||||
|
||||
def initialize(name, &block)
|
||||
@name = name
|
||||
@key = name.underscore.singularize
|
||||
@side_bar = nil
|
||||
@front_end_app_pages = nil
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
setup_module_app
|
||||
end
|
||||
|
||||
def setup_module_app
|
||||
module_app = ModuleApp.first(conditions: {:key=>@key,:title=>name})
|
||||
module_app = ModuleApp.new(:key=>@key,:title=>name) if module_app.nil?
|
||||
|
||||
begin
|
||||
module_app.save(:validate=>false)
|
||||
rescue
|
||||
retry
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def get_label_i18n
|
||||
@module_label
|
||||
end
|
||||
|
||||
def get_default_widget
|
||||
if @widget_set.nil? # Init not defining widget
|
||||
return {}
|
||||
elsif @widget_set.get_default_widget.nil? # Init had defining widget,but say nothing about default_widget
|
||||
return {}
|
||||
else
|
||||
@widget_set.get_default_widget.to_module_app_format
|
||||
end
|
||||
end
|
||||
|
||||
def get_enable_frontend
|
||||
(@front_end_app_pages.nil? ? false : true)
|
||||
end
|
||||
|
||||
def get_app_pages
|
||||
@front_end_app_pages.nil? ? [] : @front_end_app_pages.to_module_app_format
|
||||
end
|
||||
|
||||
def get_widgets
|
||||
@widget_set.nil? ? {} : @widget_set.to_module_app_format
|
||||
end
|
||||
|
||||
def get_categories
|
||||
eval(@widget_set.categories_query) rescue nil
|
||||
end
|
||||
|
||||
def get_tags
|
||||
eval(@widget_set.tags_query) rescue nil
|
||||
end
|
||||
|
||||
def front_end(&block)
|
||||
@front_end_app_pages = FrontendUtility::AppPageSet.new(&block)
|
||||
end
|
||||
|
||||
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)
|
||||
@side_bar = SideBarRegisition::SideBar.new(@name,@key,&block)
|
||||
end
|
||||
|
||||
def personal_plugin(params)
|
||||
@@ -49,10 +98,20 @@ module OrbitApp
|
||||
Plugin::Registration.new_from_module_app(@name,@base_path,params)
|
||||
end
|
||||
|
||||
def base_url(var)
|
||||
@base_path = var
|
||||
def widgets(&block)
|
||||
# @widgets = WidgetRegisition::WidgetSet.new(&block)
|
||||
@widget_set = WidgetUtility::WidgetSet.new(&block)
|
||||
|
||||
# @widgets = widget_set.widgets
|
||||
# @default_widget = widget_set.default_widget
|
||||
end
|
||||
end
|
||||
|
||||
%w{module_label category base_url version organization author intro update_info}.each do |field|
|
||||
define_method(field){|var| instance_variable_set( "@" + field, var)}
|
||||
end
|
||||
|
||||
end # of class DataSheet
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -37,8 +37,7 @@ module OrbitApp
|
||||
# def is_manager?
|
||||
# binding.pry
|
||||
# end
|
||||
def initialize( &block)
|
||||
name = ''
|
||||
def initialize(name = '',key,&block)
|
||||
@head_label = name
|
||||
@context_links = []
|
||||
@available_for = []
|
||||
@@ -48,18 +47,16 @@ module OrbitApp
|
||||
@head_link = ""
|
||||
@app_base_path = ''
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
# setup_module_app(module_app_key)
|
||||
@module_app_key = key
|
||||
finalize!
|
||||
SideBarRegisition.add(self)
|
||||
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)
|
||||
def head_label_i18n(var,options ={})
|
||||
@head_label = var
|
||||
@icon_class = optoins[:icon_class]
|
||||
@icon_class = options[:icon_class]
|
||||
end
|
||||
|
||||
def available_for(var)
|
||||
@@ -85,17 +82,23 @@ module OrbitApp
|
||||
|
||||
def finalize!
|
||||
set_controllers_scope
|
||||
set_default_active_app_auth
|
||||
# set_default_active_app_auth
|
||||
@context_links.each do |t|
|
||||
t.set_module_app = @module_app
|
||||
# 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 setup_module_app(var)
|
||||
# @module_app_title = var
|
||||
# @module_app = ModuleApp.where(:key=>var).desc(:create_date).first
|
||||
# @module_app_key = @module_app.key
|
||||
# end
|
||||
|
||||
# def set_default_active_app_auth
|
||||
# @active_for_app_auth = @module_app.title
|
||||
# end
|
||||
|
||||
def set_controllers_scope
|
||||
var = @active_for_controllers
|
||||
@@ -131,10 +134,10 @@ module OrbitApp
|
||||
@active_for_action[controller] == action
|
||||
end
|
||||
|
||||
def set_module_app=(var)
|
||||
@module_app = var
|
||||
@module_app_key = var.key
|
||||
end
|
||||
# def set_module_app=(var)
|
||||
# @module_app = var
|
||||
# @module_app_key = var.key
|
||||
# end
|
||||
|
||||
def finalize!
|
||||
set_active_actions
|
||||
|
||||
@@ -3,7 +3,7 @@ require "orbit_app/summary"
|
||||
|
||||
module OrbitApp
|
||||
module Module
|
||||
module Summary
|
||||
module Summary
|
||||
include OrbitApp::Summary
|
||||
|
||||
class Item
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
module OrbitApp
|
||||
module Module
|
||||
module WidgetUtility
|
||||
Version = "0.1"
|
||||
|
||||
module ClassMethods
|
||||
@@widgets = []
|
||||
|
||||
def add(var)
|
||||
@@widgets << var
|
||||
end
|
||||
|
||||
def all
|
||||
return @@widgets
|
||||
end
|
||||
end
|
||||
|
||||
extend ClassMethods
|
||||
def self.included( other )
|
||||
other.extend( ClassMethods )
|
||||
end
|
||||
|
||||
class WidgetSet
|
||||
attr_reader :widgets,:categories_query,:tags_query
|
||||
def initialize(&block)
|
||||
@widgets = []
|
||||
@default_widget = nil
|
||||
@categories_query = ''
|
||||
@tags_query = ''
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
%w{categories_query tags_query}.each do |field|
|
||||
define_method(field){|var| instance_variable_set( "@" + field, var)}
|
||||
end
|
||||
|
||||
def get_categories
|
||||
@categories_query
|
||||
end
|
||||
|
||||
def get_tags
|
||||
@tags_query
|
||||
end
|
||||
|
||||
def default_widget(&block)
|
||||
@default_widget = DefaultWidget.new(&block)
|
||||
end
|
||||
|
||||
def customize_widget(name,label,options ={})
|
||||
@widgets << Widget.new(name,label,options)
|
||||
end
|
||||
|
||||
def to_module_app_format
|
||||
hash = {}
|
||||
@widgets.collect{|t| hash[t.name] = t.to_hash}
|
||||
hash
|
||||
end
|
||||
|
||||
def get_default_widget
|
||||
return @default_widget
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class DefaultWidget
|
||||
def initialize(&block)
|
||||
@query = nil
|
||||
@image = nil
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
def to_module_app_format
|
||||
{:query=>@query,:image=>@image} rescue nil
|
||||
end
|
||||
|
||||
def query(var)
|
||||
@query = var
|
||||
end
|
||||
|
||||
def image(var)
|
||||
@image = var
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class Widget
|
||||
attr_reader :name,:default_template,:fields
|
||||
|
||||
def initialize(name,label,options ={})
|
||||
@name = name
|
||||
@fields = options[:fields]
|
||||
@label = label
|
||||
end
|
||||
|
||||
def to_hash
|
||||
{:name => @name,:fields=>@fields,:label=>@label}
|
||||
end
|
||||
|
||||
def finalize!
|
||||
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
end# of widget
|
||||
end # of WidgetRegisition
|
||||
end # of Module
|
||||
end # of OrbitApp
|
||||
Reference in new issue
Block a user