Files
mozo-backend/app/assets/javascripts/supplier/app/components/section/element.js.coffee
T
2015-08-17 15:13:31 +02:00

41 lines
1.8 KiB
CoffeeScript

App.SectionElementComponent = Ember.Component.extend DragNDrop.Draggable,
templateName: 'section/element'
classNames: ['section-element-container']
attributeBindings: ['style']
show_handles: false
classNameBindings: [
'uniqueClass'
]
uniqueClass: (->
"section-element-#{@get('section_element.id')}"
).property('section_element.id')
draggable: Ember.computed.alias 'section.editmode'
offsetX: (->
(@get('dpm') || 0) * (@get('section_element.position_x') || 0)
).property('dpm', 'section_element.position_x')
offsetY: (->
return 0 unless dpm = @get('dpm')
dpm * (@get('section_element.position_y') || 0)
).property('dpm', 'section_element.position_y', 'section_element.rotation')
#myHeight: (-> (@get('dpm') || 0 ) * @get('section_element.height')).property('dpm', 'section_element.height')
#myWidth: (-> (@get('dpm') || 0 ) * @get('section_element.width')).property('dpm', 'section_element.width')
# box size in dots [d]
box_size: (-> (@get('dpm') || 0 ) * @get('section_element.box_size')).property('dpm', 'section_element.box_size')
style: Ember.computed 'offsetX', 'offsetY', 'box_size', 'section_element.rotation', ->
"position:absolute;width:#{@get('box_size')}px;height:#{@get('box_size')}px;left:#{@get('offsetX')}px;top:#{@get('offsetY')}px"
positionChange: (position)->
dpm = @get('dpm')
return if !dpm or parseFloat(dpm) is 0
@get('section_element').setProperties
position_x: position.left / dpm
position_y: position.top / dpm
click: -> @toggleProperty('show_handles') if @get('section.editmode')
showHandles: Ember.computed.and 'show_handles', 'section.editmode'
actions:
rotateLeft: ->
@get('section_element').invoke "rotateLeft"
rotateRight: ->
@get('section_element').invoke "rotateRight"
removeSectionElement: -> @get('section_element').destroyRecord()