diff --git a/src/scripts/controllers/base_controller.coffee b/src/scripts/controllers/base_controller.coffee index fcf96027d..dbe43c5dd 100644 --- a/src/scripts/controllers/base_controller.coffee +++ b/src/scripts/controllers/base_controller.coffee @@ -39,6 +39,11 @@ module.exports = class BaseController extends Backbone.View refresh: -> logger.verbose "#{this} refreshing" + routeLinkClick: (event)-> + href = $(event.currentTarget).attr 'href' + router.navigate href, trigger:true + return false + # Event Methods ################################################################################ onDidModelChange: -> @@ -78,6 +83,9 @@ module.exports = class BaseController extends Backbone.View # Backbone.View Overrides ###################################################################### + events: -> + return {} + render: (options={})-> return this unless not @_rendered or options.force diff --git a/src/scripts/controllers/crafting_grid_controller.coffee b/src/scripts/controllers/crafting_grid_controller.coffee index 9b2b70ad6..16abb286d 100644 --- a/src/scripts/controllers/crafting_grid_controller.coffee +++ b/src/scripts/controllers/crafting_grid_controller.coffee @@ -23,13 +23,6 @@ module.exports = class CraftingGridController extends BaseController @_modPack = options.modPack @_slotCount = 9 - # Event Methods ################################################################################ - - onLinkClicked: (event)-> - href = $(event.currentTarget).attr 'href' - router.navigate href, trigger:true - return false - # BaseController Methods ####################################################################### onDidRender: -> @@ -61,8 +54,9 @@ module.exports = class CraftingGridController extends BaseController # Backbone.View Overrides ###################################################################### - events: - 'click td a': 'onLinkClicked' + events: -> + return _.extend super, + 'click td a': 'routeLinkClick' # Private Methods ############################################################################## diff --git a/src/scripts/controllers/crafting_table_controller.coffee b/src/scripts/controllers/crafting_table_controller.coffee index 91c8bb8b6..0f037bdfb 100644 --- a/src/scripts/controllers/crafting_table_controller.coffee +++ b/src/scripts/controllers/crafting_table_controller.coffee @@ -84,7 +84,8 @@ module.exports = class CraftingTableController extends BaseController # Backbone.View Overrides ###################################################################### - events: - 'click .next': 'onNextClicked' - 'click .prev': 'onPrevClicked' - 'click .problem a': 'onReportProblem' + events: -> + return _.extend super, + 'click .next': 'onNextClicked' + 'click .prev': 'onPrevClicked' + 'click .problem a': 'onReportProblem' diff --git a/src/scripts/controllers/feedback_controller.coffee b/src/scripts/controllers/feedback_controller.coffee index 636f4742c..8eacf5821 100644 --- a/src/scripts/controllers/feedback_controller.coffee +++ b/src/scripts/controllers/feedback_controller.coffee @@ -104,8 +104,9 @@ module.exports = class FeedbackController extends BaseController # Backbone.View Methods ######################################################################## - events: - 'click .label': 'onToggle' - 'click button': 'onSendClicked' - 'input textarea': 'onTextChanged' - 'keyup textarea': 'onTextChanged' + events: -> + return _.extend super, + 'click .label': 'onToggle' + 'click button': 'onSendClicked' + 'input textarea': 'onTextChanged' + 'keyup textarea': 'onTextChanged' diff --git a/src/scripts/controllers/header_controller.coffee b/src/scripts/controllers/header_controller.coffee index dbb8d6cd3..45c39d34f 100644 --- a/src/scripts/controllers/header_controller.coffee +++ b/src/scripts/controllers/header_controller.coffee @@ -28,5 +28,6 @@ module.exports = class HeaderController extends BaseController # Backbone.View Overrides ###################################################################### - events: - 'click a.logo': 'onLogoClicked' + events: -> + return _.extend super, + 'click a.logo': 'onLogoClicked' diff --git a/src/scripts/controllers/inventory_controller.coffee b/src/scripts/controllers/inventory_controller.coffee index 0ae918be8..c9f140f0a 100644 --- a/src/scripts/controllers/inventory_controller.coffee +++ b/src/scripts/controllers/inventory_controller.coffee @@ -152,16 +152,17 @@ module.exports = class InventoryController extends BaseController # Backbone.View Overrides ###################################################################### - events: - 'blur input[name="name"]': 'onNameFieldBlur' - 'blur input[name="quantity"]': 'onQuantityFieldBlur' - 'click button[name="add"]': 'onAddButtonClicked' - 'click button[name="clear"]': 'onClearButtonClicked' - 'focus input[name="name"]': 'onNameFieldFocused' - 'focus input[name="quantity"]': 'onQuantityFieldFocused' - 'input input[name="name"]': 'onNameFieldChanged' - 'input input[name="quantity"]': 'onQuantityFieldChanged' - 'keyup input[name="name"]': 'onNameFieldKeyUp' + events: -> + return _.extend super, + 'blur input[name="name"]': 'onNameFieldBlur' + 'blur input[name="quantity"]': 'onQuantityFieldBlur' + 'click button[name="add"]': 'onAddButtonClicked' + 'click button[name="clear"]': 'onClearButtonClicked' + 'focus input[name="name"]': 'onNameFieldFocused' + 'focus input[name="quantity"]': 'onQuantityFieldFocused' + 'input input[name="name"]': 'onNameFieldChanged' + 'input input[name="quantity"]': 'onQuantityFieldChanged' + 'keyup input[name="name"]': 'onNameFieldKeyUp' # Private Methods ############################################################################## diff --git a/src/scripts/controllers/item_controller.coffee b/src/scripts/controllers/item_controller.coffee index 13e0ddc65..8f1e0cb66 100644 --- a/src/scripts/controllers/item_controller.coffee +++ b/src/scripts/controllers/item_controller.coffee @@ -20,12 +20,6 @@ module.exports = class ItemController extends BaseController @_modPack = options.modPack - # Event Methods ################################################################################ - - onLinkClicked: -> - router.navigate @$nameLink.attr('href'), trigger:true - return false - # BaseController Overrides ##################################################################### onDidRender: -> @@ -43,5 +37,6 @@ module.exports = class ItemController extends BaseController # Backbone.View Overrides ###################################################################### - events: - 'click a': 'onLinkClicked' + events: -> + return _.extend super, + 'click a': 'routeLinkClick' diff --git a/src/scripts/controllers/item_page_controller.coffee b/src/scripts/controllers/item_page_controller.coffee index 65022d5e2..a8660719e 100644 --- a/src/scripts/controllers/item_page_controller.coffee +++ b/src/scripts/controllers/item_page_controller.coffee @@ -89,8 +89,9 @@ module.exports = class ItemPageController extends BaseController # Backbone.View Overrides ###################################################################### - events: - 'change .includeTools': 'onToolsBoxToggled' + events: -> + return _.extend super, + 'change .includeTools': 'onToolsBoxToggled' # Private Methods ############################################################################## diff --git a/src/scripts/controllers/mod_controller.coffee b/src/scripts/controllers/mod_controller.coffee index 9c692d7db..dead23c35 100644 --- a/src/scripts/controllers/mod_controller.coffee +++ b/src/scripts/controllers/mod_controller.coffee @@ -26,10 +26,6 @@ module.exports = class ModController extends BaseController # Event Methods ################################################################################ - onNameClicked: (event)-> - router.navigate @$nameLink.attr('href'), trigger:true - return false - onVersionChanged: -> @model.activeVersion = @$version.val() @_plan.removeUncraftableItems() @@ -71,6 +67,7 @@ module.exports = class ModController extends BaseController # Backbone.View Overrides ###################################################################### - events: - 'change .version': 'onVersionChanged' - 'click .name a': 'onNameClicked' + events: -> + return _.extend super, + 'change .version': 'onVersionChanged' + 'click a': 'routeLinkClick' diff --git a/src/scripts/controllers/mod_pack_controller.coffee b/src/scripts/controllers/mod_pack_controller.coffee index 7bc278e9a..82681f256 100644 --- a/src/scripts/controllers/mod_pack_controller.coffee +++ b/src/scripts/controllers/mod_pack_controller.coffee @@ -74,5 +74,6 @@ module.exports = class ModPackController extends BaseController # Backbone.View Overrides ###################################################################### - events: - 'click button[name="suggestMod"]': 'onSuggestModClicked' + events: -> + return _.extend super, + 'click button[name="suggestMod"]': 'onSuggestModClicked' diff --git a/src/scripts/controllers/recipe_step_controller.coffee b/src/scripts/controllers/recipe_step_controller.coffee index ab426397e..b0705fb7e 100644 --- a/src/scripts/controllers/recipe_step_controller.coffee +++ b/src/scripts/controllers/recipe_step_controller.coffee @@ -23,5 +23,3 @@ module.exports = class RecipeStepController extends BaseController @$slotImages = (@$slots.push $(el) for el in @$('.table-slot img')) @$output = @$('.output') super - - refresh: -> \ No newline at end of file diff --git a/src/scripts/crafting_guide_router.coffee b/src/scripts/crafting_guide_router.coffee index b01236d7c..27def7ba6 100644 --- a/src/scripts/crafting_guide_router.coffee +++ b/src/scripts/crafting_guide_router.coffee @@ -65,14 +65,14 @@ module.exports = class CraftingGuideRouter extends Backbone.Router @item params.recipeName, params.count item: (name, quantity=1)-> - @_pageControllers.item ?= new ItemPageController @_defaultOptions - @_pageControllers.item.model.params = name:name, quantity:quantity - @_setPage 'item' + controller = new ItemPageController @_defaultOptions + controller.model.params = name:name, quantity:quantity + @_setPage 'item', controller mod: (slug)-> - @_pageControllers.mod ?= new ModPageController @_defaultOptions - @_pageControllers.mod.model = @modPack.getMod slug - @_setPage 'mod' + controller = new ModPageController @_defaultOptions + controller.model = @modPack.getMod slug + @_setPage 'mod', controller # Private Methods ############################################################################## @@ -85,15 +85,14 @@ module.exports = class CraftingGuideRouter extends Backbone.Router else logger.info "Suppressing GA page view: #{pathname}" - _setPage: (controllerName)-> - controller = @_pageControllers[controllerName] - if not controller? then throw new Error "cannot find controller named: #{controllerName}" - return if @_page is controller + _setPage: (page, controller)-> + return if @_page is page - logger.info "changing to #{controllerName} page" + logger.info "changing to #{page} page" showDuration = Duration.normal show = => - @_page = controller + @_page = page + @_controller = controller controller.onWillShow() controller.render() @@ -105,8 +104,8 @@ module.exports = class CraftingGuideRouter extends Backbone.Router controller.$el.fadeIn showDuration, -> controller.onDidShow() - if @_mainController? + if @_controller? showDuration = Duration.fast - @_page.$el.fadeOut Duration.fast, show + @_controller.$el.fadeOut showDuration, show else show() diff --git a/src/scripts/main.coffee b/src/scripts/main.coffee index 7ebbbebbb..b750be542 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