From 650ef1b581c5c294b305991f1681592f23c540c6 Mon Sep 17 00:00:00 2001 From: Andrew Miner Date: Tue, 20 Jan 2015 16:14:19 -0800 Subject: [PATCH] Fix ModPageController to load progressively --- src/css/templates/crafting_grid.scss | 1 + .../controllers/mod_page_controller.coffee | 27 ++++++++++++++----- src/scripts/models/base_model.coffee | 3 ++- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/css/templates/crafting_grid.scss b/src/css/templates/crafting_grid.scss index c55477c44..c4f0b5289 100644 --- a/src/css/templates/crafting_grid.scss +++ b/src/css/templates/crafting_grid.scss @@ -13,6 +13,7 @@ All rights reserved. } td { + height: 4.8em; width: 4.8em; background: $color-gray-faint; border: 0.1em solid $color-gray-light; padding: 0.1em; diff --git a/src/scripts/controllers/mod_page_controller.coffee b/src/scripts/controllers/mod_page_controller.coffee index 54877092e..8f7a55b4c 100644 --- a/src/scripts/controllers/mod_page_controller.coffee +++ b/src/scripts/controllers/mod_page_controller.coffee @@ -16,11 +16,13 @@ module.exports = class ModPageController extends BaseController constructor: (options={})-> if not options.modPack? then throw new Error 'options.modPack is required' + options.delayStep ?= 100 options.templateName = 'mod_page' super options @_modPack = options.modPack @_recipeControllers = [] + @_delayStep = options.delayStep # BaseController Overrides ##################################################################### @@ -33,17 +35,19 @@ module.exports = class ModPageController extends BaseController @$title.html if @model? then @model.name else '' controllerIndex = 0 + delay = 0 if @model?.activeModVersion?.isLoaded @$recipes.show duration:Duration.fast @model.eachItem (item)=> + recipe = item.getPrimaryRecipe() + return if not recipe + controller = @_recipeControllers[controllerIndex] if not controller? - controller = new RecipeController modPack:@_modPack - controller.render() - @_recipeControllers.push controller - @$recipes.append controller.$el - - controller.model = item.getPrimaryRecipe() + _.delay (=> @_createRecipeController recipe), delay + delay += @_delayStep + else + controller.model = recipe controllerIndex += 1 else @$recipes.hide duration:Duration.fast @@ -53,3 +57,14 @@ module.exports = class ModPageController extends BaseController controller.$el.slideUp duration:Duration.fast, complete:-> @remove() super + + # Private Methods ############################################################################## + + _createRecipeController: (recipe)-> + controller = new RecipeController model:recipe, modPack:@_modPack + controller.$el.hide() + controller.render() + + @_recipeControllers.push controller + @$recipes.append controller.$el + controller.$el.slideDown duration:Duration.fast diff --git a/src/scripts/models/base_model.coffee b/src/scripts/models/base_model.coffee index fa95d859a..562c15307 100644 --- a/src/scripts/models/base_model.coffee +++ b/src/scripts/models/base_model.coffee @@ -81,7 +81,8 @@ module.exports = class BaseModel extends Backbone.Model trigger: (name, model, args...)-> if @logEvents - logger.trace "#{@constructor.name}.#{@cid} triggered event #{name} with args: #{args}" + argText = ("#{arg}"[0..50] for arg in args).join ", " + logger.trace "#{@constructor.name}.#{@cid} triggered event #{name} with args: #{argText}" super # Object Overrides #############################################################################