From f3e378f2217f9decd067e2934508f5379decd1f2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?=
Date: Wed, 5 Aug 2015 16:49:25 +0200
Subject: [PATCH 01/29] update react-bootstrap first cut
---
.../ascribe_buttons/delete_button.js | 11 ++--
js/components/ascribe_modal/ascribe_modal.js | 63 +++++++++++++++++++
js/components/ascribe_modal/modal_wrapper.js | 15 ++---
package.json | 2 +-
4 files changed, 74 insertions(+), 17 deletions(-)
create mode 100644 js/components/ascribe_modal/ascribe_modal.js
diff --git a/js/components/ascribe_buttons/delete_button.js b/js/components/ascribe_buttons/delete_button.js
index a60344df..966154bc 100644
--- a/js/components/ascribe_buttons/delete_button.js
+++ b/js/components/ascribe_buttons/delete_button.js
@@ -11,10 +11,10 @@ import PieceDeleteForm from '../ascribe_forms/form_delete_piece';
import EditionRemoveFromCollectionForm from '../ascribe_forms/form_remove_editions_from_collection';
import PieceRemoveFromCollectionForm from '../ascribe_forms/form_remove_piece_from_collection';
-import ModalWrapper from '../ascribe_modal/modal_wrapper';
+import AscribeModal from '../ascribe_modal/ascribe_modal';
import { getAvailableAcls } from '../../utils/acl_utils';
-import { getLangText } from '../../utils/lang_utils.js';
+import { getLangText } from '../../utils/lang_utils';
let DeleteButton = React.createClass({
@@ -66,12 +66,11 @@ let DeleteButton = React.createClass({
return null;
}
return (
-
{content}
-
+
);
}
});
diff --git a/js/components/ascribe_modal/ascribe_modal.js b/js/components/ascribe_modal/ascribe_modal.js
new file mode 100644
index 00000000..d2a55228
--- /dev/null
+++ b/js/components/ascribe_modal/ascribe_modal.js
@@ -0,0 +1,63 @@
+'use strict';
+
+import React from 'react';
+
+import Modal from 'react-bootstrap/lib/Modal';
+
+let AscribeModal = React.createClass({
+
+ propTypes: {
+ trigger: React.PropTypes.element.isRequired,
+ title: React.PropTypes.oneOfType([
+ React.PropTypes.arrayOf(React.PropTypes.element),
+ React.PropTypes.element,
+ React.PropTypes.string
+ ]).isRequired,
+ children: React.PropTypes.oneOfType([
+ React.PropTypes.arrayOf(React.PropTypes.element),
+ React.PropTypes.element
+ ]).isRequired,
+ footer: React.PropTypes.oneOfType([
+ React.PropTypes.arrayOf(React.PropTypes.element),
+ React.PropTypes.element,
+ React.PropTypes.string
+ ]).isRequired
+ },
+
+ getInitialState(){
+ return {
+ modalBody: null
+ };
+ },
+
+ close() {
+ this.setState({ showModal: false });
+ },
+
+ open() {
+ this.setState({ showModal: true });
+ },
+
+ render() {
+
+ let trigger = React.cloneElement(this.props.trigger, {onClick: this.open});
+
+ return (
+
+ {trigger}
+
+
+
+ {this.props.title}
+
+
+
+ {this.props.children}
+
+
+
+ );
+ }
+});
+
+export default AscribeModal;
\ No newline at end of file
diff --git a/js/components/ascribe_modal/modal_wrapper.js b/js/components/ascribe_modal/modal_wrapper.js
index a8f7b182..a7155e74 100644
--- a/js/components/ascribe_modal/modal_wrapper.js
+++ b/js/components/ascribe_modal/modal_wrapper.js
@@ -5,7 +5,6 @@ import ReactAddons from 'react/addons';
import Modal from 'react-bootstrap/lib/Modal';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger';
-import ModalTrigger from 'react-bootstrap/lib/ModalTrigger';
import Tooltip from 'react-bootstrap/lib/Tooltip';
import ModalMixin from '../../mixins/modal_mixin';
@@ -22,15 +21,11 @@ let ModalWrapper = React.createClass({
getModalTrigger() {
return (
-
- {this.props.children}
-
- }>
- {this.props.button}
-
+
+ {this.props.children}
+
);
},
diff --git a/package.json b/package.json
index 4fdf87fb..0fc9844f 100644
--- a/package.json
+++ b/package.json
@@ -71,7 +71,7 @@
"q": "^1.4.1",
"raven-js": "^1.1.19",
"react": "^0.13.2",
- "react-bootstrap": "~0.22.6",
+ "react-bootstrap": "^0.24.3",
"react-datepicker": "~0.8.0",
"react-progressbar": "^1.1.0",
"react-router": "^0.13.3",
From 4c88f88d561d979559c9719c17bb5e2f6724d8fa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?=
Date: Wed, 5 Aug 2015 17:32:35 +0200
Subject: [PATCH 02/29] first cut porting and using new react-bootstrap version
---
js/components/ascribe_buttons/acl_button.js | 5 +-
.../ascribe_buttons/delete_button.js | 10 +-
.../ascribe_buttons/submit_to_prize_button.js | 2 +-
.../unconsign_request_button.js | 5 +-
js/components/ascribe_forms/form_loan.js | 16 +---
js/components/ascribe_modal/ascribe_modal.js | 63 -------------
.../modal_password_request_reset.js | 11 ++-
js/components/ascribe_modal/modal_wrapper.js | 94 ++++++++-----------
js/mixins/modal_mixin.js | 12 ---
9 files changed, 58 insertions(+), 160 deletions(-)
delete mode 100644 js/components/ascribe_modal/ascribe_modal.js
delete mode 100644 js/mixins/modal_mixin.js
diff --git a/js/components/ascribe_buttons/acl_button.js b/js/components/ascribe_buttons/acl_button.js
index d9423889..f457e48b 100644
--- a/js/components/ascribe_buttons/acl_button.js
+++ b/js/components/ascribe_buttons/acl_button.js
@@ -214,14 +214,13 @@ ${this.props.currentUser.username}
return (
{this.sanitizeAction()}
}
handleSuccess={aclProps.handleSuccess}
- title={aclProps.title}
- tooltip={aclProps.tooltip}>
+ title={aclProps.title}>
{aclProps.form}
);
diff --git a/js/components/ascribe_buttons/delete_button.js b/js/components/ascribe_buttons/delete_button.js
index 966154bc..0e811885 100644
--- a/js/components/ascribe_buttons/delete_button.js
+++ b/js/components/ascribe_buttons/delete_button.js
@@ -11,10 +11,10 @@ import PieceDeleteForm from '../ascribe_forms/form_delete_piece';
import EditionRemoveFromCollectionForm from '../ascribe_forms/form_remove_editions_from_collection';
import PieceRemoveFromCollectionForm from '../ascribe_forms/form_remove_piece_from_collection';
-import AscribeModal from '../ascribe_modal/ascribe_modal';
+import ModalWrapper from '../ascribe_modal/modal_wrapper';
import { getAvailableAcls } from '../../utils/acl_utils';
-import { getLangText } from '../../utils/lang_utils';
+import { getLangText } from '../../utils/lang_utils.js';
let DeleteButton = React.createClass({
@@ -66,14 +66,14 @@ let DeleteButton = React.createClass({
return null;
}
return (
-
{content}
-
+
);
}
});
export default DeleteButton;
-
diff --git a/js/components/ascribe_buttons/submit_to_prize_button.js b/js/components/ascribe_buttons/submit_to_prize_button.js
index 3565a3ee..63b71f77 100644
--- a/js/components/ascribe_buttons/submit_to_prize_button.js
+++ b/js/components/ascribe_buttons/submit_to_prize_button.js
@@ -27,7 +27,7 @@ let SubmitToPrizeButton = React.createClass({
render() {
return (
REQUEST UNCONSIGN
}
handleSuccess={this.props.handleSuccess}
- title='Request to Un-Consign'
- tooltip='Ask the consignee to return the ownership of the work back to you'>
+ title='Request to Un-Consign'>
{getLangText('CLOSE')}
+ onClick={this.props.onRequestHide}>{getLangText('CLOSE')}
}
spinner={
diff --git a/js/components/ascribe_modal/ascribe_modal.js b/js/components/ascribe_modal/ascribe_modal.js
deleted file mode 100644
index d2a55228..00000000
--- a/js/components/ascribe_modal/ascribe_modal.js
+++ /dev/null
@@ -1,63 +0,0 @@
-'use strict';
-
-import React from 'react';
-
-import Modal from 'react-bootstrap/lib/Modal';
-
-let AscribeModal = React.createClass({
-
- propTypes: {
- trigger: React.PropTypes.element.isRequired,
- title: React.PropTypes.oneOfType([
- React.PropTypes.arrayOf(React.PropTypes.element),
- React.PropTypes.element,
- React.PropTypes.string
- ]).isRequired,
- children: React.PropTypes.oneOfType([
- React.PropTypes.arrayOf(React.PropTypes.element),
- React.PropTypes.element
- ]).isRequired,
- footer: React.PropTypes.oneOfType([
- React.PropTypes.arrayOf(React.PropTypes.element),
- React.PropTypes.element,
- React.PropTypes.string
- ]).isRequired
- },
-
- getInitialState(){
- return {
- modalBody: null
- };
- },
-
- close() {
- this.setState({ showModal: false });
- },
-
- open() {
- this.setState({ showModal: true });
- },
-
- render() {
-
- let trigger = React.cloneElement(this.props.trigger, {onClick: this.open});
-
- return (
-
- {trigger}
-
-
-
- {this.props.title}
-
-
-
- {this.props.children}
-
-
-
- );
- }
-});
-
-export default AscribeModal;
\ No newline at end of file
diff --git a/js/components/ascribe_modal/modal_password_request_reset.js b/js/components/ascribe_modal/modal_password_request_reset.js
index fffcb3d7..d941bcce 100644
--- a/js/components/ascribe_modal/modal_password_request_reset.js
+++ b/js/components/ascribe_modal/modal_password_request_reset.js
@@ -7,9 +7,13 @@ import PasswordResetRequestForm from '../ascribe_forms/form_password_reset_reque
import GlobalNotificationModel from '../../models/global_notification_model';
import GlobalNotificationActions from '../../actions/global_notification_actions';
-import { getLangText } from '../../utils/lang_utils.js'
+import { getLangText } from '../../utils/lang_utils.js';
let PasswordResetRequestModal = React.createClass({
+ propTypes: {
+ button: React.PropTypes.element
+ },
+
handleResetSuccess(){
let notificationText = getLangText('Request successfully sent, check your email');
let notification = new GlobalNotificationModel(notificationText, 'success', 50000);
@@ -18,10 +22,9 @@ let PasswordResetRequestModal = React.createClass({
render() {
return (
+ handleSuccess={this.handleResetSuccess}>
);
diff --git a/js/components/ascribe_modal/modal_wrapper.js b/js/components/ascribe_modal/modal_wrapper.js
index a7155e74..05971f3a 100644
--- a/js/components/ascribe_modal/modal_wrapper.js
+++ b/js/components/ascribe_modal/modal_wrapper.js
@@ -4,87 +4,73 @@ import React from 'react';
import ReactAddons from 'react/addons';
import Modal from 'react-bootstrap/lib/Modal';
-import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger';
-import Tooltip from 'react-bootstrap/lib/Tooltip';
-
-import ModalMixin from '../../mixins/modal_mixin';
let ModalWrapper = React.createClass({
propTypes: {
- title: React.PropTypes.string.isRequired,
- onRequestHide: React.PropTypes.func,
+ trigger: React.PropTypes.element.isRequired,
+ title: React.PropTypes.oneOfType([
+ React.PropTypes.arrayOf(React.PropTypes.element),
+ React.PropTypes.element,
+ React.PropTypes.string
+ ]).isRequired,
handleSuccess: React.PropTypes.func.isRequired,
- button: React.PropTypes.object.isRequired,
- children: React.PropTypes.object,
- tooltip: React.PropTypes.string
+ children: React.PropTypes.oneOfType([
+ React.PropTypes.arrayOf(React.PropTypes.element),
+ React.PropTypes.element
+ ])
},
- getModalTrigger() {
- return (
-
- {this.props.children}
-
- );
+ getInitialState() {
+ return {
+ showModal: false
+ };
},
- render() {
- if(this.props.tooltip) {
- return (
- {this.props.tooltip}}>
- {this.getModalTrigger()}
-
- );
- } else {
- return (
-
- {/* This needs to be some kind of inline-block */}
- {this.getModalTrigger()}
-
- );
- }
- }
-});
-
-
-let ModalBody = React.createClass({
- propTypes: {
- onRequestHide: React.PropTypes.func,
- handleSuccess: React.PropTypes.func,
- children: React.PropTypes.object,
- title: React.PropTypes.string.isRequired
+ show() {
+ this.setState({
+ showModal: true
+ });
},
- mixins: [ModalMixin],
+ hide() {
+ this.setState({
+ showModal: false
+ });
+ },
handleSuccess(response){
this.props.handleSuccess(response);
- this.props.onRequestHide();
+ this.hide();
},
renderChildren() {
return ReactAddons.Children.map(this.props.children, (child) => {
return ReactAddons.addons.cloneWithProps(child, {
- onRequestHide: this.props.onRequestHide,
+ onRequestHide: this.hide,
handleSuccess: this.handleSuccess
});
});
},
render() {
+ let trigger = React.cloneElement(this.props.trigger, {onClick: this.show});
+
return (
-
-
- {this.renderChildren()}
-
-
+
+ {trigger}
+
+
+
+ {this.props.title}
+
+
+
+ {this.renderChildren()}
+
+
+
);
}
});
-
export default ModalWrapper;
diff --git a/js/mixins/modal_mixin.js b/js/mixins/modal_mixin.js
deleted file mode 100644
index 6087f32c..00000000
--- a/js/mixins/modal_mixin.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-
-let ModalMixin = {
- onRequestHide(e){
- if (e) {
- e.preventDefault();
- }
- this.props.onRequestHide();
- }
-};
-
-export default ModalMixin;
\ No newline at end of file
From 1ae77d5157fc1b7b63107efe50524e8fb1ae0b52 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?=
Date: Wed, 5 Aug 2015 18:00:44 +0200
Subject: [PATCH 03/29] remove close button from modals
---
js/components/ascribe_forms/form_consign.js | 9 ++--
.../ascribe_forms/form_delete_edition.js | 9 ++--
.../ascribe_forms/form_delete_piece.js | 9 ++--
js/components/ascribe_forms/form_loan.js | 9 ++--
.../form_remove_editions_from_collection.js | 6 +--
.../ascribe_forms/form_share_email.js | 11 ++---
.../ascribe_forms/form_submit_to_prize.js | 10 ++---
js/components/ascribe_forms/form_transfer.js | 9 ++--
js/components/ascribe_forms/form_unconsign.js | 9 ++--
.../ascribe_forms/form_unconsign_request.js | 9 ++--
js/components/ascribe_modal/modal_wrapper.js | 3 +-
js/components/login_modal_handler.js | 43 -------------------
12 files changed, 39 insertions(+), 97 deletions(-)
delete mode 100644 js/components/login_modal_handler.js
diff --git a/js/components/ascribe_forms/form_consign.js b/js/components/ascribe_forms/form_consign.js
index 5815efdd..875b6ddd 100644
--- a/js/components/ascribe_forms/form_consign.js
+++ b/js/components/ascribe_forms/form_consign.js
@@ -18,7 +18,6 @@ let ConsignForm = React.createClass({
url: React.PropTypes.string,
id: React.PropTypes.object,
message: React.PropTypes.string,
- onRequestHide: React.PropTypes.func,
handleSuccess: React.PropTypes.func
},
@@ -39,11 +38,9 @@ let ConsignForm = React.createClass({
-
+ type="submit">
+ {getLangText('CONSIGN')}
+
}
spinner={
diff --git a/js/components/ascribe_forms/form_delete_edition.js b/js/components/ascribe_forms/form_delete_edition.js
index c05a20bc..87ffd98b 100644
--- a/js/components/ascribe_forms/form_delete_edition.js
+++ b/js/components/ascribe_forms/form_delete_edition.js
@@ -24,9 +24,12 @@ let EditionDeleteForm = React.createClass({
{getLangText('Are you sure you would like to permanently delete this edition')}?
{getLangText('This is an irrevocable action%s', '.')}
-
-
+
);
diff --git a/js/components/ascribe_forms/form_delete_piece.js b/js/components/ascribe_forms/form_delete_piece.js
index 168d9261..31a3e5c9 100644
--- a/js/components/ascribe_forms/form_delete_piece.js
+++ b/js/components/ascribe_forms/form_delete_piece.js
@@ -28,9 +28,12 @@ let PieceDeleteForm = React.createClass({
{getLangText('Are you sure you would like to permanently delete this piece')}?
{getLangText('This is an irrevocable action%s', '.')}
-
-
+
);
diff --git a/js/components/ascribe_forms/form_loan.js b/js/components/ascribe_forms/form_loan.js
index a25189c6..6d768c39 100644
--- a/js/components/ascribe_forms/form_loan.js
+++ b/js/components/ascribe_forms/form_loan.js
@@ -23,7 +23,6 @@ let LoanForm = React.createClass({
url: React.PropTypes.string,
id: React.PropTypes.object,
message: React.PropTypes.string,
- onRequestHide: React.PropTypes.func,
handleSuccess: React.PropTypes.func
},
@@ -101,11 +100,9 @@ let LoanForm = React.createClass({
-
+ type="submit">
+ {getLangText('LOAN')}
+
}
spinner={
diff --git a/js/components/ascribe_forms/form_remove_editions_from_collection.js b/js/components/ascribe_forms/form_remove_editions_from_collection.js
index 4ab8fdf7..b69820de 100644
--- a/js/components/ascribe_forms/form_remove_editions_from_collection.js
+++ b/js/components/ascribe_forms/form_remove_editions_from_collection.js
@@ -25,9 +25,9 @@ let EditionRemoveFromCollectionForm = React.createClass({
{getLangText('Are you sure you would like to remove these editions from your collection')}?
{getLangText('This is an irrevocable action%s', '.')}
-
-
+
);
diff --git a/js/components/ascribe_forms/form_share_email.js b/js/components/ascribe_forms/form_share_email.js
index 881c9683..86f69cd1 100644
--- a/js/components/ascribe_forms/form_share_email.js
+++ b/js/components/ascribe_forms/form_share_email.js
@@ -2,8 +2,6 @@
import React from 'react';
-
-
import Form from './form';
import Property from './property';
import InputTextAreaToggable from './input_textarea_toggable';
@@ -20,7 +18,6 @@ let ShareForm = React.createClass({
message: React.PropTypes.string,
editions: React.PropTypes.array,
currentUser: React.PropTypes.object,
- onRequestHide: React.PropTypes.func,
handleSuccess: React.PropTypes.func
},
@@ -41,11 +38,9 @@ let ShareForm = React.createClass({
-
+ type="submit">
+ SHARE
+
}
spinner={
diff --git a/js/components/ascribe_forms/form_submit_to_prize.js b/js/components/ascribe_forms/form_submit_to_prize.js
index 7f991af3..ff853c01 100644
--- a/js/components/ascribe_forms/form_submit_to_prize.js
+++ b/js/components/ascribe_forms/form_submit_to_prize.js
@@ -19,10 +19,7 @@ import requests from '../../utils/requests';
let PieceSubmitToPrizeForm = React.createClass({
propTypes: {
piece: React.PropTypes.object,
- handleSuccess: React.PropTypes.func,
-
- // this is set by ModalWrapper automatically
- onRequestHide: React.PropTypes.func
+ handleSuccess: React.PropTypes.func
},
render() {
@@ -36,7 +33,9 @@ let PieceSubmitToPrizeForm = React.createClass({
+ type="submit">
+ {getLangText('SUBMIT TO PRIZE')}
+
}
spinner={
@@ -80,7 +79,6 @@ let PieceSubmitToPrizeForm = React.createClass({
{getLangText('Are you sure you want to submit to the prize?')}
{getLangText('This is an irrevocable action%s', '.')}
-
);
}
diff --git a/js/components/ascribe_forms/form_transfer.js b/js/components/ascribe_forms/form_transfer.js
index 07821475..6ec73d38 100644
--- a/js/components/ascribe_forms/form_transfer.js
+++ b/js/components/ascribe_forms/form_transfer.js
@@ -21,7 +21,6 @@ let TransferForm = React.createClass({
message: React.PropTypes.string,
editions: React.PropTypes.array,
currentUser: React.PropTypes.object,
- onRequestHide: React.PropTypes.func,
handleSuccess: React.PropTypes.func
},
@@ -42,11 +41,9 @@ let TransferForm = React.createClass({
-
+ type="submit">
+ {getLangText('TRANSFER')}
+
}
spinner={
diff --git a/js/components/ascribe_forms/form_unconsign.js b/js/components/ascribe_forms/form_unconsign.js
index d33ccedf..9bc5b4bd 100644
--- a/js/components/ascribe_forms/form_unconsign.js
+++ b/js/components/ascribe_forms/form_unconsign.js
@@ -18,7 +18,6 @@ let UnConsignForm = React.createClass({
id: React.PropTypes.object,
message: React.PropTypes.string,
editions: React.PropTypes.array,
- onRequestHide: React.PropTypes.func,
handleSuccess: React.PropTypes.func
},
@@ -39,11 +38,9 @@ let UnConsignForm = React.createClass({
-
+ type="submit">
+ {getLangText('UNCONSIGN')}
+
}
spinner={
diff --git a/js/components/ascribe_forms/form_unconsign_request.js b/js/components/ascribe_forms/form_unconsign_request.js
index 1978e151..ff4b8978 100644
--- a/js/components/ascribe_forms/form_unconsign_request.js
+++ b/js/components/ascribe_forms/form_unconsign_request.js
@@ -19,7 +19,6 @@ let UnConsignRequestForm = React.createClass({
url: React.PropTypes.string,
id: React.PropTypes.object,
message: React.PropTypes.string,
- onRequestHide: React.PropTypes.func,
handleSuccess: React.PropTypes.func
},
@@ -40,11 +39,9 @@ let UnConsignRequestForm = React.createClass({
-
+ type="submit">
+ {getLangText('REQUEST UNCONSIGN')}
+
}
spinner={
diff --git a/js/components/ascribe_modal/modal_wrapper.js b/js/components/ascribe_modal/modal_wrapper.js
index 05971f3a..f00eee9e 100644
--- a/js/components/ascribe_modal/modal_wrapper.js
+++ b/js/components/ascribe_modal/modal_wrapper.js
@@ -46,13 +46,14 @@ let ModalWrapper = React.createClass({
renderChildren() {
return ReactAddons.Children.map(this.props.children, (child) => {
return ReactAddons.addons.cloneWithProps(child, {
- onRequestHide: this.hide,
handleSuccess: this.handleSuccess
});
});
},
render() {
+ // this adds the onClick method show of modal_wrapper to the trigger component
+ // which is in most cases a button.
let trigger = React.cloneElement(this.props.trigger, {onClick: this.show});
return (
diff --git a/js/components/login_modal_handler.js b/js/components/login_modal_handler.js
deleted file mode 100644
index 005fbcd7..00000000
--- a/js/components/login_modal_handler.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-
-import React from 'react';
-
-import Button from 'react-bootstrap/lib/Button';
-import Modal from 'react-bootstrap/lib/Modal';
-import OverlayMixin from 'react-bootstrap/lib/OverlayMixin';
-import { getLangText } from '../utils/lang_utils.js';
-
-let LoginModalHandler = React.createClass({
- mixins: [OverlayMixin],
-
- getInitialState() {
- return {
- isModalOpen: true
- };
- },
-
- handleToggle() {
- this.setState({
- isModalOpen: !this.state.isModalOpen
- });
- },
-
- render() {
- if(!this.state.isModalOpen || !(this.props.query.login === '')) {
- return ;
- }
-
- return (
-
-
- This modal is controlled by our custom trigger component.
-
-
-
-
-
- );
- }
-});
-
-export default LoginModalHandler;
\ No newline at end of file
From d66549478f2ae138204c807aa31b0cc9695bfbf0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?=
Date: Wed, 5 Aug 2015 18:14:49 +0200
Subject: [PATCH 04/29] WIP: Refactor delete editions form
---
.../ascribe_buttons/delete_button.js | 7 +-
.../ascribe_forms/form_delete_edition.js | 64 +++++++++++++------
.../ascribe_forms/form_piece_extradata.js | 4 +-
3 files changed, 51 insertions(+), 24 deletions(-)
diff --git a/js/components/ascribe_buttons/delete_button.js b/js/components/ascribe_buttons/delete_button.js
index 0e811885..b0b64427 100644
--- a/js/components/ascribe_buttons/delete_button.js
+++ b/js/components/ascribe_buttons/delete_button.js
@@ -26,7 +26,7 @@ let DeleteButton = React.createClass({
mixins: [Router.Navigation],
- render: function () {
+ render() {
let availableAcls;
let btnDelete;
let content;
@@ -61,10 +61,11 @@ let DeleteButton = React.createClass({
}
btnDelete = ;
- }
- else {
+
+ } else {
return null;
}
+
return (
+
);
}
});
diff --git a/js/components/ascribe_forms/form_piece_extradata.js b/js/components/ascribe_forms/form_piece_extradata.js
index bbec9dca..cc4ec130 100644
--- a/js/components/ascribe_forms/form_piece_extradata.js
+++ b/js/components/ascribe_forms/form_piece_extradata.js
@@ -3,7 +3,7 @@
import React from 'react';
import requests from '../../utils/requests';
-import { getLangText } from '../../utils/lang_utils.js'
+import { getLangText } from '../../utils/lang_utils.js';
import apiUrls from '../../constants/api_urls';
@@ -20,6 +20,7 @@ let PieceExtraDataForm = React.createClass({
title: React.PropTypes.string,
editable: React.PropTypes.bool
},
+
getFormData(){
let extradata = {};
extradata[this.props.name] = this.refs.form.refs[this.props.name].state.value;
@@ -28,6 +29,7 @@ let PieceExtraDataForm = React.createClass({
piece_id: this.props.pieceId
};
},
+
render() {
let defaultValue = this.props.extraData[this.props.name] || '';
if (defaultValue.length === 0 && !this.props.editable){
From dbd0e14a649ca8c824eae0b9191c095c558158ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?=
Date: Thu, 6 Aug 2015 10:09:25 +0200
Subject: [PATCH 05/29] add DELETE http support to form
---
js/components/ascribe_forms/form.js | 51 ++++++++++++++++---
js/components/ascribe_forms/form_consign.js | 1 -
.../ascribe_forms/form_delete_edition.js | 7 ++-
.../ascribe_forms/form_request_action.js | 3 +-
js/utils/requests.js | 2 +-
5 files changed, 52 insertions(+), 12 deletions(-)
diff --git a/js/components/ascribe_forms/form.js b/js/components/ascribe_forms/form.js
index 0f022a0d..23ace605 100644
--- a/js/components/ascribe_forms/form.js
+++ b/js/components/ascribe_forms/form.js
@@ -15,13 +15,25 @@ import { mergeOptionsWithDuplicates } from '../../utils/general_utils';
let Form = React.createClass({
propTypes: {
url: React.PropTypes.string,
+ method: React.PropTypes.string,
handleSuccess: React.PropTypes.func,
getFormData: React.PropTypes.func,
children: React.PropTypes.oneOfType([
React.PropTypes.object,
React.PropTypes.array
]),
- className: React.PropTypes.string
+ className: React.PropTypes.string,
+ spinner: React.PropTypes.element,
+ buttons: React.PropTypes.oneOfType([
+ React.PropTypes.element,
+ React.PropTypes.arrayOf(React.PropTypes.element)
+ ])
+ },
+
+ getDefaultProps() {
+ return {
+ method: 'post'
+ };
},
getInitialState() {
@@ -31,6 +43,7 @@ let Form = React.createClass({
errors: []
};
},
+
reset(){
for (let ref in this.refs){
if (typeof this.refs[ref].reset === 'function'){
@@ -39,22 +52,38 @@ let Form = React.createClass({
}
this.setState(this.getInitialState());
},
+
submit(event){
- if (event) {
+
+ if(event) {
event.preventDefault();
}
+
this.setState({submitted: true});
this.clearErrors();
- let action = (this.httpVerb && this.httpVerb()) || 'post';
- window.setTimeout(() => this[action](), 100);
+
+ // selecting http method based on props
+ if(this[this.props.method]) {
+ window.setTimeout(() => this[this.props.method](), 100);
+ } else {
+ throw new Error('This HTTP method is not supported by form.js (' + this.props.method + ')');
+ }
},
- post(){
+
+ post() {
requests
.post(this.props.url, { body: this.getFormData() })
.then(this.handleSuccess)
.catch(this.handleError);
},
+ delete() {
+ requests
+ .delete(this.props.url, this.getFormData())
+ .then(this.handleSuccess)
+ .catch(this.handleError);
+ },
+
getFormData(){
let data = {};
for (let ref in this.refs){
@@ -70,6 +99,7 @@ let Form = React.createClass({
handleChangeChild(){
this.setState({edited: true});
},
+
handleSuccess(response){
if ('handleSuccess' in this.props){
this.props.handleSuccess(response);
@@ -79,8 +109,12 @@ let Form = React.createClass({
this.refs[ref].handleSuccess();
}
}
- this.setState({edited: false, submitted: false});
+ this.setState({
+ edited: false,
+ submitted: false
+ });
},
+
handleError(err){
if (err.json) {
for (var input in err.json.errors){
@@ -104,6 +138,7 @@ let Form = React.createClass({
}
this.setState({submitted: false});
},
+
clearErrors(){
for (var ref in this.refs){
if ('clearErrors' in this.refs[ref]){
@@ -112,6 +147,7 @@ let Form = React.createClass({
}
this.setState({errors: []});
},
+
getButtons() {
if (this.state.submitted){
return this.props.spinner;
@@ -134,6 +170,7 @@ let Form = React.createClass({
}
return buttons;
},
+
getErrors() {
let errors = null;
if (this.state.errors.length > 0){
@@ -143,6 +180,7 @@ let Form = React.createClass({
}
return errors;
},
+
renderChildren() {
return ReactAddons.Children.map(this.props.children, (child) => {
if (child) {
@@ -153,6 +191,7 @@ let Form = React.createClass({
}
});
},
+
render() {
let className = 'ascribe-form';
diff --git a/js/components/ascribe_forms/form_consign.js b/js/components/ascribe_forms/form_consign.js
index 875b6ddd..9b3f0c9c 100644
--- a/js/components/ascribe_forms/form_consign.js
+++ b/js/components/ascribe_forms/form_consign.js
@@ -26,7 +26,6 @@ let ConsignForm = React.createClass({
},
render() {
-
return (
);
}
});
From 68f4decaad978d5a0e696293cb69134681d7049f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?=
Date: Thu, 6 Aug 2015 10:23:01 +0200
Subject: [PATCH 07/29] remove FormPropertyHeader
---
.../ascribe_forms/create_editions_form.js | 1 -
js/components/ascribe_forms/form_consign.js | 1 -
.../ascribe_forms/form_delete_piece.js | 1 +
js/components/ascribe_forms/form_login.js | 6 ++--
.../ascribe_forms/form_property_header.js | 22 --------------
.../ascribe_forms/form_register_piece.js | 5 ++--
js/components/ascribe_forms/form_signup.js | 5 ++--
js/components/password_reset_container.js | 30 ++++++++++++++-----
js/components/register_piece.js | 1 -
9 files changed, 29 insertions(+), 43 deletions(-)
delete mode 100644 js/components/ascribe_forms/form_property_header.js
diff --git a/js/components/ascribe_forms/create_editions_form.js b/js/components/ascribe_forms/create_editions_form.js
index a9c44993..07f9677c 100644
--- a/js/components/ascribe_forms/create_editions_form.js
+++ b/js/components/ascribe_forms/create_editions_form.js
@@ -13,7 +13,6 @@ import apiUrls from '../../constants/api_urls';
import { getLangText } from '../../utils/lang_utils';
let CreateEditionsForm = React.createClass({
-
propTypes: {
handleSuccess: React.PropTypes.func,
pieceId: React.PropTypes.number
diff --git a/js/components/ascribe_forms/form_consign.js b/js/components/ascribe_forms/form_consign.js
index 9b3f0c9c..6f85adc2 100644
--- a/js/components/ascribe_forms/form_consign.js
+++ b/js/components/ascribe_forms/form_consign.js
@@ -8,7 +8,6 @@ import Form from './form';
import Property from './property';
import InputTextAreaToggable from './input_textarea_toggable';
-
import AppConstants from '../../constants/application_constants';
import { getLangText } from '../../utils/lang_utils.js';
diff --git a/js/components/ascribe_forms/form_delete_piece.js b/js/components/ascribe_forms/form_delete_piece.js
index 1ac073fd..552c38c0 100644
--- a/js/components/ascribe_forms/form_delete_piece.js
+++ b/js/components/ascribe_forms/form_delete_piece.js
@@ -9,6 +9,7 @@ import AppConstants from '../../constants/application_constants';
import { getLangText } from '../../utils/lang_utils';
+
let PieceDeleteForm = React.createClass({
propTypes: {
pieceId: React.PropTypes.number,
diff --git a/js/components/ascribe_forms/form_login.js b/js/components/ascribe_forms/form_login.js
index 24b0eb93..a28d99cd 100644
--- a/js/components/ascribe_forms/form_login.js
+++ b/js/components/ascribe_forms/form_login.js
@@ -11,7 +11,6 @@ import UserActions from '../../actions/user_actions';
import Form from './form';
import Property from './property';
-import FormPropertyHeader from './form_property_header';
import apiUrls from '../../constants/api_urls';
import AppConstants from '../../constants/application_constants';
@@ -20,7 +19,6 @@ import { getLangText } from '../../utils/lang_utils';
let LoginForm = React.createClass({
-
propTypes: {
headerMessage: React.PropTypes.string,
submitMessage: React.PropTypes.string,
@@ -114,9 +112,9 @@ let LoginForm = React.createClass({
}>
-
+
{this.props.headerMessage}
-
+
diff --git a/js/components/ascribe_forms/form_property_header.js b/js/components/ascribe_forms/form_property_header.js
deleted file mode 100644
index 85e027c1..00000000
--- a/js/components/ascribe_forms/form_property_header.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-import React from 'react';
-
-let FormPropertyHeader = React.createClass({
- propTypes: {
- children: React.PropTypes.oneOfType([
- React.PropTypes.arrayOf(React.PropTypes.element),
- React.PropTypes.element
- ])
- },
-
- render() {
- return (
-
- {this.props.children}
-
- );
- }
-});
-
-export default FormPropertyHeader;
\ No newline at end of file
diff --git a/js/components/ascribe_forms/form_register_piece.js b/js/components/ascribe_forms/form_register_piece.js
index 853506f6..627b1b59 100644
--- a/js/components/ascribe_forms/form_register_piece.js
+++ b/js/components/ascribe_forms/form_register_piece.js
@@ -7,7 +7,6 @@ import UserActions from '../../actions/user_actions';
import Form from './form';
import Property from './property';
-import FormPropertyHeader from './form_property_header';
import ReactS3FineUploader from '../ascribe_uploader/react_s3_fine_uploader';
@@ -110,9 +109,9 @@ let RegisterPieceForm = React.createClass({
}>
-
+
{this.props.headerMessage}
-
+
}>
-
+
{this.props.headerMessage}
-
+
diff --git a/js/components/password_reset_container.js b/js/components/password_reset_container.js
index 20851632..4cda992e 100644
--- a/js/components/password_reset_container.js
+++ b/js/components/password_reset_container.js
@@ -5,7 +5,6 @@ import Router from 'react-router';
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 GlobalNotificationModel from '../models/global_notification_model';
@@ -15,12 +14,15 @@ import { getLangText } from '../utils/lang_utils';
let PasswordResetContainer = React.createClass({
mixins: [Router.Navigation],
+
getInitialState() {
return {isRequested: false};
},
- handleRequestSuccess(email){
+
+ handleRequestSuccess(email) {
this.setState({isRequested: email});
},
+
render() {
if (this.props.query.email && this.props.query.token) {
return (
@@ -57,12 +59,17 @@ let PasswordResetContainer = React.createClass({
});
let PasswordRequestResetForm = React.createClass({
+ propTypes: {
+ handleRequestSuccess: React.PropTypes.func
+ },
+
handleSuccess() {
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);
},
+
render() {
return (
}>
-
+
{getLangText('Reset your password')}
-
+
@@ -99,19 +106,26 @@ let PasswordRequestResetForm = React.createClass({
});
let PasswordResetForm = React.createClass({
+ propTypes: {
+ email: React.PropTypes.string,
+ token: React.PropTypes.string
+ },
+
mixins: [Router.Navigation],
- getFormData(){
+ getFormData() {
return {
email: this.props.email,
token: this.props.token
};
},
+
handleSuccess() {
this.transitionTo('pieces');
let notification = new GlobalNotificationModel(getLangText('password successfully updated'), 'success', 10000);
GlobalNotificationActions.appendGlobalNotification(notification);
},
+
render() {
return (
}>
-
+
{getLangText('Reset the password for')} {this.props.email}
-
+
diff --git a/js/components/register_piece.js b/js/components/register_piece.js
index 20826b7d..cdea0247 100644
--- a/js/components/register_piece.js
+++ b/js/components/register_piece.js
@@ -23,7 +23,6 @@ import GlobalNotificationActions from '../actions/global_notification_actions';
import Property from './ascribe_forms/property';
import PropertyCollapsible from './ascribe_forms/property_collapsible';
import RegisterPieceForm from './ascribe_forms/form_register_piece';
-//import FormPropertyHeader from './ascribe_forms/form_property_header';
import LoginContainer from './login_container';
import SlidesContainer from './ascribe_slides_container/slides_container';
From 0eb10c6c4b75bea7a05c655c631a29bb33a92bf4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?=
Date: Thu, 6 Aug 2015 10:31:51 +0200
Subject: [PATCH 08/29] refactor form_remove_editions_from_collection
---
.../ascribe_forms/form_piece_extradata.js | 2 +-
.../form_remove_editions_from_collection.js | 69 +++++++++++++------
2 files changed, 50 insertions(+), 21 deletions(-)
diff --git a/js/components/ascribe_forms/form_piece_extradata.js b/js/components/ascribe_forms/form_piece_extradata.js
index cc4ec130..644cb908 100644
--- a/js/components/ascribe_forms/form_piece_extradata.js
+++ b/js/components/ascribe_forms/form_piece_extradata.js
@@ -21,7 +21,7 @@ let PieceExtraDataForm = React.createClass({
editable: React.PropTypes.bool
},
- getFormData(){
+ getFormData() {
let extradata = {};
extradata[this.props.name] = this.refs.form.refs[this.props.name].state.value;
return {
diff --git a/js/components/ascribe_forms/form_remove_editions_from_collection.js b/js/components/ascribe_forms/form_remove_editions_from_collection.js
index b69820de..7c0bee01 100644
--- a/js/components/ascribe_forms/form_remove_editions_from_collection.js
+++ b/js/components/ascribe_forms/form_remove_editions_from_collection.js
@@ -2,34 +2,63 @@
import React from 'react';
-import { getLangText } from '../../utils/lang_utils.js';
-import requests from '../../utils/requests';
-import apiUrls from '../../constants/api_urls';
-import FormMixin from '../../mixins/form_mixin';
+import Form from './form';
+
+import ApiUrls from '../../constants/api_urls';
+import AppConstants from '../../constants/application_constants';
+
+import { getLangText } from '../../utils/lang_utils';
let EditionRemoveFromCollectionForm = React.createClass({
+ propTypes: {
+ editions: React.PropTypes.arrayOf(React.PropTypes.object),
- mixins: [FormMixin],
-
- url() {
- return requests.prepareUrl(apiUrls.edition_remove_from_collection, {edition_id: this.getBitcoinIds().join()});
- },
-
- httpVerb(){
- return 'delete';
+ // Propagated by ModalWrapper in most cases
+ handleSuccess: React.PropTypes.func
},
- renderForm () {
+ getBitcoinIds() {
+ return this.props.editions.map(function(edition){
+ return edition.bitcoin_id;
+ });
+ },
+
+ // Since this form can be used for either removing a single edition or multiple
+ // we need to call getBitcoinIds to get the value of edition_id
+ getFormData() {
+ return {
+ edition_id: this.getBitcoinIds().join(',')
+ };
+ },
+
+ render() {
return (
-
+
+ }
+ spinner={
+
+
![]({AppConstants.baseUrl)
+
+ }>
{getLangText('Are you sure you would like to remove these editions from your collection')}?
{getLangText('This is an irrevocable action%s', '.')}
-
-
-
-
+
);
}
});
From 3624ae874f9d2688b033ff614f784d2dd115ce75 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?=
Date: Thu, 6 Aug 2015 10:42:12 +0200
Subject: [PATCH 09/29] refactor form_remove_piece_from_collection
---
.../form_remove_piece_from_collection.js | 62 ++++++++++++-------
1 file changed, 40 insertions(+), 22 deletions(-)
diff --git a/js/components/ascribe_forms/form_remove_piece_from_collection.js b/js/components/ascribe_forms/form_remove_piece_from_collection.js
index 905cfcf6..d827c2ee 100644
--- a/js/components/ascribe_forms/form_remove_piece_from_collection.js
+++ b/js/components/ascribe_forms/form_remove_piece_from_collection.js
@@ -2,38 +2,56 @@
import React from 'react';
-import { getLangText } from '../../utils/lang_utils.js';
-import requests from '../../utils/requests';
-import apiUrls from '../../constants/api_urls';
-import FormMixin from '../../mixins/form_mixin';
+import Form from './form';
+
+import ApiUrls from '../../constants/api_urls';
+import AppConstants from '../../constants/application_constants';
+
+import { getLangText } from '../../utils/lang_utils';
+
let PieceRemoveFromCollectionForm = React.createClass({
-
propTypes: {
- pieceId: React.PropTypes.number
+ pieceId: React.PropTypes.number,
+
+ // Propagated by ModalWrapper in most cases
+ handleSuccess: React.PropTypes.func
},
- mixins: [FormMixin],
-
- url() {
- return requests.prepareUrl(apiUrls.piece_remove_from_collection, {piece_id: this.props.pieceId});
- },
-
- httpVerb(){
- return 'delete';
+ getFormData() {
+ return {
+ piece_id: this.props.pieceId
+ };
},
- renderForm () {
+ render () {
return (
-
+
+ }
+ spinner={
+
+
![]({AppConstants.baseUrl)
+
+ }>
{getLangText('Are you sure you would like to remove this piece from your collection')}?
{getLangText('This is an irrevocable action%s', '.')}
-
-
-
-
-
+
);
}
});
From 04c406a2887a65b1fc7768edcb3ddc8fe79f293e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?=
Date: Thu, 6 Aug 2015 10:58:09 +0200
Subject: [PATCH 10/29] minor changes
---
js/components/ascribe_forms/form_share_email.js | 2 ++
js/components/ascribe_forms/form_unconsign_request.js | 1 -
js/components/ascribe_forms/input_date.js | 3 ++-
js/components/ascribe_forms/input_textarea_toggable.js | 1 -
4 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/js/components/ascribe_forms/form_share_email.js b/js/components/ascribe_forms/form_share_email.js
index 86f69cd1..89884886 100644
--- a/js/components/ascribe_forms/form_share_email.js
+++ b/js/components/ascribe_forms/form_share_email.js
@@ -5,9 +5,11 @@ import React from 'react';
import Form from './form';
import Property from './property';
import InputTextAreaToggable from './input_textarea_toggable';
+
import Button from 'react-bootstrap/lib/Button';
import AppConstants from '../../constants/application_constants';
+
import { getLangText } from '../../utils/lang_utils.js';
diff --git a/js/components/ascribe_forms/form_unconsign_request.js b/js/components/ascribe_forms/form_unconsign_request.js
index ff4b8978..c47b5411 100644
--- a/js/components/ascribe_forms/form_unconsign_request.js
+++ b/js/components/ascribe_forms/form_unconsign_request.js
@@ -3,7 +3,6 @@
import React from 'react';
import Button from 'react-bootstrap/lib/Button';
-import Alert from 'react-bootstrap/lib/Alert';
import Form from './form';
import Property from './property';
diff --git a/js/components/ascribe_forms/input_date.js b/js/components/ascribe_forms/input_date.js
index 32ffb5eb..e77f70b7 100644
--- a/js/components/ascribe_forms/input_date.js
+++ b/js/components/ascribe_forms/input_date.js
@@ -7,7 +7,8 @@ import DatePicker from 'react-datepicker/dist/react-datepicker';
let InputDate = React.createClass({
propTypes: {
submitted: React.PropTypes.bool,
- placeholderText: React.PropTypes.string
+ placeholderText: React.PropTypes.string,
+ onChange: React.PropTypes.func
},
getInitialState() {
diff --git a/js/components/ascribe_forms/input_textarea_toggable.js b/js/components/ascribe_forms/input_textarea_toggable.js
index fe372bdd..bc70c530 100644
--- a/js/components/ascribe_forms/input_textarea_toggable.js
+++ b/js/components/ascribe_forms/input_textarea_toggable.js
@@ -5,7 +5,6 @@ import React from 'react';
import TextareaAutosize from 'react-textarea-autosize';
let InputTextAreaToggable = React.createClass({
-
propTypes: {
editable: React.PropTypes.bool.isRequired,
rows: React.PropTypes.number.isRequired,
From f73001a5b8564b6188b4bfa1eac3507f43ae5af5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?=
Date: Fri, 7 Aug 2015 14:31:37 +0200
Subject: [PATCH 11/29] remove form property header and replace class name
definition
---
js/components/ascribe_panel/action_panel.js | 13 ++-----------
.../prize/components/settings_container.js | 5 ++---
2 files changed, 4 insertions(+), 14 deletions(-)
diff --git a/js/components/ascribe_panel/action_panel.js b/js/components/ascribe_panel/action_panel.js
index 1aaef6f7..0e63999e 100644
--- a/js/components/ascribe_panel/action_panel.js
+++ b/js/components/ascribe_panel/action_panel.js
@@ -1,7 +1,7 @@
'use strict';
import React from 'react';
-
+import classnames from 'classnames';
let ActionPanel = React.createClass({
propTypes: {
@@ -37,18 +37,9 @@ let ActionPanel = React.createClass({
});
},
- getClassName() {
- if(this.state.isFocused) {
- return 'is-focused';
- } else {
- return '';
- }
- },
-
render() {
-
return (
-
+
diff --git a/js/components/whitelabel/prize/components/settings_container.js b/js/components/whitelabel/prize/components/settings_container.js
index bd426a9c..ca5bbf7e 100644
--- a/js/components/whitelabel/prize/components/settings_container.js
+++ b/js/components/whitelabel/prize/components/settings_container.js
@@ -14,7 +14,6 @@ import CollapsibleParagraph from '../../../ascribe_collapsible/collapsible_parag
import Form from '../../../ascribe_forms/form';
import Property from '../../../ascribe_forms/property';
-import FormPropertyHeader from '../../../ascribe_forms/form_property_header';
import ActionPanel from '../../../ascribe_panel/action_panel';
@@ -279,9 +278,9 @@ let PrizeJurySettings = React.createClass({
handleSuccess={this.handleCreateSuccess}
ref='form'
buttonSubmitText='INVITE'>
-
+
Jury Members
-
+
From 3afb036f2434169e86dc642330e10e1a7c5b5da1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?=
Date: Fri, 7 Aug 2015 15:08:02 +0200
Subject: [PATCH 12/29] rename apiUrls to ApiUrls
---
js/components/ascribe_buttons/acl_button.js | 12 ++++++------
.../ascribe_buttons/unconsign_request_button.js | 4 ++--
js/components/ascribe_detail/edition.js | 8 ++++----
js/components/ascribe_detail/further_details.js | 4 ++--
.../ascribe_forms/create_editions_form.js | 4 ++--
js/components/ascribe_forms/form_login.js | 4 ++--
.../ascribe_forms/form_piece_extradata.js | 4 ++--
js/components/ascribe_forms/form_register_piece.js | 6 +++---
js/components/ascribe_forms/form_request_action.js | 14 +++++++-------
js/components/ascribe_forms/form_signup.js | 4 ++--
js/components/coa_verify_container.js | 4 ++--
js/components/password_reset_container.js | 6 +++---
js/components/settings_container.js | 12 ++++++------
.../prize/components/settings_container.js | 4 ++--
js/constants/api_urls.js | 6 +++---
js/fetchers/user_fetcher.js | 4 ++--
16 files changed, 50 insertions(+), 50 deletions(-)
diff --git a/js/components/ascribe_buttons/acl_button.js b/js/components/ascribe_buttons/acl_button.js
index f457e48b..5a924a0c 100644
--- a/js/components/ascribe_buttons/acl_button.js
+++ b/js/components/ascribe_buttons/acl_button.js
@@ -14,7 +14,7 @@ import GlobalNotificationModel from '../../models/global_notification_model';
import GlobalNotificationActions from '../../actions/global_notification_actions';
import { getLangText } from '../../utils/lang_utils.js';
-import apiUrls from '../../constants/api_urls';
+import ApiUrls from '../../constants/api_urls';
let AclButton = React.createClass({
propTypes: {
@@ -42,7 +42,7 @@ let AclButton = React.createClass({
+ url={ApiUrls.ownership_consigns}/>
),
handleSuccess: this.showNotification
};
@@ -55,7 +55,7 @@ let AclButton = React.createClass({
+ url={ApiUrls.ownership_unconsigns}/>
),
handleSuccess: this.showNotification
};
@@ -67,7 +67,7 @@ let AclButton = React.createClass({
+ url={ApiUrls.ownership_transfers}/>
),
handleSuccess: this.showNotification
};
@@ -79,7 +79,7 @@ let AclButton = React.createClass({
form: (
+ url={this.isPiece() ? ApiUrls.ownership_loans_pieces : ApiUrls.ownership_loans_editions}/>
),
handleSuccess: this.showNotification
};
@@ -92,7 +92,7 @@ let AclButton = React.createClass({
+ url={this.isPiece() ? ApiUrls.ownership_shares_pieces : ApiUrls.ownership_shares_editions }/>
),
handleSuccess: this.showNotification
};
diff --git a/js/components/ascribe_buttons/unconsign_request_button.js b/js/components/ascribe_buttons/unconsign_request_button.js
index b192ac55..e5e1c661 100644
--- a/js/components/ascribe_buttons/unconsign_request_button.js
+++ b/js/components/ascribe_buttons/unconsign_request_button.js
@@ -8,7 +8,7 @@ import ModalWrapper from '../ascribe_modal/modal_wrapper';
import UnConsignRequestForm from './../ascribe_forms/form_unconsign_request';
import { getLangText } from '../../utils/lang_utils.js';
-import apiUrls from '../../constants/api_urls';
+import ApiUrls from '../../constants/api_urls';
let UnConsignRequestButton = React.createClass({
@@ -29,7 +29,7 @@ let UnConsignRequestButton = React.createClass({
handleSuccess={this.props.handleSuccess}
title='Request to Un-Consign'>
0 && this.props.edition.pending_new_owner && this.props.edition.acl.acl_withdraw_transfer) {
withdrawButton = (