From db31c3bd7e18b56a344c12c331e3abd0864b4295 Mon Sep 17 00:00:00 2001 From: Andrew Miner Date: Wed, 13 May 2015 17:52:15 -0700 Subject: [PATCH] Show waiting gif until mod data is loaded --- scripts/server | 2 +- src/coffee/crafting_guide_router.coffee | 5 +++++ src/coffee/main.coffee | 5 +++++ src/coffee/models/mod_pack.coffee | 7 ++++++- src/jade/app.jade | 3 ++- src/scss/classes.scss | 14 ++++++++++++++ 6 files changed, 33 insertions(+), 3 deletions(-) diff --git a/scripts/server b/scripts/server index 0cf68d9cd..e8391de81 100755 --- a/scripts/server +++ b/scripts/server @@ -40,7 +40,7 @@ serveIndex = (request, response)-> console.log ">>> #{request.path} ==> #{PRERENDER_ROOT}#{filePath}" response.sendFile filePath, root:PRERENDER_ROOT else - console.log ">>> #{request.path} ==> #{ROOT}app.html" + console.log ">>> #{request.path} ==> #{ROOT}/app.html" response.sendFile '/app.html', root:ROOT serveData = (request, response)-> diff --git a/src/coffee/crafting_guide_router.coffee b/src/coffee/crafting_guide_router.coffee index 3ce522a7b..ffdbe9501 100644 --- a/src/coffee/crafting_guide_router.coffee +++ b/src/coffee/crafting_guide_router.coffee @@ -69,6 +69,11 @@ module.exports = class CraftingGuideRouter extends backbone.Router @modPack.addMod mod + if global.env isnt 'prerender' + @modPack.once Event.sync, -> + $('.page').css 'max-height', '' + $('.page-loading').remove() + loadCurrentUser: -> @client.fetchCurrentUser() .then (response)=> diff --git a/src/coffee/main.coffee b/src/coffee/main.coffee index 2fa1591cf..09361a91a 100644 --- a/src/coffee/main.coffee +++ b/src/coffee/main.coffee @@ -26,6 +26,10 @@ if typeof(global) is 'undefined' global.logger = new Logger switch window.location.hostname + when 'prerender.crafting-guide.com' + global.env = 'prerender' + logger.level = Logger.FATAL + apiBaseUrl = 'http://local.crafting-guide.com:8001' when 'local.crafting-guide.com', 'localhost' global.env = 'local' logger.level = Logger.DEBUG @@ -61,4 +65,5 @@ global.router.loadDefaultModPack() backbone.history.start pushState:true client.checkStatus() + logger.info -> "CraftingGuide is ready" diff --git a/src/coffee/models/mod_pack.coffee b/src/coffee/models/mod_pack.coffee index 27ec4ab99..18875d22d 100644 --- a/src/coffee/models/mod_pack.coffee +++ b/src/coffee/models/mod_pack.coffee @@ -133,8 +133,13 @@ module.exports = class ModPack extends BaseModel _onModVersionLoaded: (modVersion)-> stillLoading = false + foundLoaded = false @eachMod (mod)-> mod.eachModVersion (modVersion)-> + foundLoaded = foundLoaded or modVersion.isLoaded stillLoading = stillLoading or modVersion.isLoading - @trigger Event.change, this if not stillLoading + return if not foundLoaded or stillLoading + + @trigger Event.change, this + @trigger Event.sync, this diff --git a/src/jade/app.jade b/src/jade/app.jade index 1500ad83c..e0920ac0d 100644 --- a/src/jade/app.jade +++ b/src/jade/app.jade @@ -22,7 +22,8 @@ html .content include ./includes/_header.jade - .page.hideable + .page.hideable(style="max-height: 0") + .page-loading: img(src="/images/wait.gif") include ./includes/_footer.jade block scripts diff --git a/src/scss/classes.scss b/src/scss/classes.scss index 40b57a9cd..036678a62 100644 --- a/src/scss/classes.scss +++ b/src/scss/classes.scss @@ -64,6 +64,20 @@ All rights reserved. vertical-align: top; } +.page { + overflow: hidden; +} + +.page-loading { + width: 100%; + + text-align: center; + + img { + margin: 5em auto; + } +} + .sidebar { position: relative; width: 18.75%; height: 100%;