diff --git a/js/components/ascribe_detail/further_details.js b/js/components/ascribe_detail/further_details.js index 9fc5bf15..863ed491 100644 --- a/js/components/ascribe_detail/further_details.js +++ b/js/components/ascribe_detail/further_details.js @@ -15,7 +15,7 @@ import GlobalNotificationActions from '../../actions/global_notification_actions import FurtherDetailsFileuploader from './further_details_fileuploader'; -import { isReadyForFormSubmission } from '../ascribe_uploader/react_s3_fine_uploader_utils'; +import { formSubmissionValidation } from '../ascribe_uploader/react_s3_fine_uploader_utils'; let FurtherDetails = React.createClass({ propTypes: { @@ -80,7 +80,7 @@ let FurtherDetails = React.createClass({ + {getLangText('Create new contract')} + + } + spinner={ + + + + }> + + + + + + + + ); + } +}); + +export default CreateContractForm; \ 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 3519c976..c6a28626 100644 --- a/js/components/ascribe_forms/form_register_piece.js +++ b/js/components/ascribe_forms/form_register_piece.js @@ -16,7 +16,7 @@ import ApiUrls from '../../constants/api_urls'; import { getCookie } from '../../utils/fetch_api_utils'; import { getLangText } from '../../utils/lang_utils'; import { mergeOptions } from '../../utils/general_utils'; -import { isReadyForFormSubmission } from '../ascribe_uploader/react_s3_fine_uploader_utils'; +import { formSubmissionValidation } from '../ascribe_uploader/react_s3_fine_uploader_utils'; let RegisterPieceForm = React.createClass({ @@ -115,7 +115,7 @@ let RegisterPieceForm = React.createClass({ - -
- - - -
-
-
+ defaultExpanded={true}> + {/* this should be this.props.defaultExpanded */} + ); } diff --git a/js/components/ascribe_uploader/react_s3_fine_uploader_utils.js b/js/components/ascribe_uploader/react_s3_fine_uploader_utils.js index dbf62619..dbbfd63f 100644 --- a/js/components/ascribe_uploader/react_s3_fine_uploader_utils.js +++ b/js/components/ascribe_uploader/react_s3_fine_uploader_utils.js @@ -1,16 +1,34 @@ 'use strict'; -/** - * Returns a boolean if there has been at least one file uploaded - * successfully without it being deleted or canceled. - * @param {array of files} files provided by react fine uploader - * @return {Boolean} - */ -export function isReadyForFormSubmission(files) { - files = files.filter((file) => file.status !== 'deleted' && file.status !== 'canceled'); - if (files.length > 0 && files[0].status === 'upload successful') { - return true; - } else { - return false; +export const formSubmissionValidation = { + /** + * Returns a boolean if there has been at least one file uploaded + * successfully without it being deleted or canceled. + * @param {array of files} files provided by react fine uploader + * @return {boolean} + */ + atLeastOneUploadedFile(files) { + files = files.filter((file) => file.status !== 'deleted' && file.status !== 'canceled'); + if (files.length > 0 && files[0].status === 'upload successful') { + return true; + } else { + return false; + } + }, + + /** + * File submission for the form is optional, but if the user decides to submit a file + * the form is not ready until there are no more files currently uploading. + * @param {array of files} files files provided by react fine uploader + * @return {boolean} [description] + */ + fileOptional(files) { + let uploadingFiles = files.filter((file) => file.status === 'submitting'); + + if (uploadingFiles.length === 0) { + return true; + } else { + return false; + } } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/js/components/whitelabel/wallet/components/cyland/ascribe_forms/cyland_additional_data_form.js b/js/components/whitelabel/wallet/components/cyland/ascribe_forms/cyland_additional_data_form.js index f7946be5..13e731ef 100644 --- a/js/components/whitelabel/wallet/components/cyland/ascribe_forms/cyland_additional_data_form.js +++ b/js/components/whitelabel/wallet/components/cyland/ascribe_forms/cyland_additional_data_form.js @@ -15,6 +15,8 @@ import AppConstants from '../../../../../../constants/application_constants'; import requests from '../../../../../../utils/requests'; import { getLangText } from '../../../../../../utils/lang_utils'; +import { formSubmissionValidation } from '../../../../../ascribe_uploader/react_s3_fine_uploader_utils'; + let CylandAdditionalDataForm = React.createClass({ propTypes: { @@ -60,16 +62,6 @@ let CylandAdditionalDataForm = React.createClass({ }); }, - isReadyForFormSubmission(files) { - let uploadingFiles = files.filter((file) => file.status === 'submitting'); - - if (uploadingFiles.length === 0) { - return true; - } else { - return false; - } - }, - render() { if(this.props.piece && this.props.piece.id) { return ( @@ -122,7 +114,7 @@ let CylandAdditionalDataForm = React.createClass({ uploadStarted={this.uploadStarted} submitKey={this.submitKey} setIsUploadReady={this.setIsUploadReady} - isReadyForFormSubmission={this.isReadyForFormSubmission} + isReadyForFormSubmission={formSubmissionValidation.fileOptional} editable={!this.props.disabled} pieceId={this.props.piece.id} otherData={this.props.piece.other_data}