play: {\r
type: 'list',\r
args: {\r
+ item_name: 'scroll_panel',\r
list_name: 'play',\r
},\r
},\r
play: {\r
type: 'list',\r
args: {\r
+ item_name: 'sheet_panel',\r
list_name: 'play',\r
},\r
},\r
through: 'scroll_panels',\r
},\r
},\r
- play: {\r
- type: 'play',\r
- args: {\r
- filter_item_name: 'scroll',\r
- filter_model_name: 'scroll_panel',\r
- filter_key: 'scroll_id',\r
- },\r
- },\r
},\r
},\r
scroll_panel: {\r
private: {\r
type: 'private',\r
},\r
+ play: {\r
+ type: 'play',\r
+ args: {\r
+ filter_item_name: 'scroll',\r
+ filter_model_name: 'scroll_panel',\r
+ filter_key: 'scroll_id',\r
+ },\r
+ },\r
by_scroll: {\r
type: 'filter',\r
},\r
by_author: {\r
type: 'filter',\r
},\r
- play: {\r
- type: 'play',\r
- },\r
},\r
},\r
sheet_panel: {\r
private: {\r
type: 'private',\r
},\r
+ play: {\r
+ type: 'play',\r
+ args: {\r
+ filter_item_name: 'sheet',\r
+ filter_model_name: 'sheet_panel',\r
+ filter_key: 'sheet_id',\r
+ },\r
+ },\r
by_sheet: {\r
type: 'filter',\r
},\r
end
end
+ def set_play
+ set_model
+ @list = Locmare::ListGroup.list @my_action.item_name, @my_action.list_name
+ end
+
def set_show
set_model
@item = @my_model_class.show(params[:id], @operators)
end
- def show_prof_format format
+ def show_prof_format format
format.prof {
self.formats = [:html]
@profiler = Locmare::Profiler.new @my_model.model_name, @item, @operators
show_json_format format
end
end
-
+
def play
@item = self.class.model.show(params[:id], @operators)
- action_name = params[:action]
- @action = self.class.controller.open(action_name, params, @operators)
- @items = @action.list.items @item
+ set_play
+ list_result = @list.open(@operators,
+ {:id => params[:id], :offset => params[:offset], :count => params[:count]}
+ )
+ @items = list_result.items
respond_to do |format|
format.html {
- @count = @action.list.count @item
- @prev_offset = @action.list.prev_offset @item
- @next_offset = @action.list.next_offset @item
+ #@count = @action.list.count @item
+ #@prev_offset = @action.list.prev_offset @item
+ #@next_offset = @action.list.next_offset @item
if @operators.author
- @new_panel_items = assist_items('panel', 'private_list')
- @new_panel_filer = assist_filer 'panel', @new_panel_items
+ @new_panel_items = assist_items('panel', 'private')
+ #@new_panel_filer = assist_filer 'panel', @new_panel_items
end
}
format.json { render json: @items.to_json(self.class.model.list_json_opt) }
def play
@item = self.class.model.show(params[:id], @operators)
- action_name = params[:action]
- @action = self.class.controller.open(action_name, params, @operators)
- @items = @action.list.items @item
+ set_play
+ list_result = @list.open(@operators,
+ {:id => params[:id]}
+ )
+ @items = list_result.items
respond_to do |format|
format.html {
- @count = @action.list.count @item
- @prev_offset = @action.list.prev_offset @item
- @next_offset = @action.list.next_offset @item
if @operators.author
- @new_panel_items = assist_items('panel', 'private_list')
- @new_panel_filer = assist_filer 'panel', @new_panel_items
+ @new_panel_items = assist_items('panel', 'private')
+ # @new_panel_filer = assist_filer 'panel', @new_panel_items
end
}
format.json { render json: @items.to_json(self.class.model.list_json_opt) }
format.html {
@paginate = StorySheet.play_paginate(@item, @page)
if @operators.author
- @new_sheet_items = assist_items('sheet', 'private_list')
- @new_sheet_filer = assist_filer 'sheet', @new_sheet_items
+ @new_sheet_items = assist_items('sheet', 'private')
+ #@new_sheet_filer = assist_filer 'sheet', @new_sheet_items
end
}
format.json {
-<div <%= raw elm.any_tag_attr() -%> class="sheet_panel" style="top:<%= elm.y %>px; left:<%= elm.x %>px; z-index:<%= elm.z %>;">
+<div class="sheet_panel" style="top:<%= elm.y %>px; left:<%= elm.x %>px; z-index:<%= elm.z %>;">
<% if elm.panel -%>
<%# blocked in panels/body panel = Panel.show elm.panel, author -%>
<%= render 'panels/body', :panel => elm.panel, :operators => operators, :spot => nil %>
-<div id="<%= sheet.tag_id -%>" sheet_id="<%= sheet.tag_sheet_id -%>" class="sheet" style="width:<%= sheet.width %>px;height:<%= sheet.height %>px;">
+<div id=" sheet.tag_id " sheet_id=" sheet.tag_sheet_id " class="sheet" style="width:<%= sheet.width %>px;height:<%= sheet.height %>px;">
<% if sheet.visible? @operators -%>
<% sheet.sheet_elements.each do |elm| %>
<%= render elm.class.to_s.tableize + '/element', :elm => elm, :operators => operators %>
<% if @item.sheet_elements.empty? -%>
<h2><%= t('sheet_panels.sheet.empty') %></h2>
<% else %>
- <div id="<%= @item.tag_id -%>wrapper" sheet_id="<%= @item.tag_sheet_id -%>" class="pettanr-sheet-wrapper" editable="true">
+ <div id=" @item.tag_id wrapper" sheet_id=" @item.tag_sheet_id " class="pettanr-sheet-wrapper" editable="true">
<%= render 'sheets/standard', :sheet => @item, :operators => @operators %>
</div>
<% end %>
module ListGroupModule
module ListModule
class PlayList < Base
+ attr :filter_item_name, :filter_key
def set_default
+ super
+ @args['filter_item_name'] ||= @name.gsub(/^by_/, '')
+ @args['filter_key'] ||= @args['filter_item_name'] + '_id'
+ end
+
+ def init
+ super
+ @filter_item_name = @args['filter_item_name']
+ @filter_key = @args['filter_key']
+ end
+
+ def action_name
+ @name
+ end
+
+=begin
+ def set_default
return
@default_page_size = @conf['default_page_size'] || 25
@max_page_size = @conf['max_page_size'] || 100
end
end
- def init
- end
-
def offset cnt, prm = nil
offset = prm.to_i
offset = cnt - 1 if offset >= cnt
count
end
- def count filter_item
- @count ||= @model.count(:conditions => self.where(filter_item), :include => self.includes).to_i
- end
-
- def where filter_item
- w = @model.list_where
- w += ' and ' unless w.blank?
- [w + @table_name + '.' + @filter_key + ' = ?', filter_item.id]
- end
-
- def includes
- {@owner_model.item_name => {}}
- end
-
- def order
- @table_name + '.t'
- end
-
def items filter_item
c = @count || self.count(filter_item)
o = self.offset c, @offset
o + l
end
end
+=end
- def self.add_action item_name, action_name, list_name, list_conf
- return
- end
end
-
end
end
end
manifests = self.boost_manifests
items.each do |item|
manifests.each do |boost_manifest|
- item.boost_manifest
+ item.boost_manifest # ?
end
end
end
module Locmare
module ListGroupModule
- class PlayList
- attr :model, :list_name, :list_manifest, :type,
- :default_page_size, :max_page_size
+ class PlayList < FilterList
+ def order
+ @table_name + '.t'
+ end
- def initialize model, list_name, list_manifest
- @model = model
- @list_name = list_name
- @list_manifest = list_manifest
- self.set_default
- self.init
+ def offset cnt, prm = nil
+ offset = prm.to_i
+ offset = cnt - 1 if offset >= cnt
+ offset = cnt - offset.abs if offset < 0
+ offset = 0 if offset < 0
+ offset
end
- def set_default
- @list_manifest['args'] ||= {}
- return
- @default_page_size = @conf['default_page_size'] || 25
- @max_page_size = @conf['max_page_size'] || 100
- @params_offset = params_offset
- @params_count = params_count
- @list_list_conf = @manifest.list(@item_name).lists[list_name] || {}
- @model_name = @list_list_conf['model']
- @filter_key = @list_list_conf['filter_key']
- @model = @model_name.classify.constantize
- @table_name = @model.table_name
- if @model.content?
- @owner_model = @model.owner_model
- @owner_table_name = @owner_model.table_name if @owner_model
- end
+ def limit prm
+ prm ||= self.default_page_size
+ count = prm.to_i
+ count = self.max_page_size if count > self.max_page_size
+ count = self.default_page_size if count < 1
+ count
end
- def init
- @type = @list_manifest['type']
- @args = @list_manifest['args']
+ def open operators, options
+ count = self.count operators, options
+ offset = self.offset count, options[:offset]
+ limit = self.limit options[:count]
+ items = self.items operators, options, offset, limit
+ self.boost items
+ ListResult.new self, items, nil, operators, options
end
end
"args": {\r
"through": "scroll_panels"\r
}\r
- },\r
- "play": {\r
- "type": "play",\r
- "args": {\r
- "filter_item_name": "scroll",\r
- "filter_model_name": "scroll_panel",\r
- "filter_key": "scroll_id"\r
- }\r
}\r
}\r
},\r
"private": {\r
"type": "private"\r
},\r
+ "play": {\r
+ "type": "play",\r
+ "args": {\r
+ "filter_item_name": "scroll",\r
+ "filter_model_name": "scroll_panel",\r
+ "filter_key": "scroll_id"\r
+ }\r
+ },\r
"by_scroll": {\r
"type": "filter"\r
},\r
},\r
"by_author": {\r
"type": "filter"\r
- },\r
- "play": {\r
- "type": "play"\r
}\r
}\r
},\r
"private": {\r
"type": "private"\r
},\r
+ "play": {\r
+ "type": "play",\r
+ "args": {\r
+ "filter_item_name": "sheet",\r
+ "filter_model_name": "sheet_panel",\r
+ "filter_key": "sheet_id"\r
+ }\r
+ },\r
"by_sheet": {\r
"type": "filter"\r
},\r
"parent_model_name": "speech_balloon",\r
"boost": {\r
"speech_balloon_template": {\r
+ "resource_name": "speech_balloon_template",\r
"extend_item_name": "balloon"\r
}\r
}\r
"boost": {\r
"writing_format": {},\r
"speech_balloon_template": {\r
+ "resource_name": "speech_balloon_template",\r
"extend_item_name": "speech"\r
}\r
}\r
"play": {\r
"type": "list",\r
"args": {\r
+ "item_name": "scroll_panel",\r
"list_name": "play"\r
}\r
},\r
"play": {\r
"type": "list",\r
"args": {\r
+ "item_name": "sheet_panel",\r
"list_name": "play"\r
}\r
},\r