Fix more animation bugs

This commit is contained in:
Andrew Miner
2015-03-22 09:22:41 -07:00
parent 40efc8ccc9
commit 7c99f77639
7 changed files with 34 additions and 16 deletions
@@ -41,9 +41,11 @@ module.exports = class BaseController extends Backbone.View
$el.addClass 'hideable' unless $el.hasClass 'hideable'
logger.verbose => "#{this} is hiding #{$el.selector}"
if $el.hasClass('hiding') or $el.hasClass('hidden')
_.defer => callback this
else
$el.off Event.transitionEnd
$el.one Event.transitionEnd, =>
$el.addClass 'hidden'
$el.removeClass 'hiding'
@@ -55,7 +57,8 @@ module.exports = class BaseController extends Backbone.View
logger.verbose => "#{this} refreshing"
remove: ->
@hide -> @$el.remove()
logger.verbose => "#{this} is removing its element from the DOM"
@hide => @$el.remove()
routeLinkClick: (event)->
event.preventDefault()
@@ -69,9 +72,10 @@ module.exports = class BaseController extends Backbone.View
$el.addClass 'hideable' unless $el.hasClass 'hideable'
logger.verbose => "#{this} is showing #{$el.selector}"
if $el.hasClass('hiding') or $el.hasClass('hidden')
$el.one Event.transitionEnd, =>
callback this
$el.off Event.transitionEnd
$el.one Event.transitionEnd, => callback this
$el.removeClass 'hiding'
$el.removeClass 'hidden'
else
@@ -53,7 +53,6 @@ module.exports = class BrowsePageController extends PageController
controllerIndex += 1
while @_controllers.length > controllerIndex
controller = @_controllers.pop()
controller.hide -> controller.$el.remove()
@_controllers.pop().remove()
super
@@ -103,9 +103,16 @@ module.exports = class InventoryController extends BaseController
super
refresh: ->
@$editPanel.css display:(if @editable then 'table-row' else 'none')
@$toolbar.css display:(if @editable then 'block' else 'none')
@$scrollbox.css bottom:(if @editable then @$toolbar.height() else '0')
if @editable
@show @$editPanel
@show @$toolbar, =>
@$scrollbox.css bottom:@$toolbar.height()
else
if not @$editPanel? then throw new Error "no edit panel"
if not @$toolbar? then throw new Error "no toolbar"
@hide @$editPanel
@hide @$toolbar
@$scrollbox.css bottom:0
@$icon.attr 'src', @icon
@$title.html @title
@@ -35,7 +35,7 @@ module.exports = class InventoryTableController extends BaseController
@_stackControllers = []
@listenTo @modPack, 'change', => @refresh()
@listenTo @modPack, 'change', => @tryRefresh()
# Event Methods ################################################################################
@@ -136,8 +136,7 @@ module.exports = class ModPageController extends PageController
groupIndex++
while @_groupControllers.length > groupIndex + 1
controller = @_groupControllers.pop()
controller.hide -> controller.$el.remove()
@_groupControllers.pop().remove()
_refreshLink: ($link, url)->
if url?
@@ -165,8 +164,7 @@ module.exports = class ModPageController extends PageController
index += 1
while @_tutorialControllers.length > index
controller = @_tutorialControllers.pop()
controller.hide -> controller.$el.remove()
@_tutorialControllers.pop().remove()
@show @$tutorialsSection
else
+11 -1
View File
@@ -102,7 +102,7 @@ module.exports = class ModPack extends BaseModel
mod.modPack = this
@_mods.push mod
@listenTo mod, Event.change, => @trigger Event.change, this
@listenTo mod, Event.change, (modVersion)=> @_onModVersionLoaded modVersion
@trigger Event.add + ':mod', mod, this
@_mods.sort (a, b)-> a.compareTo b
@@ -127,3 +127,13 @@ module.exports = class ModPack extends BaseModel
toString: ->
return "ModPack (#{@cid}) {modVersions:«#{@_mods.length} items»}"
# Private Methods ##############################################################################
_onModVersionLoaded: (modVersion)->
stillLoading = false
@eachMod (mod)->
mod.eachModVersion (modVersion)->
stillLoading = stillLoading or modVersion.isLoading
@trigger Event.change, this if not stillLoading
+2 -2
View File
@@ -12,10 +12,10 @@
.panel
.scrollbox
table
tr.edit
tr.edit.hideable.hidden
td.quantity
td.icon
td.name(width="*"): input(name="name")
td.action: button(name="add") add
.toolbar
.toolbar.hideable.hidden
button(name="clear") clear