You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2017/02/01 13:36:35 UTC

[06/21] airavata-php-gateway git commit: AIRAVATA-1397 Fix client side checking for opt input files

AIRAVATA-1397 Fix client side checking for opt input files


Project: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/commit/9e75b854
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/9e75b854
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/9e75b854

Branch: refs/heads/dreg-gateway
Commit: 9e75b854f6b0f0165f97c5e2095cf8fb5434faa8
Parents: 71f32f4
Author: Marcus Christie <ma...@apache.org>
Authored: Wed Jan 18 16:27:23 2017 -0500
Committer: Marcus Christie <ma...@apache.org>
Committed: Wed Jan 18 16:27:23 2017 -0500

----------------------------------------------------------------------
 app/views/experiment/create-complete.blade.php | 11 +++++----
 app/views/experiment/edit.blade.php            | 11 +++++----
 public/js/util.js                              | 25 ++++++++++++++++++++-
 3 files changed, 38 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9e75b854/app/views/experiment/create-complete.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/create-complete.blade.php b/app/views/experiment/create-complete.blade.php
index 8860df2..7f085ca 100755
--- a/app/views/experiment/create-complete.blade.php
+++ b/app/views/experiment/create-complete.blade.php
@@ -52,6 +52,7 @@
 </script>
 {{ HTML::script('js/sharing/sharing_utils.js') }}
 {{ HTML::script('js/sharing/share.js') }}
+{{ HTML::script('js/util.js') }}
 <script>
     var warn = true;
 
@@ -62,12 +63,14 @@
 
     $('.file-input').bind('change', function () {
 
-        var inputFileSize = Math.round(this.files[0].size / (1024 * 1024));
-        if (inputFileSize > $("#allowedFileSize").val()) {
-            alert("The input file size is greater than the allowed file size (" + $("#allowedFileSize").val() + " MB) in a form. Please upload another file.");
+        var allowedFileSize = $("#allowedFileSize").val();
+        var tooLargeFilenames = util.validateMaxUploadFileSize(this.files, allowedFileSize);
+
+        if (tooLargeFilenames.length > 0) {
+            var singleOrMultiple = tooLargeFilenames.length === 1 ? " the file [" : " each of the files [";
+            alert("The size of " + singleOrMultiple + tooLargeFilenames.join(", ") + "] is greater than the allowed file size (" + allowedFileSize + " MB) in a form. Please upload another file.");
             $(this).val("");
         }
-
     });
 
     $("#enableEmail").change(function () {

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9e75b854/app/views/experiment/edit.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/edit.blade.php b/app/views/experiment/edit.blade.php
index 00fd008..cbefee3 100755
--- a/app/views/experiment/edit.blade.php
+++ b/app/views/experiment/edit.blade.php
@@ -67,15 +67,18 @@
 </script>
 {{ HTML::script('js/sharing/sharing_utils.js') }}
 {{ HTML::script('js/sharing/share.js') }}
+{{ HTML::script('js/util.js') }}
 <script>
     $('.file-input').bind('change', function () {
 
-        var inputFileSize = Math.round(this.files[0].size / (1024 * 1024));
-        if (inputFileSize > $("#allowedFileSize").val()) {
-            alert("The input file size is greater than the allowed file size (" + $("#allowedFileSize").val() + " MB) in a form. Please upload another file.");
+        var allowedFileSize = $("#allowedFileSize").val();
+        var tooLargeFilenames = util.validateMaxUploadFileSize(this.files, allowedFileSize);
+
+        if (tooLargeFilenames.length > 0) {
+            var singleOrMultiple = tooLargeFilenames.length === 1 ? " the file [" : " each of the files [";
+            alert("The size of " + singleOrMultiple + tooLargeFilenames.join(", ") + "] is greater than the allowed file size (" + allowedFileSize + " MB) in a form. Please upload another file.");
             $(this).val("");
         }
-
     });
 
     $("#enableEmail").change(function () {

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9e75b854/public/js/util.js
----------------------------------------------------------------------
diff --git a/public/js/util.js b/public/js/util.js
index c5cbb24..0b7d1e6 100644
--- a/public/js/util.js
+++ b/public/js/util.js
@@ -1,12 +1,35 @@
 
 var util = (function(){
     "use strict";
-    
+
     return {
         sanitizeHTMLId: function(id) {
             // Replace anything that isn't an HTML safe id character with underscore
             // Here safe means allowable by HTML5 and also safe to use in a jQuery selector
             return id.replace(/[^a-zA-Z0-9_-]/g, "_");
+        },
+
+        /**
+         * Return a list of filenames that exceed the given maxUploadFileSize.
+         *
+         * @param fileList is of type FileList
+         * @param maxUploadFileSize is a number of megabytes
+         * @return Array of string filenames. Array is empty if none of the
+         * files exceed the given maxUploadFileSize.
+         */
+        validateMaxUploadFileSize: function(fileList, maxUploadFileSize) {
+
+            var tooLargeFilenames = [];
+            for (var i=0; i < fileList.length; i++) {
+
+                var file = fileList[i];
+                var inputFileSize = file.size / (1024 * 1024);
+                if (inputFileSize > maxUploadFileSize) {
+                    tooLargeFilenames.push(file.name);
+                }
+            }
+
+            return tooLargeFilenames;
         }
     };
 })();
\ No newline at end of file