From a3be372e175909255fe45a660e14e70de3a21a41 Mon Sep 17 00:00:00 2001 From: Andrew Miner Date: Thu, 12 Feb 2015 16:53:29 -0800 Subject: [PATCH] Don't show qualifed slugs in URL unnecessarily #94 --- .../controllers/crafting_page_controller.coffee | 4 +++- src/scripts/controllers/inventory_controller.coffee | 9 ++++----- src/scripts/models/inventory_parser.coffee | 10 +++++++--- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/scripts/controllers/crafting_page_controller.coffee b/src/scripts/controllers/crafting_page_controller.coffee index 0e151f8b5..cf62aa1fd 100644 --- a/src/scripts/controllers/crafting_page_controller.coffee +++ b/src/scripts/controllers/crafting_page_controller.coffee @@ -23,6 +23,8 @@ Storage = require '../models/storage' module.exports = class CraftingPageController extends BaseController constructor: (options={})-> + if not options.modPack? then throw new Error 'options.modPack is required' + options.model ?= new CraftingPage modPack:options.modPack options.imageLoader ?= new ImageLoader defaultUrl:'/images/unknown.png' options.storage ?= new Storage storage:window.localStorage @@ -30,7 +32,7 @@ module.exports = class CraftingPageController extends BaseController super options @_imageLoader = options.imageLoader - @_parser = new InventoryParser modPack:options.modPack + @_parser = new InventoryParser options.modPack @_storage = options.storage # Event Methods ################################################################################ diff --git a/src/scripts/controllers/inventory_controller.coffee b/src/scripts/controllers/inventory_controller.coffee index 5ba3de30d..df8ffe18a 100644 --- a/src/scripts/controllers/inventory_controller.coffee +++ b/src/scripts/controllers/inventory_controller.coffee @@ -40,10 +40,10 @@ module.exports = class InventoryController extends BaseController # Event Methods ################################################################################ onAddButtonClicked: -> - name = @$nameField.val() - return unless @modPack.isValidName name + item = @modPack.findItemByName @$nameField.val() + return unless item? - @model.add _.slugify(name), parseInt(@$quantityField.val()) + @model.add item.qualifiedSlug, parseInt(@$quantityField.val()) @$nameField.val '' @$quantityField.val '1' @@ -71,12 +71,11 @@ module.exports = class InventoryController extends BaseController @onNameFieldChanged() onNameFieldChanged: -> - item = @modPack.findItemByName @$nameField.val() @_refreshButtonState() onNameFieldFocused: -> @$nameField.val '' - @$nameField.autocomplete('search') + @$nameField.autocomplete 'search' onNameFieldKeyUp: (event)-> if event.which is Key.Return diff --git a/src/scripts/models/inventory_parser.coffee b/src/scripts/models/inventory_parser.coffee index 3521f722d..2df7c7453 100644 --- a/src/scripts/models/inventory_parser.coffee +++ b/src/scripts/models/inventory_parser.coffee @@ -49,10 +49,14 @@ module.exports = class InventoryParser if not @modPack? then throw new Error 'this.modPack is needed to unparse' parts = [] - inventory.each (stack)-> + inventory.each (stack)=> + [modSlug, itemSlug] = _.decomposeSlug stack.slug + item = @modPack.findItem itemSlug + slug = if item.qualifiedSlug is stack.slug then item.slug else item.qualifiedSlug + if stack.quantity is 1 - parts.push stack.slug + parts.push slug else - parts.push "#{stack.quantity}#{InventoryParser.ITEM_DELIMITER}#{stack.slug}" + parts.push "#{stack.quantity}#{InventoryParser.ITEM_DELIMITER}#{slug}" return parts.join InventoryParser.STACK_DELIMITER