Advertisement
Katsushiro

binaryInterface.js

Nov 15th, 2014
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $(document).ready(function() {
  2.     //------------------//
  3.     //----- CONFIG -----//
  4.     //------------------//
  5.     var url = '/upload';
  6.  
  7.     var queue = []; // queue for uploaded items - synchronous upload is used
  8.  
  9.     //------------------//
  10.     //--- ADD BUTTON ---//
  11.     //------------------//
  12.     $("#Add").click(function() {
  13.  
  14.         var intId = $("#inputFields div").length / 3;
  15.         var fieldWrapper = $("<div id=\"field" + intId + "\" />");
  16.         var fBody = $("<input type=\"file\" name=\"browsers[]\" class=\"browserElement\" value=\"Browse...\" \" />");
  17.  
  18.         var removeButton = $('<span class="removeButton glyphicon glyphicon-remove" ></span>');
  19.         removeButton.click(function() {
  20.             $(this).parent().remove();
  21.         });
  22.  
  23.         var progressBar = $("<div name=\"progressBars[]\" id=\"ProgressBackBar" + intId + "\" class=\"progress\">\
  24.                 <div id=\"progressBar" + intId + "\" class=\"progress-bar progress-bar-striped active\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\
  25.         </div>");
  26.  
  27.         fieldWrapper.append(fBody);
  28.         fieldWrapper.append(removeButton);
  29.         fieldWrapper.append(progressBar);
  30.         $("#InputFields").append(fieldWrapper);
  31.     });
  32.  
  33.     //---------------------//
  34.     //--- UPLOAD BUTTON ---//
  35.     //---------------------//
  36.     $("#Upload").click(function() {
  37.  
  38.         var $btn = $(this);
  39.         $btn.button().button("loading");
  40.        
  41.         //-----------------------------------------------//
  42.         //--- DIV WITH NOTICE AFTER SUCCESSFUL UPLOAD ---//
  43.         //-----------------------------------------------//
  44.         var uploadSuccess = document.getElementById("UploadSuccess2");
  45.         uploadSuccess.style.display = 'none'
  46.  
  47.         //-----------------------------------------------------------//
  48.         //--- WARNING WHEN NO FILE IS SELECTED - INITIALLY HIDDEN ---//
  49.         //-----------------------------------------------------------//
  50.         var warning = document.getElementById("Warning2");
  51.         warning.style.display = 'none';
  52.  
  53.         var browserArray = document.getElementsByName('browsers[]'); // array of inputs
  54.  
  55.         //----------------------------------------------//
  56.         //--- CHECK IF THERE ARE SOME FILES SELECTED ---//
  57.         // ---------------------------------------------//
  58.         if (browserArray.length === 0) {
  59.             $btn.button("reset");
  60.             warning.style.display = 'block';
  61.             return;
  62.         }
  63.  
  64.         var chosenFilesCount = 0;
  65.         for (var i = 0; i < browserArray.length; i++) {
  66.             if (browserArray[i].files.length != 0) {
  67.                 chosenFilesCount++;
  68.             }
  69.         }
  70.  
  71.         if (chosenFilesCount === 0) {
  72.             $btn.button("reset");
  73.             warning.style.display = 'block';
  74.             return;
  75.         }
  76.  
  77.         //-----------------------------------------//
  78.         //--- CHECK IF BROWSER SUPPORTS FileAPI ---//
  79.         // ----------------------------------------//
  80.         var fileApiSupported = !!(window.File && window.FileReader && window.FileList && window.Blob);
  81.         if (!fileApiSupported) {
  82.             alert('Your browser is not supported!');
  83.             return;
  84.         }
  85.  
  86.         var progressBarArray = document.getElementsByName('progressBars[]'); // array of progress bars for inputs
  87.  
  88.         var formData;
  89.         var file;
  90.         var backBar;
  91.         var bar;
  92.         for (var i = 0; i < browserArray.length; i++) {
  93.             file = browserArray[i].files[0];
  94.             backBar = progressBarArray[i]; // background of loadbar
  95.             bar = backBar.children[0]; // "colourful part" in loadbar
  96.  
  97.             //------------------------------------------------//
  98.             //--- CHECK IF FILE INPUT ELEMENT IS NOT EMPTY ---//
  99.             // -----------------------------------------------//
  100.             if (file) {
  101.                 formData = new FormData();
  102.                 formData.append('filepath', file, file.name);
  103.  
  104.                 //----------------------------//
  105.                 //--- PUSH DATA INTO QUEUE ---//                    
  106.                 //----------------------------//
  107.                 var data = [queue, formData, url, $btn, uploadSuccess, warning, null, progressBarArray, null, bar, backBar, null];
  108.                 queue.push(data);
  109.  
  110.             }
  111.  
  112.         }
  113.  
  114.         //------------------------//
  115.         //--- REQUEST HANDLING ---//                    
  116.         //------------------------//
  117.         var data = queue.shift();
  118.         requestHandle( 2, data );
  119.     });
  120. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement