new: () ->\r
@redraw_title(@params)\r
@set_new()\r
- editor = new Editor.PanelEditor({root_item: @item, operators: @operators})\r
- $("#pettanr").html(editor.render().el)\r
+ @editor()\r
\r
edit: () ->\r
@redraw_title(@params)\r
@set_model()\r
@item = new Pettanr.Panel({id: @params['id']}, {with_elements: true})\r
@item.fetch({cache: false}).done =>\r
- editor = new Editor.PanelEditor({root_item: @item, operators: @operators})\r
- $("#pettanr").html(editor.render().el)\r
+ @q = {}\r
+ _.each @item.my_class().child_models(), (element_model) =>\r
+ name = @item.my_class().my_manifest().associations.child_element_name(element_model)\r
+ if e = @item.get(name)\r
+ elm = new element_model(e)\r
+ @q[name + elm.dom_id()] = elm\r
+ @qf( )\r
+ \r
+ qf: ( ) ->\r
+ _.each @q, (e, name) =>\r
+ e.fetch({cache: true}).done =>\r
+ delete @q[name]\r
+ if _.isEmpty(@q)\r
+ @editor()\r
+ \r
+ editor: () ->\r
+ editor = new Editor.PanelEditor({root_item: @item, operators: @operators})\r
+ $("#pettanr").html(editor.render().el)\r
\r
create: () ->\r
\r
@spot = options.spot\r
img_class = @img_class()\r
@img = new img_class({\r
+ wrapper: this,\r
element: @element,\r
- spot: @spot,\r
- picture: @element.picture()\r
+ spot: @spot\r
})\r
+ @element.fetch({cache: false})\r
\r
render: () ->\r
@attr = {style: Pettanr.to_style(@style())}\r
this.$el.attr(@attr)\r
- this.$el.html(@img.render().el)\r
+ this.$el.html(@img.clear().el)\r
this\r
\r
style: () ->\r
tagName: 'img'\r
\r
initialize: (options) ->\r
+ @wrapper = options.wrapper\r
@element = options.element\r
- @picture = options.picture\r
@spot = options.spot\r
+ @picture = @element.picture()\r
@listenTo(this, 'ready', @render)\r
@picture.fetch({cache: true}).done =>\r
@trigger('ready')\r
\r
+ clear: () ->\r
+ this\r
+ \r
render: () ->\r
this.$el.attr(@attr(@spot))\r
this\r
\r
render: () ->\r
super()\r
+ img = @img\r
+ wrapper = this\r
+ elm = @element\r
this.$el.draggable {\r
- stop: (event, ui) =>\r
- left = @img.$el.parent().position().left + this.$el.position().left\r
- top = @img.$el.parent().position().top + this.$el.position().top\r
- @element.set({left: parseInt(left), top: parseInt(top)}, {silent: true})\r
- @element.trigger('move')\r
+ stop: (event, ui) ->\r
+ left = img.$el.parent().position().left + wrapper.$el.position().left\r
+ top = img.$el.parent().position().top + wrapper.$el.position().top\r
+ elm.set({x: parseInt(left), y: parseInt(top)}, {silent: true})\r
+ elm.trigger('move')\r
}\r
this\r
\r
\r
render: () ->\r
super()\r
+ wrapper = @wrapper\r
+ elm = @element\r
this.$el.resizable {\r
- stop: (event, ui) =>\r
- resize_div = $(@)\r
- panel_picture_div = resize_div.parent()\r
- trace = editor.element_tag_id(panel_picture_div)\r
+ stop: (event, ui) ->\r
+ resize_div = ui.element\r
+ panel_picture_div = wrapper.$el\r
\r
resize_div.css('top', '0px')\r
resize_div.css('left', '0px')\r
+ top = panel_picture_div.position().top\r
if ui.originalPosition.top != ui.position.top\r
- top = panel_picture_div.position().top + ui.position.top\r
+ top += ui.position.top\r
#@element.set({y: Math.floor(top)}, {silent: true})\r
panel_picture_div.css('top', top.toString() + 'px')\r
+ left = panel_picture_div.position().left\r
if ui.originalPosition.left != ui.position.left\r
- left = panel_picture_div.position().left + ui.position.left\r
- #@element.set({y: Math.floor(leftp)}, {silent: true})\r
+ left += ui.position.left\r
+ #@element.set({y: leftp)}, {silent: true})\r
panel_picture_div.css('left', left.toString() + 'px')\r
- width = if @element.get('width') < 0\r
+ width = if elm.get('width') < 0\r
-ui.size.width\r
else\r
ui.size.width\r
- height = if @element.get('height') < 0\r
+ height = if elm.get('height') < 0\r
-ui.size.height\r
else\r
ui.size.height\r
- @element.set({\r
- left: parseInt(left), \r
- top: parseInt(top), \r
+ elm.set({\r
+ x: Math.floor(left), \r
+ y: Math.floor(top), \r
width: width, \r
height: height\r
}, {silent: true})\r
- @element.trigger('move')\r
- resize: (event, ui) =>\r
- resize_div = $(@)\r
- panel_picture_div = resize_div.parent()\r
- trace = editor.element_tag_id(panel_picture_div)\r
+ elm.trigger('move')\r
handles: 'all',\r
autoHide: true\r
}\r