Don't show qualifed slugs in URL unnecessarily #94

This commit is contained in:
Andrew Miner
2015-02-12 16:53:29 -08:00
parent 0be1df9eb5
commit a3be372e17
3 changed files with 14 additions and 9 deletions
@@ -23,6 +23,8 @@ Storage = require '../models/storage'
module.exports = class CraftingPageController extends BaseController module.exports = class CraftingPageController extends BaseController
constructor: (options={})-> constructor: (options={})->
if not options.modPack? then throw new Error 'options.modPack is required'
options.model ?= new CraftingPage modPack:options.modPack options.model ?= new CraftingPage modPack:options.modPack
options.imageLoader ?= new ImageLoader defaultUrl:'/images/unknown.png' options.imageLoader ?= new ImageLoader defaultUrl:'/images/unknown.png'
options.storage ?= new Storage storage:window.localStorage options.storage ?= new Storage storage:window.localStorage
@@ -30,7 +32,7 @@ module.exports = class CraftingPageController extends BaseController
super options super options
@_imageLoader = options.imageLoader @_imageLoader = options.imageLoader
@_parser = new InventoryParser modPack:options.modPack @_parser = new InventoryParser options.modPack
@_storage = options.storage @_storage = options.storage
# Event Methods ################################################################################ # Event Methods ################################################################################
@@ -40,10 +40,10 @@ module.exports = class InventoryController extends BaseController
# Event Methods ################################################################################ # Event Methods ################################################################################
onAddButtonClicked: -> onAddButtonClicked: ->
name = @$nameField.val() item = @modPack.findItemByName @$nameField.val()
return unless @modPack.isValidName name return unless item?
@model.add _.slugify(name), parseInt(@$quantityField.val()) @model.add item.qualifiedSlug, parseInt(@$quantityField.val())
@$nameField.val '' @$nameField.val ''
@$quantityField.val '1' @$quantityField.val '1'
@@ -71,12 +71,11 @@ module.exports = class InventoryController extends BaseController
@onNameFieldChanged() @onNameFieldChanged()
onNameFieldChanged: -> onNameFieldChanged: ->
item = @modPack.findItemByName @$nameField.val()
@_refreshButtonState() @_refreshButtonState()
onNameFieldFocused: -> onNameFieldFocused: ->
@$nameField.val '' @$nameField.val ''
@$nameField.autocomplete('search') @$nameField.autocomplete 'search'
onNameFieldKeyUp: (event)-> onNameFieldKeyUp: (event)->
if event.which is Key.Return if event.which is Key.Return
+7 -3
View File
@@ -49,10 +49,14 @@ module.exports = class InventoryParser
if not @modPack? then throw new Error 'this.modPack is needed to unparse' if not @modPack? then throw new Error 'this.modPack is needed to unparse'
parts = [] 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 if stack.quantity is 1
parts.push stack.slug parts.push slug
else else
parts.push "#{stack.quantity}#{InventoryParser.ITEM_DELIMITER}#{stack.slug}" parts.push "#{stack.quantity}#{InventoryParser.ITEM_DELIMITER}#{slug}"
return parts.join InventoryParser.STACK_DELIMITER return parts.join InventoryParser.STACK_DELIMITER