Retire Packaging Deb project repos
This commit is part of a series to retire the Packaging Deb project. Step 2 is to remove all content from the project repos, replacing it with a README notification where to find ongoing work, and how to recover the repo if needed at some future point (as in https://docs.openstack.org/infra/manual/drivers.html#retiring-a-project). Change-Id: Ifa20214e78406b076fc07cf8fe59519af5375d84
This commit is contained in:
parent
d964a4e647
commit
151578df62
|
@ -1,4 +0,0 @@
|
|||
[gerrit]
|
||||
host=review.openstack.org
|
||||
port=29418
|
||||
project=openstack/xstatic-angular-fileupload.git
|
28
LICENCE
28
LICENCE
|
@ -1,28 +0,0 @@
|
|||
File: *
|
||||
Copyright: (c) 2015, Jordan OMara <jsomara@gmail.com>
|
||||
License: Expat
|
||||
|
||||
File: xstatic/pkg/angular_fileupload/data/angular-file-upload.js
|
||||
Copyright: (c) Danial <danial.farid@gmail.com>
|
||||
License: Expat
|
||||
|
||||
License: Expat
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation files
|
||||
(the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge,
|
||||
publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -1,8 +0,0 @@
|
|||
include README.txt
|
||||
recursive-include xstatic/pkg/angular_fileupload *
|
||||
|
||||
global-exclude *.pyc
|
||||
global-exclude *.pyo
|
||||
global-exclude *.orig
|
||||
global-exclude *.rej
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
This project is no longer maintained.
|
||||
|
||||
The contents of this repository are still available in the Git
|
||||
source code management system. To see the contents of this
|
||||
repository before it reached its end of life, please check out the
|
||||
previous commit with "git checkout HEAD^1".
|
||||
|
||||
For ongoing work on maintaining OpenStack packages in the Debian
|
||||
distribution, please see the Debian OpenStack packaging team at
|
||||
https://wiki.debian.org/OpenStack/.
|
||||
|
||||
For any further questions, please email
|
||||
openstack-dev@lists.openstack.org or join #openstack-dev on
|
||||
Freenode.
|
13
README.txt
13
README.txt
|
@ -1,13 +0,0 @@
|
|||
XStatic-Angular-Filepload
|
||||
-------------------------
|
||||
|
||||
Angular-FileUpload JavaScript library packaged for setuptools (easy_install) / pip.
|
||||
|
||||
This package is intended to be used by **any** project that needs these files.
|
||||
|
||||
It intentionally does **not** provide any extra code except some metadata
|
||||
**nor** has any extra requirements. You MAY use some minimal support code from
|
||||
the XStatic base package, if you like.
|
||||
|
||||
You can find more info about the xstatic packaging way in the package `XStatic`.
|
||||
|
27
setup.py
27
setup.py
|
@ -1,27 +0,0 @@
|
|||
from xstatic.pkg import angular_fileupload as xs
|
||||
|
||||
# The README.txt file should be written in reST so that PyPI can use
|
||||
# it to generate your project's PyPI page.
|
||||
long_description = open('README.txt').read()
|
||||
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
setup(
|
||||
name=xs.PACKAGE_NAME,
|
||||
version=xs.PACKAGE_VERSION,
|
||||
description=xs.DESCRIPTION,
|
||||
long_description=long_description,
|
||||
classifiers=xs.CLASSIFIERS,
|
||||
keywords=xs.KEYWORDS,
|
||||
maintainer=xs.MAINTAINER,
|
||||
maintainer_email=xs.MAINTAINER_EMAIL,
|
||||
license=xs.LICENSE,
|
||||
url=xs.HOMEPAGE,
|
||||
platforms=xs.PLATFORMS,
|
||||
packages=find_packages(),
|
||||
namespace_packages=['xstatic', 'xstatic.pkg', ],
|
||||
include_package_data=True,
|
||||
zip_safe=False,
|
||||
install_requires=[], # nothing! :)
|
||||
# if you like, you MAY use the 'XStatic' package.
|
||||
)
|
8
tox.ini
8
tox.ini
|
@ -1,8 +0,0 @@
|
|||
[tox]
|
||||
minversion = 1.6
|
||||
skipsdist = True
|
||||
envlist = py27,py33,py34
|
||||
|
||||
[testenv:venv]
|
||||
commands = {posargs}
|
||||
|
|
@ -1 +0,0 @@
|
|||
__import__('pkg_resources').declare_namespace(__name__)
|
|
@ -1 +0,0 @@
|
|||
__import__('pkg_resources').declare_namespace(__name__)
|
|
@ -1,49 +0,0 @@
|
|||
"""
|
||||
XStatic resource package
|
||||
|
||||
See package 'XStatic' for documentation and basic tools.
|
||||
"""
|
||||
|
||||
DISPLAY_NAME = 'Angular-FileUpload' # official name, upper/lowercase allowed, no spaces
|
||||
PACKAGE_NAME = 'XStatic-%s' % DISPLAY_NAME # name used for PyPi
|
||||
|
||||
NAME = __name__.split('.')[-1] # package name (e.g. 'foo' or 'foo_bar')
|
||||
# please use a all-lowercase valid python
|
||||
# package name
|
||||
|
||||
VERSION = '12.0.4' # version of the packaged files, please use the upstream
|
||||
# version number
|
||||
BUILD = '0' # our package build number, so we can release new builds
|
||||
# with fixes for xstatic stuff.
|
||||
PACKAGE_VERSION = VERSION + '.' + BUILD # version used for PyPi
|
||||
|
||||
DESCRIPTION = "%s %s (XStatic packaging standard)" % (DISPLAY_NAME, VERSION)
|
||||
|
||||
PLATFORMS = 'any'
|
||||
CLASSIFIERS = []
|
||||
KEYWORDS = '%s xstatic' % NAME
|
||||
|
||||
# XStatic-* package maintainer:
|
||||
MAINTAINER = 'Rob Cresswell'
|
||||
MAINTAINER_EMAIL = 'robert.cresswell@outlook.com'
|
||||
|
||||
# this refers to the project homepage of the stuff we packaged:
|
||||
HOMEPAGE = 'https://github.com/danialfarid/angular-file-upload'
|
||||
|
||||
# this refers to all files:
|
||||
LICENSE = '(same as %s)' % DISPLAY_NAME
|
||||
|
||||
from os.path import join, dirname
|
||||
BASE_DIR = join(dirname(__file__), 'data')
|
||||
# linux package maintainers just can point to their file locations like this:
|
||||
#BASE_DIR = '/usr/share/javascript/angular_cookies'
|
||||
|
||||
LOCATIONS = {
|
||||
# CDN locations (if no public CDN exists, use an empty dict)
|
||||
# if value is a string, it is a base location, just append relative
|
||||
# path/filename. if value is a dict, do another lookup using the
|
||||
# relative path/filename you want.
|
||||
# your relative path/filenames should usually be without version
|
||||
# information, because either the base dir/url is exactly for this
|
||||
# version or the mapping will care for accessing this version.
|
||||
}
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -1,421 +0,0 @@
|
|||
/**!
|
||||
* AngularJS file upload directives and services. Supoorts: file upload/drop/paste, resume, cancel/abort,
|
||||
* progress, resize, thumbnail, preview, validation and CORS
|
||||
* FileAPI Flash shim for old browsers not supporting FormData
|
||||
* @author Danial <danial.farid@gmail.com>
|
||||
* @version 12.0.4
|
||||
*/
|
||||
|
||||
(function () {
|
||||
/** @namespace FileAPI.noContentTimeout */
|
||||
|
||||
function patchXHR(fnName, newFn) {
|
||||
window.XMLHttpRequest.prototype[fnName] = newFn(window.XMLHttpRequest.prototype[fnName]);
|
||||
}
|
||||
|
||||
function redefineProp(xhr, prop, fn) {
|
||||
try {
|
||||
Object.defineProperty(xhr, prop, {get: fn});
|
||||
} catch (e) {/*ignore*/
|
||||
}
|
||||
}
|
||||
|
||||
if (!window.FileAPI) {
|
||||
window.FileAPI = {};
|
||||
}
|
||||
|
||||
if (!window.XMLHttpRequest) {
|
||||
throw 'AJAX is not supported. XMLHttpRequest is not defined.';
|
||||
}
|
||||
|
||||
FileAPI.shouldLoad = !window.FormData || FileAPI.forceLoad;
|
||||
if (FileAPI.shouldLoad) {
|
||||
var initializeUploadListener = function (xhr) {
|
||||
if (!xhr.__listeners) {
|
||||
if (!xhr.upload) xhr.upload = {};
|
||||
xhr.__listeners = [];
|
||||
var origAddEventListener = xhr.upload.addEventListener;
|
||||
xhr.upload.addEventListener = function (t, fn) {
|
||||
xhr.__listeners[t] = fn;
|
||||
if (origAddEventListener) origAddEventListener.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
patchXHR('open', function (orig) {
|
||||
return function (m, url, b) {
|
||||
initializeUploadListener(this);
|
||||
this.__url = url;
|
||||
try {
|
||||
orig.apply(this, [m, url, b]);
|
||||
} catch (e) {
|
||||
if (e.message.indexOf('Access is denied') > -1) {
|
||||
this.__origError = e;
|
||||
orig.apply(this, [m, '_fix_for_ie_crossdomain__', b]);
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
patchXHR('getResponseHeader', function (orig) {
|
||||
return function (h) {
|
||||
return this.__fileApiXHR && this.__fileApiXHR.getResponseHeader ? this.__fileApiXHR.getResponseHeader(h) : (orig == null ? null : orig.apply(this, [h]));
|
||||
};
|
||||
});
|
||||
|
||||
patchXHR('getAllResponseHeaders', function (orig) {
|
||||
return function () {
|
||||
return this.__fileApiXHR && this.__fileApiXHR.getAllResponseHeaders ? this.__fileApiXHR.getAllResponseHeaders() : (orig == null ? null : orig.apply(this));
|
||||
};
|
||||
});
|
||||
|
||||
patchXHR('abort', function (orig) {
|
||||
return function () {
|
||||
return this.__fileApiXHR && this.__fileApiXHR.abort ? this.__fileApiXHR.abort() : (orig == null ? null : orig.apply(this));
|
||||
};
|
||||
});
|
||||
|
||||
patchXHR('setRequestHeader', function (orig) {
|
||||
return function (header, value) {
|
||||
if (header === '__setXHR_') {
|
||||
initializeUploadListener(this);
|
||||
var val = value(this);
|
||||
// fix for angular < 1.2.0
|
||||
if (val instanceof Function) {
|
||||
val(this);
|
||||
}
|
||||
} else {
|
||||
this.__requestHeaders = this.__requestHeaders || {};
|
||||
this.__requestHeaders[header] = value;
|
||||
orig.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
patchXHR('send', function (orig) {
|
||||
return function () {
|
||||
var xhr = this;
|
||||
if (arguments[0] && arguments[0].__isFileAPIShim) {
|
||||
var formData = arguments[0];
|
||||
var config = {
|
||||
url: xhr.__url,
|
||||
jsonp: false, //removes the callback form param
|
||||
cache: true, //removes the ?fileapiXXX in the url
|
||||
complete: function (err, fileApiXHR) {
|
||||
if (err && angular.isString(err) && err.indexOf('#2174') !== -1) {
|
||||
// this error seems to be fine the file is being uploaded properly.
|
||||
err = null;
|
||||
}
|
||||
xhr.__completed = true;
|
||||
if (!err && xhr.__listeners.load)
|
||||
xhr.__listeners.load({
|
||||
type: 'load',
|
||||
loaded: xhr.__loaded,
|
||||
total: xhr.__total,
|
||||
target: xhr,
|
||||
lengthComputable: true
|
||||
});
|
||||
if (!err && xhr.__listeners.loadend)
|
||||
xhr.__listeners.loadend({
|
||||
type: 'loadend',
|
||||
loaded: xhr.__loaded,
|
||||
total: xhr.__total,
|
||||
target: xhr,
|
||||
lengthComputable: true
|
||||
});
|
||||
if (err === 'abort' && xhr.__listeners.abort)
|
||||
xhr.__listeners.abort({
|
||||
type: 'abort',
|
||||
loaded: xhr.__loaded,
|
||||
total: xhr.__total,
|
||||
target: xhr,
|
||||
lengthComputable: true
|
||||
});
|
||||
if (fileApiXHR.status !== undefined) redefineProp(xhr, 'status', function () {
|
||||
return (fileApiXHR.status === 0 && err && err !== 'abort') ? 500 : fileApiXHR.status;
|
||||
});
|
||||
if (fileApiXHR.statusText !== undefined) redefineProp(xhr, 'statusText', function () {
|
||||
return fileApiXHR.statusText;
|
||||
});
|
||||
redefineProp(xhr, 'readyState', function () {
|
||||
return 4;
|
||||
});
|
||||
if (fileApiXHR.response !== undefined) redefineProp(xhr, 'response', function () {
|
||||
return fileApiXHR.response;
|
||||
});
|
||||
var resp = fileApiXHR.responseText || (err && fileApiXHR.status === 0 && err !== 'abort' ? err : undefined);
|
||||
redefineProp(xhr, 'responseText', function () {
|
||||
return resp;
|
||||
});
|
||||
redefineProp(xhr, 'response', function () {
|
||||
return resp;
|
||||
});
|
||||
if (err) redefineProp(xhr, 'err', function () {
|
||||
return err;
|
||||
});
|
||||
xhr.__fileApiXHR = fileApiXHR;
|
||||
if (xhr.onreadystatechange) xhr.onreadystatechange();
|
||||
if (xhr.onload) xhr.onload();
|
||||
},
|
||||
progress: function (e) {
|
||||
e.target = xhr;
|
||||
if (xhr.__listeners.progress) xhr.__listeners.progress(e);
|
||||
xhr.__total = e.total;
|
||||
xhr.__loaded = e.loaded;
|
||||
if (e.total === e.loaded) {
|
||||
// fix flash issue that doesn't call complete if there is no response text from the server
|
||||
var _this = this;
|
||||
setTimeout(function () {
|
||||
if (!xhr.__completed) {
|
||||
xhr.getAllResponseHeaders = function () {
|
||||
};
|
||||
_this.complete(null, {status: 204, statusText: 'No Content'});
|
||||
}
|
||||
}, FileAPI.noContentTimeout || 10000);
|
||||
}
|
||||
},
|
||||
headers: xhr.__requestHeaders
|
||||
};
|
||||
config.data = {};
|
||||
config.files = {};
|
||||
for (var i = 0; i < formData.data.length; i++) {
|
||||
var item = formData.data[i];
|
||||
if (item.val != null && item.val.name != null && item.val.size != null && item.val.type != null) {
|
||||
config.files[item.key] = item.val;
|
||||
} else {
|
||||
config.data[item.key] = item.val;
|
||||
}
|
||||
}
|
||||
|
||||
setTimeout(function () {
|
||||
if (!FileAPI.hasFlash) {
|
||||
throw 'Adode Flash Player need to be installed. To check ahead use "FileAPI.hasFlash"';
|
||||
}
|
||||
xhr.__fileApiXHR = FileAPI.upload(config);
|
||||
}, 1);
|
||||
} else {
|
||||
if (this.__origError) {
|
||||
throw this.__origError;
|
||||
}
|
||||
orig.apply(xhr, arguments);
|
||||
}
|
||||
};
|
||||
});
|
||||
window.XMLHttpRequest.__isFileAPIShim = true;
|
||||
window.FormData = FormData = function () {
|
||||
return {
|
||||
append: function (key, val, name) {
|
||||
if (val.__isFileAPIBlobShim) {
|
||||
val = val.data[0];
|
||||
}
|
||||
this.data.push({
|
||||
key: key,
|
||||
val: val,
|
||||
name: name
|
||||
});
|
||||
},
|
||||
data: [],
|
||||
__isFileAPIShim: true
|
||||
};
|
||||
};
|
||||
|
||||
window.Blob = Blob = function (b) {
|
||||
return {
|
||||
data: b,
|
||||
__isFileAPIBlobShim: true
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
})();
|
||||
|
||||
(function () {
|
||||
/** @namespace FileAPI.forceLoad */
|
||||
/** @namespace window.FileAPI.jsUrl */
|
||||
/** @namespace window.FileAPI.jsPath */
|
||||
|
||||
function isInputTypeFile(elem) {
|
||||
return elem[0].tagName.toLowerCase() === 'input' && elem.attr('type') && elem.attr('type').toLowerCase() === 'file';
|
||||
}
|
||||
|
||||
function hasFlash() {
|
||||
try {
|
||||
var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
|
||||
if (fo) return true;
|
||||
} catch (e) {
|
||||
if (navigator.mimeTypes['application/x-shockwave-flash'] !== undefined) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function getOffset(obj) {
|
||||
var left = 0, top = 0;
|
||||
|
||||
if (window.jQuery) {
|
||||
return jQuery(obj).offset();
|
||||
}
|
||||
|
||||
if (obj.offsetParent) {
|
||||
do {
|
||||
left += (obj.offsetLeft - obj.scrollLeft);
|
||||
top += (obj.offsetTop - obj.scrollTop);
|
||||
obj = obj.offsetParent;
|
||||
} while (obj);
|
||||
}
|
||||
return {
|
||||
left: left,
|
||||
top: top
|
||||
};
|
||||
}
|
||||
|
||||
if (FileAPI.shouldLoad) {
|
||||
FileAPI.hasFlash = hasFlash();
|
||||
|
||||
//load FileAPI
|
||||
if (FileAPI.forceLoad) {
|
||||
FileAPI.html5 = false;
|
||||
}
|
||||
|
||||
if (!FileAPI.upload) {
|
||||
var jsUrl, basePath, script = document.createElement('script'), allScripts = document.getElementsByTagName('script'), i, index, src;
|
||||
if (window.FileAPI.jsUrl) {
|
||||
jsUrl = window.FileAPI.jsUrl;
|
||||
} else if (window.FileAPI.jsPath) {
|
||||
basePath = window.FileAPI.jsPath;
|
||||
} else {
|
||||
for (i = 0; i < allScripts.length; i++) {
|
||||
src = allScripts[i].src;
|
||||
index = src.search(/\/ng\-file\-upload[\-a-zA-z0-9\.]*\.js/);
|
||||
if (index > -1) {
|
||||
basePath = src.substring(0, index + 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (FileAPI.staticPath == null) FileAPI.staticPath = basePath;
|
||||
script.setAttribute('src', jsUrl || basePath + 'FileAPI.min.js');
|
||||
document.getElementsByTagName('head')[0].appendChild(script);
|
||||
}
|
||||
|
||||
FileAPI.ngfFixIE = function (elem, fileElem, changeFn) {
|
||||
if (!hasFlash()) {
|
||||
throw 'Adode Flash Player need to be installed. To check ahead use "FileAPI.hasFlash"';
|
||||
}
|
||||
var fixInputStyle = function () {
|
||||
var label = fileElem.parent();
|
||||
if (elem.attr('disabled')) {
|
||||
if (label) label.removeClass('js-fileapi-wrapper');
|
||||
} else {
|
||||
if (!fileElem.attr('__ngf_flash_')) {
|
||||
fileElem.unbind('change');
|
||||
fileElem.unbind('click');
|
||||
fileElem.bind('change', function (evt) {
|
||||
fileApiChangeFn.apply(this, [evt]);
|
||||
changeFn.apply(this, [evt]);
|
||||
});
|
||||
fileElem.attr('__ngf_flash_', 'true');
|
||||
}
|
||||
label.addClass('js-fileapi-wrapper');
|
||||
if (!isInputTypeFile(elem)) {
|
||||
label.css('position', 'absolute')
|
||||
.css('top', getOffset(elem[0]).top + 'px').css('left', getOffset(elem[0]).left + 'px')
|
||||
.css('width', elem[0].offsetWidth + 'px').css('height', elem[0].offsetHeight + 'px')
|
||||
.css('filter', 'alpha(opacity=0)').css('display', elem.css('display'))
|
||||
.css('overflow', 'hidden').css('z-index', '900000')
|
||||
.css('visibility', 'visible');
|
||||
fileElem.css('width', elem[0].offsetWidth + 'px').css('height', elem[0].offsetHeight + 'px')
|
||||
.css('position', 'absolute').css('top', '0px').css('left', '0px');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
elem.bind('mouseenter', fixInputStyle);
|
||||
|
||||
var fileApiChangeFn = function (evt) {
|
||||
var files = FileAPI.getFiles(evt);
|
||||
//just a double check for #233
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
if (files[i].size === undefined) files[i].size = 0;
|
||||
if (files[i].name === undefined) files[i].name = 'file';
|
||||
if (files[i].type === undefined) files[i].type = 'undefined';
|
||||
}
|
||||
if (!evt.target) {
|
||||
evt.target = {};
|
||||
}
|
||||
evt.target.files = files;
|
||||
// if evt.target.files is not writable use helper field
|
||||
if (evt.target.files !== files) {
|
||||
evt.__files_ = files;
|
||||
}
|
||||
(evt.__files_ || evt.target.files).item = function (i) {
|
||||
return (evt.__files_ || evt.target.files)[i] || null;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
FileAPI.disableFileInput = function (elem, disable) {
|
||||
if (disable) {
|
||||
elem.removeClass('js-fileapi-wrapper');
|
||||
} else {
|
||||
elem.addClass('js-fileapi-wrapper');
|
||||
}
|
||||
};
|
||||
}
|
||||
})();
|
||||
|
||||
if (!window.FileReader) {
|
||||
window.FileReader = function () {
|
||||
var _this = this, loadStarted = false;
|
||||
this.listeners = {};
|
||||
this.addEventListener = function (type, fn) {
|
||||
_this.listeners[type] = _this.listeners[type] || [];
|
||||
_this.listeners[type].push(fn);
|
||||
};
|
||||
this.removeEventListener = function (type, fn) {
|
||||
if (_this.listeners[type]) _this.listeners[type].splice(_this.listeners[type].indexOf(fn), 1);
|
||||
};
|
||||
this.dispatchEvent = function (evt) {
|
||||
var list = _this.listeners[evt.type];
|
||||
if (list) {
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
list[i].call(_this, evt);
|
||||
}
|
||||
}
|
||||
};
|
||||
this.onabort = this.onerror = this.onload = this.onloadstart = this.onloadend = this.onprogress = null;
|
||||
|
||||
var constructEvent = function (type, evt) {
|
||||
var e = {type: type, target: _this, loaded: evt.loaded, total: evt.total, error: evt.error};
|
||||
if (evt.result != null) e.target.result = evt.result;
|
||||
return e;
|
||||
};
|
||||
var listener = function (evt) {
|
||||
if (!loadStarted) {
|
||||
loadStarted = true;
|
||||
if (_this.onloadstart) _this.onloadstart(constructEvent('loadstart', evt));
|
||||
}
|
||||
var e;
|
||||
if (evt.type === 'load') {
|
||||
if (_this.onloadend) _this.onloadend(constructEvent('loadend', evt));
|
||||
e = constructEvent('load', evt);
|
||||
if (_this.onload) _this.onload(e);
|
||||
_this.dispatchEvent(e);
|
||||
} else if (evt.type === 'progress') {
|
||||
e = constructEvent('progress', evt);
|
||||
if (_this.onprogress) _this.onprogress(e);
|
||||
_this.dispatchEvent(e);
|
||||
} else {
|
||||
e = constructEvent('error', evt);
|
||||
if (_this.onerror) _this.onerror(e);
|
||||
_this.dispatchEvent(e);
|
||||
}
|
||||
};
|
||||
this.readAsDataURL = function (file) {
|
||||
FileAPI.readAsDataURL(file, listener);
|
||||
};
|
||||
this.readAsText = function (file) {
|
||||
FileAPI.readAsText(file, listener);
|
||||
};
|
||||
};
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue