102 lines
3.5 KiB
JavaScript
102 lines
3.5 KiB
JavaScript
/*
|
|
* jQuery File Upload Plugin Angular JS Example
|
|
* 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 window, angular */
|
|
|
|
;(function () {
|
|
'use strict';
|
|
|
|
var isOnGitHub = window.location.hostname === 'blueimp.github.io',
|
|
url = isOnGitHub ? '//jquery-file-upload.appspot.com/' : 'server/php/';
|
|
|
|
angular.module('demo', [
|
|
'blueimp.fileupload'
|
|
])
|
|
.config([
|
|
'$httpProvider', 'fileUploadProvider',
|
|
function ($httpProvider, fileUploadProvider) {
|
|
delete $httpProvider.defaults.headers.common['X-Requested-With'];
|
|
fileUploadProvider.defaults.redirect = window.location.href.replace(
|
|
/\/[^\/]*$/,
|
|
'/cors/result.html?%s'
|
|
);
|
|
if (isOnGitHub) {
|
|
// Demo settings:
|
|
angular.extend(fileUploadProvider.defaults, {
|
|
// Enable image resizing, except for Android and Opera,
|
|
// which actually support image resizing, but fail to
|
|
// send Blob objects via XHR requests:
|
|
disableImageResize: /Android(?!.*Chrome)|Opera/
|
|
.test(window.navigator.userAgent),
|
|
maxFileSize: 999000,
|
|
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
|
|
});
|
|
}
|
|
}
|
|
])
|
|
|
|
.controller('DemoFileUploadController', [
|
|
'$scope', '$http', '$filter', '$window',
|
|
function ($scope, $http) {
|
|
$scope.options = {
|
|
url: url
|
|
};
|
|
if (!isOnGitHub) {
|
|
$scope.loadingFiles = true;
|
|
$http.get(url)
|
|
.then(
|
|
function (response) {
|
|
$scope.loadingFiles = false;
|
|
$scope.queue = response.data.files || [];
|
|
},
|
|
function () {
|
|
$scope.loadingFiles = false;
|
|
}
|
|
);
|
|
}
|
|
}
|
|
])
|
|
|
|
.controller('FileDestroyController', [
|
|
'$scope', '$http',
|
|
function ($scope, $http) {
|
|
var file = $scope.file,
|
|
state;
|
|
if (file.url) {
|
|
file.$state = function () {
|
|
return state;
|
|
};
|
|
file.$destroy = function () {
|
|
state = 'pending';
|
|
return $http({
|
|
url: file.deleteUrl,
|
|
method: file.deleteType
|
|
}).then(
|
|
function () {
|
|
state = 'resolved';
|
|
$scope.clear(file);
|
|
},
|
|
function () {
|
|
state = 'rejected';
|
|
}
|
|
);
|
|
};
|
|
} else if (!file.$cancel && !file._index) {
|
|
file.$cancel = function () {
|
|
$scope.clear(file);
|
|
};
|
|
}
|
|
}
|
|
]);
|
|
|
|
}());
|