Ensure page titles are always correct

This commit is contained in:
Andrew Miner
2015-03-01 11:18:30 -08:00
parent ef63d6f110
commit d530ff73a3
11 changed files with 93 additions and 34 deletions
@@ -5,14 +5,14 @@ Copyright (c) 2015 by Redwood Labs
All rights reserved.
###
BaseController = require './base_controller'
PageController = require './page_controller'
{Duration} = require '../constants'
{Event} = require '../constants'
ModController = require './mod_controller'
########################################################################################################################
module.exports = class BrowsePageController extends BaseController
module.exports = class BrowsePageController extends PageController
constructor: (options={})->
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.on Event.change, => @tryRefresh()
# PageController Overrides #####################################################################
getTitle: ->
return 'Browse'
# BaseController Overrides #####################################################################
onDidRender: ->
@@ -5,12 +5,12 @@ Copyright (c) 2015 by Redwood Labs
All rights reserved.
###
BaseController = require './base_controller'
PageController = require './page_controller'
ModPackController = require './mod_pack_controller'
########################################################################################################################
module.exports = class ConfigurePageController extends BaseController
module.exports = class ConfigurePageController extends PageController
constructor: (options={})->
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
@storage = options.storage
# PageController Overrides #####################################################################
getTitle: ->
return "Configure"
# BaseController Overrides #####################################################################
onDidRender: ->
@@ -5,21 +5,21 @@ Copyright (c) 2014-2015 by Redwood Labs
All rights reserved.
###
BaseController = require './base_controller'
CraftingTableController = require './crafting_table_controller'
CraftPage = require '../models/craft_page'
{Event} = require '../constants'
ImageLoader = require './image_loader'
InventoryController = require './inventory_controller'
CraftPage = require '../models/craft_page'
ModPackController = require './mod_pack_controller'
NameFinder = require '../models/name_finder'
PageController = require './page_controller'
Storage = require '../models/storage'
{Text} = require '../constants'
{Url} = require '../constants'
########################################################################################################################
module.exports = class CraftPageController extends BaseController
module.exports = class CraftPageController extends PageController
constructor: (options={})->
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'
super options
@_imageLoader = options.imageLoader
@_storage = options.storage
@imageLoader = options.imageLoader
@storage = options.storage
# Event Methods ################################################################################
onToolsBoxToggled: ->
@model.plan.includingTools = @$('.includeTools:checked').length isnt 0
# PageController Overrides #####################################################################
getTitle: ->
return 'Craft'
# BaseController Overrides #####################################################################
onWillRender: ->
@_storage.register 'crafting-plan', @model.plan, 'includingTools'
@storage.register 'crafting-plan', @model.plan, 'includingTools'
@model.plan.have.clear()
@model.plan.have.parse @_storage.load('crafting-plan:have')
@model.plan.have.parse @storage.load('crafting-plan:have')
super
onDidRender: ->
@wantController = @addChild InventoryController, '.want',
editable: true
icon: '/images/fishing_rod.png'
imageLoader: @_imageLoader
imageLoader: @imageLoader
model: @model.plan.want
modPack: @model.modPack
onChange: => @_updateLocation()
@@ -58,7 +63,7 @@ module.exports = class CraftPageController extends BaseController
@haveController = @addChild InventoryController, '.have',
editable: true,
imageLoader: @_imageLoader
imageLoader: @imageLoader
model: @model.plan.have
modPack: @model.modPack
onChange: => @_saveHaveInventory()
@@ -68,13 +73,13 @@ module.exports = class CraftPageController extends BaseController
@needController = @addChild InventoryController, '.need',
editable: false
icon: '/images/boots.png'
imageLoader: @_imageLoader
imageLoader: @imageLoader
model: @model.plan.need
modPack: @model.modPack
title: "Items you'll need"
@craftingTableController = @addChild CraftingTableController, '.view__crafting_table',
imageLoader: @_imageLoader
imageLoader: @imageLoader
model: @model.table
modPack: @model.modPack
@@ -84,13 +89,13 @@ module.exports = class CraftPageController extends BaseController
super
refresh: ->
$('title').html Text.title
if @model.plan.includingTools
@$includeToolsBox.attr 'checked', 'checked'
else
@$includeToolsBox.removeAttr 'checked'
super
# Backbone.View Overrides ######################################################################
events: ->
@@ -100,7 +105,7 @@ module.exports = class CraftPageController extends BaseController
# Private Methods ##############################################################################
_saveHaveInventory: ->
@_storage.store 'crafting-plan:have', @model.plan.have.unparse()
@storage.store 'crafting-plan:have', @model.plan.have.unparse()
_updateLocation: ->
text = @model.plan.want.unparse()
@@ -5,11 +5,11 @@ Copyright (c) 2015 by Redwood Labs
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={})->
options.templateName = 'home_page'
@@ -5,7 +5,6 @@ Copyright (c) 2015 by Redwood Labs
All rights reserved.
###
BaseController = require './base_controller'
{Duration} = require '../constants'
{Event} = require '../constants'
FullRecipeController = require './full_recipe_controller'
@@ -13,12 +12,13 @@ ImageLoader = require './image_loader'
Item = require '../models/item'
ItemGroupController = require './item_group_controller'
ItemPage = require '../models/item_page'
PageController = require './page_controller'
{Text} = require '../constants'
{Url} = require '../constants'
########################################################################################################################
module.exports = class ItemPageController extends BaseController
module.exports = class ItemPageController extends PageController
constructor: (options={})->
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()
# PageController Overrides #####################################################################
getTitle: ->
return @model.item?.name
# BaseController Overrides #####################################################################
onDidRender: ->
@@ -64,7 +69,6 @@ module.exports = class ItemPageController extends BaseController
super
refresh: ->
$('title').html if @model.item? then "#{@model.item?.name} | #{Text.title}" else Text.title
@_resolveItemSlug()
if @model.item?
@@ -5,18 +5,18 @@ Copyright (c) 2015 by Redwood Labs
All rights reserved.
###
BaseController = require './base_controller'
{Duration} = require '../constants'
Mod = require '../models/mod'
ModPack = require '../models/mod_pack'
Item = require '../models/item'
ItemGroupController = require './item_group_controller'
Mod = require '../models/mod'
ModPack = require '../models/mod_pack'
PageController = require './page_controller'
{Text} = require '../constants'
{Url} = require '../constants'
########################################################################################################################
module.exports = class ModPageController extends BaseController
module.exports = class ModPageController extends PageController
constructor: (options={})->
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()
@refresh()
# PageController Overrides #####################################################################
getTitle: ->
return @model?.name
# BaseController Overrides #####################################################################
onDidRender: ->
@@ -60,8 +65,6 @@ module.exports = class ModPageController extends BaseController
super
refresh: ->
$('title').html if @model? then "#{@model.name} | #{Text.title}" else Text.title
if @model?
@$name.html @model.name
@$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
+1 -1
View File
@@ -24,7 +24,7 @@ global.logger = new Logger
switch window.location.hostname
when 'localhost'
global.env = 'development'
logger.level = Logger.DEBUG
logger.level = Logger.INFO
when 'new.crafting-guide.com'
global.env = 'staging'
logger.level = Logger.VERBOSE
@@ -99,4 +99,4 @@ module.exports = class CommandParserVersionBase
catch e
e.message = "line #{@_lineNumber}: #{e.message}"
if not @_showAllErrors then throw e
logger.error e.message
logger.error -> e.message
+2 -2
View File
@@ -8,7 +8,7 @@
.view__item_page
.sidebar
.titleImage: a: img
a.craftingPlan.externalLink: p Full Crafting Plan
a.craftingPlan.externalLink: p See Crafting Plan
.mainBody
h1.name
@@ -22,4 +22,4 @@
.usedToMake: .view__item_group
.usedAsToolToMake: .view__item_group
.similar: .view__item_group
.plan
.plan