Move all /item URLs to /crafting

This commit is contained in:
Andrew Miner
2015-02-07 12:37:44 -08:00
parent 4c5d1256bc
commit 0f73fc18a0
9 changed files with 49 additions and 48 deletions
+4 -5
View File
@@ -17,15 +17,14 @@ ROOT = './dist/'
app = express()
app.get '/item(/*)?', (request, response)->
serveIndex = (request, response)->
console.log ">>> index.html (for #{request.path})"
response.set 'Content-Type', 'text/html'
response.sendFile 'index.html', root:ROOT
app.get '/mod(/*)?', (request, response)->
console.log ">>> index.html (for #{request.path})"
response.set 'Content-Type', 'text/html'
response.sendFile 'index.html', root:ROOT
app.get '/crafting(/*)?', serveIndex
app.get '/item(/*)?', serveIndex
app.get '/mod(/*)?', serveIndex
app.get '*', (request, response)->
extension = path.extname(request.path)
@@ -1,11 +1,11 @@
/*
Crafting Guide - item_page.scss
Crafting Guide - crafting_page.scss
Copyright (c) 2014-2015 by Redwood Labs
All rights reserved.
*/
.view__item_page {
.view__crafting_page {
& > div {
display: inline-block;
+1 -1
View File
@@ -10,7 +10,7 @@ All rights reserved.
@import 'feedback';
@import 'inventory';
@import 'item';
@import 'item_page';
@import 'crafting_page';
@import 'mod';
@import 'mod_pack';
@import 'mod_page';
+1
View File
@@ -54,6 +54,7 @@ exports.Text = Text = {}
Text.title = 'Crafting Guide for Minecraft | The Ultimate Step-by-Step Tutorial for Making Anything in Minecraft'
exports.Url = Url = {}
Url.crafting = _.template "/crafting/<%= inventoryText %>"
Url.itemIcon = _.template "/data/<%= modSlug %>/<%= modVersion %>/images/<%= slug %>.png"
Url.item = _.template "/item/<%= slug %>"
Url.mod = _.template "/mod/<%= modSlug %>"
@@ -1,5 +1,5 @@
###
Crafting Guide - item_page_controller.coffee
Crafting Guide - crafting_page_controller.coffee
Copyright (c) 2014-2015 by Redwood Labs
All rights reserved.
@@ -11,21 +11,22 @@ CraftingTableController = require './crafting_table_controller'
ImageLoader = require './image_loader'
InventoryController = require './inventory_controller'
InventoryParser = require '../models/inventory_parser'
ItemPage = require '../models/item_page'
CraftingPage = require '../models/crafting_page'
ModPackController = require './mod_pack_controller'
NameFinder = require '../models/name_finder'
Storage = require '../models/storage'
{Text} = require '../constants'
{Url} = require '../constants'
########################################################################################################################
module.exports = class ItemPageController extends BaseController
module.exports = class CraftingPageController extends BaseController
constructor: (options={})->
options.model ?= new ItemPage modPack:options.modPack
options.model ?= new CraftingPage modPack:options.modPack
options.imageLoader ?= new ImageLoader defaultUrl:'/images/unknown.png'
options.storage ?= new Storage storage:window.localStorage
options.templateName = 'item_page'
options.templateName = 'crafting_page'
super options
@_imageLoader = options.imageLoader
@@ -107,7 +108,5 @@ module.exports = class ItemPageController extends BaseController
_updateLocation: ->
text = @_parser.unparse @model.plan.want
if @model.plan.want.isEmpty
router.navigate '/'
else
router.navigate "/item/#{text}"
url = Url.crafting inventoryText:text
router.navigate url
+11 -9
View File
@@ -9,13 +9,14 @@ All rights reserved.
{Duration} = require './constants'
{Event} = require './constants'
HeaderController = require './controllers/header_controller'
ItemPageController = require './controllers/item_page_controller'
CraftingPageController = require './controllers/crafting_page_controller'
Mod = require './models/mod'
ModPack = require './models/mod_pack'
ModPageController = require './controllers/mod_page_controller'
{Opacity} = require './constants'
Storage = require './models/storage'
UrlParams = require './url_params'
{Url} = require './constants'
########################################################################################################################
@@ -55,7 +56,8 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
routes:
'': 'root'
'item/:name': 'item'
'item/(:inventoryText)': 'crafting'
'crafting/(:inventoryText)': 'crafting'
'mod/:slug': 'mod'
# Route Methods ################################################################################
@@ -63,19 +65,19 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
root: ->
params = new UrlParams recipeName:{type:'string'}, count:{type:'integer'}
arg = null
text = ''
if params.recipeName?
if params.count?
arg = "#{params.count}:#{params.recipeName}"
text = "#{params.count}:#{params.recipeName}"
else
arg = "#{params.recipeName}"
text = "#{params.recipeName}"
@item arg
@navigate Url.crafting(inventoryText:text), trigger:true
item: (inventoryText)->
controller = new ItemPageController @_defaultOptions
crafting: (inventoryText)->
controller = new CraftingPageController @_defaultOptions
controller.model.params = inventoryText:inventoryText
@_setPage 'item', controller
@_setPage 'crafting', controller
mod: (slug)->
controller = new ModPageController @_defaultOptions
@@ -1,5 +1,5 @@
###
Crafting Guide - item_page.coffee
Crafting Guide - crafting_page.coffee
Copyright (c) 2014-2015 by Redwood Labs
All rights reserved.
@@ -14,7 +14,7 @@ ModPack = require './mod_pack'
########################################################################################################################
module.exports = class ItemPage extends BaseModel
module.exports = class extends BaseModel
constructor: (attributes={}, options={})->
attributes.modPack ?= new ModPack
+1 -1
View File
@@ -169,7 +169,7 @@ module.exports = class Mod extends BaseModel
@_activeModVersion = modVersion
@trigger Event.change + ':activeModVersion', this, @_activeModVersion
logger.verbose "#{@name} switched to version #{@_activeVersion}"
logger.verbose "#{@slug} switched to version #{@_activeVersion}"
if @_activeModVersion?
@listenTo @_activeModVersion, 'all', -> @trigger.apply this, arguments
@@ -5,7 +5,7 @@
//- All rights reserved.
//-
.view__item_page
.view__crafting_page
.view__inventory.want
.view__inventory.have
.view__inventory.need