Initial effort to convert craft page to new models
This commit is contained in:
@@ -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 ", "
|
||||
|
||||
Reference in New Issue
Block a user