From b6048a7f913f6a599f2036764238849b82e7e1e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Fri, 10 Jul 2015 16:34:34 +0200 Subject: [PATCH 01/13] refactor login form --- js/components/login_container.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/js/components/login_container.js b/js/components/login_container.js index 1645e206..ae49416e 100644 --- a/js/components/login_container.js +++ b/js/components/login_container.js @@ -11,6 +11,7 @@ import UserActions from '../actions/user_actions'; import Form from './ascribe_forms/form'; import Property from './ascribe_forms/property'; +import FormPropertyHeader from './ascribe_forms/form_property_header'; import apiUrls from '../constants/api_urls'; import AppConstants from '../constants/application_constants'; @@ -61,10 +62,8 @@ let LoginContainer = React.createClass({ return (

-
- {this.props.message} -
- +
{getLangText('Not an ascribe user')}? {getLangText('Sign up')}...
{getLangText('Forgot my password')}? {getLangText('Rescue me')}... @@ -77,7 +76,8 @@ let LoginContainer = React.createClass({ let LoginForm = React.createClass({ propTypes: { - redirectOnLoginSuccess: React.PropTypes.bool + redirectOnLoginSuccess: React.PropTypes.bool, + message: React.PropTypes.string }, handleSuccess(){ @@ -106,6 +106,7 @@ let LoginForm = React.createClass({ render() { return (
}> + +

{this.props.message}

+
@@ -140,7 +144,6 @@ let LoginForm = React.createClass({ name="password" required/> -
); } From 104a72fcc96d131a359094d1dd50cd2684d8af16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Fri, 10 Jul 2015 19:00:59 +0200 Subject: [PATCH 02/13] generic polling --- .../ascribe_accordion_list/accordion_list_item.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/js/components/ascribe_accordion_list/accordion_list_item.js b/js/components/ascribe_accordion_list/accordion_list_item.js index 1fff7f98..0cbb39b5 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item.js +++ b/js/components/ascribe_accordion_list/accordion_list_item.js @@ -42,6 +42,12 @@ let AccordionListItem = React.createClass({ } }, + componentDidUpdate() { + if(this.props.content.num_editions === 0) { + this.startPolling(); + } + }, + onChange(state) { this.setState(state); }, @@ -73,6 +79,10 @@ let AccordionListItem = React.createClass({ this.toggleCreateEditionsDialog(); + this.startPolling(); + }, + + startPolling() { // start polling until editions are defined let pollingIntervalIndex = setInterval(() => { EditionListActions.fetchEditionList(this.props.content.id) From f7618d18f5c44300a66ffd3c7358208962456f25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Fri, 10 Jul 2015 19:11:57 +0200 Subject: [PATCH 03/13] fix stateful polling of editions --- js/components/ascribe_accordion_list/accordion_list_item.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/components/ascribe_accordion_list/accordion_list_item.js b/js/components/ascribe_accordion_list/accordion_list_item.js index 7458d0f0..dcc60871 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item.js +++ b/js/components/ascribe_accordion_list/accordion_list_item.js @@ -43,7 +43,7 @@ let AccordionListItem = React.createClass({ }, componentDidUpdate() { - if(this.props.content.num_editions === 0) { + if(this.props.content.num_editions === 0 && typeof this.state.pollingIntervalIndex == 'undefined') { this.startPolling(); } }, From 3dd5626eb96d8dc0c4778f20e68d3a32e521cc17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Mon, 13 Jul 2015 10:07:22 +0200 Subject: [PATCH 04/13] fix polling bug --- .../accordion_list_item.js | 15 ++++++------ .../accordion_list_item_edition_widget.js | 24 ++++++++++--------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/js/components/ascribe_accordion_list/accordion_list_item.js b/js/components/ascribe_accordion_list/accordion_list_item.js index dcc60871..1aeac4ae 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item.js +++ b/js/components/ascribe_accordion_list/accordion_list_item.js @@ -48,6 +48,10 @@ let AccordionListItem = React.createClass({ } }, + componentWillUnmount() { + clearInterval(this.state.pollingIntervalIndex); + }, + onChange(state) { this.setState(state); }, @@ -79,11 +83,10 @@ let AccordionListItem = React.createClass({ }); this.toggleCreateEditionsDialog(); - - this.startPolling(); }, startPolling() { + console.log('start polling'); // start polling until editions are defined let pollingIntervalIndex = setInterval(() => { EditionListActions.fetchEditionList(this.props.content.id) @@ -150,16 +153,12 @@ let AccordionListItem = React.createClass({

{getLangText('by %s', this.props.content.artist_name)}

- {this.props.content.date_created.split('-')[0]} -
-
+ {this.props.content.date_created.split('-')[0]} - {/* - {getLangText('%s license', this.props.content.license_type.code)} - */}
diff --git a/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js b/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js index 0c6a1082..25f6e43a 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js +++ b/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js @@ -1,6 +1,7 @@ 'use strict'; import React from 'react'; +import classNames from 'classnames'; import EditionListActions from '../../actions/edition_list_actions'; import EditionListStore from '../../stores/edition_list_store'; @@ -9,6 +10,7 @@ import { getLangText } from '../../utils/lang_utils'; let AccordionListItemEditionWidget = React.createClass({ propTypes: { + className: React.PropTypes.string, piece: React.PropTypes.object.isRequired, toggleCreateEditionsDialog: React.PropTypes.func.isRequired, creatingEditions: React.PropTypes.bool.isRequired @@ -77,38 +79,38 @@ let AccordionListItemEditionWidget = React.createClass({ if(numEditions === -1) { return ( - + className={classNames('btn', 'btn-default', 'btn-xs', 'ascribe-accordion-list-item-edition-widget', this.props.className)}> + Editions - + ); } else if(numEditions === 0) { return ( - + ); } else if(numEditions === 1) { let editionMapping = piece && piece.firstEdition ? piece.firstEdition.edition_number + '/' + piece.num_editions : ''; return ( - + className={classNames('btn', 'btn-default', 'btn-xs', 'ascribe-accordion-list-item-edition-widget', this.props.className)}> {editionMapping + ' ' + getLangText('Edition')} {this.getGlyphicon()} - + ); } else { return ( - + className={classNames('btn', 'btn-default', 'btn-xs', 'ascribe-accordion-list-item-edition-widget', this.props.className)}> {numEditions + ' ' + getLangText('Editions')} {this.getGlyphicon()} - + ); } } From 50113049396406027a417cd91a998b8953906f83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Mon, 13 Jul 2015 10:11:25 +0200 Subject: [PATCH 05/13] fix spool color --- .../accordion_list_item_edition_widget.js | 4 ++-- sass/main.scss | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js b/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js index 25f6e43a..098f329e 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js +++ b/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js @@ -58,7 +58,7 @@ let AccordionListItemEditionWidget = React.createClass({ if(isEditionListOpen) { if(typeof this.state.editionList[pieceId] === 'undefined') { return ( - + ); } else { return ( @@ -89,7 +89,7 @@ let AccordionListItemEditionWidget = React.createClass({ else if(numEditions === 0) { return ( ); } diff --git a/sass/main.scss b/sass/main.scss index 665717f6..14586745 100644 --- a/sass/main.scss +++ b/sass/main.scss @@ -346,3 +346,9 @@ hr { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg);} } + +.btn-default { + .glyph-ascribe-spool { + color: white; + } +} \ No newline at end of file From c8649306d49c0c70896a40391c614a91869f888e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Mon, 13 Jul 2015 12:06:52 +0200 Subject: [PATCH 06/13] fix collection queryParams bug --- js/components/header.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/js/components/header.js b/js/components/header.js index 5f3b9634..8704f8df 100644 --- a/js/components/header.js +++ b/js/components/header.js @@ -27,7 +27,7 @@ import { getLangText } from '../utils/lang_utils'; let Header = React.createClass({ - mixins: [Router.Navigation], + mixins: [Router.Navigation, Router.State], getInitialState() { return mergeOptions(WhitelabelStore.getState(), UserStore.getState()); @@ -97,7 +97,8 @@ let Header = React.createClass({ {getLangText('Log out')} ); - collection = {getLangText('COLLECTION')}; + + collection = {getLangText('COLLECTION')}; addNewWork = + {getLangText('NEW WORK')}; } else { From b51a03ce9cfc0cb49ece36cbf427c4541fb991fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Mon, 13 Jul 2015 14:19:22 +0200 Subject: [PATCH 07/13] styling changes --- .../ascribe_accordion_list/accordion_list_item.js | 1 - .../accordion_list_item_edition_widget.js | 2 +- sass/ascribe_accordion_list.scss | 8 ++++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/js/components/ascribe_accordion_list/accordion_list_item.js b/js/components/ascribe_accordion_list/accordion_list_item.js index 1aeac4ae..baa114ee 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item.js +++ b/js/components/ascribe_accordion_list/accordion_list_item.js @@ -86,7 +86,6 @@ let AccordionListItem = React.createClass({ }, startPolling() { - console.log('start polling'); // start polling until editions are defined let pollingIntervalIndex = setInterval(() => { EditionListActions.fetchEditionList(this.props.content.id) diff --git a/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js b/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js index 098f329e..764b4f45 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js +++ b/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js @@ -88,7 +88,7 @@ let AccordionListItemEditionWidget = React.createClass({ } else if(numEditions === 0) { return ( - ); diff --git a/sass/ascribe_accordion_list.scss b/sass/ascribe_accordion_list.scss index 6a8208ce..5c67975e 100644 --- a/sass/ascribe_accordion_list.scss +++ b/sass/ascribe_accordion_list.scss @@ -59,8 +59,12 @@ $ascribe-accordion-list-font: 'Source Sans Pro'; } } -.accordion-list-item-header > a { - text-decoration: none; +.accordion-list-item-header { + margin-top:.65em; + + > a { + text-decoration: none; + } } .ascribe-accordion-list-loading { From 11545c13a6aecf7ce2180119ca8936e2a9b35a72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Mon, 13 Jul 2015 14:30:24 +0200 Subject: [PATCH 08/13] reorder edition collapsible paragraphs --- js/components/ascribe_detail/edition.js | 53 ++++++++++++------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/js/components/ascribe_detail/edition.js b/js/components/ascribe_detail/edition.js index df3f86b5..adcf2483 100644 --- a/js/components/ascribe_detail/edition.js +++ b/js/components/ascribe_detail/edition.js @@ -81,33 +81,6 @@ let Edition = React.createClass({ currentUser={this.state.currentUser} edition={this.props.edition} /> - -1 || this.props.edition.public_note)} - defaultExpanded={true}> - - - - - -1 - || Object.keys(this.props.edition.extra_data).length > 0 - || this.props.edition.other_data !== null}> - -1} - pieceId={this.props.edition.parent} - extraData={this.props.edition.extra_data} - otherData={this.props.edition.other_data} - handleSuccess={this.props.loadEdition}/> - - -1}> @@ -136,6 +109,32 @@ let Edition = React.createClass({ history={this.props.edition.loan_history} /> + -1 || this.props.edition.public_note)}> + + + + + -1 + || Object.keys(this.props.edition.extra_data).length > 0 + || this.props.edition.other_data !== null}> + -1} + pieceId={this.props.edition.parent} + extraData={this.props.edition.extra_data} + otherData={this.props.edition.other_data} + handleSuccess={this.props.loadEdition}/> + + Date: Mon, 13 Jul 2015 14:34:17 +0200 Subject: [PATCH 09/13] removed messages indicating that the email is valid --- js/components/password_reset_container.js | 4 ++-- js/constants/languages.js | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/js/components/password_reset_container.js b/js/components/password_reset_container.js index 20a35b16..5ab258b0 100644 --- a/js/components/password_reset_container.js +++ b/js/components/password_reset_container.js @@ -50,7 +50,7 @@ let PasswordResetContainer = React.createClass({ return (
- {getLangText('An email has been sent to')} "{this.state.isRequested}" + {getLangText('If your email address exists in our database, you will receive a password recovery link in a few minutes.')}
); @@ -64,7 +64,7 @@ let PasswordResetContainer = React.createClass({ let PasswordRequestResetForm = React.createClass({ handleSuccess() { - let notificationText = getLangText('Request successfully sent, check your email'); + let notificationText = getLangText('If your email address exists in our database, you will receive a password recovery link in a few minutes.'); let notification = new GlobalNotificationModel(notificationText, 'success', 50000); GlobalNotificationActions.appendGlobalNotification(notification); this.props.handleRequestSuccess(this.refs.form.refs.email.state.value); diff --git a/js/constants/languages.js b/js/constants/languages.js index 78c2b148..c21bd0ad 100644 --- a/js/constants/languages.js +++ b/js/constants/languages.js @@ -209,6 +209,7 @@ const languages = { 'Create editions': 'Create editions', 'I agree to the Terms of Service': 'I agree to the Terms of Service', 'read': 'read', + 'If your email address exists in our database, you will receive a password recovery link in a few minutes.': 'If your email address exists in our database, you will receive a password recovery link in a few minutes.', }, 'de': { 'ID': 'ID', @@ -418,6 +419,7 @@ const languages = { 'Create editions': 'Create editions', 'I agree to the Terms of Service': 'I agree to the Terms of Service', 'read': 'read', + 'If your email address exists in our database, you will receive a password recovery link in a few minutes.': 'If your email address exists in our database, you will receive a password recovery link in a few minutes.', }, 'fr': { 'ID': 'ID', @@ -627,6 +629,7 @@ const languages = { 'Create editions': 'Create editions', 'I agree to the Terms of Service': 'I agree to the Terms of Service', 'read': 'read', + 'If your email address exists in our database, you will receive a password recovery link in a few minutes.': 'Si votre adresse électronique existe dans notre base de données, vous recevrez un lien de récupération de mot de passe dans quelques minutes.', } }; From fd094aa4717603871ba626f06c73772019b5b069 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Mon, 13 Jul 2015 14:49:39 +0200 Subject: [PATCH 10/13] remove first edition routine --- js/actions/piece_list_actions.js | 12 ----------- .../accordion_list_item.js | 20 ++----------------- .../accordion_list_item_edition_widget.js | 3 +-- js/stores/piece_list_store.js | 13 ------------ 4 files changed, 3 insertions(+), 45 deletions(-) diff --git a/js/actions/piece_list_actions.js b/js/actions/piece_list_actions.js index f0d3e5f1..ec7ad7a7 100644 --- a/js/actions/piece_list_actions.js +++ b/js/actions/piece_list_actions.js @@ -9,7 +9,6 @@ class PieceListActions { this.generateActions( 'updatePieceList', 'updatePieceListRequestActions', - 'addFirstEditionToPiece', 'updatePropertyForPiece' ); } @@ -41,17 +40,6 @@ class PieceListActions { this.actions.updatePieceListRequestActions(res.piece_ids); }); } - - fetchFirstEditionForPiece(pieceId) { - return new Promise((resolve, reject) => { - PieceListFetcher.fetchFirstEditionForPiece(pieceId) - .then((firstEdition) => { - this.actions.addFirstEditionToPiece({pieceId, firstEdition}); - resolve(); - }) - .catch((err) => reject(err)); - }); - } } export default alt.createActions(PieceListActions); diff --git a/js/components/ascribe_accordion_list/accordion_list_item.js b/js/components/ascribe_accordion_list/accordion_list_item.js index baa114ee..e44af84b 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item.js +++ b/js/components/ascribe_accordion_list/accordion_list_item.js @@ -31,17 +31,10 @@ let AccordionListItem = React.createClass({ getInitialState() { return { - showCreateEditionsDialog: false, - creatingEditions: false + showCreateEditionsDialog: false }; }, - componentDidMount() { - if(this.props.content.num_editions > 0) { - PieceListActions.fetchFirstEditionForPiece(this.props.content.id); - } - }, - componentDidUpdate() { if(this.props.content.num_editions === 0 && typeof this.state.pollingIntervalIndex == 'undefined') { this.startPolling(); @@ -78,10 +71,6 @@ let AccordionListItem = React.createClass({ GlobalNotificationActions.appendGlobalNotification(notification); PieceListActions.updatePropertyForPiece({pieceId: this.props.content.id, key: 'num_editions', value: 0}); - this.setState({ - creatingEditions: true - }); - this.toggleCreateEditionsDialog(); }, @@ -92,10 +81,6 @@ let AccordionListItem = React.createClass({ .then((res) => { clearInterval(this.state.pollingIntervalIndex); - - this.setState({ - creatingEditions: false - }); PieceListActions.updatePropertyForPiece({ pieceId: this.props.content.id, @@ -156,8 +141,7 @@ let AccordionListItem = React.createClass({ + toggleCreateEditionsDialog={this.toggleCreateEditionsDialog}/>
diff --git a/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js b/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js index 764b4f45..b3f7a7fb 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js +++ b/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js @@ -12,8 +12,7 @@ let AccordionListItemEditionWidget = React.createClass({ propTypes: { className: React.PropTypes.string, piece: React.PropTypes.object.isRequired, - toggleCreateEditionsDialog: React.PropTypes.func.isRequired, - creatingEditions: React.PropTypes.bool.isRequired + toggleCreateEditionsDialog: React.PropTypes.func.isRequired }, getInitialState() { diff --git a/js/stores/piece_list_store.js b/js/stores/piece_list_store.js index 5d9fc65e..63a109ca 100644 --- a/js/stores/piece_list_store.js +++ b/js/stores/piece_list_store.js @@ -72,19 +72,6 @@ class PieceListStore { }); } - onAddFirstEditionToPiece({pieceId, firstEdition}) { - let filteredPieceList = this.pieceList.filter((piece) => piece.id === pieceId); - - if(filteredPieceList.length === 1) { - - let piece = filteredPieceList[0]; - piece.firstEdition = firstEdition.edition; - - } else { - throw new Error('Could not find a matching piece in piece list since its either not there or piecelist contains duplicates.'); - } - } - onUpdatePropertyForPiece({pieceId, key, value}) { let filteredPieceList = this.pieceList.filter((piece) => piece.id === pieceId); From 3ae10c5e503d7d2018d67d68e0574752d24e9d66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Mon, 13 Jul 2015 15:00:12 +0200 Subject: [PATCH 11/13] first cut loading spinner pieces --- .../ascribe_accordion_list/accordion_list_item.js | 2 +- js/components/ascribe_detail/edition_container.js | 3 +-- js/components/ascribe_detail/piece_container.js | 4 +++- sass/main.scss | 8 ++++++++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/js/components/ascribe_accordion_list/accordion_list_item.js b/js/components/ascribe_accordion_list/accordion_list_item.js index e44af84b..a2cfa0a3 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item.js +++ b/js/components/ascribe_accordion_list/accordion_list_item.js @@ -36,7 +36,7 @@ let AccordionListItem = React.createClass({ }, componentDidUpdate() { - if(this.props.content.num_editions === 0 && typeof this.state.pollingIntervalIndex == 'undefined') { + if(this.props.content.num_editions === 0 && typeof this.state.pollingIntervalIndex === 'undefined') { this.startPolling(); } }, diff --git a/js/components/ascribe_detail/edition_container.js b/js/components/ascribe_detail/edition_container.js index 45c91bd0..0e8c14b9 100644 --- a/js/components/ascribe_detail/edition_container.js +++ b/js/components/ascribe_detail/edition_container.js @@ -53,8 +53,7 @@ let EditionContainer = React.createClass({ ); } else { return ( - // TODO translate? -

Loading

+ ); } } diff --git a/js/components/ascribe_detail/piece_container.js b/js/components/ascribe_detail/piece_container.js index dfd36622..7ee29fbd 100644 --- a/js/components/ascribe_detail/piece_container.js +++ b/js/components/ascribe_detail/piece_container.js @@ -48,7 +48,9 @@ let PieceContainer = React.createClass({ ); } else { return ( -

Loading

+
+ +
); } } diff --git a/sass/main.scss b/sass/main.scss index 14586745..9629ec4e 100644 --- a/sass/main.scss +++ b/sass/main.scss @@ -351,4 +351,12 @@ hr { .glyph-ascribe-spool { color: white; } +} + +.fullpage-spinner { + width: 100%; + height: 100vh; + + text-align: center; + vertical-align: middle; } \ No newline at end of file From 733c95a070c25fe84062345df8d46bf65b4f0937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Mon, 13 Jul 2015 15:21:09 +0200 Subject: [PATCH 12/13] loading feedback for piece and edition page --- js/components/ascribe_detail/edition_container.js | 6 +++++- js/components/ascribe_detail/piece_container.js | 4 +++- sass/main.scss | 9 ++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/js/components/ascribe_detail/edition_container.js b/js/components/ascribe_detail/edition_container.js index 0e8c14b9..b3acbd4f 100644 --- a/js/components/ascribe_detail/edition_container.js +++ b/js/components/ascribe_detail/edition_container.js @@ -7,6 +7,8 @@ import EditionStore from '../../stores/edition_store'; import Edition from './edition'; +import AppConstants from '../../constants/application_constants'; + /** * This is the component that implements resource/data specific functionality */ @@ -53,7 +55,9 @@ let EditionContainer = React.createClass({ ); } else { return ( - +
+ +
); } } diff --git a/js/components/ascribe_detail/piece_container.js b/js/components/ascribe_detail/piece_container.js index 7ee29fbd..bc90a1b1 100644 --- a/js/components/ascribe_detail/piece_container.js +++ b/js/components/ascribe_detail/piece_container.js @@ -7,6 +7,8 @@ import PieceStore from '../../stores/piece_store'; import Piece from './piece'; +import AppConstants from '../../constants/application_constants'; + /** * This is the component that implements resource/data specific functionality */ @@ -49,7 +51,7 @@ let PieceContainer = React.createClass({ } else { return (
- +
); } diff --git a/sass/main.scss b/sass/main.scss index 9629ec4e..be144320 100644 --- a/sass/main.scss +++ b/sass/main.scss @@ -354,9 +354,12 @@ hr { } .fullpage-spinner { - width: 100%; - height: 100vh; + padding-top: 30%; + padding-bottom: 30%; text-align: center; - vertical-align: middle; + + > span { + font-size: 2em; + } } \ No newline at end of file From 6372a5af206f208e7b3e819618a127ab2a164b9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Mon, 13 Jul 2015 15:28:28 +0200 Subject: [PATCH 13/13] adjusted frontend to use first_edition from piece directly --- js/components/ascribe_accordion_list/accordion_list_item.js | 2 +- .../accordion_list_item_edition_widget.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/js/components/ascribe_accordion_list/accordion_list_item.js b/js/components/ascribe_accordion_list/accordion_list_item.js index a2cfa0a3..4d057c44 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item.js +++ b/js/components/ascribe_accordion_list/accordion_list_item.js @@ -115,7 +115,7 @@ let AccordionListItem = React.createClass({ linkData = { to: 'edition', params: { - editionId: this.props.content.firstEdition ? this.props.content.firstEdition.bitcoin_id : 0 + editionId: this.props.content.first_edition ? this.props.content.first_edition.bitcoin_id : 0 } }; } diff --git a/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js b/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js index b3f7a7fb..ba4ece2a 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js +++ b/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js @@ -93,7 +93,7 @@ let AccordionListItemEditionWidget = React.createClass({ ); } else if(numEditions === 1) { - let editionMapping = piece && piece.firstEdition ? piece.firstEdition.edition_number + '/' + piece.num_editions : ''; + let editionMapping = piece && piece.first_edition ? piece.first_edition.edition_number + '/' + piece.num_editions : ''; return (