Moke internal links use router
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
@@ -3,6 +3,6 @@ schema: 1
|
|||||||
name: Applied Energistics 2
|
name: Applied Energistics 2
|
||||||
author: AlgorithmX2
|
author: AlgorithmX2
|
||||||
description: A technical mod which adds an advanced, computer-based storage system
|
description: A technical mod which adds an advanced, computer-based storage system
|
||||||
homePageUrl: http://www.mod-buildcraft.com
|
homePageUrl: http://ae-mod.info/
|
||||||
|
|
||||||
version: rv1-stable-1
|
version: rv1-stable-1
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
.view__header
|
.view__header
|
||||||
h1
|
h1
|
||||||
a(href="/")
|
a.logo(href="/")
|
||||||
img(src="/images/workbench_front.png")
|
img(src="/images/workbench_front.png")
|
||||||
p Crafting Guide
|
p Crafting Guide
|
||||||
.divider.bottom
|
.divider.bottom
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ html
|
|||||||
head
|
head
|
||||||
title= pageTitle
|
title= pageTitle
|
||||||
meta(charset="UTF-8")
|
meta(charset="UTF-8")
|
||||||
|
link(href="/images/favicon.png", rel="icon", type="image/png")
|
||||||
|
|
||||||
block styles
|
block styles
|
||||||
link(rel="stylesheet", type="text/css", href="/css/main.css")
|
link(rel="stylesheet", type="text/css", href="/css/main.css")
|
||||||
|
|||||||
@@ -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.model? then throw new Error 'options.model is required'
|
||||||
if not options.modPack? then throw new Error 'options.modPack is required'
|
if not options.modPack? then throw new Error 'options.modPack is required'
|
||||||
|
|
||||||
options.editable ?= true
|
@editable = options.editable ?= true
|
||||||
options.nameFinder ?= new NameFinder options.modPack
|
@icon = options.icon ?= '/images/chest_front.png'
|
||||||
options.icon ?= '/images/chest_front.png'
|
@imageLoader = options.imageLoader ?= new ImageLoader defaultUrl:'/images/unknown.png'
|
||||||
options.imageLoader ?= new ImageLoader defaultUrl:'/images/unknown.png'
|
@modPack = options.modPack
|
||||||
options.title ?= 'Inventory'
|
@nameFinder = options.nameFinder ?= new NameFinder options.modPack
|
||||||
|
@onChange = options.onChange ?= -> # do nothing
|
||||||
|
@title = options.title ?= 'Inventory'
|
||||||
|
|
||||||
options.templateName = 'inventory'
|
options.templateName = 'inventory'
|
||||||
super options
|
super options
|
||||||
|
|
||||||
@editable = options.editable
|
|
||||||
@icon = options.icon
|
|
||||||
@imageLoader = options.imageLoader
|
|
||||||
@modPack = options.modPack
|
|
||||||
@nameFinder = options.nameFinder
|
|
||||||
@title = options.title
|
|
||||||
|
|
||||||
@_stackControllers = []
|
@_stackControllers = []
|
||||||
|
|
||||||
@listenTo @modPack, 'change', => @refresh()
|
@listenTo @modPack, 'change', => @refresh()
|
||||||
@@ -55,8 +50,11 @@ module.exports = class InventoryController extends BaseController
|
|||||||
@$scrollbox.scrollTop @$scrollbox.prop 'scrollHeight'
|
@$scrollbox.scrollTop @$scrollbox.prop 'scrollHeight'
|
||||||
@$nameField.autocomplete 'close'
|
@$nameField.autocomplete 'close'
|
||||||
|
|
||||||
|
@onChange()
|
||||||
|
|
||||||
onClearButtonClicked: ->
|
onClearButtonClicked: ->
|
||||||
@model.clear()
|
@model.clear()
|
||||||
|
@onChange()
|
||||||
|
|
||||||
onItemSelected: ->
|
onItemSelected: ->
|
||||||
func = =>
|
func = =>
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ Copyright (c) 2015 by Redwood Labs
|
|||||||
All rights reserved.
|
All rights reserved.
|
||||||
###
|
###
|
||||||
|
|
||||||
BaseController = require './base_controller'
|
BaseController = require './base_controller'
|
||||||
{Url} = require '../constants'
|
{Url} = require '../constants'
|
||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
|
|
||||||
@@ -20,6 +20,12 @@ module.exports = class ItemController extends BaseController
|
|||||||
|
|
||||||
@_modPack = options.modPack
|
@_modPack = options.modPack
|
||||||
|
|
||||||
|
# Event Methods ################################################################################
|
||||||
|
|
||||||
|
onLinkClicked: ->
|
||||||
|
router.navigate @$nameLink.attr('href'), trigger:true
|
||||||
|
return false
|
||||||
|
|
||||||
# BaseController Overrides #####################################################################
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
onDidRender: ->
|
onDidRender: ->
|
||||||
@@ -34,3 +40,8 @@ module.exports = class ItemController extends BaseController
|
|||||||
@$icon.attr 'src', Url.itemIcon display
|
@$icon.attr 'src', Url.itemIcon display
|
||||||
@$name.html display.itemName
|
@$name.html display.itemName
|
||||||
@$nameLink.attr 'href', Url.item display
|
@$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
|
imageLoader: @_imageLoader
|
||||||
model: @model.plan.want
|
model: @model.plan.want
|
||||||
modPack: @model.modPack
|
modPack: @model.modPack
|
||||||
|
onChange: => @_updateLocation()
|
||||||
title: 'Items you want'
|
title: 'Items you want'
|
||||||
|
|
||||||
@haveController = @addChild InventoryController, '.have',
|
@haveController = @addChild InventoryController, '.have',
|
||||||
@@ -90,3 +91,13 @@ module.exports = class ItemPageController extends BaseController
|
|||||||
|
|
||||||
events:
|
events:
|
||||||
'change .includeTools': 'onToolsBoxToggled'
|
'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 ################################################################################
|
# Event Methods ################################################################################
|
||||||
|
|
||||||
|
onNameClicked: (event)->
|
||||||
|
router.navigate @$nameLink.attr('href'), trigger:true
|
||||||
|
return false
|
||||||
|
|
||||||
onVersionChanged: ->
|
onVersionChanged: ->
|
||||||
@model.activeVersion = @$version.val()
|
@model.activeVersion = @$version.val()
|
||||||
@_plan.removeUncraftableItems()
|
@_plan.removeUncraftableItems()
|
||||||
@@ -60,7 +64,7 @@ module.exports = class ModController extends BaseController
|
|||||||
option.attr 'selected', 'selected'
|
option.attr 'selected', 'selected'
|
||||||
@$version.append option
|
@$version.append option
|
||||||
|
|
||||||
@$nameLink.attr 'href', Url.mod modSlug:@model.slug
|
@$nameLink.attr 'href', Url.mod(modSlug:@model.slug)
|
||||||
@$nameText.html @model.name
|
@$nameText.html @model.name
|
||||||
|
|
||||||
@$description.html @model.description
|
@$description.html @model.description
|
||||||
@@ -69,3 +73,4 @@ module.exports = class ModController extends BaseController
|
|||||||
|
|
||||||
events:
|
events:
|
||||||
'change .version': 'onVersionChanged'
|
'change .version': 'onVersionChanged'
|
||||||
|
'click .name a': 'onNameClicked'
|
||||||
|
|||||||
@@ -34,9 +34,7 @@ module.exports = class ModPageController extends BaseController
|
|||||||
|
|
||||||
onVersionChanged: ->
|
onVersionChanged: ->
|
||||||
version = @$versionSelector.val()
|
version = @$versionSelector.val()
|
||||||
logger.debug "new version: #{version}"
|
|
||||||
modVersion = @model.getModVersion version
|
modVersion = @model.getModVersion version
|
||||||
logger.debug "new mod version: #{modVersion}"
|
|
||||||
@_effectiveModVersion = modVersion
|
@_effectiveModVersion = modVersion
|
||||||
if modVersion? then modVersion.fetch()
|
if modVersion? then modVersion.fetch()
|
||||||
@refresh()
|
@refresh()
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ All rights reserved.
|
|||||||
{DefaultMods} = require './constants'
|
{DefaultMods} = require './constants'
|
||||||
{Duration} = require './constants'
|
{Duration} = require './constants'
|
||||||
{Event} = require './constants'
|
{Event} = require './constants'
|
||||||
|
HeaderController = require './controllers/header_controller'
|
||||||
ItemPageController = require './controllers/item_page_controller'
|
ItemPageController = require './controllers/item_page_controller'
|
||||||
Mod = require './models/mod'
|
Mod = require './models/mod'
|
||||||
ModPack = require './models/mod_pack'
|
ModPack = require './models/mod_pack'
|
||||||
@@ -30,6 +31,8 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
|
|||||||
@storage = new Storage storage:window.localStorage
|
@storage = new Storage storage:window.localStorage
|
||||||
@_defaultOptions = modPack:@modPack, storage:@storage
|
@_defaultOptions = modPack:@modPack, storage:@storage
|
||||||
|
|
||||||
|
@headerController = new HeaderController el:'.view__header'
|
||||||
|
|
||||||
# Public Methods ###############################################################################
|
# Public Methods ###############################################################################
|
||||||
|
|
||||||
loadDefaultModPack: ->
|
loadDefaultModPack: ->
|
||||||
@@ -51,9 +54,9 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
|
|||||||
@_recordPageView()
|
@_recordPageView()
|
||||||
|
|
||||||
routes:
|
routes:
|
||||||
'': 'root'
|
'': 'root'
|
||||||
'item(/:name)': 'item'
|
'item/:name': 'item'
|
||||||
'mod/:slug': 'mod'
|
'mod/:slug': 'mod'
|
||||||
|
|
||||||
# Route Methods ################################################################################
|
# Route Methods ################################################################################
|
||||||
|
|
||||||
@@ -75,8 +78,6 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
|
|||||||
|
|
||||||
_recordPageView: ->
|
_recordPageView: ->
|
||||||
pathname = window.location.pathname
|
pathname = window.location.pathname
|
||||||
return if @_lastReported is pathname
|
|
||||||
@_lastReported = pathname
|
|
||||||
|
|
||||||
if global.env is 'production' and ga?
|
if global.env is 'production' and ga?
|
||||||
logger.info "Recording GA page view: #{pathname}"
|
logger.info "Recording GA page view: #{pathname}"
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ global.logger = new Logger
|
|||||||
switch window.location.hostname
|
switch window.location.hostname
|
||||||
when 'localhost'
|
when 'localhost'
|
||||||
global.env = 'development'
|
global.env = 'development'
|
||||||
logger.level = Logger.DEBUG
|
logger.level = Logger.INFO
|
||||||
when 'new.crafting-guide.com'
|
when 'new.crafting-guide.com'
|
||||||
global.env = 'staging'
|
global.env = 'staging'
|
||||||
logger.level = Logger.VERBOSE
|
logger.level = Logger.VERBOSE
|
||||||
|
|||||||
@@ -23,25 +23,21 @@ module.exports = class ItemPage extends BaseModel
|
|||||||
super attributes, options
|
super attributes, options
|
||||||
|
|
||||||
@modPack.on Event.change, => @_consumeParams()
|
@modPack.on Event.change, => @_consumeParams()
|
||||||
@plan.on Event.change, => @_updateLocation()
|
@on Event.change + ':params', => @_consumeParams()
|
||||||
|
|
||||||
# Private Methods ##############################################################################
|
# Private Methods ##############################################################################
|
||||||
|
|
||||||
_consumeParams: ->
|
_consumeParams: ->
|
||||||
return unless @params?.name?
|
return unless @params?
|
||||||
|
|
||||||
item = @modPack.findItemByName @params.name
|
if not @params?.name?
|
||||||
return unless item? and item.isCraftable
|
@plan.want.clear()
|
||||||
|
@params = null
|
||||||
quantity = if @params.quantity? then parseInt(@params.quantity) else 1
|
|
||||||
@plan.want.add item.slug, quantity
|
|
||||||
|
|
||||||
@params = null
|
|
||||||
|
|
||||||
_updateLocation: ->
|
|
||||||
list = @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
|
else
|
||||||
router.navigate "/"
|
item = @modPack.findItemByName @params.name
|
||||||
|
return unless item? and item.isCraftable
|
||||||
|
|
||||||
|
quantity = if @params.quantity? then parseInt(@params.quantity) else 1
|
||||||
|
@plan.want.add item.slug, quantity
|
||||||
|
|
||||||
|
@params = null
|
||||||
|
|||||||
Reference in New Issue
Block a user