Fix more animation bugs
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user