@set_model()\r
@item = new Pettanr.Panel({id: @params['id']}, {with_elements: true})\r
@item.fetch({cache: false}).done =>\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
+ @editor()\r
\r
editor: () ->\r
editor = new Editor.PanelEditor({root_item: @item, operators: @operators})\r
})\r
@dock = new Editor.PanelEditor.Dock({parent: this})\r
@credits = new Pettanr.Views.Panel.Show.Credits({panel: @root_item()})\r
+ _.each @panel.zorderd_elements(), (element) =>\r
+ element.fetch({cache: true}).done =>\r
+ console.log(element)\r
+ panel_element_view = @body.add_element(element)\r
+ dock_element_view = @dock.add_element(element)\r
+ @dig(element, panel_element_view, dock_element_view)\r
+ #@body.render()\r
@body.on('panel:resize', @panel_resize)\r
\r
+ dig: (element, panel_element_view, dock_element_view) ->\r
+ console.log(element.elements_items())\r
+ _.each element.elements_items(), (child_element) =>\r
+ console.log(child_element)\r
+ child_element.fetch({cache: true}).done =>\r
+ child_panel_element_view = panel_element_view.add_element(child_element)\r
+ dock_element_view.add_element(child_element)\r
+ @dig(child_element, child_panel_element_view, dock_element_view)\r
+ \r
render: () ->\r
this.$el.html('')\r
this.$el.append(@body.render().el)\r
\r
initialize: (options) ->\r
super(options)\r
- tab = new Editor.EditorModule.DockModule.RootBay({\r
+ @root = new Editor.EditorModule.DockModule.RootBay({\r
parent: this, index: 0, name: 'panel'\r
})\r
@add_tab(\r
- tab, \r
+ @root, \r
new Editor.EditorModule.DockModule.TabModule.RootBayLabel({\r
- parent: tab, caption: 'panel'\r
+ parent: @root, caption: 'panel'\r
}), \r
new Editor.EditorModule.DockModule.TabModule.RootBayBody({\r
- parent: tab\r
+ parent: @root\r
})\r
)\r
- tab = new Editor.EditorModule.DockModule.ElementBay({\r
+ @element = new Editor.EditorModule.DockModule.ElementBay({\r
parent: this, index: 1, name: 'elements'\r
})\r
@add_tab(\r
- tab, \r
+ @element, \r
new Editor.EditorModule.DockModule.TabModule.ElementBayLabel({\r
- parent: tab, caption: 'elements'\r
+ parent: @element, caption: 'elements'\r
}), \r
new Editor.EditorModule.DockModule.TabModule.ElementBayBody({\r
- parent: tab\r
+ parent: @element\r
})\r
)\r
- tab = new Editor.EditorModule.DockModule.ScenarioBay({\r
+ @scenario = new Editor.EditorModule.DockModule.ScenarioBay({\r
parent: this, index: 2, name: 'scenario'\r
})\r
@add_tab(\r
- tab, \r
+ @scenario, \r
new Editor.EditorModule.DockModule.TabModule.ScenarioBayLabel({\r
- parent: tab, caption: 'scenario'\r
+ parent: @scenario, caption: 'scenario'\r
}), \r
new Editor.EditorModule.DockModule.TabModule.ScenarioBayBody({\r
- parent: tab\r
- })\r
- )\r
- tab = new Editor.EditorModule.DockModule.PriorityBay({\r
- parent: this, index: 3, name: 'priority'\r
- })\r
- @add_tab(\r
- tab, \r
- new Editor.EditorModule.DockModule.TabModule.PriorityBayLabel({\r
- parent: tab, caption: 'priority'\r
- }), \r
- new Editor.EditorModule.DockModule.TabModule.PriorityBayBody({\r
- parent: tab\r
- })\r
- )\r
- tab = new Editor.EditorModule.DockModule.NewBay({\r
- parent: this, index: 4, name: 'new'\r
- })\r
- @add_tab(\r
- tab, \r
- new Editor.EditorModule.DockModule.TabModule.NewBayLabel({\r
- parent: tab, caption: 'new'\r
- }), \r
- new Editor.EditorModule.DockModule.TabModule.NewBayBody({\r
- parent: tab\r
+ parent: @scenario\r
})\r
)\r
\r
this.$el.append(tab.render().el)\r
this\r
\r
+ add_element: (element) ->\r
+ @element.add_element(element)\r
+ \r
editor: () ->\r
@parent\r
\r
\r
initialize: (options) ->\r
super(options)\r
- i = 0\r
- _.each @elements(), (element) =>\r
- @add_element(element)\r
- i++\r
\r
- add_element: (element, index) ->\r
+ add_element: (element) ->\r
+ index = element.get('z') - 1\r
tab = new Editor.EditorModule.DockModule.ElementBoard({\r
parent: this, index: index, name: element.item_name(), element: element\r
})\r
+ bb = new Editor.EditorModule.DockModule.TabModule.ElementBoardBody({parent: tab})\r
@add_tab(\r
tab, \r
new Editor.EditorModule.DockModule.TabModule.ElementBoardLabel({parent: tab, name: element.item_name()}), \r
- new Editor.EditorModule.DockModule.TabModule.ElementBoardBody({parent: tab})\r
+ bb\r
)\r
- @panel_body().add_element(element)\r
+ bb\r
\r
render: () ->\r
this.$el.html('')\r
\r
initialize: (options) ->\r
super(options)\r
- @form = Locmare.Bucket.factory(\r
- @element().item_name(), \r
- @element(), \r
- @mounted(), \r
- null, \r
- @dock().editor().operators\r
- )\r
- @bucket = new Editor.EditorModule.DockModule.FormBucket({\r
- parent: this, form: @form\r
+ @form = Locmare.Form.factory({\r
+ form_name: @element().item_name(), \r
+ item: @element(), \r
+ mounted: @mounted(), \r
+ submit: null, \r
+ operators: @dock().editor().operators,\r
+ action: '/' + @element().table_name() + '/' + Pettanr.to_s(@element().get('id'))\r
})\r
\r
render: () ->\r
this.$el.attr('id', @dom_id())\r
- this.$el.html(@bucket.render().el)\r
+ this.$el.html(@form.render().el)\r
this\r
\r
+ add_element: (element) ->\r
+ @form.add_element(element)\r
+ \r
mounted: () ->\r
true\r
\r
@delegateEvents({'submit': method_type})\r
this\r
\r
+ add_element: (element) ->\r
+ form = new Locmare.Form(\r
+ element.item_name(), \r
+ element, \r
+ @mounted, \r
+ null, \r
+ @operators\r
+ )\r
+ this.$el.append( form.render().el)\r
+ form\r
+ \r
init_fields: () ->\r
_.each @manifest.field_names, (field_name) =>\r
field_manifest = @manifest.fields[field_name]\r
@get(n)\r
\r
elements_items: () ->\r
- r = _.map @my_class().child_models, (element_model) =>\r
+ r = _.map @my_class().child_models(), (element_model) =>\r
@element_items(element_model)\r
_.flatten(r)\r
\r
\r
zorderd_elements: () ->\r
res = []\r
- _.each @parts_element, (e) =>\r
+ _.each @parts_element(), (e) =>\r
res[e.get('z')-1] = e\r
res\r
\r
render: () ->\r
attr = {\r
src: @system_picture.r_url(), \r
- alt: @element.get('caption')\r
+ alt: @element.get('caption'),\r
+ style: Pettanr.to_style(@style())\r
}\r
this.$el.attr(attr)\r
this\r
\r
+ style: () ->\r
+ {\r
+ 'z-index': 2\r
+ }\r
+ \r
+ add_element: (element) ->\r
+ null\r
+ \r
class Pettanr.Views.Balloon.Element.Edit extends Pettanr.Views.Balloon.Element\r
\r
initialize: (options) ->\r
@root = options.root\r
@spot = options.spot\r
\r
+ clear: () ->\r
+ this\r
+ \r
render: () ->\r
attr = {\r
style: Pettanr.to_style(@style(@spot))\r
this.$el.attr(attr)\r
this\r
\r
+ add_element: (element) ->\r
+ null\r
+ \r
div_offset: () ->\r
if @element.get('xy')\r
@element.get('xy')\r
@root = options.root\r
@spot = options.spot\r
\r
+ clear: () ->\r
+ this\r
+ \r
render: () ->\r
s = @style(@spot)\r
_.extend(s, @style_wh())\r
this.$el.attr(attr)\r
this\r
\r
+ add_element: (element) ->\r
+ null\r
+ \r
style: (spot = null, opacity = 20) ->\r
r = {\r
position: 'absolute', \r
element: @element,\r
spot: @spot\r
})\r
- @element.fetch({cache: false})\r
+ \r
+ clear: () ->\r
+ this\r
\r
render: () ->\r
@attr = {style: Pettanr.to_style(@style())}\r
this.$el.html(@img.clear().el)\r
this\r
\r
+ add_element: (element) ->\r
+ null\r
+ \r
style: () ->\r
{\r
'top': Pettanr.to_s(@element.get('y')) + 'px',\r
\r
render: () ->\r
@restyle()\r
- this.$el.html('')\r
+ #this.$el.html('')\r
if @is_visible()\r
- _.each @views, (view) =>\r
- this.$el.append(view.render().el)\r
+ #_.each @views, (view) =>\r
+ #this.$el.append(view.render().el)\r
else\r
tag = new Tag.Div({\r
content: I18n.t('panels.hidden'), \r
render_element: (index) ->\r
\r
add_element: (element) ->\r
+ index = element.get('z') - 1\r
c = @element_class(element)\r
- @views[element.get('z')-1] = new c({element: element, root: @panel, spot: @spot})\r
+ view = new c({element: element, root: @panel, spot: @spot})\r
+ @views[index] = view\r
+ if @is_visible()\r
+ this.$el.append(view.render().el)\r
+ view\r
\r
element_class: (element) ->\r
Pettanr.Views[element.singular()].Element\r
@element = options.element\r
@root = options.root\r
@spot = options.spot\r
- @balloon = @element.get('balloon')\r
- @speech = @element.get('speech')\r
- balloon_class = @balloon_class()\r
- @balloon_view = new balloon_class({\r
- parent: this, \r
- element: @balloon, \r
- root: @root,\r
- spot: @spot\r
- })\r
- speech_class = @speech_class()\r
- @speech_view = new speech_class({\r
- parent: this, \r
- element: @speech, \r
- root: @root,\r
- spot: @spot\r
- })\r
+ @collect_views()\r
+ \r
+ collect_views: () ->\r
+ @views = []\r
+ @add_element(@element.get('balloon'))\r
+ @add_element(@element.get('speech'))\r
+ \r
+ add_element: (element) ->\r
+ switch element.item_name()\r
+ when 'balloon'\r
+ @balloon = element\r
+ @set_style()\r
+ klass = @balloon_class()\r
+ view = new klass({\r
+ parent: this, \r
+ element: element, \r
+ root: @root,\r
+ spot: @spot\r
+ })\r
+ this.$el.append(view.clear().el)\r
+ when 'speech'\r
+ @speech = element\r
+ klass = @speech_class()\r
+ view = new klass({\r
+ parent: this, \r
+ element: element, \r
+ root: @root,\r
+ spot: @spot\r
+ })\r
+ this.$el.append(view.render().el)\r
+ view\r
\r
render: () ->\r
- @attr = {style: Pettanr.to_style(@style())}\r
- this.$el.attr(@attr)\r
+ @set_style()\r
this.$el.html('')\r
- this.$el.append(@balloon_view.clear().el)\r
- this.$el.append(@speech_view.render().el)\r
+ _.each @views, (view) =>\r
+ this.$el.append(view.clear().el)\r
this\r
\r
+ set_style: () ->\r
+ attr = {style: Pettanr.to_style(@style())}\r
+ this.$el.attr(attr)\r
+ \r
style: () ->\r
{\r
width: Pettanr.to_s(@balloon.get('width')) + 'px', \r
\r
initialize: (options) ->\r
super(options)\r
+ @listenTo(this, 'active', @active)\r
+ @listenTo(this, 'inactive', @inactive)\r
\r
render: () ->\r
super()\r
}\r
this\r
\r
+ collect_views: () ->\r
+ @views = [] # elements collect by dock\r
+ \r
+ set_style: () ->\r
+ if @balloon\r
+ super()\r
+ \r
+ active: () ->\r
+ $('.ui-resizable-handle', this.el).map ->\r
+ $(@).css('display', 'block')\r
+ \r
+ inactive: () ->\r
+ $('.ui-resizable-handle', this.el).map ->\r
+ $(@).css('display', 'none')\r
+ \r
element_class: (element) ->\r
Pettanr.Views[element.singular()].Element.Edit\r
\r
class_name: 'pettanr-comic-speech-inner'\r
})\r
\r
+ clear: () ->\r
+ @render()\r
+ \r
render: () ->\r
@outer_attr = {style: Pettanr.to_style(@outer_style())}\r
this.$el.attr(@outer_attr)\r
this.$el.html(@div.render().el)\r
this\r
\r
+ add_element: (element) ->\r
+ null\r
+ \r
outer_style: () ->\r
{\r
top: @element.get('y'), \r
left: @element.get('x'), \r
width: @element.get('width'), \r
- height: @element.get('height')\r
+ height: @element.get('height'),\r
+ 'z-index': 1\r
}\r
\r
inner_style: () ->\r
\r
render: () ->\r
super()\r
- img = @speech_balloon.balloon_view.$el\r
+ sb = @speech_balloon\r
@div.$el.mouseover -> \r
- $('.ui-resizable-handle', img.parent()).map ->\r
- $(@).css('display', 'block')\r
+ sb.trigger('active')\r
@div.$el.mouseout -> \r
- $('.ui-resizable-handle', img.parent()).map ->\r
- $(@).css('display', 'none')\r
+ sb.trigger('inactive')\r
this\r
\r