diff --git a/js/app.js b/js/app.js index 94b733cd..1c329753 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(settings.type); + } 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/components/whitelabel/prize/app.js b/js/components/whitelabel/prize/app.js index 0828faa4..98ca2a45 100644 --- a/js/components/whitelabel/prize/app.js +++ b/js/components/whitelabel/prize/app.js @@ -20,7 +20,7 @@ let PrizeApp = React.createClass({ } return ( -
+
{header} diff --git a/js/components/whitelabel/prize/components/hero.js b/js/components/whitelabel/prize/components/hero.js index 101d599a..bd77f5ca 100644 --- a/js/components/whitelabel/prize/components/hero.js +++ b/js/components/whitelabel/prize/components/hero.js @@ -8,7 +8,10 @@ let Hero = React.createClass({ render() { return (
- Sluice Art Prize + Sluice Art Prize

Sluice Art Prize 2015

); diff --git a/js/components/whitelabel/prize/components/landing.js b/js/components/whitelabel/prize/components/landing.js index b7f1fa95..e536fe42 100644 --- a/js/components/whitelabel/prize/components/landing.js +++ b/js/components/whitelabel/prize/components/landing.js @@ -11,15 +11,18 @@ let Link = Router.Link; let Landing = React.createClass({ render() { return ( -
-
- - - Signup to the prize - +
+
+
+

+ + + Signup to the prize + - Already a user? log in - + Already a user? log in + +
); diff --git a/js/constants/application_constants.js b/js/constants/application_constants.js index 2a8e0807..de61b105 100644 --- a/js/constants/application_constants.js +++ b/js/constants/application_constants.js @@ -4,14 +4,50 @@ let constants = { //'baseUrl': 'http://localhost:8000/api/', //FIXME: referring to a global variable in `window` is not - // super pro. What if we render stuff on the server? + // super pro. What if we render stuff on the server? + // - super-bro - Senor Developer, 14th July 2015 //'baseUrl': window.BASE_URL, 'apiEndpoint': window.API_ENDPOINT, 'serverUrl': window.SERVER_URL, 'baseUrl': window.BASE_URL, 'aclList': ['acl_coa', 'acl_consign', 'acl_delete', 'acl_download', 'acl_edit', 'acl_editions', 'acl_loan', 'acl_share', 'acl_transfer', 'acl_unconsign', 'acl_unshare', 'acl_view', 'acl_withdraw_transfer'], - // in case of whitelabel cusomization, we store stuff here + 'subdomains': [ + { + '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'], + 'type': 'wallet' + }, + { + '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'], + 'type': 'wallet' + }, + { + 'user': 1, + 'subdomain': 'sluice', + 'name': 'Sluice Art Fair', + 'logo': 'http://sluice.info/images/logo.gif', + 'permissions': ['register', 'edit', 'share', 'del_from_collection'], + 'type': 'prize' + }, + { + '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'], + 'type': 'prize' + } + ], + + // in case of whitelabel customization, we store stuff here 'whitelabel': {} }; diff --git a/js/routes.js b/js/routes.js index 669a0fc7..8b038372 100644 --- a/js/routes.js +++ b/js/routes.js @@ -39,7 +39,7 @@ const COMMON_ROUTES = ( function getRoutes(type) { let routes = null; - console.log(type) + if (type === 'prize') { routes = getPrizeRoutes(COMMON_ROUTES); } else { 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) => { diff --git a/sass/whitelabel/prize/landing.scss b/sass/whitelabel/prize/landing.scss index 968fee29..d7278ad2 100644 --- a/sass/whitelabel/prize/landing.scss +++ b/sass/whitelabel/prize/landing.scss @@ -1,16 +1,17 @@ -.whitelabel-prize { - .hero { +.wp { + background-color: #CCC; + + height: 100%; + width: 100%; + + > .hero { overflow: hidden; - - .logo { - float: left; - padding-right: 2em; - } - } - - .enter { - + text-align: center; } } +.wp-landing-wrapper { + text-align: center; +} +