Skip to content

Commit 5116122

Browse files
Danial FaridDanial Farid
authored andcommitted
fixed #276 #277
1 parent 609cbfd commit 5116122

15 files changed

Lines changed: 49 additions & 128 deletions

CHANGELOG.md

Lines changed: 0 additions & 88 deletions
This file was deleted.

demo/src/com/df/angularfileupload/CORSFilter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain
1919
HttpServletResponse httpResp = (HttpServletResponse) resp;
2020
HttpServletRequest httpReq = (HttpServletRequest) req;
2121

22-
httpResp.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, OPTION");
22+
httpResp.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, OPTIONS");
2323
httpResp.setHeader("Access-Control-Allow-Origin", "*");
2424
if (httpReq.getMethod().equalsIgnoreCase("OPTIONS")) {
2525
httpResp.setHeader("Access-Control-Allow-Headers",
26-
((HttpServletRequest) req).getHeader("Access-Control-Request-Headers"));
26+
httpReq.getHeader("Access-Control-Request-Headers"));
2727
}
2828
chain.doFilter(req, resp);
2929
}

demo/war/WEB-INF/appengine-web.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
3-
<application>angular-file-upload</application>
4-
<version>1-6-0</version>
3+
<application>angular-file-upload-cors-srv</application>
4+
<version>1-6-1</version>
55

66
<!--
77
Allows App Engine to send multiple requests to one instance in parallel:

