From 05d2e8b3a4672d791ab9ba351aa2204c1439e163 Mon Sep 17 00:00:00 2001 From: Andrew Miner Date: Sat, 28 Feb 2015 21:14:00 -0800 Subject: [PATCH] Add initial version of configure page --- src/css/classes.scss | 6 ++---- src/css/templates/craft_page.scss | 6 ++---- src/css/templates/item.scss | 3 +++ src/css/templates/item_page.scss | 8 ++------ src/css/templates/mod_page.scss | 5 ++++- src/css/views.scss | 9 +++++++++ .../controllers/configure_page_controller.coffee | 14 +++++++++++++- .../controllers/craft_page_controller.coffee | 5 ----- src/scripts/controllers/header_controller.coffee | 9 +++++++-- src/scripts/controllers/mod_controller.coffee | 4 ---- src/scripts/controllers/mod_pack_controller.coffee | 6 ++---- src/templates/configure_page.jade | 6 +++++- src/templates/craft_page.jade | 2 -- src/templates/item_page.jade | 4 ++-- src/templates/mod_page.jade | 8 ++++---- 15 files changed, 55 insertions(+), 40 deletions(-) diff --git a/src/css/classes.scss b/src/css/classes.scss index 64c06cfa4..4ad3695ce 100644 --- a/src/css/classes.scss +++ b/src/css/classes.scss @@ -30,13 +30,11 @@ All rights reserved. vertical-align: top; .titleImage { - position: relative; height: 16em; width: 16em; margin-bottom: 2em; a { - position: relative; width: 100%; - img { + position: relative; width: 16em; min-height: 16em; @include pixel-image; } } @@ -44,7 +42,7 @@ All rights reserved. .externalLink { position: relative; width: 80%; - margin: 0 10%; + margin: 0.5em 10%; display: none; p { diff --git a/src/css/templates/craft_page.scss b/src/css/templates/craft_page.scss index a1d7caf9d..c0516e680 100644 --- a/src/css/templates/craft_page.scss +++ b/src/css/templates/craft_page.scss @@ -15,11 +15,9 @@ All rights reserved. vertical-align: top; } - .view__inventory { width: 50%; height: 26em; } + .view__inventory { width: 50%; height: 30em; } - .view__crafting_table { width: 50%; height: 26em; } - - .view__mod_pack { margin-top: 2em; width: 100%; } + .view__crafting_table { width: 50%; height: 30em; } .want label { position: absolute; top: 50%; left: 0.5em; diff --git a/src/css/templates/item.scss b/src/css/templates/item.scss index dcd6130ae..6a7202154 100644 --- a/src/css/templates/item.scss +++ b/src/css/templates/item.scss @@ -6,6 +6,9 @@ All rights reserved. */ .view__item { + display: inline-block; + padding: 0.5em; + a { text-decoration: none; width: 100%; diff --git a/src/css/templates/item_page.scss b/src/css/templates/item_page.scss index c72bac015..cfb35e203 100644 --- a/src/css/templates/item_page.scss +++ b/src/css/templates/item_page.scss @@ -62,11 +62,7 @@ All rights reserved. } } - .panel { - & > div { - position: relative; width: 33%; - display: inline-block; - padding: 0.5em; - } + .view__item { + position: relative; width: 33%; } } diff --git a/src/css/templates/mod_page.scss b/src/css/templates/mod_page.scss index c7e17e46e..b29173afb 100644 --- a/src/css/templates/mod_page.scss +++ b/src/css/templates/mod_page.scss @@ -14,7 +14,6 @@ All rights reserved. } .sidebar { - .version { position: relative; width: 80%; margin: 0 10%; @@ -49,4 +48,8 @@ All rights reserved. } } } + + .view__item { + position: relative; width: 33%; + } } diff --git a/src/css/views.scss b/src/css/views.scss index 0181852f5..f5e157e16 100644 --- a/src/css/views.scss +++ b/src/css/views.scss @@ -88,6 +88,15 @@ All rights reserved. } } + .dot { + position: absolute; top: 50%; right: 1em; height: 1.5em; width: 1.5em; + @include transform(translateY(-50%)); + + background: $color-active; + border-radius: 0.75em; + opacity: 0; + } + p { position: absolute; top: 50%; left: 50%; width: 100%; @include transform(translateX(-50%) translateY(-50%)); diff --git a/src/scripts/controllers/configure_page_controller.coffee b/src/scripts/controllers/configure_page_controller.coffee index 984faa617..16068210a 100644 --- a/src/scripts/controllers/configure_page_controller.coffee +++ b/src/scripts/controllers/configure_page_controller.coffee @@ -6,11 +6,23 @@ All rights reserved. ### BaseController = require './base_controller' +ModPackController = require './mod_pack_controller' ######################################################################################################################## module.exports = class ConfigurePageController extends BaseController constructor: (options={})-> - options.templateName = 'configure_page' + if not options.modPack? then throw new Error 'options.modPack is required' + if not options.storage? then throw new Error 'options.storage is required' + options.templateName = 'configure_page' super options + + @modPack = options.modPack + @storage = options.storage + + # BaseController Overrides ##################################################################### + + onDidRender: -> + @modPackController = @addChild ModPackController, '.view__mod_pack', model:@modPack, storage:@storage + super diff --git a/src/scripts/controllers/craft_page_controller.coffee b/src/scripts/controllers/craft_page_controller.coffee index a06dd1a10..620e6dfaf 100644 --- a/src/scripts/controllers/craft_page_controller.coffee +++ b/src/scripts/controllers/craft_page_controller.coffee @@ -78,11 +78,6 @@ module.exports = class CraftPageController extends BaseController model: @model.table modPack: @model.modPack - @modPackController = @addChild ModPackController, '.view__mod_pack', - model: @model.modPack - plan: @model.plan - storage: @_storage - @$('.want .toolbar').append '' @$includeToolsBox = @$('.includeTools') diff --git a/src/scripts/controllers/header_controller.coffee b/src/scripts/controllers/header_controller.coffee index 591262bec..fa372ed5b 100644 --- a/src/scripts/controllers/header_controller.coffee +++ b/src/scripts/controllers/header_controller.coffee @@ -41,12 +41,17 @@ module.exports = class HeaderController extends BaseController refresh: -> for $navLink in @$navLinks - logger.debug "@model: #{@model}, page: #{$navLink.data('page')}" - if $navLink.data('page') is @model + linkPage = $navLink.data('page') + if @model is linkPage $navLink.addClass 'selected' else $navLink.removeClass 'selected' + if @model.indexOf(linkPage) isnt -1 + $navLink.find('.dot').css 'opacity': 1; + else + $navLink.find('.dot').css 'opacity': 0; + # Backbone.View Overrides ###################################################################### events: -> diff --git a/src/scripts/controllers/mod_controller.coffee b/src/scripts/controllers/mod_controller.coffee index 1bd763666..1ae25ca94 100644 --- a/src/scripts/controllers/mod_controller.coffee +++ b/src/scripts/controllers/mod_controller.coffee @@ -17,19 +17,15 @@ module.exports = class ModController extends BaseController constructor: (options={})-> if not options.model? then throw new Error 'options.model is required' - if not options.plan? then throw new Error 'options.plan is required' options.templateName = 'mod' super options - @_plan = options.plan @_storage = options.storage # Event Methods ################################################################################ onVersionChanged: -> @model.activeVersion = @$version.val() - @_plan.removeUncraftableItems() - @_plan.craft() # BaseController Overrides ##################################################################### diff --git a/src/scripts/controllers/mod_pack_controller.coffee b/src/scripts/controllers/mod_pack_controller.coffee index 82681f256..bf04ada89 100644 --- a/src/scripts/controllers/mod_pack_controller.coffee +++ b/src/scripts/controllers/mod_pack_controller.coffee @@ -17,13 +17,11 @@ module.exports = class ModPackController extends BaseController constructor: (options={})-> if not options.model? then throw new Error 'options.model is required' - if not options.plan? then throw new Error 'options.plan is required' options.templateName = 'mod_pack' super options @_controllers = [] - @_plan = options.plan - @_storage = options.storage + @storage = options.storage # Event Methods ################################################################################ @@ -52,7 +50,7 @@ module.exports = class ModPackController extends BaseController index++ while @_controllers.length < mods.length - controller = new ModController model:mods[index], plan:@_plan, storage:@_storage + controller = new ModController model:mods[index], storage:@storage controller.render() @_controllers.push controller controller.$el.hide duration:0 diff --git a/src/templates/configure_page.jade b/src/templates/configure_page.jade index 94389c464..3090cbdfd 100644 --- a/src/templates/configure_page.jade +++ b/src/templates/configure_page.jade @@ -5,4 +5,8 @@ //- All rights reserved. //- -h1 Configure \ No newline at end of file +.view__configure_page + .sidebar + + .mainBody + .view__mod_pack diff --git a/src/templates/craft_page.jade b/src/templates/craft_page.jade index 105fd9e85..782e0e77a 100644 --- a/src/templates/craft_page.jade +++ b/src/templates/craft_page.jade @@ -11,5 +11,3 @@ .view__inventory.need .view__crafting_table - - .view__mod_pack diff --git a/src/templates/item_page.jade b/src/templates/item_page.jade index 2002dd9f3..17c3d8ab8 100644 --- a/src/templates/item_page.jade +++ b/src/templates/item_page.jade @@ -7,8 +7,8 @@ .view__item_page .sidebar - .titleImage: img - a.craftingPlan: p Full Crafting Plan + .titleImage: a: img + a.craftingPlan.externalLink: p Full Crafting Plan .mainBody h1.name diff --git a/src/templates/mod_page.jade b/src/templates/mod_page.jade index c169259ea..a9baff0e8 100644 --- a/src/templates/mod_page.jade +++ b/src/templates/mod_page.jade @@ -7,11 +7,11 @@ .view__mod_page .sidebar - .titleImage: img + .titleImage: a: img select.version - a.homePage(target="new"): p Offical Home Page - a.documentation(target="new"): p Documentation - a.download(target="new"): p Download + a.homePage.externalLink(target="new"): p Offical Home Page + a.documentation.externalLink(target="new"): p Documentation + a.download.externalLink(target="new"): p Download .mainBody h1.name