diff options
Diffstat (limited to 'xstatic/pkg/angular_fileupload/data/angular-file-upload.js')
-rw-r--r-- | xstatic/pkg/angular_fileupload/data/angular-file-upload.js | 250 |
1 files changed, 0 insertions, 250 deletions
diff --git a/xstatic/pkg/angular_fileupload/data/angular-file-upload.js b/xstatic/pkg/angular_fileupload/data/angular-file-upload.js deleted file mode 100644 index 2aa65fc..0000000 --- a/xstatic/pkg/angular_fileupload/data/angular-file-upload.js +++ /dev/null @@ -1,250 +0,0 @@ -/**! - * AngularJS file upload/drop directive with http post and progress - * @author Danial <danial.farid@gmail.com> - * @version 1.4.0 - */ -(function() { - -var angularFileUpload = angular.module('angularFileUpload', []); - -angularFileUpload.service('$upload', ['$http', '$timeout', function($http, $timeout) { - function sendHttp(config) { - config.method = config.method || 'POST'; - config.headers = config.headers || {}; - config.transformRequest = config.transformRequest || function(data, headersGetter) { - if (window.ArrayBuffer && data instanceof window.ArrayBuffer) { - return data; - } - return $http.defaults.transformRequest[0](data, headersGetter); - }; - - if (window.XMLHttpRequest.__isShim) { - config.headers['__setXHR_'] = function() { - return function(xhr) { - if (!xhr) return; - config.__XHR = xhr; - config.xhrFn && config.xhrFn(xhr); - xhr.upload.addEventListener('progress', function(e) { - if (config.progress) { - $timeout(function() { - if(config.progress) config.progress(e); - }); - } - }, false); - //fix for firefox not firing upload progress end, also IE8-9 - xhr.upload.addEventListener('load', function(e) { - if (e.lengthComputable) { - if(config.progress) config.progress(e); - } - }, false); - }; - }; - } - - var promise = $http(config); - - promise.progress = function(fn) { - config.progress = fn; - return promise; - }; - promise.abort = function() { - if (config.__XHR) { - $timeout(function() { - config.__XHR.abort(); - }); - } - return promise; - }; - promise.xhr = function(fn) { - config.xhrFn = fn; - return promise; - }; - promise.then = (function(promise, origThen) { - return function(s, e, p) { - config.progress = p || config.progress; - var result = origThen.apply(promise, [s, e, p]); - result.abort = promise.abort; - result.progress = promise.progress; - result.xhr = promise.xhr; - result.then = promise.then; - return result; - }; - })(promise, promise.then); - - return promise; - } - - this.upload = function(config) { - config.headers = config.headers || {}; - config.headers['Content-Type'] = undefined; - config.transformRequest = config.transformRequest || $http.defaults.transformRequest; - var formData = new FormData(); - var origTransformRequest = config.transformRequest; - var origData = config.data; - config.transformRequest = function(formData, headerGetter) { - if (origData) { - if (config.formDataAppender) { - for (var key in origData) { - var val = origData[key]; - config.formDataAppender(formData, key, val); - } - } else { - for (var key in origData) { - var val = origData[key]; - if (typeof origTransformRequest == 'function') { - val = origTransformRequest(val, headerGetter); - } else { - for (var i = 0; i < origTransformRequest.length; i++) { - var transformFn = origTransformRequest[i]; - if (typeof transformFn == 'function') { - val = transformFn(val, headerGetter); - } - } - } - formData.append(key, val); - } - } - } - - if (config.file != null) { - var fileFormName = config.fileFormDataName || 'file'; - - if (Object.prototype.toString.call(config.file) === '[object Array]') { - var isFileFormNameString = Object.prototype.toString.call(fileFormName) === '[object String]'; - for (var i = 0; i < config.file.length; i++) { - formData.append(isFileFormNameString ? fileFormName + i : fileFormName[i], config.file[i], config.file[i].name); - } - } else { - formData.append(fileFormName, config.file, config.file.name); - } - } - return formData; - }; - - config.data = formData; - - return sendHttp(config); - }; - - this.http = function(config) { - return sendHttp(config); - } -}]); - -angularFileUpload.directive('ngFileSelect', [ '$parse', '$timeout', function($parse, $timeout) { - return function(scope, elem, attr) { - var fn = $parse(attr['ngFileSelect']); - elem.bind('change', function(evt) { - var files = [], fileList, i; - fileList = evt.target.files; - if (fileList != null) { - for (i = 0; i < fileList.length; i++) { - files.push(fileList.item(i)); - } - } - $timeout(function() { - fn(scope, { - $files : files, - $event : evt - }); - }); - }); - // removed this since it was confusing if the user click on browse and then cancel #181 -// elem.bind('click', function(){ -// this.value = null; -// }); - - // touch screens - if (('ontouchstart' in window) || - (navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0)) { - elem.bind('touchend', function(e) { - e.preventDefault(); - e.target.click(); - }); - } - }; -} ]); - -angularFileUpload.directive('ngFileDropAvailable', [ '$parse', '$timeout', function($parse, $timeout) { - return function(scope, elem, attr) { - if ('draggable' in document.createElement('span')) { - var fn = $parse(attr['ngFileDropAvailable']); - $timeout(function() { - fn(scope); - }); - } - }; -} ]); - -angularFileUpload.directive('ngFileDrop', [ '$parse', '$timeout', function($parse, $timeout) { - return function(scope, elem, attr) { - if ('draggable' in document.createElement('span')) { - var cancel = null; - var fn = $parse(attr['ngFileDrop']); - elem[0].addEventListener("dragover", function(evt) { - $timeout.cancel(cancel); - evt.stopPropagation(); - evt.preventDefault(); - elem.addClass(attr['ngFileDragOverClass'] || "dragover"); - }, false); - elem[0].addEventListener("dragleave", function(evt) { - cancel = $timeout(function() { - elem.removeClass(attr['ngFileDragOverClass'] || "dragover"); - }); - }, false); - - var processing = 0; - function traverseFileTree(files, item) { - if (item.isDirectory) { - var dirReader = item.createReader(); - processing++; - dirReader.readEntries(function(entries) { - for (var i = 0; i < entries.length; i++) { - traverseFileTree(files, entries[i]); - } - processing--; - }); - } else { - processing++; - item.file(function(file) { - processing--; - files.push(file); - }); - } - } - - elem[0].addEventListener("drop", function(evt) { - evt.stopPropagation(); - evt.preventDefault(); - elem.removeClass(attr['ngFileDragOverClass'] || "dragover"); - var files = [], items = evt.dataTransfer.items; - if (items && items.length > 0 && items[0].webkitGetAsEntry) { - for (var i = 0; i < items.length; i++) { - traverseFileTree(files, items[i].webkitGetAsEntry()); - } - } else { - var fileList = evt.dataTransfer.files; - if (fileList != null) { - for (var i = 0; i < fileList.length; i++) { - files.push(fileList.item(i)); - } - } - } - (function callback(delay) { - $timeout(function() { - if (!processing) { - fn(scope, { - $files : files, - $event : evt - }); - } else { - callback(10); - } - }, delay || 0) - })(); - }, false); - } - }; -} ]); - -})(); |