Drag and drop fixes
This commit is contained in:
+2
-2
@@ -19,8 +19,8 @@ App.SectionAreaComponent = Ember.Component.extend DragNDrop.Draggable,
|
|||||||
"line-height": @get('pixelHeight')
|
"line-height": @get('pixelHeight')
|
||||||
).toString()
|
).toString()
|
||||||
content: Ember.computed.alias 'section_area'
|
content: Ember.computed.alias 'section_area'
|
||||||
draggable: (-> if @get('targetObject.editmode') then 'true' else 'false' ).property('targetObject.editmode')
|
draggable: (-> if @get('targetObject.editmode') then true else false ).property('targetObject.editmode')
|
||||||
dpm: Ember.computed.alias 'parentView.dpm'
|
dpm: Ember.computed.alias 'tablesContext.dpm'
|
||||||
positionChange: (position)->
|
positionChange: (position)->
|
||||||
dpm = @get('dpm')
|
dpm = @get('dpm')
|
||||||
return if !dpm or parseFloat(dpm) is 0
|
return if !dpm or parseFloat(dpm) is 0
|
||||||
+3
@@ -1,5 +1,6 @@
|
|||||||
Globals = Ember.Object.extend
|
Globals = Ember.Object.extend
|
||||||
current_employee: null
|
current_employee: null
|
||||||
|
isDragging: false
|
||||||
App.initializer
|
App.initializer
|
||||||
name: 'injectCurrent'
|
name: 'injectCurrent'
|
||||||
initialize: (container, app)->
|
initialize: (container, app)->
|
||||||
@@ -7,4 +8,6 @@ App.initializer
|
|||||||
app.register 'global:variables', Globals, singleton: true
|
app.register 'global:variables', Globals, singleton: true
|
||||||
|
|
||||||
app.inject 'controller', 'globals', 'global:variables'
|
app.inject 'controller', 'globals', 'global:variables'
|
||||||
|
app.inject 'component', 'globals', 'global:variables'
|
||||||
|
app.inject 'view', 'globals', 'global:variables'
|
||||||
app.inject 'route', 'globals', 'global:variables'
|
app.inject 'route', 'globals', 'global:variables'
|
||||||
@@ -11,8 +11,7 @@ DragNDrop.Draggable = Ember.Mixin.create
|
|||||||
draggable: 'true'
|
draggable: 'true'
|
||||||
dragStart: (ev)->
|
dragStart: (ev)->
|
||||||
@set 'content.isDragging', true
|
@set 'content.isDragging', true
|
||||||
@set 'targetObject.isDragging', true
|
@set 'globals.isDragging', true
|
||||||
@set 'targetObject.controllers.application.isDragging', true
|
|
||||||
localStorage.setItem('draggingView', @get('elementId'))
|
localStorage.setItem('draggingView', @get('elementId'))
|
||||||
dataTransfer = ev.originalEvent.dataTransfer
|
dataTransfer = ev.originalEvent.dataTransfer
|
||||||
#dataTransfer.setData 'Text', @get('elementId')
|
#dataTransfer.setData 'Text', @get('elementId')
|
||||||
@@ -25,8 +24,7 @@ DragNDrop.Draggable = Ember.Mixin.create
|
|||||||
pageY: ev.originalEvent.pageY
|
pageY: ev.originalEvent.pageY
|
||||||
dragEnd: (e)->
|
dragEnd: (e)->
|
||||||
@set 'content.isDragging', false
|
@set 'content.isDragging', false
|
||||||
@set 'targetObject.isDragging', false
|
@set 'globals.isDragging', false
|
||||||
@set 'targetObject.controllers.application.isDragging', false
|
|
||||||
localStorage.removeItem 'draggingView' if localStorage.getItem 'draggingView'
|
localStorage.removeItem 'draggingView' if localStorage.getItem 'draggingView'
|
||||||
touchStart: (ev)->
|
touchStart: (ev)->
|
||||||
ev.preventDefault()
|
ev.preventDefault()
|
||||||
@@ -95,8 +93,10 @@ DragNDrop.Droppable = Ember.Mixin.create
|
|||||||
drop: (ev)->
|
drop: (ev)->
|
||||||
# e.preventDefault()
|
# e.preventDefault()
|
||||||
data = JSON.parse(ev.originalEvent.dataTransfer.getData('application/json'))
|
data = JSON.parse(ev.originalEvent.dataTransfer.getData('application/json'))
|
||||||
view = Ember.View.views[data.id]
|
#debugger
|
||||||
return unless view
|
viewRegistry = App.__container__.lookup("-view-registry:main") || Ember.View.views
|
||||||
|
#view = Ember.View.views[data.id]
|
||||||
|
return unless viewRegistry and view = viewRegistry[data.id]
|
||||||
view.dragEnd(ev) if view.dragEnd # not triggered on its own on drop
|
view.dragEnd(ev) if view.dragEnd # not triggered on its own on drop
|
||||||
|
|
||||||
# Calculate the element's center drop position relative to container
|
# Calculate the element's center drop position relative to container
|
||||||
|
|||||||
@@ -8,10 +8,10 @@
|
|||||||
a.go-to-orders-list{ action "showDashboardOrders" model }: span
|
a.go-to-orders-list{ action "showDashboardOrders" model }: span
|
||||||
can manage sections
|
can manage sections
|
||||||
if editmode
|
if editmode
|
||||||
= input type="text" value=title class="section-edit-title-field"
|
= input type="text" value=model.title class="section-edit-title-field"
|
||||||
= number-field numericValue=width class="dimension section-edit-width-field"
|
= number-field numericValue=model.width class="dimension section-edit-width-field"
|
||||||
span.fa.fa-lg.fa-times
|
span.fa.fa-lg.fa-times
|
||||||
= number-field numericValue=height class="dimension section-edit-height-field"
|
= number-field numericValue=model.height class="dimension section-edit-height-field"
|
||||||
a.section-rollback-button{ action "rollbackEditable" }: span
|
a.section-rollback-button{ action "rollbackEditable" }: span
|
||||||
a.section-normal-mode-button{ action "finishEditable" }: span
|
a.section-normal-mode-button{ action "finishEditable" }: span
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
each section_element in view.section_elements
|
each section_element in model.section_elements
|
||||||
view "section-element" content=section_element
|
view "section-element" content=section_element tablesContext=view
|
||||||
each section_area in view.section_areas
|
each section_area in model.section_areas
|
||||||
= section-area section_area=section_area
|
= section-area section_area=section_area tablesContext=view
|
||||||
each table in view.tables
|
each table in model.tables
|
||||||
= view "section-table" content=table
|
= view "section-table" content=table tablesContext=view
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ App.SectionElementView = Ember.View.extend DragNDrop.Draggable,
|
|||||||
uniqueClass: (->
|
uniqueClass: (->
|
||||||
"section-element-#{@get('content.id')}"
|
"section-element-#{@get('content.id')}"
|
||||||
).property('content.id')
|
).property('content.id')
|
||||||
draggable: (-> if @get('controller.editmode') then 'true' else 'false' ).property('controller.editmode')
|
draggable: Ember.computed.alias 'context.editmode'
|
||||||
offsetX: (->
|
offsetX: (->
|
||||||
(@get('dpm') || 0) * (@get('content.position_x') || 0)
|
(@get('dpm') || 0) * (@get('content.position_x') || 0)
|
||||||
).property('dpm', 'content.position_x')
|
).property('dpm', 'content.position_x')
|
||||||
@@ -25,7 +25,7 @@ App.SectionElementView = Ember.View.extend DragNDrop.Draggable,
|
|||||||
box_size: (-> (@get('dpm') || 0 ) * @get('content.box_size')).property('dpm', 'content.box_size')
|
box_size: (-> (@get('dpm') || 0 ) * @get('content.box_size')).property('dpm', 'content.box_size')
|
||||||
style: Ember.computed 'offsetX', 'offsetY', 'box_size', 'content.rotation', ->
|
style: Ember.computed 'offsetX', 'offsetY', 'box_size', 'content.rotation', ->
|
||||||
"position:absolute;width:#{@get('box_size')}px;height:#{@get('box_size')}px;left:#{@get('offsetX')}px;top:#{@get('offsetY')}px"
|
"position:absolute;width:#{@get('box_size')}px;height:#{@get('box_size')}px;left:#{@get('offsetX')}px;top:#{@get('offsetY')}px"
|
||||||
dpm: Ember.computed.alias 'parentView.dpm'
|
dpm: Ember.computed.alias 'tablesContext.dpm'
|
||||||
positionChange: (position)->
|
positionChange: (position)->
|
||||||
dpm = @get('dpm')
|
dpm = @get('dpm')
|
||||||
return if !dpm or parseFloat(dpm) is 0
|
return if !dpm or parseFloat(dpm) is 0
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ App.SectionTableView = Ember.View.extend DragNDrop.Draggable,
|
|||||||
"section-table-#{@get('content.id')}"
|
"section-table-#{@get('content.id')}"
|
||||||
).property('content.id')
|
).property('content.id')
|
||||||
offsetX: (->
|
offsetX: (->
|
||||||
|
debugger unless @get('dpm')
|
||||||
(@get('dpm') || 0) * (@get('content.position_x') || 0)
|
(@get('dpm') || 0) * (@get('content.position_x') || 0)
|
||||||
).property('dpm', 'content.position_x')
|
).property('dpm', 'content.position_x')
|
||||||
offsetY: (->
|
offsetY: (->
|
||||||
@@ -28,7 +29,7 @@ App.SectionTableView = Ember.View.extend DragNDrop.Draggable,
|
|||||||
style: Ember.computed 'offsetX', 'offsetY', 'myWidth', 'myHeight', ->
|
style: Ember.computed 'offsetX', 'offsetY', 'myWidth', 'myHeight', ->
|
||||||
"position:absolute;width:#{@get('myWidth')}px;height:#{@get('myHeight')}px;left:#{@get('offsetX')}px;top:#{@get('offsetY')}px"
|
"position:absolute;width:#{@get('myWidth')}px;height:#{@get('myHeight')}px;left:#{@get('offsetX')}px;top:#{@get('offsetY')}px"
|
||||||
|
|
||||||
draggable: (-> if @get('controller.editmode') then 'true' else 'false' ).property('controller.editmode')
|
draggable: Ember.computed.alias 'context.editmode'
|
||||||
targetObject: Ember.computed.alias 'controller'
|
targetObject: Ember.computed.alias 'controller'
|
||||||
placeInSection: ->
|
placeInSection: ->
|
||||||
@$el.css 'left', @offsetX()
|
@$el.css 'left', @offsetX()
|
||||||
@@ -37,11 +38,11 @@ App.SectionTableView = Ember.View.extend DragNDrop.Draggable,
|
|||||||
dpm = @get('dpm')
|
dpm = @get('dpm')
|
||||||
return if !dpm or parseFloat(dpm) is 0
|
return if !dpm or parseFloat(dpm) is 0
|
||||||
|
|
||||||
@content.setProperties
|
@get('content').setProperties
|
||||||
position_x: position.left / dpm
|
position_x: position.left / dpm
|
||||||
position_y: position.top / dpm
|
position_y: position.top / dpm
|
||||||
@content.save()
|
@get('content').save()
|
||||||
dpm: Ember.computed.alias 'parentView.dpm'
|
dpm: Ember.computed.alias 'tablesContext.dpm'
|
||||||
didInsertElement: ->
|
didInsertElement: ->
|
||||||
@$el = @$()
|
@$el = @$()
|
||||||
@$('.table-actions').hide()
|
@$('.table-actions').hide()
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ App.SectionTablesView = Ember.View.extend DragNDrop.Droppable,
|
|||||||
templateName: 'section/tables'
|
templateName: 'section/tables'
|
||||||
dpm: 1
|
dpm: 1
|
||||||
dropped: (view, position)->
|
dropped: (view, position)->
|
||||||
view.positionChange(position, @content)
|
view.positionChange(position, @get('content'))
|
||||||
handleDimensionChange: ->
|
handleDimensionChange: ->
|
||||||
return unless @get('element')
|
return unless @get('element')
|
||||||
@$el = $(@get('element'))
|
@$el = $(@get('element'))
|
||||||
@@ -23,7 +23,6 @@ App.SectionTablesView = Ember.View.extend DragNDrop.Droppable,
|
|||||||
observeSectionDimensions: (->
|
observeSectionDimensions: (->
|
||||||
@handleDimensionChange()
|
@handleDimensionChange()
|
||||||
).observes('controller.model.height', 'controller.model.width')
|
).observes('controller.model.height', 'controller.model.width')
|
||||||
tables: (->@get('content')).property('content.@each')
|
|
||||||
didInsertElement: ->
|
didInsertElement: ->
|
||||||
# the first observable event is triggered without the container having its dimensions
|
# the first observable event is triggered without the container having its dimensions
|
||||||
@get('controller.model').notifyPropertyChange('width') #.notifyPropertyChange('height')
|
@get('controller.model').notifyPropertyChange('width') #.notifyPropertyChange('height')
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
App.SectionTabHeaderView = Ember.View.extend DragNDrop.Droppable,
|
App.SectionTabHeaderView = Ember.View.extend DragNDrop.Droppable,
|
||||||
templateName: 'section_tab_header'
|
templateName: 'section_tab_header'
|
||||||
classNames: ['section-tab-header']
|
classNames: ['section-tab-header']
|
||||||
classNameBindings: ['section_header_class', 'controller.controllers.application.isDragging:table-dragging', 'section_active']
|
classNameBindings: ['section_header_class', 'controller.globals.isDragging:table-dragging', 'section_active']
|
||||||
click: (e)->
|
click: (e)->
|
||||||
@set 'controller.controllers.application.active_section', @get('context')
|
@set 'controller.controllers.application.active_section', @get('context')
|
||||||
@get('controller').transitionToRoute 'section', @get('context.id')
|
@get('controller').transitionToRoute 'section', @get('context.id')
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ Release
|
|||||||
|
|
||||||
Supplier
|
Supplier
|
||||||
--------
|
--------
|
||||||
|
- Allow table drag rollback same as area and element in section edit
|
||||||
|
mode view
|
||||||
- Show menu next to table in section view at the left side for tables at
|
- Show menu next to table in section view at the left side for tables at
|
||||||
the right side of the section
|
the right side of the section
|
||||||
- Proper emails when an employee is created or added to a supplier
|
- Proper emails when an employee is created or added to a supplier
|
||||||
|
|||||||
Reference in New Issue
Block a user