demo/war/index.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
<title>Angular file upload sample</title>
77
<script type="text/javascript">
88
FileAPI = {
9-
//debug: true,
9+
debug: true,
1010
//forceLoad: true, html5: false //to debug flash in HTML5 browsers
11+
//wrapInsideDiv: true, //experimental for fixing css issues
1112
//only one of jsPath or jsUrl.
1213
//jsPath: '/js/FileAPI.min.js/folder/',
1314
//jsUrl: 'yourcdn.com/js/FileAPI.min.js',
@@ -53,12 +54,14 @@ <h3>
5354
<br/>
5455
or multiple files: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="file" ng-file-select="onFileSelect($files)" multiple onclick="this.value=null">
5556
<br/>
57+
or only images: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="file" ng-file-select="onFileSelect($files)" multiple onclick="this.value=null" accept="image/*">
5658
</div>
57-
You can have any element as an upload button: <div ng-file-select="onFileSelect($files)" data-multiple="true" title="aaaa" onclick="this.value = null" class="upload-button">Click here to select file</div>
59+
You can have any element as an upload button: <div ng-file-select="onFileSelect($files)" data-multiple="true" title="select file" onclick="this.value = null" class="upload-button">Click here to select file</div>
5860
<br/>
5961
<br/>
62+
<!-- ng-file-drag-over-class and ng-file-drag-over-delay are optional for styling and css transition handling #277 -->
6063
<div ng-show="dropSupported" class="drop-box" ng-file-drop="onFileSelect($files)" ng-file-drop-available="dropSupported=true"
61-
ng-file-drag-over-class="dragOverClass($event)">or drop files <div>here</div></div>
64+
ng-file-drag-over-class="dragOverClass($event)" ng-file-drag-over-delay="100">or drop files <div>here</div></div>
6265
<div ng-show="!dropSupported">HTML5 Drop File is not supported on this browser</div>
6366
<br/>
6467
<input type="checkbox" ng-model="uploadRightAway">Upload right away

demo/war/js/angular-file-upload-shim.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -161,14 +161,17 @@ if (!window.FormData || (window.FileAPI && FileAPI.forceLoad)) {
161161
}
162162
var el = angular.element(elem);
163163
if (!el.hasClass('js-fileapi-wrapper') && (elem.getAttribute('ng-file-select') != null || elem.getAttribute('data-ng-file-select') != null)) {
164-
// var wrap = document.createElement('div');
165-
// wrap.innerHTML = '<div class="js-fileapi-wrapper" style="position:relative; overflow:hidden"></div>';
166-
// wrap = wrap.firstChild;
167-
// var parent = elem.parentNode;
168-
// parent.insertBefore(wrap, elem);
169-
// parent.removeChild(elem);
170-
// wrap.appendChild(elem);
171-
el.addClass('js-fileapi-wrapper');
164+
if (FileAPI.wrapInsideDiv) {
165+
var wrap = document.createElement('div');
166+
wrap.innerHTML = '<div class="js-fileapi-wrapper" style="position:relative; overflow:hidden"></div>';
167+
wrap = wrap.firstChild;
168+
var parent = elem.parentNode;
169+
parent.insertBefore(wrap, elem);
170+
parent.removeChild(elem);
171+
wrap.appendChild(elem);
172+
} else {
173+
el.addClass('js-fileapi-wrapper');
174+
}
172175
}
173176
};
174177
var changeFnWrapper = function(fn) {

demo/war/js/angular-file-upload.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,8 @@ angularFileUpload.directive('ngFileDrop', [ '$parse', '$timeout', '$location', f
209209
evt.preventDefault();
210210
$timeout.cancel(leaveTimeout);
211211
if (!elem[0].__drag_over_class_) {
212-
var dragOverClassFn = $parse(attr['ngFileDragOverClass']);
213-
if (dragOverClassFn instanceof Function) {
212+
if (attr['ngFileDragOverClass'].search(/\) *$/) > -1) {
213+
dragOverClassFn = $parse(attr['ngFileDragOverClass']);
214214
var dragOverClass = dragOverClassFn(scope, {
215215
$event : evt
216216
});
@@ -229,7 +229,7 @@ angularFileUpload.directive('ngFileDrop', [ '$parse', '$timeout', '$location', f
229229
leaveTimeout = $timeout(function() {
230230
elem.removeClass(elem[0].__drag_over_class_);
231231
elem[0].__drag_over_class_ = null;
232-
});
232+
}, attr['ngFileDragOverDelay'] || 1);
233233
}, false);
234234
var fn = $parse(attr['ngFileDrop']);
235235
elem[0].addEventListener("drop", function(evt) {

demo/war/js/upload.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
angular.module('fileUpload', [ 'angularFileUpload' ]);
55

6-
var uploadUrl = 'http://angular-file-upload-cors-srv.appspot.com/upload';
6+
//var uploadUrl = 'http://angular-file-upload-cors-srv.appspot.com/upload';
77
window.uploadUrl = window.uploadUrl || 'upload';
88

99
var MyCtrl = [ '$scope', '$http', '$timeout', '$upload', function($scope, $http, $timeout, $upload) {

dist/angular-file-upload-html5-shim.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**!
22
* AngularJS file upload shim for angular XHR HTML5 browsers
33
* @author Danial <danial.farid@gmail.com>
4-
* @version 1.6.1
4+
* @version 1.6.2
55
*/
66
if (window.XMLHttpRequest) {
77
if (window.FormData) {

dist/angular-file-upload-html5-shim.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/angular-file-upload-shim.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**!
22
* AngularJS file upload shim for HTML5 FormData
33
* @author Danial <danial.farid@gmail.com>
4-
* @version 1.6.1
4+
* @version 1.6.2
55
*/
66
(function() {
77

@@ -161,14 +161,17 @@ if (!window.FormData || (window.FileAPI && FileAPI.forceLoad)) {
161161
}
162162
var el = angular.element(elem);
163163
if (!el.hasClass('js-fileapi-wrapper') && (elem.getAttribute('ng-file-select') != null || elem.getAttribute('data-ng-file-select') != null)) {
164-
// var wrap = document.createElement('div');
165-
// wrap.innerHTML = '<div class="js-fileapi-wrapper" style="position:relative; overflow:hidden"></div>';
166-
// wrap = wrap.firstChild;
167-
// var parent = elem.parentNode;
168-
// parent.insertBefore(wrap, elem);
169-
// parent.removeChild(elem);
170-
// wrap.appendChild(elem);
171-
el.addClass('js-fileapi-wrapper');
164+
if (FileAPI.wrapInsideDiv) {
165+
var wrap = document.createElement('div');
166+
wrap.innerHTML = '<div class="js-fileapi-wrapper" style="position:relative; overflow:hidden"></div>';
167+
wrap = wrap.firstChild;
168+
var parent = elem.parentNode;
169+
parent.insertBefore(wrap, elem);
170+
parent.removeChild(elem);
171+
wrap.appendChild(elem);
172+
} else {
173+
el.addClass('js-fileapi-wrapper');
174+
}
172175
}
173176
};
174177
var changeFnWrapper = function(fn) {

0 commit comments

Comments
 (0)