add polyfills for es6-promise and fetch for those browsers that don't support them

closes #2
This commit is contained in:
Paul Rodwell
2016-08-01 12:55:33 +01:00
parent 59c25de098
commit 8cd20dbf94
2 changed files with 43 additions and 33 deletions

View File

@ -114,38 +114,46 @@ setup = (user) ->
lastCookie = currentCookie
, 100
wiki.getScript '/security/winchan.js'
if (!$("link[href='/security/style.css']").length)
$('<link rel="stylesheet" href="/security/style.css">').appendTo("head")
myInit = {
method: 'GET'
cache: 'no-cache'
mode: 'same-origin'
}
fetch '/auth/client-settings.json', myInit
.then (response) ->
if response.ok
response.json().then (json) ->
settings = json
if settings.wikiHost
dialogHost = settings.wikiHost
else
dialogHost = window.location.hostname
settings.cookieDomain = dialogHost
if settings.useHttps
dialogProtocol = 'https:'
else
dialogProtocol = window.location.protocol
if window.location.port
dialogHost = dialogHost + ':' + window.location.port
if settings.usingPersona
settings.dialogURL = dialogProtocol + '//' + dialogHost + '/auth/personaLogin'
else
settings.dialogURL = dialogProtocol + '//' + dialogHost + '/auth/loginDialog'
settings.relayURL = dialogProtocol + '//' + dialogHost + '/auth/relay.html'
wiki.getScript '/security/modernizr-custom.js', () ->
console.log 'modernizr loaded'
unless Modernizr.promises
require('es6-promise').polyfill()
update_footer ownerName, isAuthenticated
else
console.log 'Unable to fetch client settings: ', response
unless Modernizr.fetch
require('whatwg-fetch')
wiki.getScript '/security/winchan.js'
if (!$("link[href='/security/style.css']").length)
$('<link rel="stylesheet" href="/security/style.css">').appendTo("head")
myInit = {
method: 'GET'
cache: 'no-cache'
mode: 'same-origin'
}
fetch '/auth/client-settings.json', myInit
.then (response) ->
if response.ok
response.json().then (json) ->
settings = json
if settings.wikiHost
dialogHost = settings.wikiHost
else
dialogHost = window.location.hostname
settings.cookieDomain = dialogHost
if settings.useHttps
dialogProtocol = 'https:'
else
dialogProtocol = window.location.protocol
if window.location.port
dialogHost = dialogHost + ':' + window.location.port
if settings.usingPersona
settings.dialogURL = dialogProtocol + '//' + dialogHost + '/auth/personaLogin'
else
settings.dialogURL = dialogProtocol + '//' + dialogHost + '/auth/loginDialog'
settings.relayURL = dialogProtocol + '//' + dialogHost + '/auth/relay.html'
update_footer ownerName, isAuthenticated
else
console.log 'Unable to fetch client settings: ', response
window.plugins.security = {setup, claim_wiki, update_footer}

View File

@ -9,13 +9,15 @@
"license": "MIT",
"dependencies": {
"coffee-script": "1.10",
"es6-promise": "^3.2.1",
"lodash": "^4.13.1",
"passport": "^0.3.2",
"passport-github": "^1.1.0",
"passport-google-oauth20": "^1.0.0",
"passport-twitter": "^1.0.4",
"persona-pass": "^0.2.1",
"qs": "^6.2.0"
"qs": "^6.2.0",
"whatwg-fetch": "^1.0.0"
},
"devDependencies": {
"coffeeify": "*",