7fe4f761创建于 4月29日历史提交
(()=>{var f,S=[],g=!1,m={};function h(e,t){for(var a,i,o=$G(e).children,r=0;i=o[r++];)if("focus"==i.className){a=i.getAttribute(t);break}return a}function v(e){var t;e&&($G("preview").innerHTML='<div class="previewMsg"><span>'+lang.urlError+'</span></div><div style="position: absolute; inset: 0; background: #FFF; text-align: center; display: flex; justify-items: center; align-items: center;"><div style="text-align:center;flex-grow:1;">'+["<audio",(t=t||{}).id?' id="'+t.id+'"':"",t.cls?' class="'+t.cls+'"':""," controls >",'<source src="'+e+'" type="audio/mpeg" />',"</audio>"].join("")+"</div></div>")}function b(e){this.$wrap=e.constructor==String?$("#"+e):$(e),this.init()}window.onload=function(){m=editor.getOpt("audioConfig"),$focus($G("audioUrl"));for(var o=$G("tabHeads").children,e=0;e<o.length;e++)domUtils.on(o[e],"click",function(e){for(var t,a=e.target||e.srcElement,i=0;i<o.length;i++)t=o[i].getAttribute("data-content-id"),o[i]==a?(domUtils.addClass(o[i],"focus"),domUtils.addClass($G(t),"focus")):(domUtils.removeClasses(o[i],"focus"),domUtils.removeClasses($G(t),"focus"))});m.disableUpload||($G("tabHeads").querySelector('[data-content-id="upload"]').style.display="inline-block"),m.selectCallback&&($G("audioSelect").style.display="inline-block",domUtils.on($G("audioSelect"),"click",function(e){m.selectCallback(editor,function(e){e&&($G("audioUrl").value=e.path,v(e.path))})}));for(var t,a=["audioFloat","upload_alignment"],i=0;t=a[i++];){var r,n=$G(t),s={none:lang.default,left:lang.floatLeft,right:lang.floatRight,center:lang.block};for(r in s){var l=document.createElement("div");l.setAttribute("name",r),"none"==r&&(l.className="focus"),l.style.cssText="background:url(images/"+r+"_focus.jpg);",l.setAttribute("title",s[r]),n.appendChild(l)}(e=>{for(var t,a=$G(e).children,i=0;t=a[i++];)domUtils.on(t,"click",function(){for(var e,t=0;e=a[t++];)e.className="",e.removeAttribute&&e.removeAttribute("class");this.className="focus"})})(t)}var d=$G("audioUrl");browser.ie?d.onpropertychange=function(){v(this.value)}:d.addEventListener("input",function(){v(this.value)},!1),dialog.onok=function(){switch($G("preview").innerHTML="",h("tabHeads","tabSrc")){case"audio":var e=$G("audioUrl").value;return(h("audioFloat","name"),e)?void editor.execCommand("insertaudio",{url:e},g?"upload":null):!1;case"upload":var t,a=[],i=editor.getOpt("audioUrlPrefix"),o=h("upload_alignment","name")||"none";for(t in S){var r=S[t];a.push({url:i+r.url,align:o})}e=f.getQueueCount();if(e)return $(".info","#queueList").html('<span style="color:red;">'+"还有2个未上传文件".replace(/[\d]/,e)+"</span>"),!1;editor.execCommand("insertaudio",a,"upload")}},dialog.oncancel=function(){$G("preview").innerHTML=""};var u,c,p,d=editor.selection.getRange().getClosedNode();d&&d.className&&(p="edui-faked-audio"==d.className,c=-1!=d.className.indexOf("edui-upload-audio"),(p||c)&&($G("audioUrl").value=u=d.getAttribute("_url"),p=domUtils.getComputedStyle(d,"float"),(e=>{for(var t,a=$G("audioFloat").children,i=0;t=a[i++];)t.getAttribute("name")==e?"focus"!=t.className&&(t.className="focus"):"focus"==t.className&&(t.className="")})("center"===domUtils.getComputedStyle(d.parentNode,"text-align")?"center":p)),c)&&(g=!0),v(u),f=new b("queueList")},b.prototype={init:function(){this.fileList=[],this.initContainer(),this.initUploader()},initContainer:function(){this.$queue=this.$wrap.find(".filelist")},initUploader:function(){var d,a=this,u=jQuery,e=a.$wrap,i=e.find(".filelist"),o=e.find(".statusBar"),r=o.find(".info"),n=e.find(".uploadBtn"),t=(e.find(".filePickerBtn"),e.find(".filePickerBlock")),s=e.find(".placeholder"),l=o.find(".progress").hide(),c=0,p=0,e=window.devicePixelRatio||1,f=113*e,g=113*e,m="",h={},v=e="transition"in(e=document.createElement("p").style)||"WebkitTransition"in e||"MozTransition"in e||"msTransition"in e||"OTransition"in e,b=editor.getActionUrl(editor.getOpt("audioActionName")),e=editor.getOpt("audioMaxSize"),w=(editor.getOpt("audioAllowFiles")||[]).join("").replace(/\./g,",").replace(/^[,]/,"");function x(a){function i(e){switch(e){case"exceed_size":text=lang.errorExceedSize;break;case"interrupt":text=lang.errorInterrupt;break;case"http":text=lang.errorHttp;break;case"not_allow_type":text=lang.errorFileType;break;default:text=lang.errorUploadRetry}l.text(text).show()}var o=u('<li id="'+a.id+'"><p class="title">'+a.name+'</p><p class="imgWrap"></p><p class="progress"><span></span></p></li>'),r=u('<div class="file-panel"><span class="cancel">'+lang.uploadDelete+'</span><span class="rotateRight">'+lang.uploadTurnRight+'</span><span class="rotateLeft">'+lang.uploadTurnLeft+"</span></div>").appendTo(o),n=o.find("p.progress span"),s=o.find("p.imgWrap"),l=u('<p class="error"></p>').hide().appendTo(o);"invalid"===a.getStatus()?i(a.statusText):(s.text(lang.uploadPreview),-1=="|png|jpg|jpeg|bmp|gif|".indexOf("|"+a.ext.toLowerCase()+"|")?s.empty().addClass("notimage").append('<i class="file-preview file-type-'+a.ext.toLowerCase()+'"></i><span class="file-title">'+a.name+"</span>"):browser.ie&&browser.version<=7?s.text(lang.uploadNoPreview):d.makeThumb(a,function(e,t){e||!t||/^data:/.test(t)&&browser.ie&&browser.version<=7?s.text(lang.uploadNoPreview):(e=u('<img src="'+t+'">'),s.empty().append(e),e.on("error",function(){s.text(lang.uploadNoPreview)}))},f,g),h[a.id]=[a.size,0],a.rotation=0,a.ext&&-1!=w.indexOf(a.ext.toLowerCase())||(i("not_allow_type"),d.removeFile(a))),a.on("statuschange",function(e,t){"progress"===t?n.hide().width(0):"queued"===t&&(o.off("mouseenter mouseleave"),r.remove()),"error"===e||"invalid"===e?(i(a.statusText),h[a.id][1]=1):"interrupt"===e?i("interrupt"):"queued"===e?h[a.id][1]=0:"progress"===e&&(l.hide(),n.css("display","block")),o.removeClass("state-"+t).addClass("state-"+e)}),o.on("mouseenter",function(){r.stop().animate({height:30})}),o.on("mouseleave",function(){r.stop().animate({height:0})}),r.on("click","span",function(){var e;switch(u(this).index()){case 0:return void d.removeFile(a);case 1:a.rotation+=90;break;case 2:a.rotation-=90}v?(e="rotate("+a.rotation+"deg)",s.css({"-webkit-transform":e,"-mos-transform":e,"-o-transform":e,transform:e})):s.css("filter","progid:DXImageTransform.Microsoft.BasicImage(rotation="+~~(a.rotation/90%4+4)%4+")")}),o.insertBefore(t)}function C(){var e,a=0,i=0,t=l.children();u.each(h,function(e,t){i+=t[0],a+=t[0]*t[1]}),e=i?a/i:0,t.eq(0).text(Math.round(100*e)+"%"),t.eq(1).css("width",Math.round(100*e)+"%"),k()}function y(e){if(e!=m){var t=d.getStats();switch(n.removeClass("state-"+m),n.addClass("state-"+e),e){case"pedding":i.addClass("element-invisible"),o.addClass("element-invisible"),s.removeClass("element-invisible"),l.hide(),r.hide(),d.refresh();break;case"ready":s.addClass("element-invisible"),i.removeClass("element-invisible"),o.removeClass("element-invisible"),l.hide(),r.show(),n.text(lang.uploadStart),d.refresh();break;case"uploading":l.show(),r.hide(),n.text(lang.uploadPause);break;case"paused":l.show(),r.hide(),n.text(lang.uploadContinue);break;case"confirm":if(l.show(),r.hide(),n.text(lang.uploadStart),(t=d.getStats()).successNum&&!t.uploadFailNum)return void y("finish");break;case"finish":l.hide(),r.show(),t.uploadFailNum?n.text(lang.uploadRetry):n.text(lang.uploadStart)}m=e,k()}a.getQueueCount()?n.removeClass("disabled"):n.addClass("disabled")}function k(){var e,t="";"ready"===m?t=lang.updateStatusReady.replace("_",c).replace("_KB",WebUploader.formatSize(p)):"confirm"===m?(e=d.getStats()).uploadFailNum&&(t=lang.updateStatusConfirm.replace("_",e.successNum).replace("_",e.successNum)):(e=d.getStats(),t=lang.updateStatusFinish.replace("_",c).replace("_KB",WebUploader.formatSize(p)).replace("_",e.successNum),e.uploadFailNum&&(t+=lang.updateStatusError.replace("_",e.uploadFailNum))),r.html(t)}WebUploader.Uploader.support()?editor.getOpt("audioActionName")?(e={pick:{id:"#filePickerReady",label:lang.uploadSelectFile},swf:"../../third-party/webuploader/Uploader.swf",server:b,fileVal:editor.getOpt("audioFieldName"),duplicate:!0,fileSingleSizeLimit:e,headers:editor.getOpt("serverHeaders")||{},compress:!1},editor.getOpt("uploadServiceEnable")&&(e.customUpload=function(t,a){editor.getOpt("uploadServiceUpload")("audio",t,{success:function(e){a.onSuccess(t,{_raw:JSON.stringify(e)})},error:function(e){a.onError(t,e)},progress:function(e){a.onProgress(t,e)}},{from:"audio"})}),(d=a.uploader=WebUploader.create(e)).addButton({id:"#filePickerBlock"}),d.addButton({id:"#filePickerBtn",label:lang.uploadAddFile}),y("pedding"),d.on("fileQueued",function(e){c++,p+=e.size,1===c&&(s.addClass("element-invisible"),o.show()),x(e)}),d.on("fileDequeued",function(e){var t;c--,p-=e.size,t=u("#"+(e=e).id),delete h[e.id],C(),t.off().find(".file-panel").off().end().remove(),C()}),d.on("filesQueued",function(e){d.isInProgress()||"pedding"!=m&&"finish"!=m&&"confirm"!=m&&"ready"!=m||y("ready"),C()}),d.on("all",function(e,t){switch(e){case"uploadFinished":y("confirm");break;case"startUpload":var a=utils.serializeParam(editor.queryCommandValue("serverparam"))||"",a=utils.formatUrl(b+(-1==b.indexOf("?")?"?":"&")+"encode=utf-8&"+a);d.option("server",a),y("uploading");break;case"stopUpload":y("paused")}}),d.on("uploadBeforeSend",function(e,t,a){-1!=b.toLowerCase().indexOf("jsp")&&(a.X_Requested_With="XMLHttpRequest")}),d.on("uploadProgress",function(e,t){u("#"+e.id).find(".progress span").css("width",100*t+"%"),h[e.id][1]=t,C()}),d.on("uploadSuccess",function(t,e){t=u("#"+t.id);try{var a=e._raw||e,i=utils.str2json(a);"SUCCESS"==(i=editor.getOpt("serverResponsePrepare")(i)).state?(S.push({url:i.url,type:i.type,original:i.original}),t.append('<span class="success"></span>')):t.find(".error").text(i.state).show()}catch(e){t.find(".error").text(lang.errorServerUpload).show()}}),d.on("uploadError",function(e,t){}),d.on("error",function(e,t,a){"F_EXCEED_SIZE"===e?editor.getOpt("tipError")(lang.errorExceedSize+" "+(t/1024/1024).toFixed(1)+"MB"):console.log("error",e,t,a)}),d.on("uploadComplete",function(e,t){}),n.on("click",function(){if(u(this).hasClass("disabled"))return!1;"ready"===m||"paused"===m?d.upload():"uploading"===m&&d.stop()}),n.addClass("state-"+m),C()):u("#filePickerReady").after(u("<div>").html(lang.errorLoadConfig)).hide():u("#filePickerReady").after(u("<div>").html(lang.errorNotSupport)).hide()},getQueueCount:function(){for(var e,t=0,a=this.uploader.getFiles(),i=0;e=a[i++];)"queued"!=(e=e.getStatus())&&"uploading"!=e&&"progress"!=e||t++;return t},refresh:function(){this.uploader.refresh()}}})();