mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-24 08:08:15 -05:00
Allowing reordering of levels in Campaign. Reversing CampaignEditor levels before save so that when the save magically reverses them again, the order is preserved.
This commit is contained in:
parent
52bc660391
commit
32a95afbd0
2 changed files with 18 additions and 5 deletions
|
@ -266,6 +266,7 @@ module.exports = class CampaignEditorView extends RootView
|
|||
class LevelsNode extends TreemaObjectNode
|
||||
valueClass: 'treema-levels'
|
||||
@levels: {}
|
||||
ordered: true
|
||||
|
||||
buildValueForDisplay: (valEl, data) ->
|
||||
@buildValueForDisplaySimply valEl, ''+_.size(data)
|
||||
|
|
|
@ -6,13 +6,13 @@ module.exports = class SaveCampaignModal extends ModalView
|
|||
id: 'save-campaign-modal'
|
||||
template: template
|
||||
plain: true
|
||||
|
||||
|
||||
events:
|
||||
'click #save-button': 'onClickSaveButton'
|
||||
|
||||
constructor: (options, @modelsToSave) ->
|
||||
super(options)
|
||||
|
||||
|
||||
getRenderData: ->
|
||||
c = super()
|
||||
c.modelsToSave = @modelsToSave
|
||||
|
@ -26,9 +26,21 @@ module.exports = class SaveCampaignModal extends ModalView
|
|||
@insertSubView(deltaView, $el)
|
||||
)
|
||||
super()
|
||||
|
||||
|
||||
onClickSaveButton: ->
|
||||
@showLoading()
|
||||
@reverseLevelsBeforeSave()
|
||||
modelsBeingSaved = (model.patch() for model in @modelsToSave.models)
|
||||
modelsBeingSaved = modelsBeingSaved
|
||||
$.when(_.compact(modelsBeingSaved)...).done(-> document.location.reload())
|
||||
$.when(_.compact(modelsBeingSaved)...).done(-> document.location.reload())
|
||||
|
||||
reverseLevelsBeforeSave: ->
|
||||
# For some unfathomable reason, not in our code anywhere, the levels get reversed during the save somehow.
|
||||
# Since we want to maintain their orders, we reverse them first, so that when they're reversed again, it's right.
|
||||
# Yaaaay!
|
||||
return unless campaign = _.find @modelsToSave.models, (m) -> m.constructor.className is 'Campaign'
|
||||
levelsReversed = {}
|
||||
levels = campaign.get 'levels'
|
||||
levelIDs = _.keys(levels).reverse()
|
||||
for levelID in levelIDs
|
||||
levelsReversed[levelID] = levels[levelID]
|
||||
campaign.set 'levels', levelsReversed
|
||||
|
|
Loading…
Reference in a new issue