Improve functionality
This commit is contained in:
parent
8b3ed9c355
commit
e487b0995c
1 changed files with 21 additions and 18 deletions
|
@ -1,4 +1,6 @@
|
||||||
class @LabelManager
|
class @LabelManager
|
||||||
|
errorMessage: 'Unable to update label prioritization at this time'
|
||||||
|
|
||||||
constructor: (opts = {}) ->
|
constructor: (opts = {}) ->
|
||||||
# Defaults
|
# Defaults
|
||||||
{
|
{
|
||||||
|
@ -27,7 +29,7 @@ class @LabelManager
|
||||||
action = if $btn.parents('.js-prioritized-labels').length then 'remove' else 'add'
|
action = if $btn.parents('.js-prioritized-labels').length then 'remove' else 'add'
|
||||||
_this.toggleLabelPriority($label, action)
|
_this.toggleLabelPriority($label, action)
|
||||||
|
|
||||||
toggleLabelPriority: ($label, action, persistState = false) ->
|
toggleLabelPriority: ($label, action, persistState = true) ->
|
||||||
_this = @
|
_this = @
|
||||||
url = $label.find('.js-toggle-priority').data 'url'
|
url = $label.find('.js-toggle-priority').data 'url'
|
||||||
|
|
||||||
|
@ -48,31 +50,32 @@ class @LabelManager
|
||||||
$label.detach().appendTo($target)
|
$label.detach().appendTo($target)
|
||||||
|
|
||||||
# Return if we are not persisting state
|
# Return if we are not persisting state
|
||||||
return if persistState
|
return unless persistState
|
||||||
|
|
||||||
if action is 'remove'
|
if action is 'remove'
|
||||||
xhr = $.ajax url: url, type: 'DELETE'
|
xhr = $.ajax url: url, type: 'DELETE'
|
||||||
|
|
||||||
# If request fails, put label back to Other labels group
|
|
||||||
xhr.fail ->
|
|
||||||
_this.toggleLabelPriority($label, 'remove', true)
|
|
||||||
|
|
||||||
# Show a message
|
|
||||||
new Flash('Unable to update label prioritization at this time' , 'alert')
|
|
||||||
else
|
else
|
||||||
@savePrioritySort()
|
xhr = @savePrioritySort($label, action)
|
||||||
|
|
||||||
|
xhr.fail @rollbackLabelPosition.bind(@, $label, action)
|
||||||
|
|
||||||
onPrioritySortUpdate: ->
|
onPrioritySortUpdate: ->
|
||||||
@savePrioritySort()
|
xhr = @savePrioritySort()
|
||||||
|
|
||||||
savePrioritySort: ->
|
|
||||||
xhr = $.post
|
|
||||||
url: @prioritizedLabels.data('url')
|
|
||||||
data:
|
|
||||||
label_ids: @getSortedLabelsIds()
|
|
||||||
|
|
||||||
xhr.fail ->
|
xhr.fail ->
|
||||||
new Flash('Unable to update label prioritization at this time' , 'alert')
|
new Flash(@errorMessage, 'alert')
|
||||||
|
|
||||||
|
savePrioritySort: () ->
|
||||||
|
$.post
|
||||||
|
url: @prioritizedLabels.data('url')
|
||||||
|
data:
|
||||||
|
label_ids: @getSortedLabelsIds()
|
||||||
|
|
||||||
|
rollbackLabelPosition: ($label, originalAction)->
|
||||||
|
action = if originalAction is 'remove' then 'add' else 'remove'
|
||||||
|
@toggleLabelPriority($label, action, false)
|
||||||
|
|
||||||
|
new Flash(@errorMessage, 'alert')
|
||||||
|
|
||||||
getSortedLabelsIds: ->
|
getSortedLabelsIds: ->
|
||||||
sortedIds = []
|
sortedIds = []
|
||||||
|
|
Loading…
Reference in a new issue