# panel: panel item\r
-# operators: operators\r
# spot: no opacity element\r
-class Pettanr.Views.Panel.Body extends Backbone.View\r
+class Pettanr.Views.Panel.Body extends Pettanr.View\r
tagName: 'div'\r
- className: 'pettanr-comic-panel'\r
\r
initialize: (options) ->\r
@panel = options.panel\r
- @operators = options.operators\r
@spot = options.spot\r
+ @class_name = 'pettanr-comic-panel'\r
+ @views = []\r
+ if @is_visible()\r
+ _.each @panel.zorderd_elements(), (element) =>\r
+ @add_element(element)\r
\r
render: () ->\r
+ this.$el.addClass(@class_name)\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
- @add_element(element)\r
- else\r
+ #this.$el.html('')\r
+ if not @is_visible()\r
tag = new Tag.Div({\r
content: I18n.t('panels.hidden'), \r
class_name: 'hidden'\r
attr = {style: Pettanr.to_style(@style())}\r
this.$el.attr(attr)\r
\r
- render_element: (element) ->\r
+ is_visible: () ->\r
+ @panel.is_visible()\r
\r
- element_class: (element) ->\r
- Pettanr.Views[element.singular()].Element\r
+ render_element: (index) ->\r
\r
add_element: (element) ->\r
+ index = element.get('z') - 1\r
c = @element_class(element)\r
- tag = new c({element: element, root: @panel, spot: @spot})\r
- this.$el.append(tag.render().el)\r
+ view = new c({element: element, root: @panel, spot: @spot})\r
+ @add_event(view)\r
+ @views.splice(index, 0, view)\r
+ if @is_visible()\r
+ this.$el.append(view.render().el)\r
+ view\r
+ \r
+ add_event: (view) ->\r
+ @listenTo(view, 'http_get', @http_get)\r
+ \r
+ remove_element: (element) ->\r
+ _.each @views, (view) =>\r
+ if view.element.cid == element.cid\r
+ view.remove()\r
+ \r
+ element_class: (element) ->\r
+ Pettanr.Views[element.singular()].Element\r
\r
disp: (value) ->\r
Pettanr.to_s(value) + 'px'\r
'background-color': 'white'\r
}\r
\r
+ http_get: (url) ->\r
+ @trigger('http_get', url)\r
+ \r
class Pettanr.Views.Panel.Body.Edit extends Pettanr.Views.Panel.Body\r
\r
initialize: (options) ->\r
@listenTo(@panel, 'input:width', @restyle)\r
@listenTo(@panel, 'input:height', @restyle)\r
@listenTo(@panel, 'input:border', @restyle)\r
+ @listenTo(@panel, 'active', @active)\r
+ @listenTo(@panel, 'inactive', @inactive)\r
+ @listenTo(this, 'active', @active)\r
+ @listenTo(this, 'inactive', @inactive)\r
\r
render: () ->\r
super()\r
h = parseInt(this.$el.height())\r
@panel.set({width: w, height: h}, {silent: true})\r
@panel.trigger('resize')\r
- , autoHide: true\r
+ , autoHide: false\r
}\r
+ @inactive()\r
+ _this = this\r
+ this.$el.mouseover -> \r
+ _this.trigger('active')\r
+ this.$el.mouseout -> \r
+ _this.trigger('inactive')\r
this\r
\r
- element_class: (element) ->\r
- Pettanr.Views[element.singular()].Element.Edit\r
+ is_visible: () ->\r
+ true # show everytime as editor\r
\r
-class Pettanr.Views.Panel.Footer extends Backbone.View\r
- tagName: 'table'\r
- className: 'no-border'\r
+ active: () ->\r
+ n = @class_name\r
+ $('.ui-resizable-handle', this.el).map ->\r
+ if $(@).parent().hasClass(n)\r
+ $(@).css('display', 'block')\r
\r
- initialize: (options) ->\r
- @panel = options.panel\r
- @operators = options.operators\r
+ inactive: () ->\r
+ n = @class_name\r
+ $('.ui-resizable-handle', this.el).map ->\r
+ if $(@).parent().hasClass(n)\r
+ $(@).css('display', 'none')\r
\r
- render: () ->\r
- this.$el.html('')\r
- this.$el.append(\r
- (new Pettanr.Views.Panel.Icon({item: @panel, half: true})).render().el\r
- )\r
- this.$el.append(\r
- (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el\r
- )\r
- this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at')))\r
- if @panel.is_own(@operators)\r
- this.$el.append(\r
- (new Pettanr.Views.Show.LinkedEditButton({item: @panel})).render().el\r
- )\r
- this\r
+ element_class: (element) ->\r
+ Pettanr.Views[element.singular()].Element.Edit\r
+ \r
+ # stop listen link msg\r
+ add_event: (view) ->\r
\r