Moke internal links use router
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
###
|
||||
Crafting Guide - header_controller.coffee
|
||||
|
||||
Copyright (c) 2015 by Redwood Labs
|
||||
All rights reserved.
|
||||
###
|
||||
|
||||
BaseController = require './base_controller'
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
module.exports = class HeaderController extends BaseController
|
||||
|
||||
constructor: (options={})->
|
||||
super options
|
||||
|
||||
# Event Methods ################################################################################
|
||||
|
||||
onLogoClicked: ->
|
||||
router.navigate '/', trigger:true
|
||||
return false
|
||||
|
||||
# BaseController Overrides #####################################################################
|
||||
|
||||
render: ->
|
||||
# Overriding render because the header is already part of the stock page layout, and we
|
||||
# don't need to replace it here.
|
||||
|
||||
# Backbone.View Overrides ######################################################################
|
||||
|
||||
events:
|
||||
'click a.logo': 'onLogoClicked'
|
||||
@@ -22,22 +22,17 @@ module.exports = class InventoryController extends BaseController
|
||||
if not options.model? then throw new Error 'options.model is required'
|
||||
if not options.modPack? then throw new Error 'options.modPack is required'
|
||||
|
||||
options.editable ?= true
|
||||
options.nameFinder ?= new NameFinder options.modPack
|
||||
options.icon ?= '/images/chest_front.png'
|
||||
options.imageLoader ?= new ImageLoader defaultUrl:'/images/unknown.png'
|
||||
options.title ?= 'Inventory'
|
||||
@editable = options.editable ?= true
|
||||
@icon = options.icon ?= '/images/chest_front.png'
|
||||
@imageLoader = options.imageLoader ?= new ImageLoader defaultUrl:'/images/unknown.png'
|
||||
@modPack = options.modPack
|
||||
@nameFinder = options.nameFinder ?= new NameFinder options.modPack
|
||||
@onChange = options.onChange ?= -> # do nothing
|
||||
@title = options.title ?= 'Inventory'
|
||||
|
||||
options.templateName = 'inventory'
|
||||
super options
|
||||
|
||||
@editable = options.editable
|
||||
@icon = options.icon
|
||||
@imageLoader = options.imageLoader
|
||||
@modPack = options.modPack
|
||||
@nameFinder = options.nameFinder
|
||||
@title = options.title
|
||||
|
||||
@_stackControllers = []
|
||||
|
||||
@listenTo @modPack, 'change', => @refresh()
|
||||
@@ -55,8 +50,11 @@ module.exports = class InventoryController extends BaseController
|
||||
@$scrollbox.scrollTop @$scrollbox.prop 'scrollHeight'
|
||||
@$nameField.autocomplete 'close'
|
||||
|
||||
@onChange()
|
||||
|
||||
onClearButtonClicked: ->
|
||||
@model.clear()
|
||||
@onChange()
|
||||
|
||||
onItemSelected: ->
|
||||
func = =>
|
||||
|
||||
@@ -5,8 +5,8 @@ Copyright (c) 2015 by Redwood Labs
|
||||
All rights reserved.
|
||||
###
|
||||
|
||||
BaseController = require './base_controller'
|
||||
{Url} = require '../constants'
|
||||
BaseController = require './base_controller'
|
||||
{Url} = require '../constants'
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
@@ -20,6 +20,12 @@ module.exports = class ItemController extends BaseController
|
||||
|
||||
@_modPack = options.modPack
|
||||
|
||||
# Event Methods ################################################################################
|
||||
|
||||
onLinkClicked: ->
|
||||
router.navigate @$nameLink.attr('href'), trigger:true
|
||||
return false
|
||||
|
||||
# BaseController Overrides #####################################################################
|
||||
|
||||
onDidRender: ->
|
||||
@@ -34,3 +40,8 @@ module.exports = class ItemController extends BaseController
|
||||
@$icon.attr 'src', Url.itemIcon display
|
||||
@$name.html display.itemName
|
||||
@$nameLink.attr 'href', Url.item display
|
||||
|
||||
# Backbone.View Overrides ######################################################################
|
||||
|
||||
events:
|
||||
'click a': 'onLinkClicked'
|
||||
|
||||
@@ -47,6 +47,7 @@ module.exports = class ItemPageController extends BaseController
|
||||
imageLoader: @_imageLoader
|
||||
model: @model.plan.want
|
||||
modPack: @model.modPack
|
||||
onChange: => @_updateLocation()
|
||||
title: 'Items you want'
|
||||
|
||||
@haveController = @addChild InventoryController, '.have',
|
||||
@@ -90,3 +91,13 @@ module.exports = class ItemPageController extends BaseController
|
||||
|
||||
events:
|
||||
'change .includeTools': 'onToolsBoxToggled'
|
||||
|
||||
# Private Methods ##############################################################################
|
||||
|
||||
_updateLocation: ->
|
||||
list = @model.plan.want.toList()
|
||||
if list.length is 1
|
||||
slug = if _.isArray(list[0]) then list[0][1] else list[0]
|
||||
router.navigate "/item/#{slug}"
|
||||
else
|
||||
router.navigate "/"
|
||||
|
||||
@@ -26,6 +26,10 @@ 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()
|
||||
@@ -60,7 +64,7 @@ module.exports = class ModController extends BaseController
|
||||
option.attr 'selected', 'selected'
|
||||
@$version.append option
|
||||
|
||||
@$nameLink.attr 'href', Url.mod modSlug:@model.slug
|
||||
@$nameLink.attr 'href', Url.mod(modSlug:@model.slug)
|
||||
@$nameText.html @model.name
|
||||
|
||||
@$description.html @model.description
|
||||
@@ -69,3 +73,4 @@ module.exports = class ModController extends BaseController
|
||||
|
||||
events:
|
||||
'change .version': 'onVersionChanged'
|
||||
'click .name a': 'onNameClicked'
|
||||
|
||||
@@ -34,9 +34,7 @@ module.exports = class ModPageController extends BaseController
|
||||
|
||||
onVersionChanged: ->
|
||||
version = @$versionSelector.val()
|
||||
logger.debug "new version: #{version}"
|
||||
modVersion = @model.getModVersion version
|
||||
logger.debug "new mod version: #{modVersion}"
|
||||
@_effectiveModVersion = modVersion
|
||||
if modVersion? then modVersion.fetch()
|
||||
@refresh()
|
||||
|
||||
Reference in New Issue
Block a user