Ensure page titles are always correct
This commit is contained in:
@@ -5,14 +5,14 @@ Copyright (c) 2015 by Redwood Labs
|
|||||||
All rights reserved.
|
All rights reserved.
|
||||||
###
|
###
|
||||||
|
|
||||||
BaseController = require './base_controller'
|
PageController = require './page_controller'
|
||||||
{Duration} = require '../constants'
|
{Duration} = require '../constants'
|
||||||
{Event} = require '../constants'
|
{Event} = require '../constants'
|
||||||
ModController = require './mod_controller'
|
ModController = require './mod_controller'
|
||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
|
|
||||||
module.exports = class BrowsePageController extends BaseController
|
module.exports = class BrowsePageController extends PageController
|
||||||
|
|
||||||
constructor: (options={})->
|
constructor: (options={})->
|
||||||
if not options.modPack? then throw new Error 'options.modPack is required'
|
if not options.modPack? then throw new Error 'options.modPack is required'
|
||||||
@@ -22,6 +22,11 @@ module.exports = class BrowsePageController extends BaseController
|
|||||||
@modPack = options.modPack
|
@modPack = options.modPack
|
||||||
@modPack.on Event.change, => @tryRefresh()
|
@modPack.on Event.change, => @tryRefresh()
|
||||||
|
|
||||||
|
# PageController Overrides #####################################################################
|
||||||
|
|
||||||
|
getTitle: ->
|
||||||
|
return 'Browse'
|
||||||
|
|
||||||
# BaseController Overrides #####################################################################
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
onDidRender: ->
|
onDidRender: ->
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ Copyright (c) 2015 by Redwood Labs
|
|||||||
All rights reserved.
|
All rights reserved.
|
||||||
###
|
###
|
||||||
|
|
||||||
BaseController = require './base_controller'
|
PageController = require './page_controller'
|
||||||
ModPackController = require './mod_pack_controller'
|
ModPackController = require './mod_pack_controller'
|
||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
|
|
||||||
module.exports = class ConfigurePageController extends BaseController
|
module.exports = class ConfigurePageController extends PageController
|
||||||
|
|
||||||
constructor: (options={})->
|
constructor: (options={})->
|
||||||
if not options.modPack? then throw new Error 'options.modPack is required'
|
if not options.modPack? then throw new Error 'options.modPack is required'
|
||||||
@@ -21,6 +21,11 @@ module.exports = class ConfigurePageController extends BaseController
|
|||||||
@modPack = options.modPack
|
@modPack = options.modPack
|
||||||
@storage = options.storage
|
@storage = options.storage
|
||||||
|
|
||||||
|
# PageController Overrides #####################################################################
|
||||||
|
|
||||||
|
getTitle: ->
|
||||||
|
return "Configure"
|
||||||
|
|
||||||
# BaseController Overrides #####################################################################
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
onDidRender: ->
|
onDidRender: ->
|
||||||
|
|||||||
@@ -5,21 +5,21 @@ Copyright (c) 2014-2015 by Redwood Labs
|
|||||||
All rights reserved.
|
All rights reserved.
|
||||||
###
|
###
|
||||||
|
|
||||||
BaseController = require './base_controller'
|
|
||||||
CraftingTableController = require './crafting_table_controller'
|
CraftingTableController = require './crafting_table_controller'
|
||||||
|
CraftPage = require '../models/craft_page'
|
||||||
{Event} = require '../constants'
|
{Event} = require '../constants'
|
||||||
ImageLoader = require './image_loader'
|
ImageLoader = require './image_loader'
|
||||||
InventoryController = require './inventory_controller'
|
InventoryController = require './inventory_controller'
|
||||||
CraftPage = require '../models/craft_page'
|
|
||||||
ModPackController = require './mod_pack_controller'
|
ModPackController = require './mod_pack_controller'
|
||||||
NameFinder = require '../models/name_finder'
|
NameFinder = require '../models/name_finder'
|
||||||
|
PageController = require './page_controller'
|
||||||
Storage = require '../models/storage'
|
Storage = require '../models/storage'
|
||||||
{Text} = require '../constants'
|
{Text} = require '../constants'
|
||||||
{Url} = require '../constants'
|
{Url} = require '../constants'
|
||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
|
|
||||||
module.exports = class CraftPageController extends BaseController
|
module.exports = class CraftPageController extends PageController
|
||||||
|
|
||||||
constructor: (options={})->
|
constructor: (options={})->
|
||||||
if not options.imageLoader? then throw new Error 'options.imageLoader is required'
|
if not options.imageLoader? then throw new Error 'options.imageLoader is required'
|
||||||
@@ -30,27 +30,32 @@ module.exports = class CraftPageController extends BaseController
|
|||||||
options.templateName = 'craft_page'
|
options.templateName = 'craft_page'
|
||||||
super options
|
super options
|
||||||
|
|
||||||
@_imageLoader = options.imageLoader
|
@imageLoader = options.imageLoader
|
||||||
@_storage = options.storage
|
@storage = options.storage
|
||||||
|
|
||||||
# Event Methods ################################################################################
|
# Event Methods ################################################################################
|
||||||
|
|
||||||
onToolsBoxToggled: ->
|
onToolsBoxToggled: ->
|
||||||
@model.plan.includingTools = @$('.includeTools:checked').length isnt 0
|
@model.plan.includingTools = @$('.includeTools:checked').length isnt 0
|
||||||
|
|
||||||
|
# PageController Overrides #####################################################################
|
||||||
|
|
||||||
|
getTitle: ->
|
||||||
|
return 'Craft'
|
||||||
|
|
||||||
# BaseController Overrides #####################################################################
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
onWillRender: ->
|
onWillRender: ->
|
||||||
@_storage.register 'crafting-plan', @model.plan, 'includingTools'
|
@storage.register 'crafting-plan', @model.plan, 'includingTools'
|
||||||
@model.plan.have.clear()
|
@model.plan.have.clear()
|
||||||
@model.plan.have.parse @_storage.load('crafting-plan:have')
|
@model.plan.have.parse @storage.load('crafting-plan:have')
|
||||||
super
|
super
|
||||||
|
|
||||||
onDidRender: ->
|
onDidRender: ->
|
||||||
@wantController = @addChild InventoryController, '.want',
|
@wantController = @addChild InventoryController, '.want',
|
||||||
editable: true
|
editable: true
|
||||||
icon: '/images/fishing_rod.png'
|
icon: '/images/fishing_rod.png'
|
||||||
imageLoader: @_imageLoader
|
imageLoader: @imageLoader
|
||||||
model: @model.plan.want
|
model: @model.plan.want
|
||||||
modPack: @model.modPack
|
modPack: @model.modPack
|
||||||
onChange: => @_updateLocation()
|
onChange: => @_updateLocation()
|
||||||
@@ -58,7 +63,7 @@ module.exports = class CraftPageController extends BaseController
|
|||||||
|
|
||||||
@haveController = @addChild InventoryController, '.have',
|
@haveController = @addChild InventoryController, '.have',
|
||||||
editable: true,
|
editable: true,
|
||||||
imageLoader: @_imageLoader
|
imageLoader: @imageLoader
|
||||||
model: @model.plan.have
|
model: @model.plan.have
|
||||||
modPack: @model.modPack
|
modPack: @model.modPack
|
||||||
onChange: => @_saveHaveInventory()
|
onChange: => @_saveHaveInventory()
|
||||||
@@ -68,13 +73,13 @@ module.exports = class CraftPageController extends BaseController
|
|||||||
@needController = @addChild InventoryController, '.need',
|
@needController = @addChild InventoryController, '.need',
|
||||||
editable: false
|
editable: false
|
||||||
icon: '/images/boots.png'
|
icon: '/images/boots.png'
|
||||||
imageLoader: @_imageLoader
|
imageLoader: @imageLoader
|
||||||
model: @model.plan.need
|
model: @model.plan.need
|
||||||
modPack: @model.modPack
|
modPack: @model.modPack
|
||||||
title: "Items you'll need"
|
title: "Items you'll need"
|
||||||
|
|
||||||
@craftingTableController = @addChild CraftingTableController, '.view__crafting_table',
|
@craftingTableController = @addChild CraftingTableController, '.view__crafting_table',
|
||||||
imageLoader: @_imageLoader
|
imageLoader: @imageLoader
|
||||||
model: @model.table
|
model: @model.table
|
||||||
modPack: @model.modPack
|
modPack: @model.modPack
|
||||||
|
|
||||||
@@ -84,13 +89,13 @@ module.exports = class CraftPageController extends BaseController
|
|||||||
super
|
super
|
||||||
|
|
||||||
refresh: ->
|
refresh: ->
|
||||||
$('title').html Text.title
|
|
||||||
|
|
||||||
if @model.plan.includingTools
|
if @model.plan.includingTools
|
||||||
@$includeToolsBox.attr 'checked', 'checked'
|
@$includeToolsBox.attr 'checked', 'checked'
|
||||||
else
|
else
|
||||||
@$includeToolsBox.removeAttr 'checked'
|
@$includeToolsBox.removeAttr 'checked'
|
||||||
|
|
||||||
|
super
|
||||||
|
|
||||||
# Backbone.View Overrides ######################################################################
|
# Backbone.View Overrides ######################################################################
|
||||||
|
|
||||||
events: ->
|
events: ->
|
||||||
@@ -100,7 +105,7 @@ module.exports = class CraftPageController extends BaseController
|
|||||||
# Private Methods ##############################################################################
|
# Private Methods ##############################################################################
|
||||||
|
|
||||||
_saveHaveInventory: ->
|
_saveHaveInventory: ->
|
||||||
@_storage.store 'crafting-plan:have', @model.plan.have.unparse()
|
@storage.store 'crafting-plan:have', @model.plan.have.unparse()
|
||||||
|
|
||||||
_updateLocation: ->
|
_updateLocation: ->
|
||||||
text = @model.plan.want.unparse()
|
text = @model.plan.want.unparse()
|
||||||
|
|||||||
@@ -5,11 +5,11 @@ Copyright (c) 2015 by Redwood Labs
|
|||||||
All rights reserved.
|
All rights reserved.
|
||||||
###
|
###
|
||||||
|
|
||||||
BaseController = require './base_controller'
|
PageController = require './page_controller'
|
||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
|
|
||||||
module.exports = class HomeController extends BaseController
|
module.exports = class HomeController extends PageController
|
||||||
|
|
||||||
constructor: (options={})->
|
constructor: (options={})->
|
||||||
options.templateName = 'home_page'
|
options.templateName = 'home_page'
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ Copyright (c) 2015 by Redwood Labs
|
|||||||
All rights reserved.
|
All rights reserved.
|
||||||
###
|
###
|
||||||
|
|
||||||
BaseController = require './base_controller'
|
|
||||||
{Duration} = require '../constants'
|
{Duration} = require '../constants'
|
||||||
{Event} = require '../constants'
|
{Event} = require '../constants'
|
||||||
FullRecipeController = require './full_recipe_controller'
|
FullRecipeController = require './full_recipe_controller'
|
||||||
@@ -13,12 +12,13 @@ ImageLoader = require './image_loader'
|
|||||||
Item = require '../models/item'
|
Item = require '../models/item'
|
||||||
ItemGroupController = require './item_group_controller'
|
ItemGroupController = require './item_group_controller'
|
||||||
ItemPage = require '../models/item_page'
|
ItemPage = require '../models/item_page'
|
||||||
|
PageController = require './page_controller'
|
||||||
{Text} = require '../constants'
|
{Text} = require '../constants'
|
||||||
{Url} = require '../constants'
|
{Url} = require '../constants'
|
||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
|
|
||||||
module.exports = class ItemPageController extends BaseController
|
module.exports = class ItemPageController extends PageController
|
||||||
|
|
||||||
constructor: (options={})->
|
constructor: (options={})->
|
||||||
if not options.itemSlug? then throw new Error 'options.itemSlug is required'
|
if not options.itemSlug? then throw new Error 'options.itemSlug is required'
|
||||||
@@ -36,6 +36,11 @@ module.exports = class ItemPageController extends BaseController
|
|||||||
|
|
||||||
@modPack.on Event.change, => @tryRefresh()
|
@modPack.on Event.change, => @tryRefresh()
|
||||||
|
|
||||||
|
# PageController Overrides #####################################################################
|
||||||
|
|
||||||
|
getTitle: ->
|
||||||
|
return @model.item?.name
|
||||||
|
|
||||||
# BaseController Overrides #####################################################################
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
onDidRender: ->
|
onDidRender: ->
|
||||||
@@ -64,7 +69,6 @@ module.exports = class ItemPageController extends BaseController
|
|||||||
super
|
super
|
||||||
|
|
||||||
refresh: ->
|
refresh: ->
|
||||||
$('title').html if @model.item? then "#{@model.item?.name} | #{Text.title}" else Text.title
|
|
||||||
@_resolveItemSlug()
|
@_resolveItemSlug()
|
||||||
|
|
||||||
if @model.item?
|
if @model.item?
|
||||||
|
|||||||
@@ -5,18 +5,18 @@ Copyright (c) 2015 by Redwood Labs
|
|||||||
All rights reserved.
|
All rights reserved.
|
||||||
###
|
###
|
||||||
|
|
||||||
BaseController = require './base_controller'
|
|
||||||
{Duration} = require '../constants'
|
{Duration} = require '../constants'
|
||||||
Mod = require '../models/mod'
|
|
||||||
ModPack = require '../models/mod_pack'
|
|
||||||
Item = require '../models/item'
|
Item = require '../models/item'
|
||||||
ItemGroupController = require './item_group_controller'
|
ItemGroupController = require './item_group_controller'
|
||||||
|
Mod = require '../models/mod'
|
||||||
|
ModPack = require '../models/mod_pack'
|
||||||
|
PageController = require './page_controller'
|
||||||
{Text} = require '../constants'
|
{Text} = require '../constants'
|
||||||
{Url} = require '../constants'
|
{Url} = require '../constants'
|
||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
|
|
||||||
module.exports = class ModPageController extends BaseController
|
module.exports = class ModPageController extends PageController
|
||||||
|
|
||||||
constructor: (options={})->
|
constructor: (options={})->
|
||||||
if not options.imageLoader? then throw new Error 'options.imageLoader is required'
|
if not options.imageLoader? then throw new Error 'options.imageLoader is required'
|
||||||
@@ -44,6 +44,11 @@ module.exports = class ModPageController extends BaseController
|
|||||||
if modVersion? then modVersion.fetch()
|
if modVersion? then modVersion.fetch()
|
||||||
@refresh()
|
@refresh()
|
||||||
|
|
||||||
|
# PageController Overrides #####################################################################
|
||||||
|
|
||||||
|
getTitle: ->
|
||||||
|
return @model?.name
|
||||||
|
|
||||||
# BaseController Overrides #####################################################################
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
onDidRender: ->
|
onDidRender: ->
|
||||||
@@ -60,8 +65,6 @@ module.exports = class ModPageController extends BaseController
|
|||||||
super
|
super
|
||||||
|
|
||||||
refresh: ->
|
refresh: ->
|
||||||
$('title').html if @model? then "#{@model.name} | #{Text.title}" else Text.title
|
|
||||||
|
|
||||||
if @model?
|
if @model?
|
||||||
@$name.html @model.name
|
@$name.html @model.name
|
||||||
@$byline.html "by #{@model.author}"
|
@$byline.html "by #{@model.author}"
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
###
|
||||||
|
Crafting Guide - page_controller.coffee
|
||||||
|
|
||||||
|
Copyright (c) 2015 by Redwood Labs
|
||||||
|
All rights reserved.
|
||||||
|
###
|
||||||
|
|
||||||
|
BaseController = require './base_controller'
|
||||||
|
{Text} = require '../constants'
|
||||||
|
|
||||||
|
########################################################################################################################
|
||||||
|
|
||||||
|
module.exports = class PageController extends BaseController
|
||||||
|
|
||||||
|
constructor: (options={})->
|
||||||
|
super options
|
||||||
|
|
||||||
|
# Public Methods ###############################################################################
|
||||||
|
|
||||||
|
getTitle: ->
|
||||||
|
# subclasses should override this to return the page-specific portion of the title
|
||||||
|
return null
|
||||||
|
|
||||||
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
|
refresh: ->
|
||||||
|
title = @getTitle()
|
||||||
|
title = if title? then title.trim() else ''
|
||||||
|
|
||||||
|
if title.length > 0
|
||||||
|
title += " | #{Text.title}"
|
||||||
|
else
|
||||||
|
title = Text.title
|
||||||
|
|
||||||
|
$('title').html title
|
||||||
|
|
||||||
|
super
|
||||||
@@ -24,7 +24,7 @@ global.logger = new Logger
|
|||||||
switch window.location.hostname
|
switch window.location.hostname
|
||||||
when 'localhost'
|
when 'localhost'
|
||||||
global.env = 'development'
|
global.env = 'development'
|
||||||
logger.level = Logger.DEBUG
|
logger.level = Logger.INFO
|
||||||
when 'new.crafting-guide.com'
|
when 'new.crafting-guide.com'
|
||||||
global.env = 'staging'
|
global.env = 'staging'
|
||||||
logger.level = Logger.VERBOSE
|
logger.level = Logger.VERBOSE
|
||||||
|
|||||||
@@ -99,4 +99,4 @@ module.exports = class CommandParserVersionBase
|
|||||||
catch e
|
catch e
|
||||||
e.message = "line #{@_lineNumber}: #{e.message}"
|
e.message = "line #{@_lineNumber}: #{e.message}"
|
||||||
if not @_showAllErrors then throw e
|
if not @_showAllErrors then throw e
|
||||||
logger.error e.message
|
logger.error -> e.message
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
.view__item_page
|
.view__item_page
|
||||||
.sidebar
|
.sidebar
|
||||||
.titleImage: a: img
|
.titleImage: a: img
|
||||||
a.craftingPlan.externalLink: p Full Crafting Plan
|
a.craftingPlan.externalLink: p See Crafting Plan
|
||||||
|
|
||||||
.mainBody
|
.mainBody
|
||||||
h1.name
|
h1.name
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ module.exports = class EventRecorder
|
|||||||
Object.defineProperty this, 'names', get:-> e.event for e in @events
|
Object.defineProperty this, 'names', get:-> e.event for e in @events
|
||||||
|
|
||||||
@model.on 'all', (event, model, args...)=>
|
@model.on 'all', (event, model, args...)=>
|
||||||
logger.verbose "#{model?.constructor?.name}(#{model?.cid}) emitted #{event}
|
logger.verbose -> "#{model?.constructor?.name}(#{model?.cid}) emitted #{event}
|
||||||
with args: #{util.inspect(args)}"
|
with args: #{util.inspect(args)}"
|
||||||
@events.push id:model?.cid, event:event, args:args
|
@events.push id:model?.cid, event:event, args:args
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user