1
0
mirror of https://github.com/ascribe/onion.git synced 2024-12-23 18:13:49 +01:00
onion/js/components/ascribe_detail/further_details.js

99 lines
3.3 KiB
JavaScript
Raw Normal View History

2015-07-08 22:54:07 +02:00
'use strict';
import React from 'react';
import Row from 'react-bootstrap/lib/Row';
import Col from 'react-bootstrap/lib/Col';
import Form from './../ascribe_forms/form';
import PieceExtraDataForm from './../ascribe_forms/form_piece_extradata';
import GlobalNotificationModel from '../../models/global_notification_model';
import GlobalNotificationActions from '../../actions/global_notification_actions';
2015-08-12 13:34:41 +02:00
import FurtherDetailsFileuploader from './further_details_fileuploader';
2015-07-08 22:54:07 +02:00
import { formSubmissionValidation } from '../ascribe_uploader/react_s3_fine_uploader_utils';
2015-07-08 22:54:07 +02:00
let FurtherDetails = React.createClass({
propTypes: {
editable: React.PropTypes.bool,
2015-07-10 14:15:22 +02:00
pieceId: React.PropTypes.number,
extraData: React.PropTypes.object,
otherData: React.PropTypes.arrayOf(React.PropTypes.object),
2015-07-08 22:54:07 +02:00
handleSuccess: React.PropTypes.func
},
getInitialState() {
return {
loading: false
};
},
showNotification(){
this.props.handleSuccess();
let notification = new GlobalNotificationModel('Details updated', 'success');
GlobalNotificationActions.appendGlobalNotification(notification);
},
submitFile(file){
2015-07-08 22:54:07 +02:00
this.setState({
otherDataKey: file.key
2015-07-08 22:54:07 +02:00
});
},
setIsUploadReady(isReady) {
this.setState({
isUploadReady: isReady
});
},
render() {
return (
<Row>
<Col md={12} className="ascribe-edition-personal-note">
<PieceExtraDataForm
name='artist_contact_info'
title='Artist Contact Info'
handleSuccess={this.showNotification}
editable={this.props.editable}
pieceId={this.props.pieceId}
extraData={this.props.extraData}
/>
<PieceExtraDataForm
name='display_instructions'
title='Display Instructions'
handleSuccess={this.showNotification}
editable={this.props.editable}
pieceId={this.props.pieceId}
extraData={this.props.extraData} />
<PieceExtraDataForm
name='technology_details'
title='Technology Details'
handleSuccess={this.showNotification}
editable={this.props.editable}
pieceId={this.props.pieceId}
extraData={this.props.extraData} />
2015-08-12 13:34:41 +02:00
<Form>
<FurtherDetailsFileuploader
submitFile={this.submitFile}
2015-08-12 13:34:41 +02:00
setIsUploadReady={this.setIsUploadReady}
isReadyForFormSubmission={formSubmissionValidation.atLeastOneUploadedFile}
2015-08-12 13:34:41 +02:00
editable={this.props.editable}
overrideForm={true}
2015-08-12 13:34:41 +02:00
pieceId={this.props.pieceId}
otherData={this.props.otherData}
multiple={true}/>
2015-08-12 13:34:41 +02:00
</Form>
</Col>
</Row>
);
2015-07-08 22:54:07 +02:00
}
});
export default FurtherDetails;