summaryrefslogtreecommitdiff
path: root/desktop/share/static/js/receive.js
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/share/static/js/receive.js')
-rw-r--r--desktop/share/static/js/receive.js130
1 files changed, 0 insertions, 130 deletions
diff --git a/desktop/share/static/js/receive.js b/desktop/share/static/js/receive.js
deleted file mode 100644
index eac67412..00000000
--- a/desktop/share/static/js/receive.js
+++ /dev/null
@@ -1,130 +0,0 @@
-$(function(){
- // Add a flash message
- var flash = function(category, message) {
- $('#flashes').append($('<li>').addClass(category).text(message));
- };
-
- var scriptSrc = document.getElementById('receive-script').src;
- var staticImgPath = scriptSrc.substr(0, scriptSrc.lastIndexOf( '/' )+1).replace('js', 'img');
-
- // Intercept submitting the form
- $('#send').submit(function(event){
- event.preventDefault();
-
- // Create form data, and list of filenames
- var files = $('#file-select').get(0).files;
- var filenames = [];
- var formData = new FormData();
- for(var i = 0; i < files.length; i++) {
- var file = files[i];
- filenames.push(file.name);
- formData.append('file[]', file, file.name);
- }
-
- // Reset the upload form
- $('#send').get(0).reset();
-
- // Don't use jQuery for ajax request, because the upload progress event doesn't
- // have access to the the XMLHttpRequest object
- var ajax = new XMLHttpRequest();
-
- ajax.upload.addEventListener('progress', function(event){
- // Update progress bar for this specific upload
- if(event.lengthComputable) {
- $('progress', ajax.$upload_div).attr({
- value: event.loaded,
- max: event.total,
- });
- }
-
- // If it's finished sending all data to the first Tor node, remove cancel button
- // and update the status
- if(event.loaded == event.total) {
- $('.cancel', ajax.$upload_div).remove();
- $('.upload-status', ajax.$upload_div).html('<img src="' + staticImgPath + '/ajax.gif" alt="" /> Waiting for data to finish traversing Tor network ...');
- }
- }, false);
-
- ajax.addEventListener('load', function(event){
- // Remove the upload div
- ajax.$upload_div.remove();
-
- // Parse response
- try {
- var response = JSON.parse(ajax.response);
-
- // The 'new_body' response replaces the whole HTML document and ends
- if('new_body' in response) {
- $('body').html(response['new_body']);
- return;
- }
-
- // Show error flashes
- if('error_flashes' in response) {
- for(var i=0; i<response['error_flashes'].length; i++) {
- flash('error', response['error_flashes'][i]);
- }
- }
-
- // Show info flashes
- if('info_flashes' in response) {
- for(var i=0; i<response['info_flashes'].length; i++) {
- flash('info', response['info_flashes'][i]);
- }
- }
- } catch(e) {
- flash('error', 'Invalid response from server: '+data);
- }
- }, false);
-
- ajax.addEventListener('error', function(event){
- flash('error', 'Error uploading: '+filenames.join(', '));
-
- // Remove the upload div
- ajax.$upload_div.remove()
- }, false);
-
- ajax.addEventListener('abort', function(event){
- flash('error', 'Upload aborted: '+filenames.join(', '));
- }, false);
-
- // Make the upload div
-
- /* The DOM for an upload looks something like this:
- <div class="upload">
- <div class="upload-meta">
- <input class="cancel" type="button" value="Cancel" />
- <div class="upload-filename">educational-video.mp4, secret-plans.pdf</div>
- <div class="upload-status">Sending to first Tor node ...</div>
- </div>
- <progress value="25" max="100"></progress>
- </div> */
- var $progress = $('<progress>').attr({ value: '0', max: 100 });
- var $cancel_button = $('<input>').addClass('cancel').attr({ type: 'button', value: 'Cancel' });
- var $upload_filename = $('<div>').addClass('upload-filename').text(filenames.join(', '));
- var $upload_status = $('<div>').addClass('upload-status').text('Sending data to initial Tor node ...');
-
- var $upload_div = $('<div>')
- .addClass('upload')
- .append(
- $('<div>').addClass('upload-meta')
- .append($cancel_button)
- .append($upload_filename)
- .append($upload_status)
- )
- .append($progress);
-
- $cancel_button.click(function(){
- // Abort the upload, and remove the upload div
- ajax.abort();
- $upload_div.remove()
- });
-
- ajax.$upload_div = $upload_div;
- $('#uploads').append($upload_div);
-
- // Send the request
- ajax.open('POST', '/upload-ajax', true);
- ajax.send(formData);
- });
-});