Update URL param handling for new site
This commit is contained in:
@@ -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: ->
|
||||||
|
|||||||
@@ -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 ##############################################################################
|
||||||
|
|||||||
@@ -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,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
|
||||||
|
|||||||
@@ -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 ################################################################################
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user