{"version":3,"sources":["js/AsyncFileDownloader.js"],"names":["AsyncFileDownloader","asp","i","nLen","TriggerControlsID","length","$","click","DownloadRequestHandler","WaitForServerResponse","sender","nextFunction","nTry","undefined","PathValueContainer","val","nMaxTries","setTimeout","DownloadFile","this","sFileName","sFilePath","FolderValueContainer","bZipFile","bZipFileContainer","fileExt","FileExtContainer","iframeID","Date","getTime","toString","isiPad","navigator","userAgent","match","test","window","MSStream","confirm","url","anchor","document","createElement","setAttribute","ev","createEvent","initMouseEvent","self","dispatchEvent","remove","iframe","src","id","style","display","body","appendChild"],"mappings":"AACA,SAASA,oBAAoBC,KAMzB,IAAK,IAAIC,EAAI,EAAGC,KAAOF,IAAIG,kBAAkBC,OAAQH,EAAIC,OAAQD,EAC7DI,EAAE,IAAML,IAAIG,kBAAkBF,IAAIK,MAAMC,wBAG5C,SAASA,0BAkBT,SAASC,sBAAsBC,OAAQC,aAAcC,MAEjD,SAaiDC,IAA1CP,EAAE,IAAML,IAAIa,oBAAoBC,OAAiE,KAA1CT,EAAE,IAAML,IAAIa,oBAAoBC,QAbtEH,KAAOI,UAK3B,QAJEJ,UACFK,WAAW,WACPR,sBAAsBC,OAAQQ,aAAcN,OAC7C,UAGcC,IAAjBF,cAA8BC,KAAOI,UAAY,GACjDL,aAAaD,QAhBjBD,CAAsBU,KAAMD,aAAc,GAK9C,IAAIF,UAAY,KAmBhB,SAASE,aAAaR,QAClB,IAAIU,UAAYd,EAAE,IAAML,IAAIa,oBAAoBC,MAC5CM,UAAYf,EAAE,IAAML,IAAIqB,sBAAsBP,MAC9CQ,SAAWjB,EAAE,IAAML,IAAIuB,mBAAmBT,MAC1CU,QAAUnB,EAAE,IAAML,IAAIyB,kBAAkBX,MACxCY,SAAW,oBAAqB,IAAIC,MAAOC,UAAUC,WAErDC,OAA+C,MAAtCC,UAAUC,UAAUC,MAAM,SAEvC,GADU,mBAAmBC,KAAKH,UAAUC,aAAeG,OAAOC,UACvDN,OAAQ,CACf,IAAKO,QAAQ,4FAA6F,OAI1G,IAAIC,IAAM,gCAAkCnB,UAAY,aAAeK,QAAU,aAAeF,SAAW,cAAgBF,UACvHmB,OAASC,SAASC,cAAc,KAEpCF,OAAOG,aAAa,OAAQJ,KAY5B,IAAIK,GAAKH,SAASI,YAAY,eAC9BD,GAAGE,eAAe,SAAS,GAAM,EAAOC,KAAM,EAAG,EAAG,EAAG,EAAG,GAAG,GAAO,GAAO,GAAO,EAAO,EAAG,MAG5FP,OAAOQ,cAAcJ,QAClB,CACHtC,EAAE,kCAAkC2C,SAEpC,IAAIC,OAAST,SAASC,cAAc,UACpCQ,OAAOC,IAAM,gCAAkC/B,UAAY,aAAeK,QAAU,aAAeF,SAAW,cAAgBF,UAC9H6B,OAAOE,GAAKzB,SACZuB,OAAOG,MAAMC,QAAU,OACvBb,SAASc,KAAKC,YAAYN,QAQ9B5C,EAAE,IAAML,IAAIa,oBAAoBC,IAAI,IACpCT,EAAE,IAAML,IAAIqB,sBAAsBP,IAAI,IACtCT,EAAE,IAAML,IAAIuB,mBAAmBT,IAAI,IACnCT,EAAE,IAAML,IAAIyB,kBAAkBX,IAAI","file":"AsyncFileDownloader.js","sourcesContent":["\r\nfunction AsyncFileDownloader(asp) {\r\n //var prm = Sys.WebForms.PageRequestManager.getInstance();\r\n\r\n //prm.remove_endRequest(DownloadEndRequestHandler);\r\n //prm.add_endRequest(DownloadEndRequestHandler);\r\n \r\n for (var i = 0, nLen = asp.TriggerControlsID.length; i < nLen; ++i) {\r\n $('#' + asp.TriggerControlsID[i]).click(DownloadRequestHandler);\r\n }\r\n\r\n function DownloadRequestHandler() {\r\n //console.log('postback :' + sender._postBackSettings.sourceElement.id);\r\n //if (sender._postBackSettings.sourceElement.id == asp.TriggerControlID) {\r\n\r\n //if (!sender._postBackSettings.sourceElement){\r\n // return;\r\n //}\r\n\r\n //if (jQuery.inArray(sender._postBackSettings.sourceElement.id, asp.TriggerControlsID) >= 0) {\r\n //console.log('postback : IsMe');\r\n\r\n //console.log('click');\r\n WaitForServerResponse(this, DownloadFile, 0);\r\n\r\n //}\r\n }\r\n\r\n var nMaxTries = 1800;\r\n function WaitForServerResponse(sender, nextFunction, nTry) {\r\n //console.log('new call');\r\n if (ServerNotReady() && nTry < nMaxTries) {\r\n ++nTry;\r\n setTimeout(function () {\r\n WaitForServerResponse(sender, DownloadFile, nTry);\r\n }, 500);\r\n return;\r\n }\r\n if (nextFunction !== undefined && nTry < nMaxTries + 1) {\r\n nextFunction(sender);\r\n }\r\n }\r\n\r\n function ServerNotReady() {\r\n return $('#' + asp.PathValueContainer).val() === undefined || $('#' + asp.PathValueContainer).val() === '';\r\n }\r\n\r\n function DownloadFile(sender) {\r\n var sFileName = $('#' + asp.PathValueContainer).val();\r\n var sFilePath = $('#' + asp.FolderValueContainer).val();\r\n var bZipFile = $('#' + asp.bZipFileContainer).val();\r\n var fileExt = $('#' + asp.FileExtContainer).val();\r\n var iframeID = 'AsyncDownloader_' + new Date().getTime().toString();\r\n\r\n var isiPad = navigator.userAgent.match(/iPad/i) != null;\r\n var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\r\n if (iOS || isiPad) {\r\n if (!confirm('Vous allez quittez cette page afin de télécharger le rapport, souhaitez-vous continuer ?')) return;\r\n\r\n //$('a[id^=\"AsyncDownloader_\"]').remove();\r\n\r\n var url = \"/DownloadFile.aspx?sFileName=\" + sFileName + \"&sFileExt=\" + fileExt + \"&bZipFile=\" + bZipFile + \"&sFilePath=\" + sFilePath;\r\n var anchor = document.createElement('a');\r\n //anchor.id = iframeID;\r\n anchor.setAttribute('href', url);\r\n\r\n /* The following cannot be use on iOS apparently */\r\n //anchor.setAttribute('target', '_blank');\r\n\r\n /*\r\n * Click the anchor\r\n */\r\n\r\n // Chrome can do anchor.click(), but let's do something that Firefox can handle too\r\n\r\n // Create event\r\n var ev = document.createEvent(\"MouseEvents\");\r\n ev.initMouseEvent(\"click\", true, false, self, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\r\n\r\n // Fire event\r\n anchor.dispatchEvent(ev);\r\n } else {\r\n $('iframe[id^=\"AsyncDownloader_\"]').remove();\r\n\r\n var iframe = document.createElement(\"iframe\");\r\n iframe.src = \"/DownloadFile.aspx?sFileName=\" + sFileName + \"&sFileExt=\" + fileExt + \"&bZipFile=\" + bZipFile + \"&sFilePath=\" + sFilePath;\r\n iframe.id = iframeID;\r\n iframe.style.display = \"none\";\r\n document.body.appendChild(iframe);\r\n }\r\n\r\n \r\n\r\n\r\n\r\n //clear hidden fields\r\n $('#' + asp.PathValueContainer).val(\"\");\r\n $('#' + asp.FolderValueContainer).val(\"\");\r\n $('#' + asp.bZipFileContainer).val(\"\");\r\n $('#' + asp.FileExtContainer).val(\"\");\r\n }\r\n}"]}