Add auto-complete drop-down for crafting selection
This commit is contained in:
@@ -5,7 +5,8 @@
|
||||
# All rights reserved.
|
||||
###
|
||||
|
||||
BaseController = require './base_controller'
|
||||
BaseController = require './base_controller'
|
||||
{Event} = require '../constants'
|
||||
InventoryParser = require '../models/inventory_parser'
|
||||
|
||||
########################################################################################################################
|
||||
@@ -19,8 +20,14 @@ module.exports = class CraftingTableController extends BaseController
|
||||
|
||||
@_parser = new InventoryParser
|
||||
|
||||
@model.catalog.on Event.change, => @onCatalogChanged()
|
||||
|
||||
# Event Methods ################################################################################
|
||||
|
||||
onCatalogChanged: ->
|
||||
return unless @rendered
|
||||
@_updateNameAutocomplete()
|
||||
|
||||
onHaveFieldChanged: ->
|
||||
return unless @rendered
|
||||
|
||||
@@ -38,6 +45,10 @@ module.exports = class CraftingTableController extends BaseController
|
||||
@model.name = @$nameField.val()
|
||||
@model.craft()
|
||||
|
||||
onNameFieldFocused: ->
|
||||
return unless @rendered
|
||||
@$nameField.autocomplete 'search'
|
||||
|
||||
onQuantityFieldChanged: ->
|
||||
return unless @rendered
|
||||
@model.quantity = parseInt @$quantityField.find(":selected").val()
|
||||
@@ -57,6 +68,8 @@ module.exports = class CraftingTableController extends BaseController
|
||||
|
||||
super
|
||||
|
||||
@_updateNameAutocomplete()
|
||||
|
||||
@onHaveFieldChanged()
|
||||
@onIncludingToolsFieldChanged()
|
||||
@onQuantityFieldChanged()
|
||||
@@ -83,6 +96,20 @@ module.exports = class CraftingTableController extends BaseController
|
||||
|
||||
events:
|
||||
'input textarea[name="have"]': 'onHaveFieldChanged'
|
||||
'focus input[name="name"]': 'onNameFieldFocused'
|
||||
'input input[name="name"]': 'onNameFieldChanged'
|
||||
'input select[name="quantity"]': 'onQuantityFieldChanged'
|
||||
'change input[name="including_tools"]': 'onIncludingToolsFieldChanged'
|
||||
|
||||
# Private Methods ##############################################################################
|
||||
|
||||
_updateNameAutocomplete: ->
|
||||
onChanged = => @onNameFieldChanged()
|
||||
|
||||
@$nameField.autocomplete
|
||||
source: @model.catalog.getRecipeNames()
|
||||
delay: 0
|
||||
minLength: 0
|
||||
change: onChanged
|
||||
close: onChanged
|
||||
select: onChanged
|
||||
|
||||
Reference in New Issue
Block a user