--- /dev/null
+module Manifest
+ module ActionModule
+ class ActionList
+ attr :controller, :action_name, :action_manifest,
+ :item_name, :list_name
+ def initialize controller, action_name, action_manifest
+ @controller = controller
+ @action_name = action_name
+ @action_manifest = action_manifest
+ self.set_default
+ self.init
+ end
+
+ def set_default
+ @action_manifest['args'] ||= {}
+ @action_manifest['args']['item_name'] ||= self.controller.item_name
+ end
+
+ def init
+ @args = @action_manifest['args']
+ @item_name = @args['item_name']
+ raise "undefined list_name for controllers > #{self.controller_name} > actions > #{@action_name} > args\n" unless @args['list_name']
+ @list_name = @args['list_name']
+ end
+
+ def controller_name
+ @controller.controller_name
+ end
+
+ def controller_manifest
+ @controller.controller_manifest
+ end
+
+ def list params, operators
+ Manifest.list_managers[@item_name].open(@list_name)
+ end
+
+ def ready params, operators
+ @items = self.list.items params, operators
+ end
+
+ def exec
+ end
+
+ def render
+ format.html {
+ @filer = self.list.filer
+ render :template => 'system/filer', :locals => {
+ :filer => @filer
+ }
+ }
+ end
+
+ def cook params, operators
+ self.ready params, operators
+ self.exec
+ self.render
+ end
+
+ end
+
+ end
+end