diff --git a/js/app.js b/js/app.js index 94b733cd..318e59f8 100644 --- a/js/app.js +++ b/js/app.js @@ -8,10 +8,12 @@ import Router from 'react-router'; import fetch from 'isomorphic-fetch'; import ApiUrls from './constants/api_urls'; -import constants from './constants/application_constants'; +import appConstants from './constants/application_constants'; import getRoutes from './routes'; import requests from './utils/requests'; +import { getSubdomainSettings } from './utils/constants_utils'; + let headers = { 'Accept': 'application/json', 'Content-Type': 'application/json' @@ -33,26 +35,21 @@ requests.defaults({ class AppGateway { start() { - console.log('start'); + let settings; let subdomain = window.location.host.split('.')[0]; - requests.get('whitelabel_settings', {'subdomain': subdomain}) - .then(this.loadSubdomain.bind(this)) - .catch(this.loadDefault.bind(this)); - } - loadSubdomain(data) { - let settings = data.whitelabel; - constants.whitelabel = settings; - this.load('prize'); - } - - loadDefault(error) { - console.log('Loading default app, error'. error); - this.load('default'); + try { + settings = getSubdomainSettings(subdomain); + appConstants.whitelabel = settings; + this.load('prize'); + } catch(err) { + // if there are no matching subdomains, we're routing + // to the default frontend + this.load('default'); + } } load(type) { - console.log('loading', type); Router.run(getRoutes(type), Router.HistoryLocation, (App) => { React.render( , diff --git a/js/constants/application_constants.js b/js/constants/application_constants.js index d03c6423..c7245f61 100644 --- a/js/constants/application_constants.js +++ b/js/constants/application_constants.js @@ -14,48 +14,32 @@ let constants = { 'subdomains': [ { - 'fields': { - 'user': 22, - 'subdomain': 'cc', - 'name': 'Creative Commons France', - 'logo': 'https://s3-us-west-2.amazonaws.com/ascribe0/public/creativecommons/cc.logo.sm.png', - 'permissions': ['register', 'edit', 'share', 'del_from_collection'] - }, - 'model': 'whitelabel.whitelabelsettings', - 'pk': 1 + 'user': 22, + 'subdomain': 'cc', + 'name': 'Creative Commons France', + 'logo': 'https://s3-us-west-2.amazonaws.com/ascribe0/public/creativecommons/cc.logo.sm.png', + 'permissions': ['register', 'edit', 'share', 'del_from_collection'] }, { - 'fields': { - 'user': 22, - 'subdomain': 'cc-staging', - 'name': 'Creative Commons France', - 'logo': 'https://s3-us-west-2.amazonaws.com/ascribe0/public/creativecommons/cc.logo.sm.png', - 'permissions': ['register', 'edit', 'share', 'del_from_collection'] - }, - 'model': 'whitelabel.whitelabelsettings', - 'pk': 2 - }, - { - 'fields': { - 'user': 1, - 'subdomain': 'sluice', - 'name': 'Sluice Art Fair', - 'logo': 'https://s3-us-west-2.amazonaws.com/ascribe0/whitelabel/sluice/logo.jpeg', - 'permissions': ['register', 'edit', 'share', 'del_from_collection'] - }, - 'model': 'whitelabel.whitelabelsettings', - 'pk': 3 + 'user': 22, + 'subdomain': 'cc-staging', + 'name': 'Creative Commons France', + 'logo': 'https://s3-us-west-2.amazonaws.com/ascribe0/public/creativecommons/cc.logo.sm.png', + 'permissions': ['register', 'edit', 'share', 'del_from_collection'] }, { - 'fields': { - 'user': 1, - 'subdomain': 'sluice-staging', - 'name': 'Sluice Art Fair', - 'logo': 'https://s3-us-west-2.amazonaws.com/ascribe0/whitelabel/sluice/logo.jpeg', - 'permissions': ['register', 'edit', 'share', 'del_from_collection'] - }, - 'model': 'whitelabel.whitelabelsettings', - 'pk': 4 + 'user': 1, + 'subdomain': 'sluice', + 'name': 'Sluice Art Fair', + 'logo': 'https://s3-us-west-2.amazonaws.com/ascribe0/whitelabel/sluice/logo.jpeg', + 'permissions': ['register', 'edit', 'share', 'del_from_collection'] + }, + { + 'user': 1, + 'subdomain': 'sluice-staging', + 'name': 'Sluice Art Fair', + 'logo': 'https://s3-us-west-2.amazonaws.com/ascribe0/whitelabel/sluice/logo.jpeg', + 'permissions': ['register', 'edit', 'share', 'del_from_collection'] } ], diff --git a/js/utils/constants_utils.js b/js/utils/constants_utils.js new file mode 100644 index 00000000..923c98fc --- /dev/null +++ b/js/utils/constants_utils.js @@ -0,0 +1,15 @@ +'use strict'; + +import appConstants from '../constants/application_constants'; + +export function getSubdomainSettings(subdomain) { + let settings = appConstants.subdomains.filter((sdSettings) => subdomain === sdSettings.subdomain); + + if(settings.length === 1) { + return settings[0]; + } else if(settings.length === 0) { + throw new Error('There are no subdomain settings for the subdomain: ' + subdomain); + } else { + throw new Error('Matched multiple subdomains. Adjust constants file.'); + } +} \ No newline at end of file diff --git a/js/utils/fetch_api_utils.js b/js/utils/fetch_api_utils.js index a4939770..8b8cf89a 100644 --- a/js/utils/fetch_api_utils.js +++ b/js/utils/fetch_api_utils.js @@ -79,6 +79,8 @@ export function getCookie(name) { Taken from: http://jsfiddle.net/jan_miksovsky/yy7zs/ + CURRENTLY NOT USED... + */ export function fetchImageAsBlob(url) { return new Promise((resolve, reject) => {