mirror of
https://github.com/ascribe/onion.git
synced 2025-02-14 21:10:27 +01:00
replace anonymous filter functions with util functions
This commit is contained in:
parent
1fabea93ff
commit
b4756be60a
@ -5,6 +5,8 @@ import React from 'react';
|
|||||||
import FileDragAndDropPreview from './file_drag_and_drop_preview';
|
import FileDragAndDropPreview from './file_drag_and_drop_preview';
|
||||||
import FileDragAndDropPreviewProgress from './file_drag_and_drop_preview_progress';
|
import FileDragAndDropPreviewProgress from './file_drag_and_drop_preview_progress';
|
||||||
|
|
||||||
|
import { displayValidFilesFilter } from './react_s3_fine_uploader_utils';
|
||||||
|
|
||||||
|
|
||||||
let FileDragAndDropPreviewIterator = React.createClass({
|
let FileDragAndDropPreviewIterator = React.createClass({
|
||||||
propTypes: {
|
propTypes: {
|
||||||
@ -28,28 +30,24 @@ let FileDragAndDropPreviewIterator = React.createClass({
|
|||||||
areAssetsEditable
|
areAssetsEditable
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
|
||||||
files = files.filter((file) => file.status !== 'deleted' && file.status !== 'canceled');
|
files = files.filter(displayValidFilesFilter);
|
||||||
|
|
||||||
if(files && files.length > 0) {
|
if(files && files.length > 0) {
|
||||||
return (
|
return (
|
||||||
<div className="file-drag-and-drop-preview-iterator">
|
<div className="file-drag-and-drop-preview-iterator">
|
||||||
<div className="file-drag-and-drop-preview-iterator-spacing">
|
<div className="file-drag-and-drop-preview-iterator-spacing">
|
||||||
{files.map((file, i) => {
|
{files.map((file, i) => {
|
||||||
if(file.status !== 'deleted' && file.status !== 'canceled' && file.size !== -1) {
|
return (
|
||||||
return (
|
<FileDragAndDropPreview
|
||||||
<FileDragAndDropPreview
|
key={i}
|
||||||
key={i}
|
file={file}
|
||||||
file={file}
|
handleDeleteFile={handleDeleteFile}
|
||||||
handleDeleteFile={handleDeleteFile}
|
handleCancelFile={handleCancelFile}
|
||||||
handleCancelFile={handleCancelFile}
|
handlePauseFile={handlePauseFile}
|
||||||
handlePauseFile={handlePauseFile}
|
handleResumeFile={handleResumeFile}
|
||||||
handleResumeFile={handleResumeFile}
|
areAssetsDownloadable={areAssetsDownloadable}
|
||||||
areAssetsDownloadable={areAssetsDownloadable}
|
areAssetsEditable={areAssetsEditable}/>
|
||||||
areAssetsEditable={areAssetsEditable}/>
|
);
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
<FileDragAndDropPreviewProgress files={files} />
|
<FileDragAndDropPreviewProgress files={files} />
|
||||||
|
@ -4,6 +4,9 @@ import React from 'react';
|
|||||||
|
|
||||||
import ProgressBar from 'react-bootstrap/lib/ProgressBar';
|
import ProgressBar from 'react-bootstrap/lib/ProgressBar';
|
||||||
|
|
||||||
|
import { displayValidProgressFilesFilter } from './react_s3_fine_uploader_utils';
|
||||||
|
|
||||||
|
|
||||||
let FileDragAndDropPreviewProgress = React.createClass({
|
let FileDragAndDropPreviewProgress = React.createClass({
|
||||||
propTypes: {
|
propTypes: {
|
||||||
files: React.PropTypes.array
|
files: React.PropTypes.array
|
||||||
@ -11,7 +14,7 @@ let FileDragAndDropPreviewProgress = React.createClass({
|
|||||||
|
|
||||||
calcOverallFileSize() {
|
calcOverallFileSize() {
|
||||||
let overallFileSize = 0;
|
let overallFileSize = 0;
|
||||||
let files = this.props.files.filter((file) => file.status !== 'deleted' && file.status !== 'canceled' && file.status !== 'online');
|
let files = this.props.files.filter(displayValidProgressFilesFilter);
|
||||||
|
|
||||||
// We just sum up all files' sizes
|
// We just sum up all files' sizes
|
||||||
for(let i = 0; i < files.length; i++) {
|
for(let i = 0; i < files.length; i++) {
|
||||||
@ -24,7 +27,7 @@ let FileDragAndDropPreviewProgress = React.createClass({
|
|||||||
calcOverallProgress() {
|
calcOverallProgress() {
|
||||||
let overallProgress = 0;
|
let overallProgress = 0;
|
||||||
let overallFileSize = this.calcOverallFileSize();
|
let overallFileSize = this.calcOverallFileSize();
|
||||||
let files = this.props.files.filter((file) => file.status !== 'deleted' && file.status !== 'canceled' && file.status !== 'online');
|
let files = this.props.files.filter(displayValidProgressFilesFilter);
|
||||||
|
|
||||||
// We calculate the overall progress by summing the individuals
|
// We calculate the overall progress by summing the individuals
|
||||||
// files' progresses in relation to their size
|
// files' progresses in relation to their size
|
||||||
|
@ -17,7 +17,7 @@ import GlobalNotificationActions from '../../actions/global_notification_actions
|
|||||||
|
|
||||||
import AppConstants from '../../constants/application_constants';
|
import AppConstants from '../../constants/application_constants';
|
||||||
|
|
||||||
import { computeHashOfFile } from '../../utils/file_utils';
|
import { computeHashOfFile, displayValidFilesFilter } from '../../utils/file_utils';
|
||||||
|
|
||||||
var ReactS3FineUploader = React.createClass({
|
var ReactS3FineUploader = React.createClass({
|
||||||
|
|
||||||
@ -578,7 +578,7 @@ var ReactS3FineUploader = React.createClass({
|
|||||||
handleUploadFile(files) {
|
handleUploadFile(files) {
|
||||||
// If multiple set and user already uploaded its work,
|
// If multiple set and user already uploaded its work,
|
||||||
// cancel upload
|
// cancel upload
|
||||||
if(!this.props.multiple && this.state.filesToUpload.filter((file) => file.status !== 'deleted' && file.status !== 'canceled').length > 0) {
|
if(!this.props.multiple && this.state.filesToUpload.filter(displayValidFilesFilter).length > 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter function for filtering all deleted and canceled files
|
||||||
|
* @param {object} file A file from filesToUpload that has status as a prop.
|
||||||
|
* @return {boolean}
|
||||||
|
*/
|
||||||
|
export function displayValidFilesFilter(file) {
|
||||||
|
return file.status !== 'deleted' && file.status !== 'canceled';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a boolean if there has been at least one file uploaded
|
* Returns a boolean if there has been at least one file uploaded
|
||||||
* successfully without it being deleted or canceled.
|
* successfully without it being deleted or canceled.
|
||||||
@ -7,10 +16,19 @@
|
|||||||
* @return {Boolean}
|
* @return {Boolean}
|
||||||
*/
|
*/
|
||||||
export function isReadyForFormSubmission(files) {
|
export function isReadyForFormSubmission(files) {
|
||||||
files = files.filter((file) => file.status !== 'deleted' && file.status !== 'canceled');
|
files = files.filter(displayValidFilesFilter);
|
||||||
if (files.length > 0 && files[0].status === 'upload successful') {
|
if (files.length > 0 && files[0].status === 'upload successful') {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter function for which files to integrate in the progress process
|
||||||
|
* @param {object} file A file from filesToUpload, that has a status as a prop.
|
||||||
|
* @return {boolean}
|
||||||
|
*/
|
||||||
|
export function displayValidProgressFilesFilter(file) {
|
||||||
|
return file.status !== 'deleted' && file.status !== 'canceled' && file.status !== 'online';
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user