Update URL param handling for new site

This commit is contained in:
Andrew Miner
2015-01-10 09:40:50 -08:00
parent f01d367024
commit fa29b77746
5 changed files with 30 additions and 22 deletions
@@ -22,17 +22,6 @@ module.exports = class ItemPageController extends BaseController
options.templateName = 'item_page' options.templateName = 'item_page'
super options super options
# Public Methods ###############################################################################
setParams: (params)->
return unless params.name?
item = @model.modPack.findItemByName params.name
return unless item? and item.isCraftable
quantity = if params.quantity? then parseInt(params.quantity) else 1
@model.want.add item.slug, quantity
# BaseController Overrides ##################################################################### # BaseController Overrides #####################################################################
onDidRender: -> onDidRender: ->
+2 -8
View File
@@ -28,18 +28,12 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
# Route Methods ################################################################################ # Route Methods ################################################################################
root: -> root: ->
params = new UrlParams params = new UrlParams recipeName:{type:'string'}, count:{type:'integer'}
recipeName: {type:'string'}
count: {type:'integer'}
if params.recipeName?
@navigate "/item/#{encodeURIComponent(params.recipeName)}"
@item params.recipeName, params.count @item params.recipeName, params.count
item: (name, quantity=1)-> item: (name, quantity=1)->
@_pageControllers.item ?= new ItemPageController @_pageControllers.item ?= new ItemPageController
@_pageControllers.item.setParams name:name, quantity:quantity @_pageControllers.item.model.params = name:name, quantity:quantity
@_setPage 'item' @_setPage 'item'
# Private Methods ############################################################################## # Private Methods ##############################################################################
+1
View File
@@ -24,6 +24,7 @@ module.exports = class CraftingPlan extends BaseModel
@have.on 'change', => @craft() @have.on 'change', => @craft()
@want.on 'change', => @craft() @want.on 'change', => @craft()
@modPack.on 'change', => @craft()
@clear() @clear()
+16
View File
@@ -16,6 +16,22 @@ module.exports = class ItemPage extends BaseModel
constructor: (attributes={}, options={})-> constructor: (attributes={}, options={})->
attributes.modPack ?= new ModPack attributes.modPack ?= new ModPack
attributes.params ?= null
attributes.plan ?= new CraftingPlan modPack:attributes.modPack attributes.plan ?= new CraftingPlan modPack:attributes.modPack
attributes.table ?= new CraftingTable plan:attributes.plan attributes.table ?= new CraftingTable plan:attributes.plan
super attributes, options super attributes, options
@modPack.on 'change', => @_consumeParams()
# Private Methods ##############################################################################
_consumeParams: ->
return unless @params?.name?
item = @modPack.findItemByName @params.name, includeDisabled:true
return unless item? and item.isCraftable
quantity = if @params.quantity? then parseInt(@params.quantity) else 1
@plan.want.add item.slug, quantity
@params = null
+11 -3
View File
@@ -19,6 +19,7 @@ module.exports = class ModPack extends BaseModel
attributes.modVersions ?= [] attributes.modVersions ?= []
super attributes, options super attributes, options
@loading = w(true)
@_parser = new ModVersionParser @_parser = new ModVersionParser
# Public Methods ############################################################################### # Public Methods ###############################################################################
@@ -98,8 +99,11 @@ module.exports = class ModPack extends BaseModel
return false return false
isLoading: ->
return @loading.inspect().state isnt 'pending'
loadModVersion: (url)-> loadModVersion: (url)->
w.promise (resolve, reject)=> promise = w.promise (resolve, reject)=>
@trigger Event.load.started, this, url @trigger Event.load.started, this, url
$.ajax $.ajax
url: url url: url
@@ -109,6 +113,8 @@ module.exports = class ModPack extends BaseModel
error: (xhr, status, error)=> error: (xhr, status, error)=>
reject @onModVersionLoadFailed(url, error, status, xhr) reject @onModVersionLoadFailed(url, error, status, xhr)
@loading = w.join @loading, promise
loadModVersionData: (data)-> loadModVersionData: (data)->
modVersion = @_parser.parse data modVersion = @_parser.parse data
@modVersions.push modVersion @modVersions.push modVersion
@@ -118,8 +124,10 @@ module.exports = class ModPack extends BaseModel
return modVersion return modVersion
loadAllModVersions: (urlList)-> loadAllModVersions: (urlList)->
promises = (@loadModVersion(url) for url in urlList) for url in urlList
return w.settle promises @loadModVersion url
return @loading
# Event Methods ################################################################################ # Event Methods ################################################################################