Commit | Line | Data |
5cc32d47 |
1 | function $upl(id) { |
2 | return document.getElementById(id); |
3 | } |
4 | |
5 | function limitFiles( up, files ) { |
6 | most_recent = files.slice(-1)[0]; |
7 | file_ids = $.map(up.files, function (item) { return item.id; }); |
8 | $.each(file_ids, function(index, file_id) { |
9 | if( file_id!=most_recent.id ) { uploader.removeFile( uploader.getFile(file_id) ) }; |
10 | }); |
11 | $('#filelist').empty().html( '<div class="uploadfile" id="' + most_recent.id + '"><span id="uploadfile_label">File selected:</span> ' + most_recent.name.substring(0,17) + ' <b></b></div>' ); |
12 | $('#upload_button').button('enable'); |
13 | } |
14 | |
04469f3e |
15 | // Utility function to pull the JSON out of the <pre>-wrapped HTML that |
16 | // plupload irritatingly returns. |
17 | function parseResponse( resp ) { |
18 | return $.parseJSON($(resp).text() ); |
19 | } |
20 | |
5cc32d47 |
21 | function create_uploader(upload_url) { |
22 | uploader = new plupload.Uploader({ |
23 | runtimes : 'html4', |
24 | browse_button : 'pick_uploadfile_button', |
25 | container: 'upload_container', |
26 | max_file_size : '10mb', |
27 | url : upload_url, |
28 | filters : [ |
29 | {title : "Tradition files", extensions : "txt,xls,xlsx,csv,xml"}, |
30 | ] |
31 | }); |
32 | |
33 | uploader.bind('BeforeUpload', function(up, file) { |
34 | var parameter_values = {}; |
35 | $.each($('#new_tradition').serializeArray(), function(i, field) { |
36 | parameter_values[field.name] = field.value; |
37 | }); |
38 | up.settings.multipart_params = parameter_values; |
39 | }); |
40 | |
41 | uploader.bind('Init', function(up, params) { |
42 | // $upl('filelist').innerHTML = "<div>Current runtime: " + params.runtime + "</div>"; |
43 | }); |
44 | |
45 | uploader.bind('FilesAdded', function(up, files) { |
46 | //Needed because Pluploader needs some time to add the file to the queue. |
47 | setTimeout( function(){ limitFiles(up, files) }, 50 ); |
48 | }); |
49 | |
50 | uploader.bind('UploadProgress', function(up, file) { |
51 | $upl(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>"; |
52 | }); |
04469f3e |
53 | |
54 | uploader.bind('Error', function( up, args ) { |
55 | $('#upload_status').empty().append( |
56 | $('<span>').attr('class', 'error').append( 'A server error occurred' ) ); |
57 | }); |
58 | |
5cc32d47 |
59 | |
60 | uploader.bind('FileUploaded', function(up, file, ret) { |
04469f3e |
61 | var result = parseResponse( ret.response ); |
62 | if( result.id ) { |
65a0c9c6 |
63 | $('#upload-collation-dialog').dialog('close'); |
04469f3e |
64 | refreshDirectory(); |
65 | loadTradition( result.id, result.name, 1 ); |
66 | } else if( result.error ) { |
67 | file.status = plupload.FAILED; |
68 | $('#upload_status').empty().append( |
69 | $('<span>').attr('class', 'error').append( result.error ) ); |
70 | } |
5cc32d47 |
71 | }); |
9f7aeb53 |
72 | |
73 | uploader.bind('Error', function(up, err) { |
74 | console.log( 'echt wel' ); |
75 | console.log( err ); |
76 | }); |
5cc32d47 |
77 | |
78 | uploader.init(); |
79 | |
80 | } |