Fix inventory remove button to appear again $92

This commit is contained in:
Andrew Miner
2015-02-12 15:13:05 -08:00
parent 151c18126a
commit 7a33181d1b
3 changed files with 50 additions and 40 deletions
+9 -9
View File
@@ -48,17 +48,17 @@ All rights reserved.
td.action {
text-align: right;
}
button.remove {
opacity: 0;
position: relative; width: 1.8em; height: 1.8em;
background: url('/images/remove.png') no-repeat center;
border: 0;
outline: none;
button.remove {
opacity: 0;
position: relative; width: 1.8em; height: 1.8em;
background: url('/images/remove.png') no-repeat center;
border: 0;
outline: none;
&:hover {
background: url('/images/remove-hover.png') no-repeat center;
}
&:hover {
background: url('/images/remove-hover.png') no-repeat center;
}
}
@@ -72,7 +72,7 @@ module.exports = class InventoryController extends BaseController
onNameFieldChanged: ->
item = @modPack.findItemByName @$nameField.val()
@_updateButtonState()
@_refreshButtonState()
onNameFieldFocused: ->
@$nameField.val ''
@@ -99,7 +99,7 @@ module.exports = class InventoryController extends BaseController
@$quantityField.removeClass 'error', Duration.normal
@$quantityField.removeClass 'error-new', Duration.normal
@_updateButtonState()
@_refreshButtonState()
onQuantityFieldFocused: ->
@$quantityField.val ''
@@ -129,24 +129,9 @@ module.exports = class InventoryController extends BaseController
if _.isEmpty(@$quantityField.val()) then @$quantityField.val '1'
@$table.find('tr:not(:last-child)').remove()
$lastRow = @$table.find 'tr:last-child'
@_stackControllers = []
@model.each (stack)=>
options =
editable: @editable
imageLoader: @imageLoader
model: stack
modPack: @modPack
onRemove: if not @editable then null else (stack)=> @_removeStack(stack)
controller = new StackController options
controller.render()
controller.$el.insertBefore $lastRow
@_stackControllers.push controller
@_updateNameAutocomplete()
@_updateButtonState()
@_refreshStacks()
@_refreshNameAutocomplete()
@_refreshButtonState()
super
@@ -166,10 +151,15 @@ module.exports = class InventoryController extends BaseController
# Private Methods ##############################################################################
_removeStack: (stack)->
@model.remove stack.slug, stack.quantity
_refreshButtonState: ->
if @model.isEmpty then @$clearButton.attr('disabled', 'disabled') else @$clearButton.removeAttr('disabled')
_updateNameAutocomplete: ->
itemValid = @modPack.findItemByName(@$nameField.val())?
quantityValid = @$quantityField.val().match(InventoryController.ONLY_DIGITS)
disable = not (itemValid and quantityValid)
if disable then @$addButton.attr('disabled', 'disabled') else @$addButton.removeAttr('disabled')
_refreshNameAutocomplete: ->
onChanged = => @onNameFieldChanged()
onSelected = => @onItemSelected()
@@ -181,10 +171,30 @@ module.exports = class InventoryController extends BaseController
close: onChanged
select: onSelected
_updateButtonState: ->
if @model.isEmpty then @$clearButton.attr('disabled', 'disabled') else @$clearButton.removeAttr('disabled')
_refreshStacks: ->
@_stackControllers ?= []
index = 0
itemValid = @modPack.findItemByName(@$nameField.val())?
quantityValid = @$quantityField.val().match(InventoryController.ONLY_DIGITS)
disable = not (itemValid and quantityValid)
if disable then @$addButton.attr('disabled', 'disabled') else @$addButton.removeAttr('disabled')
$lastRow = @$table.find 'tr:last-child'
@model.each (stack)=>
controller = @_stackControllers[index]
if not controller?
controller = new StackController
editable: @editable
imageLoader: @imageLoader
model: stack
modPack: @modPack
onRemove: if not @editable then null else (stack)=> @_removeStack(stack)
controller.render()
controller.$el.insertBefore $lastRow
@_stackControllers.push controller
else
controller.model = stack
index += 1
while @_stackControllers.length > index
controller = @_stackControllers.pop()
controller.$el.fadeOut duration:Duration.fast, complete:-> @remove()
_removeStack: (stack)->
@model.remove stack.slug, stack.quantity
@@ -49,9 +49,9 @@ module.exports = class StackController extends BaseController
@$nameLink.html display.itemName
@$nameLink.attr 'href', display.itemUrl
@$quantityField.html @model.quantity
@$removeButton.css display:(if @editable then 'inherit' else 'none')
# @$removeButton.css opacity:(if @editable then 1 else 0)
@$action.css display:(if @ediable then 'table-cell' else 'none')
@$action.css display:(if @editable then 'table-cell' else 'none')
super