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] 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