Initial effort to convert craft page to new models

This commit is contained in:
Andrew Miner
2017-07-01 18:06:11 -07:00
parent 997ff114b4
commit 20119cf8e4
20 changed files with 459 additions and 406 deletions
@@ -5,20 +5,21 @@
# All rights reserved.
#
BaseController = require '../../base_controller'
CraftingGridController = require '../crafting_grid/crafting_grid_controller'
SlotController = require '../slot/slot_controller'
{StringBuilder} = require('crafting-guide-common').util
BaseController = require "../../base_controller"
CraftingGridController = require "../crafting_grid/crafting_grid_controller"
ItemDisplay = require "../../../models/site/item_display"
SlotController = require "../slot/slot_controller"
{StringBuilder} = require("crafting-guide-common").util
########################################################################################################################
module.exports = class RecipeController extends BaseController
constructor: (options={})->
if not options.imageLoader? then throw new Error 'options.imageLoader is required'
if not options.modPack? then throw new Error 'options.modPack is required'
if not options.router? then throw new Error 'options.router is required'
options.templateName = 'common/recipe'
if not options.imageLoader? then throw new Error "options.imageLoader is required"
if not options.modPack? then throw new Error "options.modPack is required"
if not options.router? then throw new Error "options.router is required"
options.templateName = "common/recipe"
super options
@_imageLoader = options.imageLoader
@@ -29,26 +30,26 @@ module.exports = class RecipeController extends BaseController
# BaseController Overrides #####################################################################
onDidRender: ->
@_gridController = @addChild CraftingGridController, '.view__crafting_grid',
@_gridController = @addChild CraftingGridController, ".view__crafting_grid",
modPack: @_modPack
imageLoader: @_imageLoader
router: @_router
@_outputSlotController = @addChild SlotController, '.output .view__slot',
@_outputSlotController = @addChild SlotController, ".output .view__slot",
imageLoader: @_imageLoader
modPack: @_modPack
router: @_router
@$multiplier = @$('.multiplier')
@$outputImg = @$('.output img')
@$outputLink = @$('.output a')
@$outputQuantity = @$('.quantity')
@$toolContainer = @$('.tool')
@$multiplier = @$(".multiplier")
@$outputImg = @$(".output img")
@$outputLink = @$(".output a")
@$outputQuantity = @$(".quantity")
@$toolContainer = @$(".tool")
super
refresh: ->
@_gridController.model = @model
@_outputSlotController.model = @model?.output?[0]
@_outputSlotController.model = @model?.output
@_refreshMultiplier()
@_refreshTools()
@@ -69,14 +70,14 @@ module.exports = class RecipeController extends BaseController
@_multiplier = newMultiplier
@_refreshMultiplier()
@trigger Event.change + ':multiplier', this, oldMultiplier, newMultiplier
@trigger Event.change + ":multiplier", this, oldMultiplier, newMultiplier
@trigger Event.change, this
# Backbone.View Methods ########################################################################
events: ->
return _.extend super,
'click a': 'routeLinkClick'
"click a": "routeLinkClick"
# Private Methods ##############################################################################
@@ -84,14 +85,15 @@ module.exports = class RecipeController extends BaseController
if @multiplier > 1
@$multiplier.html "x#{@multiplier}"
else
@$multiplier.html ''
@$multiplier.html ""
_refreshTools: ->
@$toolContainer.empty()
return unless @model?
builder = new StringBuilder
builder.loop @model.tools, delimiter:', ', onEach:(b, stack)=>
display = @_modPack.findItemDisplay stack.itemSlug
b.push "<a href=\"#{display.itemUrl}\">#{display.itemName}</a>"
@$toolContainer.html builder.toString()
toolLinks = []
for itemId, item of @model.tools
display = new ItemDisplay item
toolLinks.push "<a href=\"#{display.url}\">#{display.name}</a>"
@$toolContainer.html toolLinks.join ", "