+ );
+ }
+});
+
+export default Hero;
diff --git a/js/components/whitelabel/wallet/components/cyland/cyland_landing.js b/js/components/whitelabel/wallet/components/cyland/cyland_landing.js
new file mode 100644
index 00000000..1512587e
--- /dev/null
+++ b/js/components/whitelabel/wallet/components/cyland/cyland_landing.js
@@ -0,0 +1,77 @@
+'use strict';
+
+import React from 'react';
+import Router from 'react-router';
+
+import ButtonLink from 'react-router-bootstrap/lib/ButtonLink';
+import ButtonGroup from 'react-bootstrap/lib/ButtonGroup';
+
+import UserStore from '../../../../../stores/user_store';
+import UserActions from '../../../../../actions/user_actions';
+
+import { mergeOptions } from '../../../../../utils/general_utils';
+
+
+let CylandLanding = React.createClass({
+
+ mixins: [Router.Navigation],
+
+ getInitialState() {
+ return mergeOptions(
+ UserStore.getState()
+ );
+ },
+
+ componentDidMount() {
+ UserStore.listen(this.onChange);
+ UserActions.fetchCurrentUser();
+ },
+
+ componentWillUnmount() {
+ UserStore.unlisten(this.onChange);
+ },
+
+ onChange(state) {
+ this.setState(state);
+
+ // if user is already logged in, redirect him to piece list
+ if(this.state.currentUser && this.state.currentUser.email) {
+ // FIXME: hack to redirect out of the dispatch cycle
+ window.setTimeout(() => this.replaceWith('pieces'), 0);
+ }
+ },
+
+ render() {
+ return (
+
+
+
+
+
+
+
+
+
+ Existing ascribe user?
+
+
+ Log in
+
+
+
+
+ Do you need an account?
+
+
+ Sign up
+
+
+
+
+
+
+ );
+ }
+});
+
+export default CylandLanding;
diff --git a/js/components/whitelabel/wallet/components/cyland/cyland_register_piece.js b/js/components/whitelabel/wallet/components/cyland/cyland_register_piece.js
index b01d648d..5a17ae94 100644
--- a/js/components/whitelabel/wallet/components/cyland/cyland_register_piece.js
+++ b/js/components/whitelabel/wallet/components/cyland/cyland_register_piece.js
@@ -85,17 +85,6 @@ let CylandRegisterPiece = React.createClass({
handleRegisterSuccess(response){
- // once the user was able to register a piece successfully, we need to make sure to keep
- // the piece list up to date
- PieceListActions.fetchPieceList(
- this.state.page,
- this.state.pageSize,
- this.state.searchTerm,
- this.state.orderBy,
- this.state.orderAsc,
- this.state.filterBy
- );
-
// also start loading the piece for the next step
if(response && response.piece) {
PieceActions.updatePiece(response.piece);
@@ -111,6 +100,18 @@ let CylandRegisterPiece = React.createClass({
handleLoanSuccess(response) {
let notification = new GlobalNotificationModel(response.notification, 'success', 10000);
GlobalNotificationActions.appendGlobalNotification(notification);
+
+ // once the user was able to register + loan a piece successfully, we need to make sure to keep
+ // the piece list up to date
+ PieceListActions.fetchPieceList(
+ this.state.page,
+ this.state.pageSize,
+ this.state.searchTerm,
+ this.state.orderBy,
+ this.state.orderAsc,
+ this.state.filterBy
+ );
+
PieceActions.fetchOne(this.state.piece.id);
this.transitionTo('piece', {pieceId: this.state.piece.id});
},
diff --git a/sass/ascribe_slides_container.scss b/sass/ascribe_slides_container.scss
index 773a68bc..4b96017c 100644
--- a/sass/ascribe_slides_container.scss
+++ b/sass/ascribe_slides_container.scss
@@ -30,6 +30,7 @@
border: 1px solid #EEE;
border-right: 1px solid rgba(0, 0, 0, 0);
margin-bottom: 0.6em;
+ background-color: white;
.active {
color: #666;
diff --git a/sass/ascribe_uploader.scss b/sass/ascribe_uploader.scss
index c96109ed..2aab021a 100644
--- a/sass/ascribe_uploader.scss
+++ b/sass/ascribe_uploader.scss
@@ -41,6 +41,9 @@
position: relative;
display: inline-block;
+ margin-left: .7em;
+ margin-right: .7em;
+
.delete-file {
display: block;
background-color: black;