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
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
@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
@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
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
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
}\r
r\r
\r
+class Pettanr.Views.GroundColor.Element.Edit extends Pettanr.Views.GroundColor.Element\r
+ \r
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
height: Pettanr.to_s(@root.get('height')) + 'px'\r
}\r
\r
+class Pettanr.Views.GroundPicture.Element.Edit extends Pettanr.Views.GroundPicture.Element\r
+ \r
style: Pettanr.to_style(style)\r
}\r
\r
+class Pettanr.Views.PanelPicture.Element.Edit extends Pettanr.Views.PanelPicture.Element\r
+ \r
@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
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
'z-index': @element.get('z')\r
}\r
\r
+class Pettanr.Views.SpeechBalloon.Element.Edit extends Pettanr.Views.SpeechBalloon.Element\r
+ \r
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
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
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
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
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