diff --git a/src/scripts/controllers/browse_page_controller.coffee b/src/scripts/controllers/browse_page_controller.coffee index 07eb2efdb..7a65f63b3 100644 --- a/src/scripts/controllers/browse_page_controller.coffee +++ b/src/scripts/controllers/browse_page_controller.coffee @@ -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: -> diff --git a/src/scripts/controllers/configure_page_controller.coffee b/src/scripts/controllers/configure_page_controller.coffee index 16068210a..f1f919d2a 100644 --- a/src/scripts/controllers/configure_page_controller.coffee +++ b/src/scripts/controllers/configure_page_controller.coffee @@ -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: -> diff --git a/src/scripts/controllers/craft_page_controller.coffee b/src/scripts/controllers/craft_page_controller.coffee index 620e6dfaf..a2ea2cb75 100644 --- a/src/scripts/controllers/craft_page_controller.coffee +++ b/src/scripts/controllers/craft_page_controller.coffee @@ -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() diff --git a/src/scripts/controllers/home_page_controller.coffee b/src/scripts/controllers/home_page_controller.coffee index febf81a83..d9cb9e446 100644 --- a/src/scripts/controllers/home_page_controller.coffee +++ b/src/scripts/controllers/home_page_controller.coffee @@ -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' diff --git a/src/scripts/controllers/item_page_controller.coffee b/src/scripts/controllers/item_page_controller.coffee index 326025035..ae0544692 100644 --- a/src/scripts/controllers/item_page_controller.coffee +++ b/src/scripts/controllers/item_page_controller.coffee @@ -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? diff --git a/src/scripts/controllers/mod_page_controller.coffee b/src/scripts/controllers/mod_page_controller.coffee index 08f20f403..27a40ed6d 100644 --- a/src/scripts/controllers/mod_page_controller.coffee +++ b/src/scripts/controllers/mod_page_controller.coffee @@ -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}" diff --git a/src/scripts/controllers/page_controller.coffee b/src/scripts/controllers/page_controller.coffee new file mode 100644 index 000000000..76e2726f7 --- /dev/null +++ b/src/scripts/controllers/page_controller.coffee @@ -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 \ No newline at end of file diff --git a/src/scripts/main.coffee b/src/scripts/main.coffee index bfedb339f..a7103ac29 100644 --- a/src/scripts/main.coffee +++ b/src/scripts/main.coffee @@ -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 diff --git a/src/scripts/models/parser_versions/command_parser_version_base.coffee b/src/scripts/models/parser_versions/command_parser_version_base.coffee index 94b81c8f4..0f229c049 100644 --- a/src/scripts/models/parser_versions/command_parser_version_base.coffee +++ b/src/scripts/models/parser_versions/command_parser_version_base.coffee @@ -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 diff --git a/src/templates/item_page.jade b/src/templates/item_page.jade index 17c3d8ab8..9d856cf88 100644 --- a/src/templates/item_page.jade +++ b/src/templates/item_page.jade @@ -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 \ No newline at end of file + .plan diff --git a/test/event_recorder.coffee b/test/event_recorder.coffee index 973ade759..973cd4af9 100644 --- a/test/event_recorder.coffee +++ b/test/event_recorder.coffee @@ -20,7 +20,7 @@ module.exports = class EventRecorder Object.defineProperty this, 'names', get:-> e.event for e in @events @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)}" @events.push id:model?.cid, event:event, args:args