diff --git a/gulpfile.js b/gulpfile.js
index 6f82da83..25af23bf 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -93,8 +93,7 @@ gulp.task('browser-sync', function() {
browserSync({
files: config.filesToWatch,
proxy: 'http://localhost:4000',
- port: 3000,
- browser: "chromium-browser"
+ port: 3000
});
});
diff --git a/js/actions/whitelabel_actions.js b/js/actions/whitelabel_actions.js
new file mode 100644
index 00000000..28d95cb9
--- /dev/null
+++ b/js/actions/whitelabel_actions.js
@@ -0,0 +1,25 @@
+'use strict';
+
+import alt from '../alt';
+import WhitelabelFetcher from '../fetchers/whitelabel_fetcher';
+
+
+class WhitelabelActions {
+ constructor() {
+ this.generateActions(
+ 'updateWhitelabel'
+ );
+ }
+
+ fetchWhitelabel() {
+ WhitelabelFetcher.fetch()
+ .then((res) => {
+ this.actions.updateWhitelabel(res.whitelabel);
+ })
+ .catch((err) => {
+ console.log(err);
+ });
+ }
+}
+
+export default alt.createActions(WhitelabelActions);
diff --git a/js/components/ascribe_uploader/react_s3_fine_uploader.js b/js/components/ascribe_uploader/react_s3_fine_uploader.js
index c2842e3c..378944f2 100644
--- a/js/components/ascribe_uploader/react_s3_fine_uploader.js
+++ b/js/components/ascribe_uploader/react_s3_fine_uploader.js
@@ -8,6 +8,7 @@ promise.polyfill();
import fetch from 'isomorphic-fetch';
import AppConstants from '../../constants/application_constants';
+import { getCookie } from '../../utils/fetch_api_utils';
import fineUploader from 'fineUploader';
import FileDragAndDrop from './file_drag_and_drop';
@@ -105,21 +106,22 @@ var ReactS3FineUploader = React.createClass({
}
},
signature: {
- endpoint: AppConstants.serverUrl + 's3/signature/'
- //customHeaders: {
- // 'Authorization': 'OAuth ' + getCookie('sessionid')
- //}
+ endpoint: AppConstants.serverUrl + 's3/signature/',
+ customHeaders: {
+ 'X-CSRFToken': getCookie('csrftoken')
+ }
},
deleteFile: {
enabled: true,
method: 'DELETE',
- endpoint: AppConstants.serverUrl + 's3/delete'
- //customHeaders: {
- // 'X-CSRFToken': getCookie('csrftoken')
- //}
+ endpoint: AppConstants.serverUrl + 's3/delete',
+ customHeaders: {
+ 'X-CSRFToken': getCookie('csrftoken')
+ }
},
cors: {
- expected: true
+ expected: true,
+ sendCredentials: true
},
chunking: {
enabled: true
diff --git a/js/components/header.js b/js/components/header.js
index 4699972c..b2e70f81 100644
--- a/js/components/header.js
+++ b/js/components/header.js
@@ -6,6 +6,9 @@ import Router from 'react-router';
import UserActions from '../actions/user_actions';
import UserStore from '../stores/user_store';
+import WhitelabelActions from '../actions/whitelabel_actions';
+import WhitelabelStore from '../stores/whitelabel_store';
+
import Alt from '../alt';
import Nav from 'react-bootstrap/lib/Nav';
@@ -17,6 +20,7 @@ import MenuItemLink from 'react-router-bootstrap/lib/MenuItemLink';
import NavItemLink from 'react-router-bootstrap/lib/NavItemLink';
+import { mergeOptions } from '../utils/general_utils';
import { getLangText } from '../utils/lang_utils';
let Link = Router.Link;
@@ -25,22 +29,47 @@ let Header = React.createClass({
mixins: [Router.Navigation],
getInitialState() {
- return UserStore.getState();
+ return mergeOptions(WhitelabelStore.getState(), UserStore.getState());
},
componentDidMount() {
UserActions.fetchCurrentUser();
UserStore.listen(this.onChange);
+ WhitelabelActions.fetchWhitelabel();
+ WhitelabelStore.listen(this.onChange);
},
componentWillUnmount() {
UserStore.unlisten(this.onChange);
+ WhitelabelStore.unlisten(this.onChange);
},
handleLogout(){
UserActions.logoutCurrentUser();
Alt.flush();
this.transitionTo('login');
},
+ getLogo(){
+ let logo = (
+
+ ascribe
+
+ );
+ if (this.state.whitelabel.logo){
+ logo = ;
+ }
+ return logo;
+ },
+
+ getPoweredBy(){
+ return (
+