Don't show qualifed slugs in URL unnecessarily #94
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user