OSDN Git Service

test editor event
authoryasushiito <yas@pen-chan.jp>
Sun, 30 Nov 2014 22:40:09 +0000 (07:40 +0900)
committeryasushiito <yas@pen-chan.jp>
Sun, 30 Nov 2014 22:40:09 +0000 (07:40 +0900)
app/assets/javascripts/editor/panel_editor.js.coffee
app/assets/javascripts/locmare/bucket.js.coffee
app/assets/javascripts/locmare/form/field.js.coffee
app/assets/javascripts/views/ground_colors/element.js.coffee
app/assets/javascripts/views/ground_pictures/element.js.coffee
app/assets/javascripts/views/panel_pictures/element.js.coffee
app/assets/javascripts/views/panels/body.js.coffee
app/assets/javascripts/views/speech_balloons/element.js.coffee
lib/locmare/list_group/lib/page_status.rb
lib/locmare/list_group/list/base.rb

index 0cfaee1..4e52374 100644 (file)
@@ -5,13 +5,14 @@ class Editor.PanelEditor extends Backbone.View
   initialize: (options) ->\r
     @panel = options.root_item\r
     @operators = options.operators\r
-    @body = new Pettanr.Views.Panel.Body({\r
+    @body = new Pettanr.Views.Panel.Body.Edit({\r
       panel: @root_item(),\r
       operators: @operators,\r
       spot: null\r
     })\r
     @dock = new Editor.PanelEditor.Dock({parent: this})\r
     @credits = new Pettanr.Views.Panel.Show.Credits({panel: @root_item()})\r
+    @body.on('panel:resize', @panel_resize)\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -23,6 +24,13 @@ class Editor.PanelEditor extends Backbone.View
     this.$el.tabs()\r
     this\r
   \r
+  panel_resize: () ->\r
+    my = @body.$el\r
+    w = parseInt(my.width())\r
+    h = parseInt(my.height())\r
+    #$(trace + 'width').val(w)\r
+    #$(trace + 'height').val(h)\r
+  \r
   root_item: () ->\r
     @panel\r
   \r
index ece55d1..374da05 100644 (file)
@@ -78,7 +78,7 @@ class Locmare.Bucket extends Backbone.View
       @init_forms(new_key, member_manifest, member_item)\r
   \r
   init_fields: () ->\r
-    _.each @manifest.form_field_names, (form_field_name) ->\r
+    _.each @manifest.form_field_names, (form_field_name) =>\r
       r = if Pettanr.is_blank(form_field_name.form_name)\r
         ''\r
       else\r
index 4b559a1..4ef81ea 100644 (file)
@@ -12,6 +12,7 @@ class Locmare.FormModule.Field extends Backbone.View
     @rb = @row_break()\r
     @options = {'data-model': @field_manifest.form_name}\r
     @on('change', @change)\r
+    @listenTo(@item(), 'resize', @refresh)\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -20,8 +21,14 @@ class Locmare.FormModule.Field extends Backbone.View
     this.$el.append(@helpers.render().el)\r
     this\r
   \r
+  refresh: () ->\r
+    @tag.render()\r
+    @helpers.render()\r
+  \r
   change: () ->\r
-    @form.trigger('change:field', this)\r
+    @set(@val(), {silent: true})\r
+    @item().trigger('input:' + @field_name)\r
+    @item().trigger('input')\r
     \r
   mounted: () ->\r
     if @form.mounted\r
@@ -41,8 +48,10 @@ class Locmare.FormModule.Field extends Backbone.View
   value: () ->\r
     @item().get(@field_manifest.column_name())\r
   \r
-  set: (v) ->\r
-    @item().set(@field_manifest.column_name(), v)\r
+  set: (v, opt = null) ->\r
+    a = {}\r
+    a[@field_manifest.column_name()] = v\r
+    @item().set(a, opt)\r
   \r
   options: (tag_options = {}) ->\r
     tag_options\r
index 94e8429..b56de6a 100644 (file)
@@ -62,3 +62,5 @@ class Pettanr.Views.GroundColor.Element extends Backbone.View
     }\r
     r\r
   \r
+class Pettanr.Views.GroundColor.Element.Edit extends Pettanr.Views.GroundColor.Element\r
+  \r
index 135a1d1..fbec768 100644 (file)
@@ -22,8 +22,8 @@ class Pettanr.Views.GroundPicture.Element extends Backbone.View
       top: '0px', \r
       left: '0px',\r
       'z-index': @element.get('z'), \r
-      'background-image': 'url(' + @picture().r_url() + ')', \r
-      'background-repeat': @repeat_text(), \r
+      'background-image': 'url(' + @element.picture().r_url() + ')', \r
+      'background-repeat': @element.repeat_text(), \r
       'background-position': Pettanr.to_s(@element.get('x')) + 'px ' + Pettanr.to_s(@element.get('y')) + 'px'\r
     }\r
     r\r
@@ -34,3 +34,5 @@ class Pettanr.Views.GroundPicture.Element extends Backbone.View
       height: Pettanr.to_s(@root.get('height')) + 'px'\r
     }\r
   \r
+class Pettanr.Views.GroundPicture.Element.Edit extends Pettanr.Views.GroundPicture.Element\r
+  \r
index eb5ea8e..c3e05f4 100644 (file)
@@ -40,3 +40,5 @@ class Pettanr.Views.PanelPicture.Element extends Backbone.View
       style: Pettanr.to_style(style)\r
     }\r
   \r
