end
def public_list
- c = Manifest.manifest.controllers[self.class.model.item_name]
- a = c.actions[params[:action].to_s]
- ml = Manifest.manifest.models[a.item_name].lists[a.list_name]
- l = Manifest.manifest.lists[a.item_name][a.list_name]
- r = l.open({:id => params}, @operators)
+ my_controller = Manifest.manifest.controllers[self.class.model.item_name]
+ my_action = my_controller.actions[params[:action].to_s]
+ my_model = Manifest.manifest.models[my_action.item_name]
+ my_model_list = my_model.lists[my_action.list_name]
+ my_list = Manifest.manifest.lists[my_action.item_name]
+ list = my_list[my_action.list_name]
+ r = list.open(@operators, {:id => params})
@items = r.items
respond_to do |format|
format.html {
- @filer = @action.filer
+ @filer = Manifest.manifest.views[my_action.item_name].open items, operators, paginate
render :template => 'system/filer', :locals => {
:filer => @filer
}
require 'content'
require 'element'
require 'element_part'
-# require_dependency 'manifest'
-require_dependency 'editor/editor'
# Initialize the rails application
Pettanr::Application.initialize!
+require_dependency 'manifest'
+require_dependency 'editor/editor'
Manifest.manifest.init
require_dependency "manifest/form"
require_dependency "manifest/list"
require_dependency "manifest/system_resources"
+require_dependency "manifest/local/view"
Manifest::load JSON.parse(open(File.expand_path('../../public/manifest.json', __FILE__)).read)
Manifest.manifest.init
raise "undefined type for lists > #{item_name} > #{list_name}\n" unless type
my_class = @@types[type]
raise "undefined class for lists > #{item_name} > #{list_name} > #{type}\n" unless my_class
- my_class.new(manifest, item_name, list_name, my_manifest)
+ lists[list_name] = my_class.new(manifest, item_name, list_name, my_manifest)
}
lists
end
def order
@model.list_order
end
+
+ def items options, offset, page_size
+ @model.where(self.where()).includes(self.includes).order(self.order).offset(offset).limit(page_size)
+ end
+
end
end
--- /dev/null
+require_dependency "manifest/local/view/filer"
+module Manifest
+ class View
+ attr :manifest,
+ :filers, :caption, :summary, :icon, :date, :edit
+ def initialize manifest
+ @manifest = manifest
+ @filers = ViewModule::Filer.manager(@manifest.filers)
+ end
+
+ end
+
+end
+
- class FilerView
+require_dependency "manifest/local/view/filer/symbol"
+require_dependency "manifest/local/view/filer/caption"
+require_dependency "manifest/local/view/filer/summary"
+require_dependency "manifest/local/view/filer/icon"
+require_dependency "manifest/local/view/filer/date"
+require_dependency "manifest/local/view/filer/edit"
+module Manifest
+ module ViewModule
+ class FilerManager
+ include FilerModule
+ def self.manager filers
+ filer_views = {}
+ filers.each {|item_name, filer_manifest|
+ filer_views[item_name] = self.new(filer_manifest)
+ }
+ filer_views
+ end
+
+ attr :manifest,
+ :symbol, :caption, :summary, :icon, :date, :edit
+ def initialize filer_manifest
+ @filer_manifest = filer_manifest
+ @symbol = Symbol.new @filer_manifest.symbol
+ @caption = Caption.new @filer_manifest.caption
+ @summary = Summary.new @filer_manifest.summary
+ @icon = Icon.new @filer_manifest.icon
+ @date = Date.new @filer_manifest.date
+ @edit = Edit.new @filer_manifest.edit
+ end
+
+ def open
+ Filer.new self, items
+ end
+
+ end
+ end
+ class Filer
attr :filer_manifest, :item_name, :manifest, :filer_conf,
:symbol, :caption, :summary, :icon, :date, :edit
- def initialize filer_manifest, items, operators, paginate
+ def initialize filer_manager, items
@filer_manifest = filer_manifest
@items = items
@file_items = @items.map {|item|
def render view
end
- def model_name
- @item_name
- end
-
- def model
- model_name.classify.constantize
- end
-
end
+end
class FileItemView
attr :item, :operators
def initialize item, operators, filer_manifest
class Manifest
cattr_accessor :manifest
attr :system_resources, :magic_numbers, :select_items,
- :controllers, :models, :lists, :profilers, :filers, :forms, :lists
+ :controllers, :models, :lists, :profilers, :filers, :forms, :lists, :views
# call me before load routes.rb
# routes.rb needs engine_resources manifest in system_resources
# ex. it's adding license_groups routes
@select_items = @manifest['select_items']
end
- # managers can't initialize at application.rb
- # call me after configured Rails Application
def init
+ # managers can't initialize before load application.rb
return unless defined? ::Pettanr
@controllers = Controller.manager(self, @manifest['controllers'])
@models = Model.manager(self, @manifest['models'])
@forms = Form.base_manager(self, @locals['forms'])
@forms.merge(Form.extend_manager(self, @locals['forms']))
@lists = List.manager(self, @locals['lists'])
+ @views = View.new self
select_items_loader
add_action
end