forked from twilson63/ngUpload
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathng-upload.min.js
1 lines (1 loc) · 2.25 KB
/
ng-upload.min.js
1
angular.module("ngUpload",[]).directive("uploadSubmit",["$parse",function(){function n(t,e){t=angular.element(t);var a=t.parent();return e=e.toLowerCase(),a&&a[0].tagName.toLowerCase()===e?a:a?n(a,e):null}return{restrict:"AC",link:function(t,e){e.bind("click",function(t){if(t&&t.preventDefault(),!e.attr("disabled")){var a=n(e,"form");a[0].submit()}})}}}]).directive("ngUpload",["$log","$parse","$document",function(n,t,e){function a(n){var t,a=e.find("head");return angular.forEach(a.find("meta"),function(e){e.getAttribute("name")===n&&(t=e)}),angular.element(t)}var r=1;return{restrict:"AC",scope:!0,link:function(e,o,i){function l(){var n=o.attr("action"),t=-1===n.indexOf("?")?"?":"&",e=+new Date;return n+t+"_t="+e}function d(n){e.$isUploading=n}r++;var u={},p=i.ngUpload?t(i.ngUpload):null,f=i.ngUploadLoading?t(i.ngUploadLoading):null;i.hasOwnProperty("uploadOptionsConvertHidden")&&(u.convertHidden="false"!=i.uploadOptionsConvertHidden),i.hasOwnProperty("uploadOptionsEnableRailsCsrf")&&(u.enableRailsCsrf="false"!=i.uploadOptionsEnableRailsCsrf),i.hasOwnProperty("uploadOptionsBeforeSubmit")&&(u.beforeSubmit=t(i.uploadOptionsBeforeSubmit)),o.attr({target:"upload-iframe-"+r,method:"post",action:l(),enctype:"multipart/form-data",encoding:"multipart/form-data"});var c=angular.element('<iframe name="upload-iframe-'+r+'" '+'border="0" width="0" height="0" '+'style="width:0px;height:0px;border:none;display:none">');if(u.enableRailsCsrf){var s=angular.element("<input />");s.attr("class","upload-csrf-token"),s.attr("type","hidden"),s.attr("name",a("csrf-param").attr("content")),s.val(a("csrf-token").attr("content")),o.append(s)}o.after(c),d(!1),o.bind("submit",function(){return u.beforeSubmit?u.beforeSubmit():(u.convertHidden&&angular.forEach(o.find("input"),function(n){n=angular.element(n),n.attr("ng-model")&&n.attr("type")&&"hidden"==n.attr("type")&&n.attr("value",e.$eval(n.attr("ng-model")))}),e.$$phase?(f&&f(e),d(!0)):e.$apply(function(){f&&f(e),d(!0)}),void 0)}),c.bind("load",function(){e.$$phase?d(!1):e.$apply(function(){d(!1)});var t,a=(c[0].contentDocument||c[0].contentWindow.document).body;try{t=angular.fromJson(a.innerText||a.textContent)}catch(r){t=a.innerHTML,n.warn("Response is not valid JSON")}e.$$phase?p(e,{content:t}):e.$apply(function(){p(e,{content:t})})})}}}]);