+class Pettanr.Views.PanelPicture.Element.Edit extends Pettanr.Views.PanelPicture.Element\r
+  \r
index ed7049c..70af2ff 100644 (file)
@@ -11,16 +11,13 @@ class Pettanr.Views.Panel.Body extends Backbone.View
     @spot = options.spot\r
   \r
   render: () ->\r
-    attr = {style: Pettanr.to_style(@style())}\r
-    this.$el.attr(attr)\r
+    @restyle()\r
     if @panel.is_visible(@operators)\r
       this.$el.html('')\r
       _this = this\r
       l = @panel.scenario_elements()\r
-      _.each l, (element) ->\r
-        c = Pettanr.Views[element.singular()].Element\r
-        tag = new c({element: element, root: _this.panel, spot: _this.spot})\r
-        _this.$el.append(tag.render().el)\r
+      _.each l, (element) =>\r
+        @add_element(element)\r
     else\r
       tag = new Tag.Div({\r
         content: I18n.t('panels.hidden'), \r
@@ -29,16 +26,56 @@ class Pettanr.Views.Panel.Body extends Backbone.View
       this.$el.html(tag.render().el)\r
     this\r
   \r
+  restyle: () ->\r
+    attr = {style: Pettanr.to_style(@style())}\r
+    this.$el.attr(attr)\r
+  \r
+  render_element: (element) ->\r
+  \r
+  element_class: (element) ->\r
+    Pettanr.Views[element.singular()].Element\r
+  \r
+  add_element: (element) ->\r
+    c = @element_class(element)\r
+    tag = new c({element: element, root: @panel, spot: @spot})\r
+    this.$el.append(tag.render().el)\r
+  \r
+  disp: (value) ->\r
+    Pettanr.to_s(value) + 'px'\r
+  \r
   style: () ->\r
     {\r
-      'width': Pettanr.to_s(@panel.get('width')) + 'px'\r
-      'height': Pettanr.to_s(@panel.get('height')) + 'px'\r
+      'width': @disp(@panel.get('width'))\r
+      'height': @disp(@panel.get('height'))\r
       'border-style': 'solid', \r
-      'border-width': Pettanr.to_s(@panel.get('border')) + 'px'\r
+      'border-width': @disp(@panel.get('border'))\r
       'border-color': 'black', \r
       'background-color': 'white'\r
     }\r
   \r
+class Pettanr.Views.Panel.Body.Edit extends Pettanr.Views.Panel.Body\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @listenTo(@panel, 'input:width', @restyle)\r
+    @listenTo(@panel, 'input:height', @restyle)\r
+    @listenTo(@panel, 'input:border', @restyle)\r
+  \r
+  render: () ->\r
+    super()\r
+    this.$el.resizable {\r
+      stop: (event, ui) =>\r
+        w = parseInt(this.$el.width())\r
+        h = parseInt(this.$el.height())\r
+        @panel.set({width: w, height: h}, {silent: true})\r
+        @panel.trigger('resize')\r
+      , autoHide: true\r
+    }\r
+    this\r
+  \r
+  element_class: (element) ->\r
+    Pettanr.Views[element.singular()].Element.Edit\r
+  \r
 class Pettanr.Views.Panel.Footer extends Backbone.View\r
   tagName: 'table'\r
   className: 'no-border'\r
index 01b9c79..4cdf06f 100644 (file)
@@ -36,3 +36,5 @@ class Pettanr.Views.SpeechBalloon.Element extends Backbone.View
       'z-index': @element.get('z')\r
     }\r
   \r
+class Pettanr.Views.SpeechBalloon.Element.Edit extends Pettanr.Views.SpeechBalloon.Element\r
+  \r
index e38efde..4999935 100644 (file)
@@ -37,7 +37,7 @@ module Locmare
             else  # unlimited api
               @limit = -1 if @limit < 0
             end
-            @limit = @total if @total and (@limit > @total)
+            @limit = @total if (@total > 0) and (@limit > @total)
             @limit
           end
           
@@ -113,7 +113,7 @@ module Locmare
             else  # unlimited api
               @limit = -1 if @limit < 0
             end
-            @limit = @total if @total and (@limit > @total)
+            @limit = @total if (@total > 0) and (@limit > @total)
             @limit
           end
           
@@ -195,7 +195,7 @@ module Locmare
         end
         
         def self.load list, total, options
-          return nil if total == 0
+          #return nil if total == 0
           ps = if self.offset(options) or self.count(options)
             Offset.new list, total, options
           else
index dc7881f..3bd122a 100644 (file)
@@ -30,7 +30,7 @@ module Locmare
       end
       
       def page_status
-        @page_status ||= LibModule::PageStatus.load self, self.total, @options
+        @page_status ||= LibModule::PageStatus.load(self, self.total, @options)
       end
       
       def model_name
@@ -94,17 +94,17 @@ module Locmare
       end
       
       def items
-        return [] unless @page_status
+        self.total  # get total
+        return [] unless self.page_status  #.pager
         @items ||= self.arel.order(
           self.order_by
-        ).offset(@page_status.offset).limit(@page_status.limit)
+        ).offset(self.page_status.offset).limit(self.page_status.limit)
         self.boost
         @items
       end
       
       def total
-        self.arel.count
-        # return string : =>"25"
+        @total ||= self.arel.count
       end
       
       def boost_manifests