153 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
/*
 | 
						|
 * jQuery File Upload jQuery UI Plugin 8.7.1
 | 
						|
 * https://github.com/blueimp/jQuery-File-Upload
 | 
						|
 *
 | 
						|
 * Copyright 2013, Sebastian Tschan
 | 
						|
 * https://blueimp.net
 | 
						|
 *
 | 
						|
 * Licensed under the MIT license:
 | 
						|
 * http://www.opensource.org/licenses/MIT
 | 
						|
 */
 | 
						|
 | 
						|
/* jshint nomen:false */
 | 
						|
/* global define, window */
 | 
						|
 | 
						|
(function (factory) {
 | 
						|
    'use strict';
 | 
						|
    if (typeof define === 'function' && define.amd) {
 | 
						|
        // Register as an anonymous AMD module:
 | 
						|
        define(['jquery', './jquery.fileupload-ui'], factory);
 | 
						|
    } else {
 | 
						|
        // Browser globals:
 | 
						|
        factory(window.jQuery);
 | 
						|
    }
 | 
						|
}(function ($) {
 | 
						|
    'use strict';
 | 
						|
 | 
						|
    $.widget('blueimp.fileupload', $.blueimp.fileupload, {
 | 
						|
 | 
						|
        options: {
 | 
						|
            processdone: function (e, data) {
 | 
						|
                data.context.find('.start').button('enable');
 | 
						|
            },
 | 
						|
            progress: function (e, data) {
 | 
						|
                if (data.context) {
 | 
						|
                    data.context.find('.progress').progressbar(
 | 
						|
                        'option',
 | 
						|
                        'value',
 | 
						|
                        parseInt(data.loaded / data.total * 100, 10)
 | 
						|
                    );
 | 
						|
                }
 | 
						|
            },
 | 
						|
            progressall: function (e, data) {
 | 
						|
                var $this = $(this);
 | 
						|
                $this.find('.fileupload-progress')
 | 
						|
                    .find('.progress').progressbar(
 | 
						|
                        'option',
 | 
						|
                        'value',
 | 
						|
                        parseInt(data.loaded / data.total * 100, 10)
 | 
						|
                    ).end()
 | 
						|
                    .find('.progress-extended').each(function () {
 | 
						|
                        $(this).html(
 | 
						|
                            ($this.data('blueimp-fileupload') ||
 | 
						|
                                    $this.data('fileupload'))
 | 
						|
                                ._renderExtendedProgress(data)
 | 
						|
                        );
 | 
						|
                    });
 | 
						|
            }
 | 
						|
        },
 | 
						|
 | 
						|
        _renderUpload: function (func, files) {
 | 
						|
            var node = this._super(func, files),
 | 
						|
                showIconText = $(window).width() > 480;
 | 
						|
            node.find('.progress').empty().progressbar();
 | 
						|
            node.find('.start').button({
 | 
						|
                icons: {primary: 'ui-icon-circle-arrow-e'},
 | 
						|
                text: showIconText
 | 
						|
            });
 | 
						|
            node.find('.cancel').button({
 | 
						|
                icons: {primary: 'ui-icon-cancel'},
 | 
						|
                text: showIconText
 | 
						|
            });
 | 
						|
            if (node.hasClass('fade')) {
 | 
						|
                node.hide();
 | 
						|
            }
 | 
						|
            return node;
 | 
						|
        },
 | 
						|
 | 
						|
        _renderDownload: function (func, files) {
 | 
						|
            var node = this._super(func, files),
 | 
						|
                showIconText = $(window).width() > 480;
 | 
						|
            node.find('.delete').button({
 | 
						|
                icons: {primary: 'ui-icon-trash'},
 | 
						|
                text: showIconText
 | 
						|
            });
 | 
						|
            if (node.hasClass('fade')) {
 | 
						|
                node.hide();
 | 
						|
            }
 | 
						|
            return node;
 | 
						|
        },
 | 
						|
 | 
						|
        _startHandler: function (e) {
 | 
						|
            $(e.currentTarget).button('disable');
 | 
						|
            this._super(e);
 | 
						|
        },
 | 
						|
 | 
						|
        _transition: function (node) {
 | 
						|
            var deferred = $.Deferred();
 | 
						|
            if (node.hasClass('fade')) {
 | 
						|
                node.fadeToggle(
 | 
						|
                    this.options.transitionDuration,
 | 
						|
                    this.options.transitionEasing,
 | 
						|
                    function () {
 | 
						|
                        deferred.resolveWith(node);
 | 
						|
                    }
 | 
						|
                );
 | 
						|
            } else {
 | 
						|
                deferred.resolveWith(node);
 | 
						|
            }
 | 
						|
            return deferred;
 | 
						|
        },
 | 
						|
 | 
						|
        _create: function () {
 | 
						|
            this._super();
 | 
						|
            this.element
 | 
						|
                .find('.fileupload-buttonbar')
 | 
						|
                .find('.fileinput-button').each(function () {
 | 
						|
                    var input = $(this).find('input:file').detach();
 | 
						|
                    $(this)
 | 
						|
                        .button({icons: {primary: 'ui-icon-plusthick'}})
 | 
						|
                        .append(input);
 | 
						|
                })
 | 
						|
                .end().find('.start')
 | 
						|
                .button({icons: {primary: 'ui-icon-circle-arrow-e'}})
 | 
						|
                .end().find('.cancel')
 | 
						|
                .button({icons: {primary: 'ui-icon-cancel'}})
 | 
						|
                .end().find('.delete')
 | 
						|
                .button({icons: {primary: 'ui-icon-trash'}})
 | 
						|
                .end().find('.progress').progressbar();
 | 
						|
        },
 | 
						|
 | 
						|
        _destroy: function () {
 | 
						|
            this.element
 | 
						|
                .find('.fileupload-buttonbar')
 | 
						|
                .find('.fileinput-button').each(function () {
 | 
						|
                    var input = $(this).find('input:file').detach();
 | 
						|
                    $(this)
 | 
						|
                        .button('destroy')
 | 
						|
                        .append(input);
 | 
						|
                })
 | 
						|
                .end().find('.start')
 | 
						|
                .button('destroy')
 | 
						|
                .end().find('.cancel')
 | 
						|
                .button('destroy')
 | 
						|
                .end().find('.delete')
 | 
						|
                .button('destroy')
 | 
						|
                .end().find('.progress').progressbar('destroy');
 | 
						|
            this._super();
 | 
						|
        }
 | 
						|
 | 
						|
    });
 | 
						|
 | 
						|
}));
 |