Add nascent version of the mod detail page
* Create a nascent version of the mod detail page * Make the slug mandatory for Mod instead of name, and load the name from the data file * Make the Feedback view universal on all pages * Refactor the use of mod pack to have a single global object at the router level which is shared between pages. Further, make this one object load itself immediately and have it automatically load any activated mod version * Refactor the use of Storage related to mod pack versions into the router as well. * Add trace logging back in for events, but allow individual classes to suppress it (as opposed to actually supressing the events) * Fix a bug in ModVersion.eachItem where it would suggest so-called items which are merely registered slugs without associated items
This commit is contained in:
@@ -5,10 +5,15 @@ Copyright (c) 2014-2015 by Redwood Labs
|
||||
All rights reserved.
|
||||
###
|
||||
|
||||
{DefaultMods} = require './constants'
|
||||
{Duration} = require './constants'
|
||||
{Event} = require './constants'
|
||||
ItemPageController = require './controllers/item_page_controller'
|
||||
Mod = require './models/mod'
|
||||
ModPack = require './models/mod_pack'
|
||||
ModPageController = require './controllers/mod_page_controller'
|
||||
{Opacity} = require './constants'
|
||||
Storage = require './models/storage'
|
||||
UrlParams = require './url_params'
|
||||
|
||||
########################################################################################################################
|
||||
@@ -21,6 +26,24 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
|
||||
@_lastReported = null
|
||||
super options
|
||||
|
||||
@modPack = new ModPack
|
||||
@storage = new Storage storage:window.localStorage
|
||||
@_defaultOptions = modPack:@modPack, storage:@storage
|
||||
|
||||
# Public Methods ###############################################################################
|
||||
|
||||
loadDefaultModPack: ->
|
||||
makeResponder = (m)-> return ->
|
||||
m.activeModVersion.fetch() if m.activeModVersion?
|
||||
|
||||
for slug in DefaultMods
|
||||
mod = new Mod slug:slug
|
||||
mod.on Event.change + ':activeModVersion', makeResponder mod
|
||||
@storage.register "mod:#{mod.slug}", mod, 'activeVersion'
|
||||
mod.fetch()
|
||||
|
||||
@modPack.addMod mod
|
||||
|
||||
# Backbone.Router Overrides ####################################################################
|
||||
|
||||
navigate: ->
|
||||
@@ -30,6 +53,7 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
|
||||
routes:
|
||||
'': 'root'
|
||||
'item(/:name)': 'item'
|
||||
'mod/:slug': 'mod'
|
||||
|
||||
# Route Methods ################################################################################
|
||||
|
||||
@@ -38,10 +62,16 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
|
||||
@item params.recipeName, params.count
|
||||
|
||||
item: (name, quantity=1)->
|
||||
@_pageControllers.item ?= new ItemPageController
|
||||
@_pageControllers.item ?= new ItemPageController @_defaultOptions
|
||||
@_pageControllers.item.model.params = name:name, quantity:quantity
|
||||
@_setPage 'item'
|
||||
|
||||
mod: (slug)->
|
||||
@_pageControllers.mod ?= new ModPageController @_defaultOptions
|
||||
logger.debug "setting up mod page wiht mod: #{@modPack.getMod slug} for slug: #{slug}"
|
||||
@_pageControllers.mod.model = @modPack.getMod slug
|
||||
@_setPage 'mod'
|
||||
|
||||
# Private Methods ##############################################################################
|
||||
|
||||
_recordPageView: ->
|
||||
|
||||
Reference in New Issue
Block a user