From 570242ec48f8dbdfd3e0b8240c5381dbe1fd293f Mon Sep 17 00:00:00 2001 From: Andrew Miner Date: Sun, 1 Mar 2015 17:18:28 -0800 Subject: [PATCH] Update /craft URL on quantity changes --- src/scripts/controllers/craft_page_controller.coffee | 1 + src/scripts/controllers/inventory_controller.coffee | 4 +++- src/scripts/controllers/stack_controller.coffee | 4 ++++ src/scripts/crafting_guide_router.coffee | 9 ++++++--- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/scripts/controllers/craft_page_controller.coffee b/src/scripts/controllers/craft_page_controller.coffee index a2ea2cb75..a7d66eb14 100644 --- a/src/scripts/controllers/craft_page_controller.coffee +++ b/src/scripts/controllers/craft_page_controller.coffee @@ -109,5 +109,6 @@ module.exports = class CraftPageController extends PageController _updateLocation: -> text = @model.plan.want.unparse() + logger.debug "setting location to: #{text}" url = Url.crafting inventoryText:text router.navigate url diff --git a/src/scripts/controllers/inventory_controller.coffee b/src/scripts/controllers/inventory_controller.coffee index 1f7e619ee..d8a999d26 100644 --- a/src/scripts/controllers/inventory_controller.coffee +++ b/src/scripts/controllers/inventory_controller.coffee @@ -7,6 +7,7 @@ All rights reserved. BaseController = require './base_controller' {Duration} = require '../constants' +{Event} = require '../constants' {Key} = require '../constants' ImageLoader = require './image_loader' NameFinder = require '../models/name_finder' @@ -38,7 +39,7 @@ module.exports = class InventoryController extends BaseController @_stackControllers = [] - @listenTo @modPack, 'change', => @refresh() + @listenTo @modPack, Event.change, => @refresh() # Event Methods ################################################################################ @@ -161,6 +162,7 @@ module.exports = class InventoryController extends BaseController imageLoader: @imageLoader model: stack modPack: @modPack + onChange: @onChange onRemove: if not @editable then null else (stack)=> @_removeStack(stack) controller.render() controller.$el.hide() diff --git a/src/scripts/controllers/stack_controller.coffee b/src/scripts/controllers/stack_controller.coffee index b29d637f5..24bf71cbc 100644 --- a/src/scripts/controllers/stack_controller.coffee +++ b/src/scripts/controllers/stack_controller.coffee @@ -23,12 +23,14 @@ module.exports = class StackController extends BaseController if not options.modPack? then throw new Error 'options.modPack is required' options.editable ?= false + options.onChange ?= -> # do nothing options.onRemove ?= (stack)-> # do nothing options.templateName = 'stack' super options @editable = options.editable @modPack = options.modPack + @onChange = options.onChange @onRemove = options.onRemove @_imageLoader = options.imageLoader @@ -55,6 +57,7 @@ module.exports = class StackController extends BaseController @$quantityField.removeClass 'error-new', Duration.snap @model.quantity = quantity + @onChange() onQuantityFieldChanged: -> quantityText = @$quantityField.val().trim() @@ -79,6 +82,7 @@ module.exports = class StackController extends BaseController onRemoveClicked: -> @onRemove @model + @onChange() # BaseController Overrides ##################################################################### diff --git a/src/scripts/crafting_guide_router.coffee b/src/scripts/crafting_guide_router.coffee index 1d55198b0..4c2ba031a 100644 --- a/src/scripts/crafting_guide_router.coffee +++ b/src/scripts/crafting_guide_router.coffee @@ -7,7 +7,7 @@ All rights reserved. BrowsePageController = require './controllers/browse_page_controller' -CraftPageController = require './controllers/craft_page_controller' +CraftPageController = require './controllers/craft_page_controller' ConfigurePageController = require './controllers/configure_page_controller' {DefaultMods} = require './constants' {Duration} = require './constants' @@ -23,7 +23,7 @@ ModPageController = require './controllers/mod_page_controller' Storage = require './models/storage' {Url} = require './constants' UrlParams = require './url_params' -HomePageController = require './controllers/home_page_controller' +HomePageController = require './controllers/home_page_controller' ######################################################################################################################## @@ -66,10 +66,13 @@ module.exports = class CraftingGuideRouter extends Backbone.Router routes: '': 'route__home' 'browse': 'route__browse' + 'browse/': 'route__browse' 'browse/:modSlug': 'route__browseMod' 'browse/:modSlug/:itemSlug': 'route__browseModItem' 'configure': 'route__configure' - 'craft(/:text)': 'route__craft' + 'craft': 'route__craft' + 'craft/': 'route__craft' + 'craft/:text': 'route__craft' 'item/:itemSlug': 'deprecated__item' 'crafting/(:text)': 'deprecated__crafting'