OSDN Git Service

fix play
authoryasushiito <yas@pen-chan.jp>
Thu, 1 May 2014 08:39:43 +0000 (17:39 +0900)
committeryasushiito <yas@pen-chan.jp>
Thu, 1 May 2014 08:39:43 +0000 (17:39 +0900)
14 files changed:
app/assets/javascripts/manifest/work/controllers.js.coffee.erb
app/assets/javascripts/manifest/work/list_groups.js.coffee.erb
app/controllers/application_controller.rb
app/controllers/scrolls_controller.rb
app/controllers/sheets_controller.rb
app/controllers/stories_controller.rb
app/views/sheet_panels/_element.html.erb
app/views/sheets/_body.html.erb
app/views/sheets/play.html.erb
lib/local_manifest/list_group/list/play.rb
lib/locmare/list_group/list/base.rb
lib/locmare/list_group/list/play.rb
public/local_manifest.json
public/manifest.json

index 3d9f3c3..026c832 100644 (file)
@@ -45,6 +45,7 @@
       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
index a57ad71..54b73aa 100644 (file)
           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
index 24def61..0016b3d 100644 (file)
@@ -143,12 +143,17 @@ class ApplicationController < ActionController::Base
     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
index 8faed6b..ee73c31 100644 (file)
@@ -42,20 +42,22 @@ class ScrollsController < ApplicationController
       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) }
index 571a268..2f24813 100644 (file)
@@ -55,17 +55,16 @@ class SheetsController < ApplicationController
 
   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) }
index 0b8fea2..0765171 100644 (file)
@@ -56,8 +56,8 @@ class StoriesController < ApplicationController
       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 {
index 77a32df..ce76f9d 100644 (file)
@@ -1,4 +1,4 @@
-<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 %>
index 5be0d57..600c183 100644 (file)
@@ -1,4 +1,4 @@
-<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 %>
index 0056b41..befcce8 100644 (file)
@@ -4,7 +4,7 @@
 <% 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 %>
index 1d09133..4f6e102 100644 (file)
@@ -2,8 +2,26 @@ module LocalManifest
   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
@@ -20,9 +38,6 @@ module LocalManifest
           end
         end
         
-        def init
-        end
-        
         def offset cnt, prm = nil
           offset = prm.to_i
           offset = cnt - 1 if offset >= cnt
@@ -39,24 +54,6 @@ module LocalManifest
           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
@@ -89,12 +86,9 @@ module LocalManifest
             o + l
           end
         end
+=end
         
-        def self.add_action item_name, action_name, list_name, list_conf
-          return
-        end
       end
-      
     end
   end
 end
index 89f7d1b..bd3fb58 100644 (file)
@@ -122,7 +122,7 @@ module Locmare
         manifests = self.boost_manifests
         items.each do |item|
           manifests.each do |boost_manifest|
-            item.boost_manifest
+            item.boost_manifest # ?
           end
         end
       end
index 7261236..0ff7846 100644 (file)
@@ -1,38 +1,33 @@
 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
index 9fb456f..aac9867 100644 (file)
           "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
index 9a09805..887f5e2 100644 (file)
@@ -60,6 +60,7 @@
         "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
@@ -72,6 +73,7 @@
         "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