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

Merge remote-tracking branch 'remotes/origin/master' into AD-661-due-1208-implement-jury-rating-an

This commit is contained in:
diminator 2015-08-24 16:45:03 +02:00
commit 1b335e31a4
3 changed files with 87 additions and 10 deletions

63
docs/feature_list.md Normal file
View File

@ -0,0 +1,63 @@
# Feature list
This list specifies all features in Onion that ought to be tested before actually pushing live:
- sign up & email activation
- login
- log out
- form input
+ reset
+ save
+ disabled state
- form checkbox
+ reset
+ save
+ disabled state
- create app
+ refresh token
- loan contract
+ upload
+ download
+ delete
- register work
+ with edition
+ without edition
+ correct encoding of video upload
- fineuploader
+ upload file
+ upload multiple files
+ delete file
+ cancel upload of file
- create editions
+ in piece list
+ in piece detail
- all notes in edition/piece detail
- transfer & consign & loan & share & delete
+ bulk
+ single
+ withdraw
- piece list
+ filter (also check for correct filtering of opened edition tables)
+ order
+ search
+ pagination
+ expandable edition list for piece
- download coa
## sluice
- hero landing page
- activation email
- submission (also check extra form fields)
+ of existing pieces
+ newly registered pieces
- rating
+ in piece list
+ in piece detail
- short listing (not yet implemented)
- piece list
+ order by rating
## Cyland
- hero landing page
- activation email
- submission (check states of submission (1,2,3))

View File

@ -229,7 +229,6 @@ var ReactS3FineUploader = React.createClass({
onDeleteComplete: this.onDeleteComplete, onDeleteComplete: this.onDeleteComplete,
onSessionRequestComplete: this.onSessionRequestComplete, onSessionRequestComplete: this.onSessionRequestComplete,
onError: this.onError, onError: this.onError,
onValidate: this.onValidate,
onUploadChunk: this.onUploadChunk, onUploadChunk: this.onUploadChunk,
onUploadChunkSuccess: this.onUploadChunkSuccess onUploadChunkSuccess: this.onUploadChunkSuccess
} }
@ -425,13 +424,17 @@ var ReactS3FineUploader = React.createClass({
GlobalNotificationActions.appendGlobalNotification(notification); GlobalNotificationActions.appendGlobalNotification(notification);
}, },
onValidate(data) { isFileValid(file) {
if(data.size > this.props.validation.sizeLimit) { if(file.size > this.props.validation.sizeLimit) {
this.state.uploader.cancelAll();
let fileSizeInMegaBytes = this.props.validation.sizeLimit / 1000000; let fileSizeInMegaBytes = this.props.validation.sizeLimit / 1000000;
let notification = new GlobalNotificationModel(getLangText('Your file is bigger than %d MB', fileSizeInMegaBytes), 'danger', 5000);
let notification = new GlobalNotificationModel(getLangText('A file you submitted is bigger than ' + fileSizeInMegaBytes + 'MB.'), 'danger', 5000);
GlobalNotificationActions.appendGlobalNotification(notification); GlobalNotificationActions.appendGlobalNotification(notification);
return false;
} else {
return true;
} }
}, },
@ -581,8 +584,18 @@ var ReactS3FineUploader = React.createClass({
return; return;
} }
// validate each submitted file if it fits the file size
let validFiles = [];
for(let i = 0; i < files.length; i++) {
if(this.isFileValid(files[i])) {
validFiles.push(files[i]);
}
}
// override standard files list with only valid files
files = validFiles;
// Call this method to signal the outside component that an upload is in progress // Call this method to signal the outside component that an upload is in progress
if(this.props.uploadStarted && typeof this.props.uploadStarted === 'function') { if(this.props.uploadStarted && typeof this.props.uploadStarted === 'function' && files.length > 0) {
this.props.uploadStarted(); this.props.uploadStarted();
} }
@ -696,8 +709,10 @@ var ReactS3FineUploader = React.createClass({
// if we're not hashing the files locally, we're just going to hand them over to fineuploader // if we're not hashing the files locally, we're just going to hand them over to fineuploader
// to upload them to the server // to upload them to the server
} else { } else {
this.state.uploader.addFiles(files); if(files.length > 0) {
this.synchronizeFileLists(files); this.state.uploader.addFiles(files);
this.synchronizeFileLists(files);
}
} }
}, },

View File

@ -61,10 +61,9 @@ let CylandAdditionalDataForm = React.createClass({
}, },
isReadyForFormSubmission(files) { isReadyForFormSubmission(files) {
let uploadedFiles = files.filter((file) => file.status === 'upload successful');
let uploadingFiles = files.filter((file) => file.status === 'submitting'); let uploadingFiles = files.filter((file) => file.status === 'submitting');
if (uploadedFiles.length > 0 && uploadingFiles.length === 0) { if (uploadingFiles.length === 0) {
return true; return true;
} else { } else {
return false; return false;