UNPKG

cronapp-framework-mobile-js

Version:
1 lines 7.67 kB
app,angular.module("report.services",[]).service("ReportService",["$http","$compile","$modal","$translate","$window","$rootScope","$ionicModal","$ionicLoading",function(t,e,a,r,o,n,i,s){var c=$("body"),l=angular.element(c.get(0)).scope(),p=["node_modules/cronapp-lib-js/dist/js/stimulsoft/stimulsoft-all.js","node_modules/cronapp-lib-js/dist/js/stimulsoft/stimulsoft-helper.js"],u=[];this.getReport=function(e){var a={url:window.hostApp+"api/rest/report",method:"POST",data:angular.toJson({reportName:e})};return t(a)},this.getPDFAsFile=function(e){var a={url:window.hostApp+"api/rest/report/pdfasfile",method:"POST",data:angular.toJson(e)};return t(a)},this.getContentAsString=function(e){var a={url:window.hostApp+"api/rest/report/contentasstring",method:"POST",data:angular.toJson(e)};return t(a)},this.getDataSourcesParams=function(e){var a={url:window.hostApp+"api/rest/report/getdatasourcesparams",method:"POST",data:angular.toJson(e)};return t(a)},this.openURLContent=function(t){!function(t){window.open(t,"_system")}(t)},this.initializeStimulsoft=function(t){if(!Stimulsoft.Base.StiLicense.Key){stimulsoftHelper.setLanguage(t);var e=stimulsoftHelper.getLocalization();Stimulsoft.Base.Localization.StiLocalization.loadLocalization(e.xml),Stimulsoft.Base.Localization.StiLocalization.cultureName=e.cultureName,Stimulsoft.Base.StiLicense.Key=stimulsoftHelper.getKey()}},this.openStimulsoftReport=function(t,e,a,o,n){var i=new Stimulsoft.Report.StiReport;i.load(t),a||(a=stimulsoftHelper.getDatasourcesInBand(i)),e&&e.forEach((function(t){a.datasources.forEach((function(e){for(var a=0;a<e.fieldParams.length;a++)if(e.fieldParams[a].param==t.originalName){e.fieldParams[a].value=t.value;break}}))})),stimulsoftHelper.setParamsInFilter(i.dictionary.dataSources,a.datasources);var s=new Stimulsoft.Report.Export.StiPdfExportSettings,c=new Stimulsoft.Report.Export.StiPdfExportService,p=new Stimulsoft.System.IO.MemoryStream;i.renderAsync((function(){c.exportToAsync((function(){var e=p.toArray(),a=new Blob([new Uint8Array(e)],{type:"application/pdf"});window.resolveLocalFileSystemURL?function(t,e){try{window.resolveLocalFileSystemURL(cordova.file.externalApplicationStorageDirectory,(function(a){n&&n(),a.getFile(t,{create:!0},(function(a){a.createWriter((function(a){a.onwriteend=function(e){cordova.plugins.fileOpener2.open(cordova.file.externalApplicationStorageDirectory+t,"application/pdf",{error:function(t){l.Notification.error(r.instant("General.ErrorNotSpecified"),t.message),console.log("Error status: "+t.status+" - Error message: "+t.message)}})},a.onerror=function(t){alert(t)};var o=new Blob([e],{type:"application/pdf"});a.write(o)}),(function(t){alert(t)}))}),(function(t){alert(t)}))}),(function(t){n&&n(),alert(t)}))}catch(t){n&&n(),alert(t)}}(t.ReportAlias+".pdf",a):(n&&n(),window.open(URL.createObjectURL(a)))}),i,p,s)}),!1)},this.showParameters=function(t){var e=t.parameters,a=[],r=0,o=function(){if(r<e.length){var n=e[r++];$.get("node_modules/cronapp-framework-mobile-js/components/reports/"+n.type+".parameter.html").done((function(t){var e,r,i;a.push((e=t,r="_field_",i=n.name,e.replace(new RegExp(function(t){return t.replace(/([.*+?^=!:()|\[\]\/\\])/g,"\\$1")}(r),"g"),i))),o()}))}else if(a.length>0){l.report=t,l.htmlParameters=a,l.getDescription=function(t){var e=t.name;return t.description&&(e=t.description).indexOf("{{")>-1&&e.indexOf("}}")>-1&&(e=e.replace("{{","").replace("}}",""),e=window.cronapi.i18n.translate(e,[])),e},l.cloneElement=function(t){return angular.copy(t)},l.isVisibleParam=function(t){return"DATA_LIMIT"!==t.name&&(""===t.value||""===t.value)};var c=t.reportName.match(/\/(.*?)(.*?)(\.jrxml|\.report)/);l.report.name=c[2];var p=this;l.onPrint=function(){l.report.reportName.endsWith(".report")&&(s.show({content:"Loading",animation:"fade-in",showBackdrop:!0,maxWidth:200,showDelay:0}),p.openStimulsoftReport(l.report.contentData,l.report.parameters,l.report.datasourcesInBand,void 0,l.onCancel))},l.onCancel=function(){l.ionicModal.remove(),s.hide()},i.fromTemplateUrl("node_modules/cronapp-framework-mobile-js/components/reports/reports.parameters.html",{scope:l,animation:"slide-in-up"}).then((function(t){t.scope.$parent.ionicModal=t,t.show(),$(".modal-backdrop-bg").css("opacity","0")}))}}.bind(this);o()},this.mergeParam=function(t,e){var a=function(t,e){for(var a in Object.keys(e))if(t==Object.keys(e[a])[0])return Object.values(e[a])[0]};for(var r in Object.keys(t)){var o=t[r].name,n=(t[r].value,a(o,e));n&&(t[r].value=n)}return t},this.setVariablesBasedOnParams=function(t,e){for(var a in e){var r=Object.keys(e[a])[0],o=e[a][r];for(var n in t)if(t[n]&&t[n].Name&&t[n].Name===r){t[n].Value=o;break}}},this.hasParameterWithOutValue=function(t){for(var e in Object.keys(t))if(!t[e].value)return!0;return!1},this.getDatasourcesInBand=function(t){var e=new Stimulsoft.Report.StiReport;return e.load(t),stimulsoftHelper.getDatasourcesInBand(e)},this.loadSriptsStimulsoft=function(t){var e=!0,a=p.length,r=0;Pace.options.initialRate=.7,Pace.options.minTime=1750,Pace.options.maxProgressPerFrame=1,Pace.options.ghostTime=12e4,Pace.restart(),p.forEach(function(o,n){this.loadScript(o,(function(o){r++,o||(e=!1),r==a&&(Pace.options.initialRate=.03,Pace.options.minTime=250,Pace.options.maxProgressPerFrame=20,Pace.options.ghostTime=10,Pace.stop(),t(e))}))}.bind(this))},this.loadScript=function(t,e){if($.inArray(t,u)>=0)e&&e(!0);else if(-1!=t.indexOf(".css")){var a=document.createElement("link");a.rel="stylesheet",a.type="text/css",a.href=t,a.media="all",a.onload=function(){u.push(t),e&&e(!0)},a.onerror=function(){e&&e(!1)};try{document.getElementsByTagName("head")[0].appendChild(a)}catch(t){console.log(t)}}else{var r=document.createElement("script");r.type="text/javascript",r.readyState?r.onreadystatechange=function(){"loaded"!=r.readyState&&"complete"!=r.readyState||(r.onreadystatechange=null,u.push(t),e&&e(!0))}:r.onload=function(){u.push(t),e&&e(!0)},r.src=t,document.getElementsByTagName("head")[0].appendChild(r)}},this.openReport=function(t,e,a){this.getReport(t).then(function(t){t&&t.data&&(t.data.reportName.endsWith(".report")?this.loadSriptsStimulsoft(function(o){o?(this.initializeStimulsoft(r.use()),this.getContentAsString(t.data).then(function(o){var n=this.getDatasourcesInBand(o.data);this.getDataSourcesParams(n).then(function(i){n=i.data,t.data.parameters=stimulsoftHelper.parseToGroupedParam(n.datasources),t.data.contentData=o.data,t.data.datasourcesInBand=n,e&&(t.data.parameters=this.mergeParam(t.data.parameters,e),t.data.contentData.Dictionary=t.data.contentData.Dictionary||{},this.setVariablesBasedOnParams(t.data.contentData.Dictionary.Variables,e)),this.hasParameterWithOutValue(t.data.parameters)&&!a?(t.data.parameters.forEach((function(t){t.name=r.instant(t.name)})),this.showParameters(JSON.parse(JSON.stringify(t.data)))):this.openStimulsoftReport(o.data,t.data.parameters,t.data.datasourcesInBand,a)}.bind(this))}.bind(this),function(t){var e=cronapi.internal.getErrorMessage(t,t.statusText);l.Notification.error(e)}.bind(this))):l.Notification.error("Error loading report script")}.bind(this)):0==t.data.parameters.length||1==t.data.parameters.length&&"DATA_LIMIT"==t.data.parameters[0].name?this.getPDFAsFile(t.data.reportName).then(function(t){this.openURLContent(t.data)}.bind(this),function(t){var e=cronapi.internal.getErrorMessage(t,t.statusText);l.Notification.error(e)}.bind(this)):(e&&(t.data.parameters=this.mergeParam(t.data.parameters,e)),this.hasParameterWithOutValue(t.data.parameters)?this.showParameters(JSON.parse(JSON.stringify(t.data))):this.getPDFAsFile(t.data).then(function(t){this.openURLContent(t.data)}.bind(this))))}.bind(this))}}]);