1 class Pettanr.Views.PanelPicture.Element extends Backbone.View
\r
3 className: 'pettanr-panel-picture-wrapper'
\r
5 initialize: (options) ->
\r
6 @element = options.element
\r
9 img_class = @img_class()
\r
10 @img = new img_class({
\r
13 picture: @element.picture()
\r
17 @attr = {style: Pettanr.to_style(@style())}
\r
18 this.$el.attr(@attr)
\r
19 this.$el.html(@img.render().el)
\r
24 'top': Pettanr.to_s(@element.get('y')) + 'px',
\r
25 'left': Pettanr.to_s(@element.get('x')) + 'px',
\r
26 'z-index': @element.get('z'),
\r
27 'position': 'absolute'
\r
30 element_class: (element) ->
\r
31 Pettanr.Views[element.singular()].Element
\r
34 Pettanr.Views.PanelPicture.Element.Img
\r
36 class Pettanr.Views.PanelPicture.Element.Img extends Backbone.View
\r
39 initialize: (options) ->
\r
40 @element = options.element
\r
41 @picture = options.picture
\r
42 @spot = options.spot
\r
43 @listenTo(this, 'ready', @render)
\r
44 @picture.fetch({cache: true}).done =>
\r
48 this.$el.attr(@attr(@spot))
\r
51 attr: (spot = null, opacity = 20) ->
\r
53 if spot and spot.constructor == @element.constructor and spot.get('id') != @element.get('id')
\r
54 @element.merge_opacity(style, opacity)
\r
56 vPicture: @element.get('id'),
\r
57 src: @element.r_url(@picture),
\r
58 width: Pettanr.to_s(Math.abs(@element.get('width'))) + 'px',
\r
59 height: Pettanr.to_s(Math.abs(@element.get('height'))) + 'px',
\r
60 alt: @element.get('caption'),
\r
61 style: Pettanr.to_style(style)
\r
64 class Pettanr.Views.PanelPicture.Element.Edit extends Pettanr.Views.PanelPicture.Element
\r
66 initialize: (options) ->
\r
68 @listenTo(@root, 'input:width', @restyle)
\r
69 @listenTo(@root, 'input:height', @restyle)
\r
73 this.$el.draggable {
\r
74 stop: (event, ui) =>
\r
75 left = @img.$el.parent().position().left + this.$el.position().left
\r
76 top = @img.$el.parent().position().top + this.$el.position().top
\r
77 @element.set({left: parseInt(left), top: parseInt(top)}, {silent: true})
\r
78 @element.trigger('move')
\r
82 element_class: (element) ->
\r
83 Pettanr.Views[element.singular()].Element.Edit
\r
86 Pettanr.Views.PanelPicture.Element.Img.Edit
\r
88 class Pettanr.Views.PanelPicture.Element.Img.Edit extends Pettanr.Views.PanelPicture.Element.Img
\r
90 initialize: (options) ->
\r
95 this.$el.resizable {
\r
96 stop: (event, ui) =>
\r
98 panel_picture_div = resize_div.parent()
\r
99 trace = editor.element_tag_id(panel_picture_div)
\r
101 resize_div.css('top', '0px')
\r
102 resize_div.css('left', '0px')
\r
103 if ui.originalPosition.top != ui.position.top
\r
104 top = panel_picture_div.position().top + ui.position.top
\r
105 #@element.set({y: Math.floor(top)}, {silent: true})
\r
106 panel_picture_div.css('top', top.toString() + 'px')
\r
107 if ui.originalPosition.left != ui.position.left
\r
108 left = panel_picture_div.position().left + ui.position.left
\r
109 #@element.set({y: Math.floor(leftp)}, {silent: true})
\r
110 panel_picture_div.css('left', left.toString() + 'px')
\r
111 width = if @element.get('width') < 0
\r
115 height = if @element.get('height') < 0
\r
120 left: parseInt(left),
\r
121 top: parseInt(top),
\r
125 @element.trigger('move')
\r
126 resize: (event, ui) =>
\r
128 panel_picture_div = resize_div.parent()
\r
129 trace = editor.element_tag_id(panel_picture_div)
\r