1
0
mirror of https://github.com/ascribe/onion.git synced 2024-12-23 01:39:36 +01:00
onion/js/components/ascribe_forms/create_editions_form.js

72 lines
2.1 KiB
JavaScript
Raw Permalink Normal View History

2015-07-13 17:09:44 +02:00
'use strict';
import React from 'react';
import Form from '../ascribe_forms/form';
import Property from '../ascribe_forms/property';
2015-07-13 18:13:16 +02:00
import GlobalNotificationModel from '../../models/global_notification_model';
import GlobalNotificationActions from '../../actions/global_notification_actions';
2015-10-12 17:55:02 +02:00
import AscribeSpinner from '../ascribe_spinner';
2015-08-07 15:08:02 +02:00
import ApiUrls from '../../constants/api_urls';
2015-07-13 17:09:44 +02:00
import { getLangText } from '../../utils/lang_utils';
let CreateEditionsForm = React.createClass({
propTypes: {
handleSuccess: React.PropTypes.func,
pieceId: React.PropTypes.number
},
getFormData() {
2015-07-13 17:09:44 +02:00
return {
piece_id: parseInt(this.props.pieceId, 10)
};
},
2015-07-13 18:13:16 +02:00
handleSuccess(response) {
const { handleSuccess } = this.props;
const notification = new GlobalNotificationModel(response.notification, 'success', 10000);
2015-07-13 18:13:16 +02:00
GlobalNotificationActions.appendGlobalNotification(notification);
if (typeof handleSuccess === 'function') {
handleSuccess(response);
2015-07-13 18:13:16 +02:00
}
},
2015-07-13 17:09:44 +02:00
render() {
return (
<Form
ref='form'
2015-08-07 15:08:02 +02:00
url={ApiUrls.editions}
2015-07-13 17:09:44 +02:00
getFormData={this.getFormData}
2015-07-13 18:13:16 +02:00
handleSuccess={this.handleSuccess}
buttons={
<button
type="submit"
2015-10-12 17:55:02 +02:00
className="btn btn-default btn-wide">
{getLangText('Create editions')}
</button>}
2015-07-13 17:09:44 +02:00
spinner={
2015-10-12 17:55:02 +02:00
<button className="btn btn-default btn-wide btn-spinner">
<AscribeSpinner color="dark-blue" size="md" />
2015-07-13 17:09:44 +02:00
</button>
}>
<Property
name='num_editions'
label={getLangText('Number of editions')}>
<input
type="number"
placeholder="(e.g. 32)"
min={1}
max={100} />
2015-07-13 17:09:44 +02:00
</Property>
</Form>
);
}
});
export default CreateEditionsForm;