Files
SIG/Scripts/AjaxControlToolkit/Release/AsyncFileUpload.js
2024-11-05 10:47:20 -07:00

1 line
9.9 KiB
JavaScript

Type.registerNamespace("Sys.Extended.UI"),Sys.Extended.UI.AsyncFileUpload=function(e){Sys.Extended.UI.AsyncFileUpload.initializeBase(this,[e]),this._hiddenField=null,this._inputFile=null,this._innerTB=null,this._postBackUrl="",this._formName="",this._iframe=null,this._waitTimer=null,this._completeBackColor="",this._uploadingBackColor="",this._errorBackColor="",this._throbber=null,this._onchange$delegate=null,this._onload$delegate=null,this._app_onload$delegate=Function.createDelegate(this,this._app_onload),this._onmouseup$delegate=null},Sys.Extended.UI.AsyncFileUpload.prototype={get_throbber:function(){return this._throbber},set_throbber:function(e){this._throbber=e},get_completeBackColor:function(){return this._completeBackColor},set_completeBackColor:function(e){this._completeBackColor=e},get_errorBackColor:function(){return this._errorBackColor},set_errorBackColor:function(e){this._errorBackColor=e},get_uploadingBackColor:function(){return this._uploadingBackColor},set_uploadingBackColor:function(e){this._uploadingBackColor=e},get_inputFile:function(){return this._inputFile},set_inputFile:function(e){this._inputFile=e},get_hiddenField:function(){return this._hiddenField},set_hiddenField:function(e){this._hiddenField=e},get_innerTB:function(){return this._innerTB},set_innerTB:function(e){this._innerTB=e},get_postBackUrl:function(){return this._postBackUrl},set_postBackUrl:function(e){this._postBackUrl=e},get_formName:function(){return this._formName},set_formName:function(e){this._formName=e},add_uploadStarted:function(e){this.get_events().addHandler("uploadStarted",e)},remove_uploadStarted:function(e){this.get_events().removeHandler("uploadStarted",e)},raise_uploadStarted:function(e){var t=this.get_events().getHandler("uploadStarted");return!t||t(this,e)},raiseUploadStarted:function(e){return Sys.Extended.Deprecated("raiseUploadStarted(e)","raise_uploadStarted(e)"),this.raise_uploadStarted(e)},add_uploadComplete:function(e){this.get_events().addHandler("uploadComplete",e)},remove_uploadComplete:function(e){this.get_events().removeHandler("uploadComplete",e)},raise_uploadComplete:function(e){var t=this.get_events().getHandler("uploadComplete");t&&t(this,e)},raiseUploadComplete:function(e){return Sys.Extended.Deprecated("raiseUploadComplete(e)","raise_uploadComplete(e)"),this.raise_uploadComplete(e)},add_uploadError:function(e){this.get_events().addHandler("uploadError",e)},remove_uploadError:function(e){this.get_events().removeHandler("uploadError",e)},raise_uploadError:function(e){var t=this.get_events().getHandler("uploadError");return!!t&&(t(this,e),!0)},raiseUploadError:function(e){return Sys.Extended.Deprecated("raiseUploadError(e)","raise_uploadError(e)"),this.raise_uploadError(e)},setThrobber:function(e){null!=this.get_throbber()&&(this.get_throbber().style.display=e?"":"none")},_onStart:function(e){var t=this.raise_uploadStarted(new Sys.Extended.UI.AsyncFileUploadEventArgs(e,null,null,null));return"undefined"==typeof t&&(t=!0),t},initialize:function(){Sys.Extended.UI.AsyncFileUpload.callBaseMethod(this,"initialize"),Sys.Application.add_load(this._app_onload$delegate),this._iframeName=this.get_element().id+"_iframe",this.setThrobber(!1)},dispose:function(){Sys.Application.remove_load(this._app_onload$delegate),null!=this._onchange$delegate&&($common.removeHandlers(this._inputFile,{change:this._onchange$delegate}),this._onchange$delegate=null),null!=this._onmouseup$delegate&&($common.removeHandlers(this._inputFile,{mouseup:this._onmouseup$delegate}),this._onmouseup$delegate=null),this._removeIframe(),Sys.Extended.UI.AsyncFileUpload.callBaseMethod(this,"dispose")},_onmouseup:function(){var e=this._inputFile;return setTimeout(function(){e.blur()},0),!0},_app_onload:function(e,t){if(this.setThrobber(!1),null!=this._inputFile&&(null==this._onchange$delegate&&(this._onchange$delegate=Function.createDelegate(this,this._onchange),$addHandlers(this._inputFile,{change:this._onchange$delegate})),null!=this._innerTB)){this._inputFile.blur();var i=this._inputFile;setTimeout(function(){i.blur()},0),this._innerTB.style.width=this._inputFile.offsetWidth-107+"px",this._inputFile.parentNode.style.width=this._inputFile.offsetWidth+"px",Sys.Browser.agent==Sys.Browser.InternetExplorer&&(this._onmouseup$delegate=Function.createDelegate(this,this._onmouseup),$addHandlers(this._inputFile,{mouseup:this._onmouseup$delegate}))}},_removeIframe:function(){this._removeTimer(),null!=this._iframe&&(null!=this._onload$delegate&&($common.removeHandlers(this._iframe,{load:this._onload$delegate}),this._onload$delegate=null),document.body.removeChild(this._iframe),this._iframe=null)},_removeTimer:function(){null!=this._waitTimer&&(window.clearTimeout(this._waitTimer),this._waitTimer=null)},_onError:function(e){var t=Sys.Extended.UI.Resources.AsyncFileUpload_UnhandledException;this.setThrobber(!1),""!=this.get_errorBackColor()&&(null!=this._innerTB?this._innerTB.style.backgroundColor=this.get_errorBackColor():this._inputFile.style.backgroundColor=this.get_errorBackColor()),this.raise_uploadError(new Sys.Extended.UI.AsyncFileUploadEventArgs(this._inputFile.value,null,null,e))||alert(t+": "+e)},_onchange:function(e){var t=this._inputFile.value;if(""!=t){null!=this._innerTB&&(this._innerTB.value=t),null!=this._hiddenField&&(this._hiddenField.value=t);try{if(null==this._iframe){this._onload$delegate=Function.createDelegate(this,this._onload);var i=document.createElement("IFRAME");i.width="0",i.height="0",i.style.display="none",i.src="about:blank",i.id=this._iframeName,i.name=this._iframeName,$addHandlers(i,{load:this._onload$delegate}),this._iframe=i,document.body.appendChild(this._iframe),i.contentWindow.name=this._iframeName}else{this._removeIframe();var n=Sys.Extended.UI.Resources.AsyncFileUpload_InternalErrorMessage;this._onError(n)}}catch(e){this._onError(e.message)}}},_stopLoad:function(e){var t=document.getElementById(this._formName);this._removeTimer(),this.setThrobber(!1),this._restoreFormTarget(t),t.action=this._postBackUrl;var i,n="",o=e.split("------");if(o.length>0){if("error"==o[0])return void this._onError(o[1]);i=parseInt(o[0])}o.length>1&&(n=o[1]),""!=this.get_completeBackColor()&&(null!=this._innerTB?this._innerTB.style.backgroundColor=this.get_completeBackColor():this._inputFile.style.backgroundColor=this.get_completeBackColor()),this.raise_uploadComplete(new Sys.Extended.UI.AsyncFileUploadEventArgs(this._inputFile.value,i,n,null))},_onload:function(e){function t(e,t){return _=t,""}function i(){try{m.document||setTimeout(i,100)}catch(e){return}var e=m.document;e.open(),e.write("<body>"+s.body.innerHTML+"</body>"),e.close()}var n=!0,o=this,r=document.getElementById(this._formName);try{var s=this._iframe.contentWindow.document;if(null==s||null==s.location){var e={message:Sys.Extended.UI.Resources.AsyncFileUpload_UploadingProblem};throw e}if("about:blank"==s.location.href){this._removeTimer(),""!=this.get_uploadingBackColor()&&(null!=this._innerTB?this._innerTB.style.backgroundColor=this.get_uploadingBackColor():this._inputFile.style.backgroundColor=this.get_uploadingBackColor());var l=this._onStart(this._inputFile.value);if(l){var a=this._postBackUrl;return a+=a.indexOf("?")===-1?"?":"&",r.action=a+"AsyncFileUploadID="+this.get_element().id+"&rnd="+Math.random().toString().replace(/\./g,""),this._changeFormTarget(r),n=!1,this.setThrobber(!0),setTimeout(function(){r.submit(),o._waitTimer=setTimeout(function(){o._wait()},100)},0),!0}}else{if(""==s.body.innerHTML)return!0;var d,u=s.getElementById(this.get_element().id),h="";if(null==u){var _=Sys.Extended.UI.Resources.AsyncFileUpload_UnknownServerError;s.body.innerHTML.replace(/Exception\]:([^\n\r]+)[\n\r]/,t);var c=Sys.Extended.UI.Resources.AsyncFileUpload_ServerResponseError+": '"+_+"'",p=confirm(c+"\n\n"+Sys.Extended.UI.Resources.AsyncFileUpload_ConfirmToSeeErrorPage);if(p){var m=window.open("","NotFoundInAnswer","toolbar=0,status=1,scrollbars=1,resizable=1,width=600,height=400");setTimeout(i,0)}var e={message:c};throw e}var g=u.innerHTML.split("------");if(g.length>0){if("error"==g[0]){var e={message:g[1]};throw e}d=parseInt(g[0])}g.length>1&&(h=g[1]),this._removeTimer(),this._restoreFormTarget(r),r.action=this._postBackUrl,""!=this.get_completeBackColor()&&(null!=this._innerTB?this._innerTB.style.backgroundColor=this.get_completeBackColor():this._inputFile.style.backgroundColor=this.get_completeBackColor()),this.setThrobber(!1),this.raise_uploadComplete(new Sys.Extended.UI.AsyncFileUploadEventArgs(this._inputFile.value,d,h,null))}}catch(e){this._removeTimer(),this._restoreFormTarget(r),r.action=this._postBackUrl,this._onError(e.message)}finally{n&&setTimeout(function(){o._removeIframe()},100)}},_wait:function(){if(null!=this._waitTimer){var e=this;try{var t=this._iframe.contentWindow.document,i=t.location;i.href;this._waitTimer=setTimeout(function(){e._wait()},100)}catch(t){setTimeout(function(){e._removeIframe()},100),setTimeout(function(){e._onError(Sys.Extended.UI.Resources.AsyncFileUpload_UploadingProblem)},0),this._waitTimer=null}}},_changeFormTarget:function(e){this._mainFormOldTarget=e.target,e.target=this._iframeName},_restoreFormTarget:function(e){e.target=this._mainFormOldTarget,this._mainFormOldTarget=void 0}},Sys.Extended.UI.AsyncFileUpload.registerClass("Sys.Extended.UI.AsyncFileUpload",Sys.Extended.UI.ControlBase),Sys.Extended.UI.AsyncFileUploadEventArgs=function(e,t,i,n){if(4!=arguments.length)throw Error.parameterCount();Sys.Extended.UI.AsyncFileUploadEventArgs.initializeBase(this),this._fileName=e,this._length=t,this._contentType=i,this._errorMessage=n},Sys.Extended.UI.AsyncFileUploadEventArgs.prototype={get_fileName:function(){var e=this._fileName.lastIndexOf("/"),t=this._fileName.lastIndexOf("\\"),i=this._fileName.substr((e>t?e:t)+1);return i},get_path:function(){return this._fileName},get_length:function(){return this._length},get_contentType:function(){return this._contentType},get_errorMessage:function(){return this._errorMessage}},Sys.Extended.UI.AsyncFileUploadEventArgs.registerClass("Sys.Extended.UI.AsyncFileUploadEventArgs",Sys.EventArgs);