1
0
mirror of https://github.com/ascribe/onion.git synced 2024-06-30 05:31:58 +02:00

replace anonymous filter functions with util functions

This commit is contained in:
Tim Daubenschütz 2015-09-10 09:54:02 +02:00
parent 1fabea93ff
commit b4756be60a
4 changed files with 41 additions and 22 deletions

View File

@ -5,6 +5,8 @@ import React from 'react';
import FileDragAndDropPreview from './file_drag_and_drop_preview';
import FileDragAndDropPreviewProgress from './file_drag_and_drop_preview_progress';
import { displayValidFilesFilter } from './react_s3_fine_uploader_utils';
let FileDragAndDropPreviewIterator = React.createClass({
propTypes: {
@ -28,28 +30,24 @@ let FileDragAndDropPreviewIterator = React.createClass({
areAssetsEditable
} = this.props;
files = files.filter((file) => file.status !== 'deleted' && file.status !== 'canceled');
files = files.filter(displayValidFilesFilter);
if(files && files.length > 0) {
return (
<div className="file-drag-and-drop-preview-iterator">
<div className="file-drag-and-drop-preview-iterator-spacing">
{files.map((file, i) => {
if(file.status !== 'deleted' && file.status !== 'canceled' && file.size !== -1) {
return (
<FileDragAndDropPreview
key={i}
file={file}
handleDeleteFile={handleDeleteFile}
handleCancelFile={handleCancelFile}
handlePauseFile={handlePauseFile}
handleResumeFile={handleResumeFile}
areAssetsDownloadable={areAssetsDownloadable}
areAssetsEditable={areAssetsEditable}/>
);
} else {
return null;
}
return (
<FileDragAndDropPreview
key={i}
file={file}
handleDeleteFile={handleDeleteFile}
handleCancelFile={handleCancelFile}
handlePauseFile={handlePauseFile}
handleResumeFile={handleResumeFile}
areAssetsDownloadable={areAssetsDownloadable}
areAssetsEditable={areAssetsEditable}/>
);
})}
</div>
<FileDragAndDropPreviewProgress files={files} />

View File

@ -4,6 +4,9 @@ import React from 'react';
import ProgressBar from 'react-bootstrap/lib/ProgressBar';
import { displayValidProgressFilesFilter } from './react_s3_fine_uploader_utils';
let FileDragAndDropPreviewProgress = React.createClass({
propTypes: {
files: React.PropTypes.array
@ -11,7 +14,7 @@ let FileDragAndDropPreviewProgress = React.createClass({
calcOverallFileSize() {
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
for(let i = 0; i < files.length; i++) {
@ -24,7 +27,7 @@ let FileDragAndDropPreviewProgress = React.createClass({
calcOverallProgress() {
let overallProgress = 0;
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
// files' progresses in relation to their size

View File

@ -17,7 +17,7 @@ import GlobalNotificationActions from '../../actions/global_notification_actions
import AppConstants from '../../constants/application_constants';
import { computeHashOfFile } from '../../utils/file_utils';
import { computeHashOfFile, displayValidFilesFilter } from '../../utils/file_utils';
var ReactS3FineUploader = React.createClass({
@ -578,7 +578,7 @@ var ReactS3FineUploader = React.createClass({
handleUploadFile(files) {
// If multiple set and user already uploaded its work,
// 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;
}

View File

@ -1,5 +1,14 @@
'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
* successfully without it being deleted or canceled.
@ -7,10 +16,19 @@
* @return {Boolean}
*/
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') {
return true;
} else {
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';
}