From 036f1b63ac8fb061da5658f9a98e4e1669729173 Mon Sep 17 00:00:00 2001 From: yasushiito Date: Mon, 1 Dec 2014 07:40:09 +0900 Subject: [PATCH 1/1] test editor event --- .../javascripts/editor/panel_editor.js.coffee | 10 +++- app/assets/javascripts/locmare/bucket.js.coffee | 2 +- .../javascripts/locmare/form/field.js.coffee | 15 ++++-- .../views/ground_colors/element.js.coffee | 2 + .../views/ground_pictures/element.js.coffee | 6 ++- .../views/panel_pictures/element.js.coffee | 2 + app/assets/javascripts/views/panels/body.js.coffee | 55 ++++++++++++++++++---- .../views/speech_balloons/element.js.coffee | 2 + lib/locmare/list_group/lib/page_status.rb | 6 +-- lib/locmare/list_group/list/base.rb | 10 ++-- 10 files changed, 86 insertions(+), 24 deletions(-) diff --git a/app/assets/javascripts/editor/panel_editor.js.coffee b/app/assets/javascripts/editor/panel_editor.js.coffee index 0cfaee15..4e52374a 100644 --- a/app/assets/javascripts/editor/panel_editor.js.coffee +++ b/app/assets/javascripts/editor/panel_editor.js.coffee @@ -5,13 +5,14 @@ class Editor.PanelEditor extends Backbone.View initialize: (options) -> @panel = options.root_item @operators = options.operators - @body = new Pettanr.Views.Panel.Body({ + @body = new Pettanr.Views.Panel.Body.Edit({ panel: @root_item(), operators: @operators, spot: null }) @dock = new Editor.PanelEditor.Dock({parent: this}) @credits = new Pettanr.Views.Panel.Show.Credits({panel: @root_item()}) + @body.on('panel:resize', @panel_resize) render: () -> this.$el.html('') @@ -23,6 +24,13 @@ class Editor.PanelEditor extends Backbone.View this.$el.tabs() this + panel_resize: () -> + my = @body.$el + w = parseInt(my.width()) + h = parseInt(my.height()) + #$(trace + 'width').val(w) + #$(trace + 'height').val(h) + root_item: () -> @panel diff --git a/app/assets/javascripts/locmare/bucket.js.coffee b/app/assets/javascripts/locmare/bucket.js.coffee index ece55d1b..374da056 100644 --- a/app/assets/javascripts/locmare/bucket.js.coffee +++ b/app/assets/javascripts/locmare/bucket.js.coffee @@ -78,7 +78,7 @@ class Locmare.Bucket extends Backbone.View @init_forms(new_key, member_manifest, member_item) init_fields: () -> - _.each @manifest.form_field_names, (form_field_name) -> + _.each @manifest.form_field_names, (form_field_name) => r = if Pettanr.is_blank(form_field_name.form_name) '' else diff --git a/app/assets/javascripts/locmare/form/field.js.coffee b/app/assets/javascripts/locmare/form/field.js.coffee index 4b559a1a..4ef81ea0 100644 --- a/app/assets/javascripts/locmare/form/field.js.coffee +++ b/app/assets/javascripts/locmare/form/field.js.coffee @@ -12,6 +12,7 @@ class Locmare.FormModule.Field extends Backbone.View @rb = @row_break() @options = {'data-model': @field_manifest.form_name} @on('change', @change) + @listenTo(@item(), 'resize', @refresh) render: () -> this.$el.html('') @@ -20,8 +21,14 @@ class Locmare.FormModule.Field extends Backbone.View this.$el.append(@helpers.render().el) this + refresh: () -> + @tag.render() + @helpers.render() + change: () -> - @form.trigger('change:field', this) + @set(@val(), {silent: true}) + @item().trigger('input:' + @field_name) + @item().trigger('input') mounted: () -> if @form.mounted @@ -41,8 +48,10 @@ class Locmare.FormModule.Field extends Backbone.View value: () -> @item().get(@field_manifest.column_name()) - set: (v) -> - @item().set(@field_manifest.column_name(), v) + set: (v, opt = null) -> + a = {} + a[@field_manifest.column_name()] = v + @item().set(a, opt) options: (tag_options = {}) -> tag_options diff --git a/app/assets/javascripts/views/ground_colors/element.js.coffee b/app/assets/javascripts/views/ground_colors/element.js.coffee index 94e84299..b56de6ab 100644 --- a/app/assets/javascripts/views/ground_colors/element.js.coffee +++ b/app/assets/javascripts/views/ground_colors/element.js.coffee @@ -62,3 +62,5 @@ class Pettanr.Views.GroundColor.Element extends Backbone.View } r +class Pettanr.Views.GroundColor.Element.Edit extends Pettanr.Views.GroundColor.Element + diff --git a/app/assets/javascripts/views/ground_pictures/element.js.coffee b/app/assets/javascripts/views/ground_pictures/element.js.coffee index 135a1d10..fbec7687 100644 --- a/app/assets/javascripts/views/ground_pictures/element.js.coffee +++ b/app/assets/javascripts/views/ground_pictures/element.js.coffee @@ -22,8 +22,8 @@ class Pettanr.Views.GroundPicture.Element extends Backbone.View top: '0px', left: '0px', 'z-index': @element.get('z'), - 'background-image': 'url(' + @picture().r_url() + ')', - 'background-repeat': @repeat_text(), + 'background-image': 'url(' + @element.picture().r_url() + ')', + 'background-repeat': @element.repeat_text(), 'background-position': Pettanr.to_s(@element.get('x')) + 'px ' + Pettanr.to_s(@element.get('y')) + 'px' } r @@ -34,3 +34,5 @@ class Pettanr.Views.GroundPicture.Element extends Backbone.View height: Pettanr.to_s(@root.get('height')) + 'px' } +class Pettanr.Views.GroundPicture.Element.Edit extends Pettanr.Views.GroundPicture.Element + diff --git a/app/assets/javascripts/views/panel_pictures/element.js.coffee b/app/assets/javascripts/views/panel_pictures/element.js.coffee index eb5ea8ec..c3e05f40 100644 --- a/app/assets/javascripts/views/panel_pictures/element.js.coffee +++ b/app/assets/javascripts/views/panel_pictures/element.js.coffee @@ -40,3 +40,5 @@ class Pettanr.Views.PanelPicture.Element extends Backbone.View style: Pettanr.to_style(style) } +class Pettanr.Views.PanelPicture.Element.Edit extends Pettanr.Views.PanelPicture.Element + diff --git a/app/assets/javascripts/views/panels/body.js.coffee b/app/assets/javascripts/views/panels/body.js.coffee index ed7049cd..70af2ff1 100644 --- a/app/assets/javascripts/views/panels/body.js.coffee +++ b/app/assets/javascripts/views/panels/body.js.coffee @@ -11,16 +11,13 @@ class Pettanr.Views.Panel.Body extends Backbone.View @spot = options.spot render: () -> - attr = {style: Pettanr.to_style(@style())} - this.$el.attr(attr) + @restyle() if @panel.is_visible(@operators) this.$el.html('') _this = this l = @panel.scenario_elements() - _.each l, (element) -> - c = Pettanr.Views[element.singular()].Element - tag = new c({element: element, root: _this.panel, spot: _this.spot}) - _this.$el.append(tag.render().el) + _.each l, (element) => + @add_element(element) else tag = new Tag.Div({ content: I18n.t('panels.hidden'), @@ -29,16 +26,56 @@ class Pettanr.Views.Panel.Body extends Backbone.View this.$el.html(tag.render().el) this + restyle: () -> + attr = {style: Pettanr.to_style(@style())} + this.$el.attr(attr) + + render_element: (element) -> + + element_class: (element) -> + Pettanr.Views[element.singular()].Element + + add_element: (element) -> + c = @element_class(element) + tag = new c({element: element, root: @panel, spot: @spot}) + this.$el.append(tag.render().el) + + disp: (value) -> + Pettanr.to_s(value) + 'px' + style: () -> { - 'width': Pettanr.to_s(@panel.get('width')) + 'px', - 'height': Pettanr.to_s(@panel.get('height')) + 'px', + 'width': @disp(@panel.get('width')), + 'height': @disp(@panel.get('height')), 'border-style': 'solid', - 'border-width': Pettanr.to_s(@panel.get('border')) + 'px', + 'border-width': @disp(@panel.get('border')), 'border-color': 'black', 'background-color': 'white' } +class Pettanr.Views.Panel.Body.Edit extends Pettanr.Views.Panel.Body + + initialize: (options) -> + super(options) + @listenTo(@panel, 'input:width', @restyle) + @listenTo(@panel, 'input:height', @restyle) + @listenTo(@panel, 'input:border', @restyle) + + render: () -> + super() + this.$el.resizable { + stop: (event, ui) => + w = parseInt(this.$el.width()) + h = parseInt(this.$el.height()) + @panel.set({width: w, height: h}, {silent: true}) + @panel.trigger('resize') + , autoHide: true + } + this + + element_class: (element) -> + Pettanr.Views[element.singular()].Element.Edit + class Pettanr.Views.Panel.Footer extends Backbone.View tagName: 'table' className: 'no-border' diff --git a/app/assets/javascripts/views/speech_balloons/element.js.coffee b/app/assets/javascripts/views/speech_balloons/element.js.coffee index 01b9c798..4cdf06fb 100644 --- a/app/assets/javascripts/views/speech_balloons/element.js.coffee +++ b/app/assets/javascripts/views/speech_balloons/element.js.coffee @@ -36,3 +36,5 @@ class Pettanr.Views.SpeechBalloon.Element extends Backbone.View 'z-index': @element.get('z') } +class Pettanr.Views.SpeechBalloon.Element.Edit extends Pettanr.Views.SpeechBalloon.Element + diff --git a/lib/locmare/list_group/lib/page_status.rb b/lib/locmare/list_group/lib/page_status.rb index e38efde1..49999356 100644 --- a/lib/locmare/list_group/lib/page_status.rb +++ b/lib/locmare/list_group/lib/page_status.rb @@ -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 diff --git a/lib/locmare/list_group/list/base.rb b/lib/locmare/list_group/list/base.rb index dc7881f2..3bd122a4 100644 --- a/lib/locmare/list_group/list/base.rb +++ b/lib/locmare/list_group/list/base.rb @@ -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 -- 2.11.0