upload.js 15 KB

1
  1. !function(e){var a={};function i(t){if(a[t])return a[t].exports;var n=a[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.m=e,i.c=a,i.d=function(e,a,t){i.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,a){if(1&a&&(e=i(e)),8&a)return e;if(4&a&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&a&&"string"!=typeof e)for(var n in e)i.d(t,n,function(a){return e[a]}.bind(null,n));return t},i.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(a,"a",a),a},i.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},i.p="/",i(i.s=8)}({8:function(e,a,i){e.exports=i(9)},9:function(e,a){var i,t;i=window,t=jQuery,Dcat.Uploader=function(e){e=t.extend({wrapper:".web-uploader",addFileButton:".add-file-button",isImage:!1,preview:[],deleteUrl:"",deleteData:{},thumbHeight:160,disabled:!1,autoUpdateColumn:!1,disableRemove:!1,dimensions:{},lang:{exceed_size:"文件大小超出",interrupt:"上传暂停",upload_failed:"上传失败,请重试",selected_files:"选中:num个文件,共:size。",selected_has_failed:'已成功上传:success个文件,:fail个文件上传失败,<a class="retry" href="javascript:"";">重新上传</a>失败文件或<a class="ignore" href="javascript:"";">忽略</a>',selected_success:"共:num个(:size),已上传:success个。",dot:",",failed_num:"失败:fail个。",pause_upload:"暂停上传",go_on_upload:"继续上传",start_upload:"开始上传",upload_success_message:"已成功上传:success个文件",go_on_add:"继续添加",Q_TYPE_DENIED:"对不起,不允许上传此类型文件",Q_EXCEED_NUM_LIMIT:"对不起,已超出文件上传数量限制,最多只能上传:num个文件",F_EXCEED_SIZE:"对不起,当前选择的文件过大",Q_EXCEED_SIZE_LIMIT:"对不起,已超出文件大小限制",F_DUPLICATE:"文件重复"},upload:{formData:{_id:null},thumb:{width:160,height:160,quality:70,allowMagnify:!0,crop:!0,preserveHeaders:!1,type:"image/jpeg"}}},e);var a=t(e.selector),n=e.upload.formData.upload_column||"webup"+Math.floor(1e4*Math.random()),s=e.elementName;void 0!==e.upload.formData._id&&e.upload.formData._id||(e.upload.formData._id=n+Math.floor(1e4*Math.random()));var r,l,o,d,c,u,f,p,m,h,v=i.Dcat,b=e.isImage,g=v.helpers.len(e.preview),_=a.find('input[name="'+s+'"]'),w=function(e){return s.replace(/[\[\]]*/g,"_")+"-"+e},y=function(e){return t("#"+w(e))},k=e.addFileButton,E={},x={},F=0,I=0,C="pedding",N={},D=(m=new Image,h=!0,m.onload=m.onerror=function(){1==this.width&&1==this.height||(h=!1)},m.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",h),U=function(){var e;try{e=(e=navigator.plugins["Shockwave Flash"]).description}catch(a){try{e=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(a){e="0.0"}}return e=e.match(/\d+/g),parseFloat(e[0]+"."+e[1],10)}(),A=function(e){return e.type.match(/^image/)},S=v.Translator(e.lang),T=S.trans.bind(S);function L(a){var i,s,r=WebUploader.formatSize(a.size);b?(i=t('<li id="'.concat(w(a.id),'" title="').concat(a.name,'" >\n <p class="file-type">').concat(a.ext.toUpperCase()||"FILE",'</p>\n <p class="imgWrap "></p>\n <p class="title" style="">').concat(a.name,'</p>\n <p class="title" style="margin-bottom:20px;">(<b>').concat(r,"</b>)</p>\n </li>")),s=t('<div class="file-panel">\n <a class="btn btn-sm btn-white" data-file-act="cancel"><i class="fa fa-close red-dark" style="font-size:13px"></i></a>\n <a class="btn btn-sm btn-white" data-file-act="delete" style="display: none">\n <i class="feather icon-trash red-dark" style="font-size:13px"></i></a>\n <a class="btn btn-sm btn-white" data-file-act="preview" ><i class="feather icon-zoom-in"></i></a>\n </div>').appendTo(i)):(i=t('\n <li id="'.concat(w(a.id),'" title="').concat(a.nam,'">\n <p class="title" style="display:block">\n <i class="feather icon-check green _success icon-success"></i>\n ').concat(a.name," (").concat(r,")\n </p>\n </li>\n ")),s=t('\n<span data-file-act="cancel" class="file-action" style="font-size:13px">\n <i class="feather icon-x red-dark"></i>\n</span>\n<span data-file-act="delete" class="file-action" style="display:none">\n <i class="feather icon-trash red-dark"></i>\n</span>\n').appendTo(i));var o=i.find("p.imgWrap"),d=t('<p class="error"></p>'),c=function(e,a){var t="";switch(e){case"exceed_size":t=T("exceed_size");break;case"interrupt":t=T("interrupt");break;default:t=T("upload_failed")}E[a.id]=a,d.text(t).appendTo(i)};if(i.appendTo(l),setTimeout((function(){i.css({margin:"5px"})}),50),"invalid"===a.getStatus())c(a.statusText,a);else{if(b){var u=p.makeThumb(a,(function(e,a){var n;if(o.empty(),e)return i.find(".title").show(),void i.find(".file-type").show();D?(n=t('<img src="'+a+'">'),o.append(n)):i.find(".file-type").show()}));try{u.once("load",(function(){a._info=a._info||u.info(),a._meta=a._meta||u.meta();var i=a._info.width,t=a._info.height;if(!function(a){if(!b||!A(a)||!v.helpers.len(e.dimensions))return!0;var i=e.dimensions,t=a._info.width,n=a._info.height,s=v.helpers.isset;return!(s(i,"width")&&i.width!=t||s(i,"min_width")&&i.min_width>t||s(i,"max_width")&&i.max_width<t||s(i,"height")&&i.height!=n||s(i,"min_height")&&i.min_height>n||s(i,"max_height")&&i.max_height<n||s(i,"ratio")&&i.ratio!=t/n)}(a))return v.error("The image dimensions is invalid."),p.removeFile(a),!1;u.resize(i,t)}))}catch(e){return setTimeout((function(){p.removeFile(a)}),10)}}N[a.id]=[a.size,0],a.rotation=0}a.on("statuschange",(function(e,t){"progress"===t||"queued"===t&&(s.find('[data-file-act="cancel"]').hide(),s.find('[data-file-act="delete"]').show()),"error"===e||"invalid"===e?(c(a.statusText,a),N[a.id][1]=1):"interrupt"===e?c("interrupt",a):"queued"===e?N[a.id][1]=0:"progress"===e?d.remove():"complete"===e&&(b?i.append('<span class="success"><em></em><i class="feather icon-check"></i></span>'):i.find("._success").show()),i.removeClass("state-"+t).addClass("state-"+e)})),(b?s.find("a"):s).on("click",(function(){switch(t(this).data("file-act")){case"cancel":return void p.removeFile(a);case"deleteurl":case"delete":if(e.disableRemove)return p.removeFile(a);var i=e.deleteData;if(i.key=a.serverId,!i.key)return p.removeFile(a);i._column=n,v.loading(),t.post(e.deleteUrl,i,(function(e){if(v.loading(!1),e.status)return B(a.serverId),void p.removeFile(a);v.error(e.message||"Remove file failed.")}));break;case"preview":v.helpers.previewImage(o.find("img").attr("src"),null,a.name)}}))}function z(e){var a=y(e.id);delete N[e.id],M(),a.off().find(".file-panel").off().end().remove()}function M(){var e,a=0,i=0,n=f.find(".progress-bar");t.each(N,(function(e,t){i+=t[0],a+=t[0]*t[1]})),e=i?a/i:0,e=Math.round(100*e)+"%",n.text(e),n.css("width",e),j()}function j(){var e,a="";function i(){(e=p.getStats()).successNum&&(a=T("selected_success",{num:F,size:WebUploader.formatSize(I),success:e.successNum})),e.uploadFailNum&&(a+=(a?T("dot"):"")+T("failed_num",{fail:e.uploadFailNum}))}p&&("ready"===C?(e=p.getStats(),F?a=T("selected_files",{num:F,size:WebUploader.formatSize(I)}):i()):"confirm"===C?(e=p.getStats()).uploadFailNum&&(a=T("selected_has_failed",{success:e.successNum,fail:e.uploadFailNum})):i(),d.html(a))}function P(i,t){var n;if(t=t||{},i!==C){switch(c&&(c.removeClass("state-"+C),c.addClass("state-"+i)),C=i){case"pedding":if(e.disabled)return;u.removeClass("element-invisible"),l.hide(),o.addClass("element-invisible"),b&&(r.removeAttr("style"),r.find(".queueList").removeAttr("style")),q();break;case"ready":u.addClass("element-invisible"),a.find(k).removeClass("element-invisible"),l.show(),e.disabled||o.removeClass("element-invisible"),q(),b&&r.find(".queueList").css({border:"1px solid #d3dde5",padding:"5px"});break;case"uploading":a.find(k).addClass("element-invisible"),f.show(),c.text(T("pause_upload"));break;case"paused":f.show(),c.text(T("go_on_upload"));break;case"confirm":if(p&&(f.hide(),a.find(k).removeClass("element-invisible"),c.text(T("start_upload")),(n=p.getStats()).successNum&&!n.uploadFailNum))return void P("finish");break;case"finish":p&&((n=p.getStats()).successNum?v.success(T("upload_success_message",{success:n.successNum})):(C="done",location.reload()));break;case"decrOriginalFileNum":g>0&&g--;break;case"incrOriginalFileNum":g++;break;case"decrFileNumLimit":if(!p)return;"-1"==(s=p.option("fileNumLimit"))&&(s=0),0==(d=s>=(d=t.num||1)?s-d:0)&&(d="-1"),p.option("fileNumLimit",d);break;case"incrFileNumLimit":if(!p)return;var s,d;"-1"==(s=p.option("fileNumLimit"))&&(s=0),d=s+(d=t.num||1),p.option("fileNumLimit",d);break;case"init":c.addClass("state-"+C),M(),g||e.disabled?(u.addClass("element-invisible"),e.disabled?r.addClass("disabled"):o.show(),P("ready")):b&&(r.removeAttr("style"),r.find(".queueList").css("margin","0")),q()}j()}}function O(e){if(e){var a=x[e];B(e),delete x[e],p&&!a.fake&&p.removeFile(a),P("decrOriginalFileNum"),P("incrFileNumLimit"),v.helpers.len(x)||v.helpers.len(N)||P("pedding")}}function Q(){var e=_.val();return e?e.split(","):[]}function W(e){var a=Q();a.push(e),X(a)}function X(e){e=e.filter((function(e,a,i){return i.indexOf(e)===a})).filter((function(e){return!!e})),_.val(e.join(","))}function B(e){if(!e)return _.val("");X(Q().filter((function(a){return a!=e})))}function q(){p.refresh()}function R(a){var i="";i+="<li title='"+a.serverPath+"'>",b?i+="<p class='imgWrap'><img src='".concat(a.serverUrl,"'></p>"):e.disabled||(i+='<p class="file-action" data-file-act="delete" data-id="'.concat(a.serverId,'"><i class="feather icon-trash red-dark"></i></p>')),i+="<p class='title' style=''><i class='feather icon-check text-white icon-success' style='color: #fff;'></i>",i+=a.serverPath,i+="</p>",b&&(i+="<p class='title' style='margin-bottom:20px;'>&nbsp;</p>",i+="<div class='file-panel' >",e.disabled||(i+="<a class='btn btn-sm btn-white' data-file-act='deleteurl' data-id='".concat(a.serverId,"'><i class='feather icon-trash red-dark' style='font-size:13px'></i></a>")),i+="<a class='btn btn-sm btn-white' data-file-act='preview' data-url='".concat(a.serverUrl,"' ><i class='feather icon-zoom-in'></i></a>"),i+="</div>"),i=t(i+="</li>"),b||(i.find(".file-type").show(),i.find(".title").show(),r.css("background","transparent"));var s=function(){var a=t(this).data("id"),s=e.deleteData;if(e.disableRemove)return i.remove(),O(a);s.key=a,s._column=n,v.loading(),t.post(e.deleteUrl,s,(function(e){if(v.loading(!1),e.status)return i.remove(),void O(a);v.error(e.message||"Remove file failed.")}))};i.find('[data-file-act="deleteurl"]').click(s),i.find('[data-file-act="delete"]').click(s),i.find('[data-file-act="preview"]').click((function(){var e=t(this).data("url");v.helpers.previewImage(e)})),P("incrOriginalFileNum"),P("decrFileNumLimit"),x[a.serverId]=a,W(a.serverId),l.append(i),b&&setTimeout((function(){i.css("margin","5px")}),80)}return this.uploader=p,this.options=e,this.build=function(){r=a.find(e.wrapper),l=t('<ul class="filelist"></ul>').appendTo(r.find(".queueList")),o=r.find(".statusBar"),d=o.find(".info"),c=r.find(".uploadBtn"),u=r.find(".placeholder"),f=o.find(".upload-progress").hide(),WebUploader.Uploader.support("flash")||!WebUploader.browser.ie?WebUploader.Uploader.support()||v.error("您的浏览器不支持Web Uploader!"):U?function(e){window.expressinstallcallback=function(e){switch(e){case"Download.Cancelled":break;case"Download.Failed":v.error("Install failed!");break;default:v.success("Install Success!")}delete window.expressinstallcallback};var a="./expressInstall.swf",i='<object type="application/x-shockwave-flash" data="'.concat(a,'" ');WebUploader.browser.ie&&(i+='classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '),i+='width="100%" height="100%" style="outline:0">\n <param name="movie" value="'.concat(a,'" />\n <param name="wmode" value="transparent" />\n <param name="allowscriptaccess" value="always" />\n </object>'),e.html(i)}(r):r.html('<a href="http://www.adobe.com/go/getflashplayer" target="_blank" border="0"><img alt="get flash player" src="http://www.adobe.com/macromedia/style_guide/images/160x41_Get_Flash_Player.jpg" /></a>'),(p=WebUploader.create(e.upload)).on("dndAccept",(function(e){for(var a=!1,i=e.length,t=0;t<i;t++)if(~"text/plain;application/javascript ".indexOf(e[t].type)){a=!0;break}return!a})),e.upload.fileNumLimit>1&&!e.disabled&&p.addButton({id:k,label:'<i class="feather icon-folder"></i> &nbsp;'+T("go_on_add")}),p.onUploadProgress=function(e,a){N[e.id][1]=a,M()},p.onBeforeFileQueued=function(e){},p.onFileQueued=function(e){F++,I+=e.size,1===F&&(u.addClass("element-invisible"),o.show()),L(e),P("ready"),M()},p.onFileDequeued=function(e){F--,I-=e.size,F||v.helpers.len(x)||P("pedding"),z(e)},p.on("all",(function(a,i,s){switch(a){case"uploadFinished":P("confirm"),l=Q(),o=p.getStats().successNum,d=t.extend({},e.formData),o&&l&&e.autoUpdateColumn&&(d[n]=l.join(","),delete d.upload_column,t.post(e.server,d));break;case"startUpload":P("uploading");break;case"stopUpload":P("paused");break;case"uploadAccept":if(s&&s.error)return v.error(s.error.message),E[i.file.id]=i.file,!1;if(s.merge)return;if(i.file.serverId=s.id,i.file.serverName=s.name,i.file.serverPath=s.path,i.file.serverUrl=s.url||null,W(s.id),!b){var r=y(i.file.id);r.find(".file-action").hide(),r.find('[data-file-act="delete"]').show()}}var l,o,d})),p.onError=function(a){switch(a){case"Q_TYPE_DENIED":v.error(T("Q_TYPE_DENIED"));break;case"Q_EXCEED_NUM_LIMIT":v.error(T("Q_EXCEED_NUM_LIMIT",{num:e.upload.fileNumLimit}));break;case"F_EXCEED_SIZE":v.error(T("F_EXCEED_SIZE"));break;case"Q_EXCEED_SIZE_LIMIT":v.error(T("Q_EXCEED_SIZE_LIMIT"));break;case"F_DUPLICATE":v.warning(T("F_DUPLICATE"));break;default:v.error("Error: "+a)}},c.on("click",(function(){if(t(this).hasClass("disabled"))return!1;"ready"===C||"paused"===C?p.upload():"uploading"===C&&p.stop()})),d.on("click",".retry",(function(){p.retry()})),d.on("click",".ignore",(function(){for(var e in E)p.removeFile(e,!0),delete E[e]})),P("init")},this.preview=function(){for(var a in e.preview){var i,t=e.preview[a].path;t.indexOf(".")&&(i=t.split(".").pop()),R({serverId:e.preview[a].id,serverUrl:e.preview[a].url,serverPath:t,ext:i,fake:1})}},this.setState=P,this.refreshButton=q,this.getFileView=y,this.getFileViewSelector=w,this.addFileView=L,this.removeUploadFileView=z,this.isImage=A,this.getColumn=function(){return n},this}}});