Files
OMS/app/desktop/statics/js_mini/coms/uploader.js
2025-12-28 23:13:25 +08:00

26 lines
11 KiB
JavaScript

Swiff.Uploader=new Class({Extends:Swiff,Implements:Events,options:{path:"Swiff.Uploader.swf",target:null,zIndex:9999,height:30,width:100,callBacks:null,params:{wMode:"opaque",menu:"false",allowScriptAccess:"always"},typeFilter:null,multiple:true,queued:true,verbose:false,url:null,method:null,data:null,mergeData:true,fieldName:null,fileSizeMin:1,fileSizeMax:null,allowDuplicates:false,timeLimit:Browser.Platform.linux?0:30,buttonImage:null,policyFile:null,fileListMax:0,fileListSizeMax:0,instantStart:false,
appendCookieData:false,fileClass:null},initialize:function(a){this.addEvent("load",this.initializeSwiff,true).addEvent("select",this.processFiles,true).addEvent("complete",this.update,true).addEvent("fileRemove",function(e){this.fileList.erase(e)}.bind(this),true);this.setOptions(a);this.options.callBacks&&Hash.each(this.options.callBacks,function(e,d){this.addEvent(d,e)},this);this.options.callBacks={fireCallback:this.fireCallback.bind(this)};a=this.options.path;a.contains("?")||(a+="?noCache="+
$time());this.options.container=this.box=(new Element("span",{"class":"swiff-uploader-box"})).inject($(this.options.container)||document.body);if(this.target=$(this.options.target)){var b=window.getScroll();this.box.setStyles({position:"absolute",visibility:"visible",zIndex:this.options.zIndex,overflow:"hidden",height:1,width:1,top:b.y,left:b.x});this.parent(a,{params:{wMode:"transparent"},height:"100%",width:"100%"});this.target.addEvent("mouseenter",this.reposition.bind(this,[]));this.addEvents({buttonEnter:this.targetRelay.bind(this,
["mouseenter"]),buttonLeave:this.targetRelay.bind(this,["mouseleave"]),buttonDown:this.targetRelay.bind(this,["mousedown"]),buttonDisable:this.targetRelay.bind(this,["disable"])});this.reposition();window.addEvent("resize",this.reposition.bind(this,[]))}else this.parent(a);this.inject(this.box);this.fileList=[];this.size=this.uploading=this.bytesLoaded=this.percentLoaded=0;Browser.Plugins.Flash.version<9?this.fireEvent("fail",["flash"]):this.verifyLoad.delay(1E3,this)},verifyLoad:function(){if(!this.loaded)if(this.object.parentNode)if(this.object.style.display==
"none")this.fireEvent("fail",["hidden"]);else this.object.offsetWidth||this.fireEvent("fail",["empty"]);else this.fireEvent("fail",["disabled"])},fireCallback:function(a,b){if(a.substr(0,4)=="file"){b.length>1&&this.update(b[1]);var e=b[0],d=this.findFile(e.id);this.fireEvent(a,d||e,5);if(d){var h=a.replace(/^file([A-Z])/,function(c,f){return f.toLowerCase()});d.update(e).fireEvent(h,[e],10)}}else this.fireEvent(a,b,5)},update:function(a){$extend(this,a);this.fireEvent("queue",[this],10);return this},
findFile:function(a){for(var b=0;b<this.fileList.length;b++)if(this.fileList[b].id==a)return this.fileList[b];return null},initializeSwiff:function(){this.remote("initialize",{width:this.options.width,height:this.options.height,typeFilter:this.options.typeFilter,multiple:this.options.multiple,queued:this.options.queued,url:this.options.url,method:this.options.method,data:this.options.data,mergeData:this.options.mergeData,fieldName:this.options.fieldName,verbose:this.options.verbose,fileSizeMin:this.options.fileSizeMin,
fileSizeMax:this.options.fileSizeMax,allowDuplicates:this.options.allowDuplicates,timeLimit:this.options.timeLimit,buttonImage:this.options.buttonImage,policyFile:this.options.policyFile});this.loaded=true;this.appendCookieData()},targetRelay:function(a){this.target&&this.target.fireEvent(a)},reposition:function(a){a=a||this.target&&this.target.offsetHeight?this.target.getCoordinates(this.box.getOffsetParent()):{top:window.getScrollTop(),left:0,width:40,height:40};try{this.box.setStyles(a)}catch(b){}this.fireEvent("reposition",
[a,this.box,this.target])},setOptions:function(a){if(a){if(a.url)a.url=Swiff.Uploader.qualifyPath(a.url);if(a.buttonImage)a.buttonImage=Swiff.Uploader.qualifyPath(a.buttonImage);this.parent(a);this.loaded&&this.remote("setOptions",a)}return this},setEnabled:function(a){this.remote("setEnabled",a)},start:function(){this.fireEvent("beforeStart");this.remote("start")},_stop:function(){this.fireEvent("beforeStop");this.remote("stop")},remove:function(){this.fireEvent("beforeRemove");this.remote("remove")},
fileStart:function(a){this.remote("fileStart",a.id)},fileStop:function(a){this.remote("fileStop",a.id)},fileRemove:function(a){this.remote("fileRemove",a.id)},fileRequeue:function(a){this.remote("fileRequeue",a.id)},appendCookieData:function(){var a=this.options.appendCookieData;if(a){var b={};document.cookie.split(/;\s*/).each(function(d){d=d.split("=");if(d.length==2)b[decodeURIComponent(d[0])]=decodeURIComponent(d[1])});var e=this.options.data||{};if($type(a)=="string")e[a]=b;else $extend(e,b);
this.setOptions({data:e})}},processFiles:function(a,b,e){var d=this.options.fileClass||Swiff.Uploader.File,h=[],c=[];if(a){a.each(function(f){var j=new d(this,f);if(j.validate()){this.size+=f.size;this.fileList.push(j);c.push(j);j.render()}else{j.remove.delay(10,j);h.push(j)}},this);this.fireEvent("selectSuccess",[c],10)}if(b||h.length){h.extend(b?b.map(function(f){return new d(this,f)},this):[]).each(function(f){f.invalidate().render()});this.fireEvent("selectFail",[h],10)}this.update(e);this.options.instantStart&&
c.length&&this.start()}});
$extend(Swiff.Uploader,{STATUS_QUEUED:0,STATUS_RUNNING:1,STATUS_ERROR:2,STATUS_COMPLETE:3,STATUS_STOPPED:4,log:function(){},unitLabels:{b:[{min:1,unit:"B"},{min:1024,unit:"kB"},{min:1048576,unit:"MB"},{min:1073741824,unit:"GB"}],s:[{min:1,unit:"s"},{min:60,unit:"m"},{min:3600,unit:"h"},{min:86400,unit:"d"}]},formatUnit:function(a,b,e){var d=Swiff.Uploader.unitLabels[b=="bps"?"b":b],h=b=="bps"?"/s":"",c;c=d.length;var f;if(a<1)return"0 "+d[0].unit+h;if(b=="s"){h=[];for(c-=1;c>=0;c--)if(f=Math.floor(a/
d[c].min)){h.push(f+" "+d[c].unit);a-=f*d[c].min;if(!a)break}return e===false?h:h.join(e||", ")}for(c-=1;c>=0;c--){f=d[c].min;if(a>=f)break}return(a/f).toFixed(1)+" "+d[c].unit+h}});Swiff.Uploader.qualifyPath=function(){var a;return function(b){(a||(a=new Element("a"))).href=b;return a.href}}();
Swiff.Uploader.File=new Class({Implements:Events,initialize:function(a,b){this.base=a;this.update(b)},update:function(a){return $extend(this,a)},validate:function(){var a=this.base.options;if(a.fileListMax&&this.base.fileList.length>=a.fileListMax){this.validationError="fileListMax";return false}if(a.fileListSizeMax&&this.base.size+this.size>a.fileListSizeMax){this.validationError="fileListSizeMax";return false}return true},invalidate:function(){this.invalid=true;this.base.fireEvent("fileInvalid",
this,10);return this.fireEvent("invalid",this,10)},render:function(){return this},setOptions:function(a){if(a){if(a.url)a.url=Swiff.Uploader.qualifyPath(a.url);this.base.remote("fileSetOptions",this.id,a);this.options=$merge(this.options,a)}return this},start:function(){this.base.fileStart(this);return this},_stop:function(){this.base.fileStop(this);return this},remove:function(){this.base.fileRemove(this);return this},requeue:function(){this.base.fileRequeue(this)}});
function StdUpload(a,b){this.start=function(){for(var e=$E(".std-upload-txt input").get("value").toLowerCase(),d=/.*/,h="",c=a.substr(10).split("&"),f=$E(".std-upload-txt .std-loading-icon").fade("in"),j=0;j<c.length;j++)c[j]=c[j].split("=");if(/image/.test(c[0][1])&&/admin_manage/.test(c[1][1])&&/image_swf_remote/.test(c[2][1])){d=/\.jpg$|\.jpeg$|\.gif$|\.png$/;h=LANG_StduplodFilterError.FE_IMG}if(/site/.test(c[0][1])&&/admin_theme_manage/.test(c[1][1])&&/upload/.test(c[2][1])){d=/\.tgz$|\.tar.gz$|\.theme$/;
h=LANG_StduplodFilterError.FE_THEME}if(d.test(e)){$E(".std-upload-txt form").set("action",a).submit();$E(".std-upload-txt input").set("value","");$("uploadframe").addEvent("load",function(){if(/>Fatal error</.test($(this).contentWindow.document.body.innerHTML)){f.fade("out");new MessageBox(LANG_StduplodFilterError.UE_FILE_ERROR[0]+e+LANG_StduplodFilterError.UE_FILE_ERROR[1],{type:"error",autohide:true})}else{if(b=="theme_manage"){var i=$("swf-uploader-result-container").getParent(".division"),g=1;
$ES("#swf-uploader-result-container .span-auto").each(function(k){cid=parseInt(k.get("id").substr(10));g=g<=cid?cid+1:g});(new Element("div",{"class":"span-auto",id:"std-uping-"+g,styles:{width:45,height:45,border:"1px #ccc solid",padding:1,"line-height":45,"text-align":"center",marginBottom:10}})).inject("swf-uploader-result-container");$("std-uping-"+g).setHTML($(this).contentWindow.document.body.innerHTML);i.getElement("h5 em").set("text",i.getElement("h5 em").get("text").toInt()+1);i.isDisplay()||
i.show()}if(b=="add_img"){g=1;$ES("#all-pics .gpic-box").each(function(k){cid=k.get("id")?parseInt(k.get("id").substr(7)):g;g=g<=cid?cid+1:g});(new Element("div",{"class":"gpic-box",id:"std_up_"+g})).inject($("all-pics"));$("std_up_"+g).setHTML($(this).contentWindow.document.body.innerHTML);if(!$E("#pic-area .current")&&$E("#pic-area .gpic"))$E("#pic-area .gpic").onclick()}if(b=="img_manage"){i=$("swf-uploader-result-container").getParent(".division").hide();var p=this.substr=$H({cur:0,count:1,width:0}),
l=$("swf-uploader-container").getParent(".dialog"),m=this.tpl='<div class="loadpart"><div class="msg">{cur}'+LANG_StduplodFilterError.UP_PROGRESS[0]+"("+LANG_StduplodFilterError.UP_PROGRESS[1]+"<{/t}>{count}<{t}>"+LANG_StduplodFilterError.UP_PROGRESS[2]+')</div><div class="lpb"><div class="lpp" style="height:5px;overflow:hidden;width:{width}%">&nbsp;</div></div></div>',n=this.width=265;g=1;$ES("#swf-uploader-result-container .span-auto").each(function(k){cid=parseInt(k.get("id").substr(10));g=g<=
cid?cid+1:g});m=m.substitute(p);this.loader=(new Element("div",{"class":"tableform",html:m})).setStyles({zIndex:"65552",background:"#fff",border:"1px solid #ccc",width:n}).inject(document.body).amongTo(l);(new Element("div",{"class":"span-auto",id:"std-uping-"+g,styles:{width:55,height:55,padding:1,"padding-top":2,"line-height":55,"text-align":"center",marginBottom:10}})).inject("swf-uploader-result-container");var o=$("std-uping-"+g).setHTML($(this).contentWindow.document.body.innerHTML).setStyle("position",
"relative"),r=o.getElement("img").setStyle("border","1px #ccc solid"),q=(new Element("span",{styles:{width:"14px",height:"14px",cursor:"pointer",background:"url("+DESKTOPRESFULLURL+"/btn_gimg.gif) no-repeat 0px -94px #fff",display:"none",position:"absolute",zIndex:"65874",top:"-6px",right:"-4px"},events:{click:function(){var k=r.get("image_id");window.confirm(LANG_StduplodFilterError.C_DELETE)&&(new Request({url:"index.php?app=image&ctl=admin_manage&act=image_del&image_id="+k,onComplete:function(){i.getElements("img").length<
2&&i.hide();$E("#image-currentcount em").set("text",$E("#image-currentcount em").get("text").toInt()-1);i.getElement("h5 em").set("text",i.getElement("h5 em").get("text").toInt()-1);o.remove()}})).send()}}})).inject(o);o.addEvents({mouseover:function(){q.show()},mouseout:function(){q.hide()}});l=this.substr.get("cur")+1;m=this.tpl;n=this.substr.get("count");p=this.substr.set("cur",l).set("width",l/n*100);this.loader.set("html",m.substitute(p));l==n&&this.loader.remove();$E("#image-currentcount em").set("text",
$E("#image-currentcount em").get("text").toInt()+1);i.getElement("h5 em").set("text",i.getElement("h5 em").get("text").toInt()+1);i.isDisplay()||i.show()}f.fade("out");$(this).removeEvent("load",arguments.callee)}})}else{f.fade("out");alert(h)}}};