1 class Pettanr.Views.PanelPicture.Element extends Pettanr.View
\r
3 className: 'pettanr-panel-picture-wrapper'
\r
5 initialize: (options) ->
\r
6 @element = options.element
\r
11 @element.get_parent('picture', this, {
\r
12 success: (@picture) =>
\r
13 img_class = @img_class()
\r
14 img = new img_class({
\r
20 @listenTo(img, 'http_get', @http_get)
\r
22 this.$el.html(img.render().el)
\r
27 init_picture: (img) ->
\r
31 attr = {style: Pettanr.to_style(@style())}
\r
36 'top': Pettanr.to_s(@element.get('y')) + 'px',
\r
37 'left': Pettanr.to_s(@element.get('x')) + 'px',
\r
38 'z-index': @element.get('z'),
\r
39 'position': 'absolute'
\r
42 element_class: (element) ->
\r
43 Pettanr.Views[element.singular()].Element
\r
46 if @element.get('link')
\r
47 if @element.get('link').match(/\:\/\//)
\r
48 Pettanr.Views.PanelPicture.Element.LinkedImg
\r
50 Pettanr.Views.PanelPicture.Element.ButtonImg
\r
52 Pettanr.Views.PanelPicture.Element.Img
\r
55 @trigger('http_get', url)
\r
57 class Pettanr.Views.PanelPicture.Element.LinkedImg extends Tag.A_
\r
59 initialize: (options) ->
\r
60 img = new Pettanr.Views.PanelPicture.Element.Img(options)
\r
61 super({content: img.render().el, attr: {href: options.element.get('link')}})
\r
63 class Pettanr.Views.PanelPicture.Element.ButtonImg extends Tag.A
\r
65 initialize: (options) ->
\r
66 img = new Pettanr.Views.PanelPicture.Element.Img(options)
\r
67 @link = options.element.get('link')
\r
68 super({content: img.render().el, attr: {href: '/' + @link}})
\r
72 @trigger('http_get', @link)
\r
75 class Pettanr.Views.PanelPicture.Element.Img extends Pettanr.View
\r
78 initialize: (options) ->
\r
79 @wrapper = options.wrapper
\r
80 @element = options.element
\r
81 @picture = options.picture
\r
82 @spot = options.spot
\r
90 this.$el.attr(@attr(@spot))
\r
92 attr: (spot = null, opacity = 20) ->
\r
94 if spot and spot.constructor == @element.constructor and spot.get('id') != @element.get('id')
\r
95 @element.merge_opacity(style, opacity)
\r
97 vPicture: @element.get('id'),
\r
98 src: @picture.picture_file(@element.flip()).src(),
\r
99 width: Pettanr.to_s(Math.abs(@element.get('width'))) + 'px',
\r
100 height: Pettanr.to_s(Math.abs(@element.get('height'))) + 'px',
\r
101 alt: @element.get('caption'),
\r
102 style: Pettanr.to_style(style)
\r
105 class Pettanr.Views.PanelPicture.Element.Edit extends Pettanr.Views.PanelPicture.Element
\r
107 initialize: (options) ->
\r
110 init_picture: (img) ->
\r
112 @listenTo(@element, 'input:x', @restyle)
\r
113 @listenTo(@element, 'input:y', @restyle)
\r
114 @listenTo(@element, 'sort', @restyle)
\r
115 @listenTo(@element, 'active', @active)
\r
116 @listenTo(@element, 'inactive', @inactive)
\r
118 this.$el.draggable {
\r
119 stop: (event, ui) ->
\r
120 left = img.$el.parent().position().left + wrapper.$el.position().left
\r
121 top = img.$el.parent().position().top + wrapper.$el.position().top
\r
122 elm.set({x: parseInt(left), y: parseInt(top)}, {silent: true})
\r
123 elm.trigger('move')
\r
126 img.$el.resizable {
\r
127 stop: (event, ui) ->
\r
128 resize_div = ui.element
\r
129 panel_picture_div = wrapper.$el
\r
131 resize_div.css('top', '0px')
\r
132 resize_div.css('left', '0px')
\r
133 top = panel_picture_div.position().top
\r
134 if ui.originalPosition.top != ui.position.top
\r
135 top += ui.position.top
\r
136 #@element.set({y: Math.floor(top)}, {silent: true})
\r
137 panel_picture_div.css('top', top.toString() + 'px')
\r
138 left = panel_picture_div.position().left
\r
139 if ui.originalPosition.left != ui.position.left
\r
140 left += ui.position.left
\r
141 #@element.set({y: leftp)}, {silent: true})
\r
142 panel_picture_div.css('left', left.toString() + 'px')
\r
143 width = if elm.get('width') < 0
\r
147 height = if elm.get('height') < 0
\r
152 x: Math.floor(left),
\r
153 y: Math.floor(top),
\r
157 elm.trigger('resize')
\r
164 $('.ui-resizable-handle', this.el).map ->
\r
165 $(@).css('display', 'block')
\r
168 $('.ui-resizable-handle', this.el).map ->
\r
169 $(@).css('display', 'none')
\r
171 element_class: (element) ->
\r
172 Pettanr.Views[element.singular()].Element.Edit
\r
175 Pettanr.Views.PanelPicture.Element.Img.Edit
\r
177 class Pettanr.Views.PanelPicture.Element.Img.Edit extends Pettanr.Views.PanelPicture.Element.Img
\r
179 initialize: (options) ->
\r
181 @listenTo(@element, 'input:width', @restyle)
\r
182 @listenTo(@element, 'input:height', @restyle)
\r
189 resize_div = this.$el.parent()
\r
190 width = this.$el.css('width')
\r
191 height = this.$el.css('height')
\r
192 resize_div.width(width)
\r
193 resize_div.height(height)
\r