diff options
| author | Mike Macgirvin <mike@macgirvin.com> | 2018-10-31 15:56:08 +1100 | 
|---|---|---|
| committer | Mike Macgirvin <mike@macgirvin.com> | 2018-10-31 15:56:08 +1100 | 
| commit | 7e1f431eca7a8aa68fc0badfaa88e88de3ba094c (patch) | |
| tree | 16beba352cd4ace4aa6eb13c7f9c1c82c92013b4 /vendor/blueimp/jquery-file-upload/js/jquery.fileupload-validate.js | |
| parent | 70c55da1df69d90dcbeb5a78c994b23a8456bfc9 (diff) | |
| download | volse-hubzilla-7e1f431eca7a8aa68fc0badfaa88e88de3ba094c.tar.gz volse-hubzilla-7e1f431eca7a8aa68fc0badfaa88e88de3ba094c.tar.bz2 volse-hubzilla-7e1f431eca7a8aa68fc0badfaa88e88de3ba094c.zip  | |
yet another blueimp vulnerability. Move to composer.
Diffstat (limited to 'vendor/blueimp/jquery-file-upload/js/jquery.fileupload-validate.js')
| -rw-r--r-- | vendor/blueimp/jquery-file-upload/js/jquery.fileupload-validate.js | 125 | 
1 files changed, 125 insertions, 0 deletions
diff --git a/vendor/blueimp/jquery-file-upload/js/jquery.fileupload-validate.js b/vendor/blueimp/jquery-file-upload/js/jquery.fileupload-validate.js new file mode 100644 index 000000000..eebeb3733 --- /dev/null +++ b/vendor/blueimp/jquery-file-upload/js/jquery.fileupload-validate.js @@ -0,0 +1,125 @@ +/* + * jQuery File Upload Validation Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * https://opensource.org/licenses/MIT + */ + +/* global define, require, window */ + +;(function (factory) { +    'use strict'; +    if (typeof define === 'function' && define.amd) { +        // Register as an anonymous AMD module: +        define([ +            'jquery', +            './jquery.fileupload-process' +        ], factory); +    } else if (typeof exports === 'object') { +        // Node/CommonJS: +        factory( +            require('jquery'), +            require('./jquery.fileupload-process') +        ); +    } else { +        // Browser globals: +        factory( +            window.jQuery +        ); +    } +}(function ($) { +    'use strict'; + +    // Append to the default processQueue: +    $.blueimp.fileupload.prototype.options.processQueue.push( +        { +            action: 'validate', +            // Always trigger this action, +            // even if the previous action was rejected: +            always: true, +            // Options taken from the global options map: +            acceptFileTypes: '@', +            maxFileSize: '@', +            minFileSize: '@', +            maxNumberOfFiles: '@', +            disabled: '@disableValidation' +        } +    ); + +    // The File Upload Validation plugin extends the fileupload widget +    // with file validation functionality: +    $.widget('blueimp.fileupload', $.blueimp.fileupload, { + +        options: { +            /* +            // The regular expression for allowed file types, matches +            // against either file type or file name: +            acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, +            // The maximum allowed file size in bytes: +            maxFileSize: 10000000, // 10 MB +            // The minimum allowed file size in bytes: +            minFileSize: undefined, // No minimal file size +            // The limit of files to be uploaded: +            maxNumberOfFiles: 10, +            */ + +            // Function returning the current number of files, +            // has to be overriden for maxNumberOfFiles validation: +            getNumberOfFiles: $.noop, + +            // Error and info messages: +            messages: { +                maxNumberOfFiles: 'Maximum number of files exceeded', +                acceptFileTypes: 'File type not allowed', +                maxFileSize: 'File is too large', +                minFileSize: 'File is too small' +            } +        }, + +        processActions: { + +            validate: function (data, options) { +                if (options.disabled) { +                    return data; +                } +                var dfd = $.Deferred(), +                    settings = this.options, +                    file = data.files[data.index], +                    fileSize; +                if (options.minFileSize || options.maxFileSize) { +                    fileSize = file.size; +                } +                if ($.type(options.maxNumberOfFiles) === 'number' && +                        (settings.getNumberOfFiles() || 0) + data.files.length > +                            options.maxNumberOfFiles) { +                    file.error = settings.i18n('maxNumberOfFiles'); +                } else if (options.acceptFileTypes && +                        !(options.acceptFileTypes.test(file.type) || +                        options.acceptFileTypes.test(file.name))) { +                    file.error = settings.i18n('acceptFileTypes'); +                } else if (fileSize > options.maxFileSize) { +                    file.error = settings.i18n('maxFileSize'); +                } else if ($.type(fileSize) === 'number' && +                        fileSize < options.minFileSize) { +                    file.error = settings.i18n('minFileSize'); +                } else { +                    delete file.error; +                } +                if (file.error || data.files.error) { +                    data.files.error = true; +                    dfd.rejectWith(this, [data]); +                } else { +                    dfd.resolveWith(this, [data]); +                } +                return dfd.promise(); +            } + +        } + +    }); + +}));  | 
