From 0f73fc18a06e6126ee3a16efea45610a34e0adee Mon Sep 17 00:00:00 2001 From: Andrew Miner Date: Sat, 7 Feb 2015 12:37:44 -0800 Subject: [PATCH] Move all /item URLs to /crafting --- scripts/server | 9 ++-- .../{item_page.scss => crafting_page.scss} | 4 +- src/css/templates/index.scss | 2 +- src/scripts/constants.coffee | 13 +++--- ...coffee => crafting_page_controller.coffee} | 17 ++++--- src/scripts/crafting_guide_router.coffee | 44 ++++++++++--------- ...{item_page.coffee => crafting_page.coffee} | 4 +- src/scripts/models/mod.coffee | 2 +- .../{item_page.jade => crafting_page.jade} | 2 +- 9 files changed, 49 insertions(+), 48 deletions(-) rename src/css/templates/{item_page.scss => crafting_page.scss} (89%) rename src/scripts/controllers/{item_page_controller.coffee => crafting_page_controller.coffee} (90%) rename src/scripts/models/{item_page.coffee => crafting_page.coffee} (94%) rename src/templates/{item_page.jade => crafting_page.jade} (92%) diff --git a/scripts/server b/scripts/server index 1a2ad476b..9efd8feb1 100755 --- a/scripts/server +++ b/scripts/server @@ -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) diff --git a/src/css/templates/item_page.scss b/src/css/templates/crafting_page.scss similarity index 89% rename from src/css/templates/item_page.scss rename to src/css/templates/crafting_page.scss index 6aee8e1fe..4b86919e8 100644 --- a/src/css/templates/item_page.scss +++ b/src/css/templates/crafting_page.scss @@ -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; diff --git a/src/css/templates/index.scss b/src/css/templates/index.scss index 67ae54cad..e3984100e 100644 --- a/src/css/templates/index.scss +++ b/src/css/templates/index.scss @@ -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'; diff --git a/src/scripts/constants.coffee b/src/scripts/constants.coffee index 6dd3b2b10..5e6f3f1b3 100644 --- a/src/scripts/constants.coffee +++ b/src/scripts/constants.coffee @@ -53,12 +53,13 @@ ModelState.failed = 'failed' exports.Text = Text = {} Text.title = 'Crafting Guide for Minecraft | The Ultimate Step-by-Step Tutorial for Making Anything in Minecraft' -exports.Url = Url = {} -Url.itemIcon = _.template "/data/<%= modSlug %>/<%= modVersion %>/images/<%= slug %>.png" -Url.item = _.template "/item/<%= slug %>" -Url.mod = _.template "/mod/<%= modSlug %>" -Url.modData = _.template "/data/<%= modSlug %>/mod.cg" -Url.modVersion = _.template "/data/<%= modSlug %>/<%= modVersion %>/mod-version.cg" +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 %>" +Url.modData = _.template "/data/<%= modSlug %>/mod.cg" +Url.modVersion = _.template "/data/<%= modSlug %>/<%= modVersion %>/mod-version.cg" Url.modLogoImage = _.template "/data/<%= modSlug %>/logo.png" exports.UrlParam = UrlParam = {} diff --git a/src/scripts/controllers/item_page_controller.coffee b/src/scripts/controllers/crafting_page_controller.coffee similarity index 90% rename from src/scripts/controllers/item_page_controller.coffee rename to src/scripts/controllers/crafting_page_controller.coffee index e9a648431..0e151f8b5 100644 --- a/src/scripts/controllers/item_page_controller.coffee +++ b/src/scripts/controllers/crafting_page_controller.coffee @@ -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 diff --git a/src/scripts/crafting_guide_router.coffee b/src/scripts/crafting_guide_router.coffee index c87c1a426..47f8563d5 100644 --- a/src/scripts/crafting_guide_router.coffee +++ b/src/scripts/crafting_guide_router.coffee @@ -5,17 +5,18 @@ Copyright (c) 2014-2015 by Redwood Labs All rights reserved. ### -{DefaultMods} = require './constants' -{Duration} = require './constants' -{Event} = require './constants' -HeaderController = require './controllers/header_controller' -ItemPageController = require './controllers/item_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' +{DefaultMods} = require './constants' +{Duration} = require './constants' +{Event} = require './constants' +HeaderController = require './controllers/header_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' ######################################################################################################################## @@ -54,28 +55,29 @@ module.exports = class CraftingGuideRouter extends Backbone.Router @_recordPageView() routes: - '': 'root' - 'item/:name': 'item' - 'mod/:slug': 'mod' + '': 'root' + 'item/(:inventoryText)': 'crafting' + 'crafting/(:inventoryText)': 'crafting' + 'mod/:slug': 'mod' # Route Methods ################################################################################ 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 diff --git a/src/scripts/models/item_page.coffee b/src/scripts/models/crafting_page.coffee similarity index 94% rename from src/scripts/models/item_page.coffee rename to src/scripts/models/crafting_page.coffee index 92ea09ec1..2572e9fb1 100644 --- a/src/scripts/models/item_page.coffee +++ b/src/scripts/models/crafting_page.coffee @@ -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 diff --git a/src/scripts/models/mod.coffee b/src/scripts/models/mod.coffee index 6b7a2c1bd..c0976838e 100644 --- a/src/scripts/models/mod.coffee +++ b/src/scripts/models/mod.coffee @@ -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 diff --git a/src/templates/item_page.jade b/src/templates/crafting_page.jade similarity index 92% rename from src/templates/item_page.jade rename to src/templates/crafting_page.jade index cd4cf2d60..afa3f85d0 100644 --- a/src/templates/item_page.jade +++ b/src/templates/crafting_page.jade @@ -5,7 +5,7 @@ //- All rights reserved. //- -.view__item_page +.view__crafting_page .view__inventory.want .view__inventory.have .view__inventory.need