put module app json into init,making orbit app work with module app.

This commit is contained in:
Matthew K. Fu JuYuan committed 2012-12-24 16:23:16 +08:00
1 parent 36f6a6fdd6
commit 6995bb1622
15 files changed
+1317 -467

No files matched your search

+56
View File
@@ -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
+69 -10
View File
@@ -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
+22 -19
View File
@@ -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
+1 -1
View File
@@ -3,7 +3,7 @@ require "orbit_app/summary"
module OrbitApp
module Module
module Summary
module Summary
include OrbitApp::Summary
class Item
+108
View File
@@ -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