123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402 |
- var __awaiter,Unibase;(function(Unibase){let Platform;(function(Platform){let Analytics;(function(Analytics){let Components;(function(Components){class ViewerPermissions extends Platform.Core.BaseComponent{constructor(){super();this._ReportPermission_ViewRoles=[];this._ReportPermission_ChangeRoles=[];this.Viewerpermission_ReportRoles=[];this.reportId=0;this.viewerTypeId=0;this.viewerManager=Analytics.Managers.ViewerManager.Instance();this.reportManager=Analytics.Managers.ReportManager.Instance()}cssFiles(){return[]}jsFiles(){return["platform/analytics/components/reportviewer/reportviewer.js","platform/analytics/managers/viewermanager.js","platform/analytics/requests/new/report.js","platform/permission/managers/permissionmanager.js",]}html(id){return""+(`<div class="header bg-white">
- <strong>Viewer Permissions<span class="reportname"></span></strong>
- <a class="btn btn-sm ml-auto"><i class="ti-help-alt" title="help" href="javascript:;" target="_blank"></i></a>
- </div>
- <div class="scrollable bg-light" id="div_viewerpermissions">
- <div class="wrapper">
- <div id="Bizgaze_ValidationSummary" class="clear m-b-sm">
- </div>
- <div class="card">
- <div class="card-body d-flex justify-content-between align-items-center py-10">
- <div class="font-weight-bold font-16 text-dark">Inherit report permissions</div>
- <label class="switch pull-right ml-10 mb-0">
- <input id="inheritPermissionsChk" type="checkbox"><span></span>
- </label>
- </div>
- </div>
- <div class="card" id="viewerPermissionsCard">
- <div class="card-body">
- <div class="row">
- <div class="col-sm-12">
- <strong class="Report">Everyone can view this report?</strong>
- <label class="switch pull-right">
- <input id="chkIsViewable" data-group="Viewable" checked onchange="javascript:Unibase.Platform.Analytics.Components.ViewerPermissions.Instance().setViewable(`+id+`)" type="checkbox">
- <span></span>
- </label>
- </div>
- </div>
- <div class="row" id="divViewRoles" style="display:none">
- <div class="col-sm-12 m-b">
- <label> Included roles that can view this report</label>
- <input type="hidden" id="hfViewRoles" />
- <select id="txtIncludeViewRoles_Viewer" style="width:100%" class="b-a" value="" multiple="multiple"></select>
- </div>
-
- </div>
-
- <div class="row">
- <div class="col-sm-12 mb-0">
- <label>Excluded roles that can view this report</label>
- <input type="hidden" id="hfViewRoles" />
- <select id="txtExcludeViewRoles_Viewer" style="width:100%" class="b-a" value="" placeholder="select role" multiple="multiple"></select>
- </div>
-
- </div>
- </div>
- </div>
- </div>
- </div>
- <footer class="bg-white footer" style="position:absolute; bottom:0px;width:100%;">
- <a href="javascript:;" class="btn btn-light btn-sm mr-auto" id="btn_Close">Close</a>
- </footer>`)}load(viewerid,containerid){var instance=this;$("#div_viewerpermissions").height($(window).outerHeight()-115);instance.Viewerpermission_ReportRoles=[];instance.viewerManager.getViewerRoles(viewerid,instance.reportId).then(function(response){var isReportPermission,selectedRoles,i;if(response.result!=null)if(isReportPermission=response.result.find(r=>r.IsReportPermissions==!0)?!0:!1,isReportPermission)$("#inheritPermissionsChk").prop("checked",!0),$("#viewerPermissionsCard").addClass("d-none");else{for(selectedRoles=response.result,i=0;i<selectedRoles.length;i++)instance.Viewerpermission_ReportRoles.push({ReportRoleId:selectedRoles[i].ViewerRoleId,RoleId:selectedRoles[i].RoleId,ViewViewer:selectedRoles[i].ViewViewer,ChangeViewer:selectedRoles[i].ChangeViewer});instance.getRoleList(viewerid,selectedRoles)}else MessageHelper.Instance().showError(response.message,"Bizgaze_ValidationSummary")});$("#btn_Close").click(function(){$("#"+containerid).modal("hide");$("#"+containerid).remove()});$("#inheritPermissionsChk").change(function(){$(this).is(":checked")?($("#viewerPermissionsCard").addClass("d-none"),instance.getReportRoles(viewerid,!0)):($("#viewerPermissionsCard").removeClass("d-none"),instance.getReportRoles(viewerid,!1))})}getReportRoles(viewerid,isSave){var instance=this;instance.reportManager.getReportRoles(instance.reportId).then(function(response){var selectedRoles,i;if(response.result!=null&&response.result.length>0)for(selectedRoles=response.result,i=0;i<selectedRoles.length;i++){let isLastRecord=i==selectedRoles.length-1;isSave?instance.addViewRole(viewerid,selectedRoles[i].RoleId,selectedRoles[i].ViewReport,selectedRoles[i].ExcludeViewReport,!0,isLastRecord):instance.removeViewRole(viewerid,selectedRoles[i].RoleId,selectedRoles[i].ViewReport,selectedRoles[i].ExcludeViewReport,isLastRecord)}else $("#inheritPermissionsChk").prop("checked",!1),$("#viewerPermissionsCard").removeClass("d-none"),MessageHelper.Instance().showError("Report does not contain roles","Bizgaze_ValidationSummary")})}getRoleList(viewerid,widgetroles){var instance=this;Unibase.Platform.Permissions.Managers.PermissionManager.Instance().getRoles("").then(function(response){var widgetpermissions_AllRoles=response.result;instance.loadAssignedRoles(viewerid,widgetroles,widgetpermissions_AllRoles)})}loadAssignedRoles(viewerid,widgetroles,widgetpermissions_AllRoles){for(var data,assignedRoles,j,assignedRole,instance=this,ExcludeViewRoles=[],_ViewerPermissions_ViewRoles=[],i=0;i<widgetpermissions_AllRoles.length;i++)for(data=widgetpermissions_AllRoles[i],assignedRoles=widgetroles,j=0;j<assignedRoles.length;j++)assignedRole=assignedRoles[j],assignedRole.RoleId==data.RoleId&&(assignedRole.ViewViewer==!0?_ViewerPermissions_ViewRoles.push({id:data.RoleId,text:data.RoleName}):assignedRole.ExcludeViewViewer==!0&&ExcludeViewRoles.push({id:data.RoleId,text:data.RoleName}));instance.loadViewerDetails(viewerid,_ViewerPermissions_ViewRoles,ExcludeViewRoles)}loadViewerDetails(viewerid,_ViewerPermissions_ViewRoles,ExcludeViewRoles){var instance=this;instance.viewerManager.getViewer(viewerid).then(function(response){var data=response.result;data.ViewAll==!0?($("#chkIsViewable").prop("checked",!0),instance.loadViewRoles(viewerid,_ViewerPermissions_ViewRoles,ExcludeViewRoles),$("#divViewRoles").hide()):($("#chkIsViewable").prop("checked",!1),instance.loadViewRoles(viewerid,_ViewerPermissions_ViewRoles,ExcludeViewRoles),$("#divViewRoles").show())})}loadViewRoles(viewerid,_ViewerPermissions_ViewRoles,ExcludeViewRoles){for(var Ids=[],i=0;i<_ViewerPermissions_ViewRoles.length;i++)Ids.push(_ViewerPermissions_ViewRoles[i].id);let ExludedIds=[];for(i=0;i<ExcludeViewRoles.length;i++)ExludedIds.push(ExcludeViewRoles[i].id);var ViewRoleElementId="txtIncludeViewRoles_Viewer",ExcludeRoleElementId="txtExcludeViewRoles_Viewer",userinfo=Unibase.Platform.Membership.Infos.Identity.getCurrentUser(),url=_appsettings.server_url()+"/apis/v4/unibase/platform/roles/getroles";url=url+"/term/";url=url.replace("#","");$("#"+ViewRoleElementId).select2({multiple:!0,allowClear:!1,data:_ViewerPermissions_ViewRoles,placeholder:"Select Role",ajax:{url:function(request){var reqUrl=url,term=request.term;return term==undefined||term==""?reqUrl+term+"/authtoken/"+userinfo.sessionId:reqUrl+term+"/authtoken/"+userinfo.sessionId},beforeSend:function(xhr){userinfo!==undefined&&userinfo!==null&&(xhr.setRequestHeader("Authorization","Basic "+userinfo.sessionId),xhr.setRequestHeader("geoposition",userinfo.latd+":"+userinfo.lgId))},delay:250,dataType:"json",processResults:function(data){for(var selectData=[],Data=JSON.parse(data.result),i=0;i<Data.length;i++)selectData.push({id:Data[i].Value,text:Data[i].SelectText});return{results:selectData}}},templateResult:function(item){return item.text},templateSelection:function(item){return item.text}});$("#"+ViewRoleElementId).val(Ids).trigger("change");$("#txtIncludeViewRoles_Viewer").on("select2:select",function(e){let result=e.params.data;if(Number(result.id)!=0){var roleId=result.id;ViewerPermissions.Instance().addViewRole(viewerid,roleId,!0,!1,!1,!0);Ids.push(roleId);$(ExludedIds).each(function(i,value){if(value==roleId){var index=ExludedIds.indexOf(value);return index>-1&&ExludedIds.splice(index,1),ExludedIds.splice(value,1),jQuery("#txtExcludeViewRoles_Viewer").val(ExludedIds).trigger("change"),!1}})}});$("#txtIncludeViewRoles_Viewer").on("select2:unselect",function(e){let result=e.params.data;if(Number(result.id)!=0){var roleId=result.id;ViewerPermissions.Instance().removeViewRole(viewerid,roleId,!0,!1,!0)}});$("#"+ExcludeRoleElementId).select2({multiple:!0,allowClear:!1,data:ExcludeViewRoles,placeholder:"Select Role",ajax:{url:function(request){var reqUrl=url,term=request.term;return term==undefined||term==""?reqUrl+term+"/authtoken/"+userinfo.sessionId:reqUrl+term+"/authtoken/"+userinfo.sessionId},beforeSend:function(xhr){userinfo!==undefined&&userinfo!==null&&(xhr.setRequestHeader("Authorization","Basic "+userinfo.sessionId),xhr.setRequestHeader("geoposition",userinfo.latd+":"+userinfo.lgId))},delay:250,dataType:"json",processResults:function(data){for(var selectData=[],Data=JSON.parse(data.result),i=0;i<Data.length;i++)selectData.push({id:Data[i].Value,text:Data[i].SelectText});return{results:selectData}}},templateResult:function(item){return item.text},templateSelection:function(item){return item.text}});jQuery("#"+ExcludeRoleElementId).val(ExludedIds).trigger("change");$(".select2-search__field").css("width","100%");$("#txtExcludeViewRoles_Viewer").on("select2:select",function(e){let result=e.params.data;if(Number(result.id)!=0){var roleId=result.id;ViewerPermissions.Instance().addViewRole(viewerid,roleId,!1,!0,!1,!0);ExludedIds.push(roleId);$(Ids).each(function(i,value){if(value==roleId){var index=Ids.indexOf(value);return index>-1&&Ids.splice(index,1),jQuery("#txtIncludeViewRoles_Viewer").val(Ids).trigger("change"),!1}})}});$("#txtExcludeViewRoles_Viewer").on("select2:unselect",function(e){let result=e.params.data;if(Number(result.id)!=0){var roleId=result.id;ViewerPermissions.Instance().removeViewRole(viewerid,roleId,!1,!0,!0)}})}addViewRole(viewerid,roleId,IsView,IsExclude,isReportPermission,ShowResponseMessage){var instance=this;let reqObj=new Unibase.Platform.Analytics.Requests.ViewerRole;reqObj.ViewerId=viewerid;reqObj.ReportId=instance.reportId;reqObj.RoleId=Number(roleId);reqObj.ViewViewer=IsView;reqObj.ExcludeViewViewer=IsExclude;reqObj.IsReportPermissions=isReportPermission;instance.viewerManager.addViewerRole(reqObj).then(function(response){ShowResponseMessage&&MessageHelper.Instance().showSuccess(response.message,"Bizgaze_ValidationSummary")})}removeViewRole(viewerid,roleId,IsView,IsExclude,ShowResponseMessage){var instance=this;let reqObj=new Unibase.Platform.Analytics.Requests.ViewerRole;reqObj.ViewerId=viewerid;reqObj.ReportId=instance.reportId;reqObj.RoleId=Number(roleId);reqObj.ViewViewer=IsView;reqObj.ExcludeViewViewer=IsExclude;instance.viewerManager.removeViewerRole(reqObj).then(function(response){ShowResponseMessage&&MessageHelper.Instance().showSuccess(response.message,"Bizgaze_ValidationSummary")})}setViewable(viewerid){var instance=this,viewable=$("#chkIsViewable").prop("checked");viewable?$("#divViewRoles").hide():$("#divViewRoles").show();instance.viewerManager.setViewable(viewerid,viewable,instance.viewerTypeId).then(function(response){MessageHelper.Instance().showSuccess(response.message,"Bizgaze_ValidationSummary")})}static Instance(){return this.rp_instance===undefined&&(this.rp_instance=new ViewerPermissions),this.rp_instance}}Components.ViewerPermissions=ViewerPermissions})(Components=Analytics.Components||(Analytics.Components={}))})(Analytics=Platform.Analytics||(Platform.Analytics={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))})(Unibase||(Unibase={})),function(Unibase){let Platform;(function(Platform){let Analytics;(function(Analytics){let Components;(function(Components){let ReportBuilder;(function(ReportBuilder){class ImportAndExport extends Platform.Core.BaseComponent{constructor(){super();this.reportmanager=Analytics.Managers.ReportManager.Instance();this.navigationhelper=Unibase.Platform.Helpers.NavigationHelper.Instance()}cssFiles(){return["libs/nestable/JqueryminMenu.css"]}jsFiles(){return["platform/analytics/managers/reportmanager.js","platform/analytics/components/reportbuilder/import.js","platform/forms/components/formviewer/formviewer.js","libs/parsley/parsley.min.js","platform/core/infos/status.js","/platform/core/helpers/file/filehelper.js"]}html(id,containerid){var instance=this;return`<form id="form_Import" data-validate="parsley" data-isdynamic="false">
- <div class="bg-white modal-header pa-10"><strong class="biz-highlight-bg-color Title">Import/Export</strong>
- <div class="dropdown report-options-dp my-auto">
- <a class="nav-link no-caret btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p reportview-remove-none ml-1 " href="javascript:;" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="" data-tooltip="true" title="" aria-describedby="ui-id-16">
- <span class="btn-icon-wrap"><i class="fa fa-ellipsis-v ellipsis-hover-1" aria-hidden="true"></i></span>
- </a>
- <div class="dropdown-menu dropdown-menu-right ViewerTypes_dropdown">
- <a href="javascript:;" id="fileExport" class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().exportsReports();">Reports</a>
- <a href="javascript:;" id="viewersExport" class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().exportViewers(0,0,0,'');">Viewers</a>
- <a href="javascript:;" id="dyfilExport" class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().exportDynamicFilters(0);">Dynamic Filters</a>
- <a href="javascript:;" id="dyfilExport" class="dropdown-item" onclick="Unibase.Platform.Analytics.Components._CommonFilter.Instance().exportFilter(0, 0);">Common Filters</a>
- </div>
- </div>
- <div id="div_importmessage" class="form-error-message"></div>
- </div>
- <div data-simplebar class="import-export-body modal-body simple-scroll-bar">
- <div id="industry_validation" class="clear"></div>
- <div id="div_importexport" class="">
- <div class="card" id="importexportsection">
- <div class="card-body">
- <div class="" id="div_Import"><input type="file" id="import_File" class="bg-light d-none d-sm-block required">
- <br>
- <input type="radio" id="report_radio_btn" class="importreport" onclick="" name="report_viewer_dyfil_import_radio_btn" value="report">
- <label for="report_radio_btn">Report</label>
- <br>
- <input type="radio" id="viewer_radio_btn" class="importviewer" onclick="" name="report_viewer_dyfil_import_radio_btn" value="viewer">
- <label for="viewer_radio_btn">Viewers</label>
- <br>
- <input type="radio" id="dyfil_radio_btn" class="importdynamicfilters" onclick="" name="report_viewer_dyfil_import_radio_btn" value="dynamic filters">
- <label for="dyfil_radio_btn">Dynamic Filters</label>
- <br>
- <input type="radio" id="cmfil_radio_btn" class="importcommonfilters" onclick="" name="report_viewer_dyfil_import_radio_btn" value="common filters">
- <label for="cmfil_radio_btn">Common Filters</label>
- <br>
- <hr/> <a href="javascript:;" id="fileUpload" class="btn btn-warning text-white" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().FileUpload('${containerid}');">Upload</a>
- </div>
- </div>
- </div>
- <div class="hidden" id="div_Export"><span id="sp_formName"></span><a href="javascript:;" id="fileExport" class="btn btn-primary text-white">Download</a></div>
- </div>
- </div>
- <div class="bg-white card-footer"><button id="btn_CloseImport" class="btn btn-secondary btn-sm mr-auto">Close</button></div>
- </form>`}showImportExport(){this.navigationHelper.popup(0,"",Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance(),null,Platform.Helpers.Size.Large)}exportsReports(){var instance=this;instance.navigationHelper.showLoading();instance.reportmanager.exportReports().then(function(response){response.result!=""&&MessageHelper.Instance().showSuccess(response.message,"");instance.downloadResponseAndHideLoading(response,"Reports.xml")})}FileUpload(containerid){var instance=this,url;instance.navigationhelper.showLoading();let isReportUpload=$("#report_radio_btn").prop("checked"),isDynamicFiltersUpload=$("#dyfil_radio_btn").prop("checked"),isCommonFiltersUpload=$("#cmfil_radio_btn").prop("checked");url=isReportUpload?_appsettings.server_url()+"/apis/v4/unibase/platform/analytics/importreports/np":isDynamicFiltersUpload?_appsettings.server_url()+"/apis/v4/unibase/platform/analytics/importdynamicfilters/np":isCommonFiltersUpload?_appsettings.server_url()+"/apis/v4/unibase/platform/analytics/importcommonfilters/np":_appsettings.server_url()+"/apis/v4/unibase/platform/analytics/importreportviews/np";Platform.Helpers.FileHelper.Instance().upload(url,Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.fileData).then(function(response){response.status==Unibase.Data.Status.Error?MessageHelper.Instance().showError(response.message,"div_importmessage"):(MessageHelper.Instance().showSuccess("success","div_importmessage"),$("#"+containerid).modal("hide"),$("#"+containerid).remove());instance.navigationhelper.hideLoading()})}load(id,containerid){var instance=this;$("#btn_CloseImport").click(function(){$("#"+containerid).modal("hide");$("#"+containerid).remove()});$("#btn_Import").click(function(){$("#importexportsection").removeClass("hidden");$("#div_Import").removeClass("hidden")});$("#import_File").change(function(e){Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().fileEvent(e)});$("#txt_Icon").focus(function(){$(".div_Icons").fadeIn();$("#icons").toggleClass("hidden");$(".div_Icons").removeClass("hidden")});$("#txt_Icon").focusout(function(){$(".div_Icons").fadeOut()})}fileEvent($event){const fileSelected=$event.target.files[0];Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.fileData=new FormData;Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.fileData.append(fileSelected.name,fileSelected)}exportViewers(viewerId,viewerName,reportid,containerId){this.navigationHelper.showLoading();let rv_ins;containerId&&(rv_ins=Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportViewerInstance(containerId));let _id=reportid||rv_ins&&rv_ins.ReportId||0;Unibase.Platform.Analytics.Managers.ViewerManager.Instance().exportViewers(viewerId||0,_id).then(response=>{if(response.status==Unibase.Data.Status.Success&&response.result!=null){var filename;if(viewerName&&containerId)filename=rv_ins.reportname+"_"+viewerName+".xml";else if(containerId)filename=rv_ins.reportname+"_viewers.xml";else{let ip=Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;if(ip&&ip.length){let reportNameIP=ip.find(x=>x.Key.endsWith("_reportname"));reportNameIP.Value&&(filename=reportNameIP.Value+"_viewers.xml")}filename||(filename="AllReportViewers.xml")}this.downloadResponseAndHideLoading(response,filename)}else response.status==Unibase.Data.Status.Warning&&(MessageHelper.Instance().showError(response.message,"div_message"),this.navigationHelper.hideLoading())})}exportReportViewers(reportId){reportId||(reportId=Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x=>x.Key.endsWith("_reportid")).Value));this.exportViewers(0,"",reportId,"")}exportDynamicFilters(reportId){this.navigationHelper.showLoading();let ip=Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters,reportName="";if(!reportId&&ip.length){let _reportid=ip.find(x=>x.Key.endsWith("_reportid"));_reportid&&_reportid.Value&&(reportId=Number(_reportid.Value))}reportId&&(reportName=ip.find(x=>x.Key.endsWith("_reportname")).Value);this.reportmanager.exportDynamicFilters(reportId).then(res=>{res.status==Unibase.Data.Status.Success?this.downloadResponseAndHideLoading(res,(reportName||"AllReports")+"_DynamicFilters.xml"):this.navigationHelper.hideLoading()})}downloadResponseAndHideLoading(response,filename){var xmltext=response.result,pom=document.createElement("a"),bb=new Blob([xmltext],{type:"text/plain"});pom.setAttribute("href",window.URL.createObjectURL(bb));pom.setAttribute("download",filename);pom.dataset.downloadurl=["text/plain",pom.download,pom.href].join(":");pom.draggable=!0;pom.classList.add("dragout");pom.click();this.navigationHelper.hideLoading()}static Instance(){return this.instance===undefined&&(this.instance=new ImportAndExport),this.instance}}ImportAndExport.fileData=new FormData;ReportBuilder.ImportAndExport=ImportAndExport})(ReportBuilder=Components.ReportBuilder||(Components.ReportBuilder={}))})(Components=Analytics.Components||(Analytics.Components={}))})(Analytics=Platform.Analytics||(Platform.Analytics={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))}(Unibase||(Unibase={})),function(Unibase){let Platform;(function(Platform){let Helpers;(function(Helpers){let Size;(function(Size){Size[Size.None=0]="None";Size[Size.Mini=1]="Mini";Size[Size.Medium=2]="Medium";Size[Size.Large=3]="Large";Size[Size.ExtraLarge=4]="ExtraLarge";Size[Size.Auto=5]="Auto";Size[Size.DockRight=6]="DockRight";Size[Size.DockLeft=7]="DockLeft"})(Size=Helpers.Size||(Helpers.Size={}))})(Helpers=Platform.Helpers||(Platform.Helpers={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))}(Unibase||(Unibase={}));__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},function(Unibase){let Platform;(function(Platform){let Integrations;(function(Integrations){let Managers;(function(Managers){class IntegrationManager extends Platform.Core.BaseManager{getserviceintegrators(){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().getAsync("apis/v4/unibase/integrations/integrator/getserviceintegratorslist").then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getIntegrator(integratorId){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/integrator/getintegratorbyid/integratorid/"+integratorId;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}saveIntegrator(obj){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/unibase/integrations/integrator/saveintegrator",obj).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getProvider(providerId){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/providers/getprovider/providerid/"+providerId;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getProviders(){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().getAsync("apis/v4/unibase/integrations/providers/getproviders").then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getProvidersByIds(ids){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/provider/getprovidersbyids/providerids/"+ids;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getServicesByProviderId(providerId){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/providers/getservicesbyproviderid/providerid/"+providerId;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getServices(){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().getAsync("apis/v4/unibase/integrations/providers/getservices").then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getServicesByIds(ids){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/providers/getservicesbyids/serviceids/"+ids;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getService(serviceId){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/providers/getservice/serviceid/"+serviceId;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}saveService(obj){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/unibase/integrations/providers/saveservice",obj).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getintegratorsettings(serviceintegratorid){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/integrator/getsettings/serviceintegratorid/"+serviceintegratorid;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getinputsettings(serviceIntegratorId,isInput){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/integrator/inputsettings/serviceintegratorid/"+serviceIntegratorId+"/isinput/"+isInput;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}deleteServiceIntegrator(serviceIntegratorId){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/providers/deleteserviceintegrator/serviceintegratorid/"+serviceIntegratorId;return yield this.dataHelper().postAsync(url,null).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}changeServiceIntegratorStatus(serviceIntegratorId,isUpdate){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/integrator/changeserviceintegratorstatus/serviceintegratorid/"+serviceIntegratorId+"/isupdate/"+isUpdate;return yield this.dataHelper().postAsync(url,null).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}UpdateServiceIntegrator(obj){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/unibase/integrations/integrator/updateserviceintegrator",obj).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}saveSetting(obj){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/unibase/integrations/integrator/savesetting/List",obj).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getServiceIntegratorsByIntegratorId(integratorid){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/integrator/getserviceintegratorsbyintegratorid/integratorid/"+integratorid;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getServiceIntegrators(plantCode,fromDate,toDate){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/integrator/getserviceintegrators/plantcode/"+plantCode+"/fromdate/"+fromDate+"/todate/"+toDate;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getservicesbyIntegrator(integratorid){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/providers/getservicesbyintegrator/integratorid/"+integratorid;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}saveServiceIntegrator(obj){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/unibase/integrations/integrator/saveserviceintegrator",obj).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}saveProvider(obj){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/unibase/integrations/providers/saveprovider",obj).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getsyncsbyserviceintegrator(serviceintegratorid){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/integrator/getsyncsbyserviceintegrator/serviceintegratorid/"+serviceintegratorid;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getsynclogsbysyncid(syncid){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/integrator/getsynclogsbysyncid/syncid/"+syncid;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}executeServiceRequest(executeService){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/unibase/integrations/integrator/executeservicerequest",executeService).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}importProvider(importReq){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("/apis/v4/unibase/integrations/providers/importprovider",importReq).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}exportProvider(providerId){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/provider/export/"+providerId;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=response.result),response})})}duplicateProvider(providerId){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/providers/duplicate/providerid/"+providerId;return yield this.dataHelper().postAsync(url,null).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}updateProviderStatus(providerid,statusId){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/providers/updatestatus/providerid/"+providerid+"/installedstatusid/"+statusId;return yield this.dataHelper().postAsync(url,null).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}updateServiceStatus(serviceId,statusId){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/providers/updateservicestatus/serviceid/"+serviceId+"/statusid/"+statusId;return yield this.dataHelper().postAsync(url,null).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}updateServiceIntegratorStatus(serviceintegratorid,statusId){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/integrator/updateserviceintegratorstatus/serviceintegratorid/"+serviceintegratorid+"/statusid/"+statusId;return yield this.dataHelper().postAsync(url,null).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}deleteProvider(serviceId){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/providers/deleteservice/serviceid/"+serviceId;return yield this.dataHelper().postAsync(url,null).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}regenerateSession(integratorId){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/integrator/updatesession/id/"+integratorId;return yield this.dataHelper().postAsync(url,null).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}resetSettings(serviceintegratorid){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/integrator/resetsettings/serviceintegratorid/"+serviceintegratorid;return yield this.dataHelper().postAsync(url,null).then(function(response){return response})})}refreshIntegrationProviders(){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/unibase/integrations/providers/refreshintegrationproviders/np",null).then(function(response){return MessageHelper.Instance().showSuccess(response.Message,"Unibase_ValidationSummary"),response})})}getIntegrationProviders(){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().getAsync("apis/v4/unibase/integrations/provider/integrationproviders").then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}getServiceIntegratorById(serviceintegratorid){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/unibase/integrations/integrator/getServiceIntegratorbyid/serviceintegratorid/"+serviceintegratorid;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}static Instance(){return this._instance===undefined&&(this._instance=new IntegrationManager),this._instance}}Managers.IntegrationManager=IntegrationManager})(Managers=Integrations.Managers||(Integrations.Managers={}))})(Integrations=Platform.Integrations||(Platform.Integrations={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))}(Unibase||(Unibase={})),function(Unibase){let Platform;(function(Platform){let Filters;(function(Filters){let Components;(function(Components){class FilterPermission extends Platform.Core.BaseComponent{constructor(){super();this.Filterspermission_ReportRoles=[];this.filterManager=Filters.Managers.FilterManager.Instance()}jsFiles(){return["platform/filters/managers/filtermanager.js","platform/filters/components/filter.js","platform/permission/managers/permissionmanager.js"]}cssFiles(){return[]}html(){return""+`<div class="header bg-white">
- <strong> Filter Permissions<span class="filtername"></span></strong>
- <a class="btn btn-sm ml-auto"><i class="ti-help-alt" title="help" href="javascript:;" target="_blank"></i></a>
- </div>
- <div class="scrollable bg-light" id="div_filterpermissions">
- <div class="wrapper">
- <div id="Bizgaze_ValidationSummary" class="clear m-b-sm">
- </div>
- <div class="card">
- <div class="card-body">
- <div class="row">
- <div class="col-sm-12">
- <strong class="lblFilter">Everyone can view this filter?</strong>
- <label class="switch pull-right">
- <input id="chkIsViewable" data-group="Viewable" checked onchange="javascript:Unibase.Platform.Filters.Components.FilterPermission.Instance().setViewable()" type="checkbox">
- <span></span>
- </label>
- </div>
- </div>
- <div class="row" id="divViewRoles" style="display:none">
- <div class="col-sm-12 m-b">
- <label> Included roles that can view this filter</label>
- <input type="hidden" id="hfViewRoles" />
- <select id="txtIncludeViewRoles" style="width:100%" class="b-a" value="" multiple="multiple"></select>
- </div>
-
- </div>
-
- <div class="row">
- <div class="col-sm-12 mb-0">
- <label>Excluded roles that can view this filter</label>
- <input type="hidden" id="hfViewRoles" />
- <select id="txtExcludeViewRoles" style="width:100%" class="b-a" value="" placeholder="select role" multiple="multiple"></select>
- </div>
-
- </div>
- </div>
- </div>
- </div>
- </div>
- <footer class="bg-white footer" style="position:absolute; bottom:0px;width:100%;">
- <a href="javascript:;" class="btn btn-light btn-sm mr-auto" id="btn_Close">Close</a>
- </footer>`}load(Filterid,containerid){var _fileCacheHelper=this.fileCacheHelper;$("#div_filterpermissions").height($(window).outerHeight()-115);_fileCacheHelper.loadJsFile("/platform/filters/managers/filtermanager.js",function(){Unibase.Platform.Filters.Components.FilterPermission.Instance().Filterspermission_filterid=Filterid;Unibase.Platform.Filters.Components.FilterPermission.Instance().Filterspermission_ReportRoles=[];Unibase.Platform.Filters.Managers.FilterManager.Instance().getFilterRoles(Filterid).then(function(response){var selectedRoles,i;if(response.result!=null){for(selectedRoles=response.result,i=0;i<selectedRoles.length;i++)Unibase.Platform.Filters.Components.FilterPermission.Instance().Filterspermission_ReportRoles.push({FilterRoleId:selectedRoles[i].FilterRoleId,RoleId:selectedRoles[i].RoleId,ViewFilter:selectedRoles[i].ViewFilter,ChangeFilter:selectedRoles[i].ChangeFilter});Unibase.Platform.Filters.Components.FilterPermission.Instance().getRoleList(Filterid,selectedRoles)}else MessageHelper.Instance().showError(response.message,"Bizgaze_ValidationSummary")})});$("#btn_Close").click(function(){$("#"+containerid).modal("hide");$("#"+containerid).remove()})}getRoleList(Filterid,widgetroles){Unibase.Platform.Permissions.Managers.PermissionManager.Instance().getRoles("").then(function(response){var widgetpermissions_AllRoles=response.result;FilterPermission.Instance().loadAssignedRoles(Filterid,widgetroles,widgetpermissions_AllRoles)})}loadAssignedRoles(Filterid,widgetroles,widgetpermissions_AllRoles){for(var data,assignedRoles,j,assignedRole,ExcludeViewRoles=[],_Permissions_ViewRoles=[],i=0;i<widgetpermissions_AllRoles.length;i++)for(data=widgetpermissions_AllRoles[i],assignedRoles=widgetroles,j=0;j<assignedRoles.length;j++)assignedRole=assignedRoles[j],assignedRole.RoleId==data.RoleId&&(assignedRole.ViewFilter==!0?_Permissions_ViewRoles.push({id:data.RoleId,text:data.RoleName}):assignedRole.ExcludeViewFilter==!0&&ExcludeViewRoles.push({id:data.RoleId,text:data.RoleName}));FilterPermission.Instance().loadFilter(Filterid,_Permissions_ViewRoles,ExcludeViewRoles)}loadFilter(Filterid,_Permissions_ViewRoles,ExcludeViewRoles){var _fileCacheHelper=this.fileCacheHelper;_fileCacheHelper.loadJsFile("/platform/filters/managers/filtermanager.js",function(){Unibase.Platform.Filters.Managers.FilterManager.Instance().getFilter(Filterid).then(function(response){$(".filtername").text("("+response.result.FilterName+")");Unibase.Platform.Filters.Components.FilterPermission.Instance().Filterspermission_filterid=Filterid;response.result.ViewAll==!0?($("#chkIsViewable").prop("checked",!0),FilterPermission.Instance().loadViewRoles(Filterid,response.result.ChangeAll,_Permissions_ViewRoles,ExcludeViewRoles),$("#divViewRoles").hide()):($("#chkIsViewable").prop("checked",!1),FilterPermission.Instance().loadViewRoles(Filterid,response.result.ChangeAll,_Permissions_ViewRoles,ExcludeViewRoles),$("#divViewRoles").show())})})}loadViewRoles(Filterid,IsMandatory,_Permissions_ViewRoles,ExcludeViewRoles){for(var Ids=[],i=0;i<_Permissions_ViewRoles.length;i++)Ids.push(_Permissions_ViewRoles[i].id);let ExludedIds=[];for(i=0;i<ExcludeViewRoles.length;i++)ExludedIds.push(ExcludeViewRoles[i].id);var ViewRoleElementId="txtIncludeViewRoles",ExcludeRoleElementId="txtExcludeViewRoles",userinfo=Unibase.Platform.Membership.Infos.Identity.getCurrentUser(),url=_appsettings.server_url()+"/apis/v4/unibase/platform/roles/getroles";url=url+"/term/";url=url.replace("#","");$("#"+ViewRoleElementId).select2({multiple:!0,allowClear:!1,data:_Permissions_ViewRoles,placeholder:"Select Role",ajax:{url:function(request){var reqUrl=url,term=request.term;return term==undefined||term==""?reqUrl+term+"/authtoken/"+userinfo.sessionId:reqUrl+term+"/authtoken/"+userinfo.sessionId},beforeSend:function(xhr){userinfo!==undefined&&userinfo!==null&&(xhr.setRequestHeader("Authorization","Basic "+userinfo.sessionId),xhr.setRequestHeader("geoposition",userinfo.latd+":"+userinfo.lgId))},delay:250,dataType:"json",processResults:function(data){for(var selectData=[],Data=JSON.parse(data.result),i=0;i<Data.length;i++)selectData.push({id:Data[i].Value,text:Data[i].SelectText});return{results:selectData}}},templateResult:function(item){return item.text},templateSelection:function(item){return item.text}});$("#"+ViewRoleElementId).val(Ids).trigger("change");$("#txtIncludeViewRoles").on("select2:select",function(e){let result=e.params.data;if(Number(result.id)!=0){var roleId=result.id;FilterPermission.Instance().addViewRole(Filterid,roleId,!0,!1);Ids.push(roleId);$(ExludedIds).each(function(i,value){if(value==roleId){var index=ExludedIds.indexOf(value);return index>-1&&ExludedIds.splice(index,1),ExludedIds.splice(value,1),jQuery("#txtExcludeViewRoles").val(ExludedIds).trigger("change"),!1}})}});$("#txtIncludeViewRoles").on("select2:unselect",function(e){let result=e.params.data;if(Number(result.id)!=0){var roleId=result.id;FilterPermission.Instance().removeViewRole(Filterid,roleId,!0,!1)}});$("#"+ExcludeRoleElementId).select2({multiple:!0,allowClear:!1,data:ExcludeViewRoles,placeholder:"Select Role",ajax:{url:function(request){var reqUrl=url,term=request.term;return term==undefined||term==""?reqUrl+term+"/authtoken/"+userinfo.sessionId:reqUrl+term+"/authtoken/"+userinfo.sessionId},beforeSend:function(xhr){userinfo!==undefined&&userinfo!==null&&(xhr.setRequestHeader("Authorization","Basic "+userinfo.sessionId),xhr.setRequestHeader("geoposition",userinfo.latd+":"+userinfo.lgId))},delay:250,dataType:"json",processResults:function(data){for(var selectData=[],Data=JSON.parse(data.result),i=0;i<Data.length;i++)selectData.push({id:Data[i].Value,text:Data[i].SelectText});return{results:selectData}}},templateResult:function(item){return item.text},templateSelection:function(item){return item.text}});jQuery("#"+ExcludeRoleElementId).val(ExludedIds).trigger("change");$(".select2-search__field").css("width","100%");$("#txtExcludeViewRoles").on("select2:select",function(e){let result=e.params.data;if(Number(result.id)!=0){var roleId=result.id;FilterPermission.Instance().addViewRole(Filterid,roleId,!1,!0);ExludedIds.push(roleId);$(Ids).each(function(i,value){if(value==roleId){var index=Ids.indexOf(value);return index>-1&&Ids.splice(index,1),jQuery("#txtIncludeViewRoles").val(Ids).trigger("change"),!1}})}});$("#txtExcludeViewRoles").on("select2:unselect",function(e){let result=e.params.data;if(Number(result.id)!=0){var roleId=result.id;FilterPermission.Instance().removeViewRole(Filterid,roleId,!1,!0)}})}addViewRole(Filterid,roleId,IsView,IsExclude){var _fileCacheHelper=this.fileCacheHelper;_fileCacheHelper.loadJsFile("platform/filters/managers/filtermanager.js",function(){_fileCacheHelper.loadJsFile("platform/filters/requests/filterrole.js",function(){let reqObj=new Unibase.Platform.Filters.Requests.FilterRole;reqObj.Filter_Id=Filterid;reqObj.RoleId=Number(roleId);reqObj.ViewFilter=IsView;reqObj.ExcludeViewFilter=IsExclude;Unibase.Platform.Filters.Managers.FilterManager.Instance().addFilterRole(reqObj).then(function(response){MessageHelper.Instance().showSuccess(response.message,"Bizgaze_ValidationSummary")})})})}removeViewRole(Filterid,roleId,IsView,IsExclude){var _fileCacheHelper=this.fileCacheHelper;_fileCacheHelper.loadJsFile("platform/filters/managers/filtermanager.js",function(){_fileCacheHelper.loadJsFile("platform/filters/requests/filterrole.js",function(){let reqObj=new Unibase.Platform.Filters.Requests.FilterRole;reqObj.Filter_Id=Filterid;reqObj.RoleId=Number(roleId);reqObj.ViewFilter=IsView;reqObj.ExcludeViewFilter=IsExclude;Unibase.Platform.Filters.Managers.FilterManager.Instance().removeFilterRole(reqObj).then(function(response){MessageHelper.Instance().showSuccess(response.message,"Bizgaze_ValidationSummary")})})})}setViewable(){var viewable=$("#chkIsViewable").prop("checked"),_fileCacheHelper;viewable?$("#divViewRoles").hide():$("#divViewRoles").show();_fileCacheHelper=this.fileCacheHelper;_fileCacheHelper.loadJsFile("/platform/filters/managers/filtermanager.js",function(){_fileCacheHelper.loadJsFile("platform/filters/requests/filter.js",function(){Unibase.Platform.Filters.Managers.FilterManager.Instance().setViewable(Unibase.Platform.Filters.Components.FilterPermission.Instance().Filterspermission_filterid,viewable).then(function(response){MessageHelper.Instance().showSuccess(response.message,"Bizgaze_ValidationSummary")})})})}static Instance(){return this.instance===undefined&&(this.instance=new FilterPermission),this.instance}}Components.FilterPermission=FilterPermission})(Components=Filters.Components||(Filters.Components={}))})(Filters=Platform.Filters||(Platform.Filters={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))}(Unibase||(Unibase={})),function(Unibase){let Platform;(function(Platform){let Analytics;(function(Analytics){let Components;(function(Components){class FilterPanel extends Platform.Core.BaseComponent{constructor(){super();this.serverFormat="YYYY/MM/DD";this._unibase_dateFormat="DD/MM/YYYY";this.dateFilters=[];this.isPartition=!1;this.selectedDates=[];this._dateTimeHelper=Unibase.Platform.Helpers.DateTimeHelper.Instance()}jsFiles(){return["platform/core/helpers/datetimehelper/datetimehelper.js"]}cssFiles(){return[]}html(){return`<div>
- <input type="hidden" id="hfBizgaze_CompareFromDate" />
- <input type="hidden" id="hfBizgaze_CompareToDate" />
- <input type="hidden" id="hfBizgaze_RFilterDate"/>
- <input type="hidden" id="hfBizgaze_CFilterDate"/>
-
- <div class="settings-panel-wrap">
- <div class="settings-panel-head text-right p-2 hidden">
- <a href="javascript:void(0);" id="filter_panel_close" class="settings-panel-close"><i class="ti-close"></i></a>
- </div>
- <div class="row">
- <div class="form-inline">
- <h6 class="col-12 text-white mb-2">Report</h6>
- <div class="form-group col-12">
- <input class="form-control ml-10" type="text" id="report-daterange" />
- </div>
- </div>
- </div>
- <div class="row">
- <div class="form-inline hidden">
- <h6 class="col-12 text-white mb-2">Compare</h6>
- <div class="form-group col-12">
- <input class="form-control ml-10" type="text" id="compare-daterange" />
- </div>
- </div>
- </div>
- </div>
- <div id="_report_filter_container"></div>
- <footer id="_report_filter_buttons" style="position: fixed;left:auto;right:auto;bottom:0;" class="modal-footer pa-10"></footer>
- </div>
- </div>`}load(id,containerid,callback){var instance=this,width=$("#hk-filter-panel").width(),fDate,tDate,sd;if($("#_report_filter_buttons").css("width",width),fDate=null,tDate=null,instance.isPartition)fDate=instance._dateTimeHelper.formatLocalDateformat(new Date(Unibase.Platform.Membership.Infos.Identity.getCurrentUser().partitionFromDate),"YYYY/MM/DD"),tDate=instance._dateTimeHelper.formatLocalDateformat(new Date(Unibase.Platform.Membership.Infos.Identity.getCurrentUser().partitionToDate),"YYYY/MM/DD");else{let currentUser=Unibase.Platform.Membership.Infos.Identity.getCurrentUser(),_fromDate,_toDate;sd=instance.selectedDates.find(s=>s.Id==id);currentUser.globalDateRangeTypeId||(currentUser.globalDateRangeTypeId=Unibase.Platform.Analytics.Enums.DateRangeType.FiyYear);let dateRange=this.getDateRangeString(currentUser.globalDateRangeTypeId);if(sd&&(dateRange=sd.SelectedRangeKey),$("#hfBizgaze_RFilterDate"+containerid+"_"+id).val(dateRange),$(`#cmnDateRangeSelect_${containerid}-${id}`).val(dateRange),currentUser.fromDate.includes("0001")){let{fromDate,toDate}=this.getFIY();_fromDate=this._dateTimeHelper.formatLocalDate1(fromDate.toString(),"YYYY-MM-DDThh:mm:ss")+"Z";_toDate=this._dateTimeHelper.formatLocalDate1(toDate.toString(),"YYYY-MM-DDThh:mm:ss")+"Z";currentUser.fromDate=_fromDate;currentUser.toDate=_toDate}else if(dateRange.toLowerCase().includes("custom range"))_fromDate=currentUser.fromDate,_toDate=currentUser.toDate;else{let dates=this.getFromDateAndToDateByDateRange(dateRange,!1,"","");_fromDate=dates.fromDate.format();_toDate=dates.toDate.format("yyyy-MM-DD")+"T00:00:00+05:30"}let formattedFromDate=instance._dateTimeHelper.formatLocalDateTime(_fromDate).split(" ")[0],formattedToDate=instance._dateTimeHelper.formatLocalDateTime(_toDate).split(" ")[0],serverFromDate=instance._dateTimeHelper.formatServerDate(formattedFromDate),serverToDate=instance._dateTimeHelper.formatServerDate(formattedToDate);$(`#hfBizgaze_ReportFromDate${containerid}_${id}`).val(serverFromDate);$(`#hfBizgaze_ReportToDate${containerid}_${id}`).val(serverToDate);id=="0"&&($(".CommonFilter_FromDate").val(formattedFromDate),$(".CommonFilter_ToDate").val(formattedToDate),Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate=serverFromDate,Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate=serverToDate);instance.SetRange(containerid,id)}if(Unibase.Platform.Analytics.Components.ReportViewer.Instance().dateFilters=instance.dateFilters,callback&&id!="0"&&instance.addSelectedDateRange(id,containerid,callback),instance.selectedDates.length>0&&(instance.selectedDates.map(function(f){if(f.containerid!=containerid&&!f.containerid.includes("CmnDateFilter")&&!containerid.includes("CmnDateFilter")){let dIndex=instance.selectedDates.findIndex(s=>s.Id==id);dIndex>-1&&instance.selectedDates.splice(dIndex,1)}}),sd=instance.selectedDates.find(s=>s.Id==id),sd&&($("#report-daterange"+containerid+"-"+id).val(sd.DateRange),$("#hfBizgaze_FromDate"+containerid+"_"+id).val(sd.FromDate),$("#hfBizgaze_ToDate"+containerid+"_"+id).val(sd.ToDate),$("#hfBizgaze_RFilterDate"+containerid+"_"+id).val(sd.SelectedRangeKey))),$("#report-daterange"+containerid+"-"+id).change(function(){instance.onChangeDateRange(containerid,id,callback);$("#report-daterange"+containerid+"-"+id).on("apply.daterangepicker",function(){instance.onApplyDateRange(containerid,id);$(`#biz-filter-dropdown${containerid}`).length&&instance.dateRangeShowEvent(containerid,id)})}),$("#report-daterange"+containerid+"-"+id).keypress(function(e){var x=e.which||e.keyCode;if(x>=45&&x<=57||x==32)return!0;if(x==13)$(this).trigger("change"),$(this).trigger("apply.daterangepicker");else return!1}),instance.dateRangeShowEvent(containerid,id),containerid.includes("_navCmnDateFilter"))$("#report-daterange_navCmnDateFilter-0").on("hide.daterangepicker,cancel.daterangepicker",function(){$("#navCmnDateFilterDp,#dynamic-filters_navCmnDateFilter").removeClass("show right-sunbnav-active")});if(instance.isMobileDatePicker(containerid)){const containerIdWithPortletId=containerid+"-"+id,containerIdWith_PortletId=containerid+"_"+id,cmnDateRangeEls=$(`#cmnFromDateRange_${containerIdWithPortletId},#cmnToDateRange_${containerIdWithPortletId}`);$(`#cmnDateRangeSelect_${containerIdWithPortletId}`).change(function(){$(`#hfBizgaze_RFilterDate${containerIdWith_PortletId}`).val($(this).val());instance.SetRange(containerid,id);instance.onChangeDateRange(containerid,id,null);if($(this).val()!=="Custom Range")instance.onApplyDateRange(containerid,id)});$("#bizCmnDateFilterModal").off("apply.daterangepicker").on("apply.daterangepicker",cmnDateRangeEls,function(){$(`#cmnDateRangeSelect_${containerIdWithPortletId}`).val("Custom Range");$("#bizCmnDateFilterModal .modal-footer").removeClass("d-none")});$(`#cmnDateRangeApply_${containerIdWithPortletId}`).click(function(event){let fromDate=$(`#cmnFromDateRange_${containerIdWithPortletId}`).val(),toDate=$(`#cmnToDateRange_${containerIdWithPortletId}`).val();if(fromDate=instance._dateTimeHelper.formatServerDate(fromDate.trim()),toDate=instance._dateTimeHelper.formatServerDate(toDate.trim()),moment(fromDate).isSameOrAfter(toDate)){MessageHelper.Instance().showError("From date cannot be greater!","cmnDateFilterModalErrMsg");return}instance.onChangeDateRange(containerid,id,null,event);instance.onApplyDateRange(containerid,id)})}}isMobileDatePicker(containerid){return!Unibase.Themes.Compact.Components.Index.Instance().desktopMode&&containerid.includes("CmnDateFilter")?!0:!1}onChangeDateRange(containerid,id,callback,event){const instance=this;this.filterRange=this.getDateFilterRange(containerid,id);$("#hfBizgaze_RFilterDate"+containerid+"_"+id).val(this.filterRange);$(".daterange-cross-icon"+containerid+"_"+id).removeClass("hidden");const{fromDate,toDate}=instance.getFromDateToDate(containerid,id);if($("#hfBizgaze_FromDate"+containerid+"_"+id).val(fromDate),$("#hfBizgaze_ToDate"+containerid+"_"+id).val(toDate),id!="0"&&instance.addSelectedDateRange(id,containerid,callback),this.filterRange!="Custom Range")id!=0&&Unibase.Platform.Analytics.Components.ReportViewer.Instance().changeDateFilters(id,containerid),instance.isMobileDatePicker(containerid)?$("#bizCmnDateFilterModal .modal-footer").addClass("d-none"):instance.SetRange(containerid,id);else if(instance.isMobileDatePicker(containerid)){let isApplyClicked=!1;event&&(isApplyClicked=$(event.currentTarget).attr("id").includes("cmnDateRangeApply_"));isApplyClicked||($(`#cmnFromDateRange_${containerid+"-"+id}`).trigger("click"),$("#bizCmnDateFilterModal .modal-footer").removeClass("d-none"))}}getFromDateToDate(containerid,id){let range=$("#report-daterange"+containerid+"-"+id).val();this.isMobileDatePicker(containerid)&&(range=$(`#cmnFromDateRange_${containerid+"-"+id}`).val()+"-"+$(`#cmnToDateRange_${containerid+"-"+id}`).val());let date=range.split("-");return{fromDate:this._dateTimeHelper.formatServerDate(date[0].trim()),toDate:this._dateTimeHelper.formatServerDate(date[1].trim())}}getDateFilterRange(containerid,id){let filterdate="";if(this.isMobileDatePicker(containerid))filterdate=$(`#cmnDateRangeSelect_${containerid+"-"+id}`).val();else{var Rli=$(`#reportdatepicker_${containerid+"_"+id}`).find("ul");$(Rli).find("li.active").data()&&(filterdate=$(Rli).find("li.active").data().rangeKey)}return this.filterRange=filterdate,filterdate}onApplyDateRange(containerid,id){const instance=this,navigationHelper=Unibase.Platform.Helpers.NavigationHelper;id=="0"&&($("#hfBizgaze_FromDate"+containerid+"_"+id).val(navigationHelper.commonFilter_FromDate),$("#hfBizgaze_ToDate"+containerid+"_"+id).val(navigationHelper.commonFilter_ToDate));id!=0&&Unibase.Platform.Analytics.Components.ReportViewer.Instance().changeDateFilters(id,containerid);let sd=instance.selectedDates.find(s=>s.Id==id);if(sd&&(sd.IsDefault=!1),containerid.includes("CmnDateFilter")){let userInfo=Unibase.Platform.Membership.Infos.Identity.getCurrentUser();const{fromDate,toDate}=instance.getFromDateToDate(containerid,id);let _fromDate=this._dateTimeHelper.formatLocalDate1(fromDate,"YYYY-MM-DD")+"T00:00:00Z",_toDate=this._dateTimeHelper.formatLocalDate1(toDate,"YYYY-MM-DD")+"T00:00:00Z",rangeType=instance.getDateRangeType(this.filterRange),postObj={userid:userInfo.userId,fromdate:_fromDate,todate:_toDate,DefaultFilterColumn:rangeType},currentUser=Unibase.Platform.Membership.Infos.Identity.currentUser;currentUser.fromDate=_fromDate;currentUser.toDate=_toDate;currentUser.globalDateRangeTypeId=rangeType;Unibase.Platform.Membership.Managers.AccountManager.Instance().updateUserDetails(postObj).then(res=>{if(res.status==Unibase.Data.Status.Success){Unibase.Platform.Membership.Infos.Identity.setCurrentUser(currentUser);const installedAppId=Unibase.Themes.Providers.DetailHelper.installedAppId;if($("#hf_DashboardPortletId").val()!=undefined)Unibase.Themes.Compact.Components.Dashboard.Instance().loadWidgets($("#hf_DashboardPortletId").val(),$("#hf_DashboardPortletName").val());else if($("#hf_DashboardPortletId").val()==undefined&&installedAppId==0){const lastContainerId=navigationHelper.ModalContainerIds[navigationHelper.ModalContainerIds.length-1],reportId=Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportViewerInstance(lastContainerId).ReportId;instance.navigationHelper.closeAllModals();let obj=Unibase.Platform.Analytics.Components.ReportViewer.Instance();obj.InstalledAppId=Unibase.Themes.Compact.Components.List.Instance().InstalledAppId;instance.navigationHelper.popin(reportId,"",obj,null)}else installedAppId!=0&&$("#layout-detail-tabs").find(".tab-item a.active").trigger("click")}});instance.isMobileDatePicker(containerid)?$("#bizCmnDateFilterModal,#settingsModal").modal("hide"):($(this).parents(".biz-common-filter-dropdown").length>0&&$(`#filter_toggle_btn${containerid}`).dropdown("toggle"),containerid.includes("_modalCmnDateFilter")&&instance.load("0","_navCmnDateFilter",null),$("#navCmnDateFilterDp,#dynamic-filters_navCmnDateFilter").removeClass("show right-sunbnav-active"),$("#settingsModal").modal("hide"))}}dateRangeShowEvent(containerid,id){const instance=this;$("#report-daterange"+containerid+"-"+id).on("show.daterangepicker",function(ev,picker){let rangePickerUl=picker.container.find(".ranges");rangePickerUl.find(".active").removeClass("active");var daterange=instance.selectedDates.find(s=>s.Id==id);if(daterange){let globalDate=instance.selectedDates.find(x=>x.Id=="0");globalDate&&daterange.IsDefault?rangePickerUl.find(`li[data-range-key='${globalDate.SelectedRangeKey}']`).addClass("active"):rangePickerUl.find(`li[data-range-key='${daterange.SelectedRangeKey}']`).addClass("active")}else{let userInfo=Unibase.Platform.Membership.Infos.Identity.currentUser;userInfo.globalDateRangeTypeId!=undefined&&rangePickerUl.find(`li[data-range-key='${instance.getDateRangeString(userInfo.globalDateRangeTypeId)}']`).addClass("active")}const pickerContainerEl=$(picker.container),leftPos=pickerContainerEl.offset().left;rangePickerUl.find("li[data-range-key='Custom Range']").off("click").click(()=>{pickerContainerEl.outerWidth(!0)+leftPos<710&&pickerContainerEl.addClass("picker-fullwidth")});instance.setDateRangePickerHeight(picker)})}setDateRangePickerHeight(picker){const pickerEl=picker.container,deductHeight=pickerEl.offset().top+15,finalHeight=window.innerHeight-deductHeight;pickerEl.css({"max-height":finalHeight,overflow:"auto"}).attr("data-deductheight",deductHeight).addClass("biz-custom-scrollbar cmn-daterange-picker")}addSelectedDateRange(id,containerid,callback){const instance=this;let range;range=instance.isMobileDatePicker(containerid)?$("#cmnFromDateRange_"+containerid+"-"+id).val()+"-"+$("#cmnToDateRange_"+containerid+"-"+id).val():$("#report-daterange"+containerid+"-"+id).val();let date=range.split("-");const fromDate=instance._dateTimeHelper.formatServerDate(date[0].trim()),toDate=instance._dateTimeHelper.formatServerDate(date[1].trim());let dIndex=instance.selectedDates.findIndex(s=>s.Id==id);dIndex>-1&&instance.selectedDates.splice(dIndex,1);instance.selectedDates.push({FromDate:fromDate,ToDate:toDate,DateRange:range,SelectedRangeKey:$("#hfBizgaze_RFilterDate"+containerid+"_"+id).val(),Id:id,containerid:containerid,IsDefault:callback});id=="0"&&(Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate=fromDate,Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate=toDate)}SetRange(containerid,id){let dateRange=$("#hfBizgaze_CFilterDate").val(),dates;dateRange&&(dates=this.getFromDateAndToDateByDateRange(dateRange,!1,containerid,id),this.SetCompareDate(dates.fromDate,dates.toDate,containerid));let dateRange_container=$("#hfBizgaze_RFilterDate"+containerid+"_"+id).val();dateRange_container&&(dates=this.getFromDateAndToDateByDateRange(dateRange_container,!0,containerid,id),this.SetReportDate(dates.fromDate,dates.toDate,containerid,id))}SetCompareDate(FromDate,ToDate){var instance=this,d,FiyYear;$("#hfBizgaze_CompareFromDate").val(FromDate.format(instance.serverFormat));$("#hfBizgaze_CompareToDate").val(ToDate.format(instance.serverFormat));d=new Date;FiyYear=null;FiyYear=d.getMonth()+1>=4?[moment().startOf("year").add(3,"month").startOf("month"),moment().add(1,"year").startOf("year").add(2,"month").endOf("month")]:[moment().startOf("year").add(-1,"year").add(3,"month").startOf("month"),moment().add(1,"year").startOf("year").add(-1,"year").add(2,"month").endOf("month")];$("#compare-daterange").daterangepicker({startDate:FromDate,endDate:ToDate,locale:{format:instance._unibase_dateFormat},ranges:{Today:[moment(),moment()],Yesterday:[moment().subtract(1,"days"),moment().subtract(1,"days")],"Last 7 Days":[moment().subtract(6,"days"),moment()],"Last 30 Days":[moment().subtract(29,"days"),moment()],"This Month":[moment().startOf("month"),moment().endOf("month")],"Last Month":[moment().subtract(1,"month").startOf("month"),moment().subtract(1,"month").endOf("month")],YTD:[moment().startOf("year").startOf("month"),moment().startOf("year").add(11,"month").endOf("month")],"FIY Year":FiyYear}})}SetReportDate(FromDate,ToDate,containerid,id){var instance=this,d,FiyYear,PFiyYear;if($("#hfBizgaze_FromDate"+containerid+"_"+id).val(FromDate.format(instance.serverFormat)),$("#hfBizgaze_ToDate"+containerid+"_"+id).val(ToDate.format(instance.serverFormat)),d=new Date,FiyYear=null,FiyYear=d.getMonth()+1>=4?[moment().startOf("year").add(3,"month").startOf("month"),moment().add(1,"year").startOf("year").add(2,"month").endOf("month")]:[moment().startOf("year").add(-1,"year").add(3,"month").startOf("month"),moment().add(1,"year").startOf("year").add(-1,"year").add(2,"month").endOf("month")],PFiyYear=null,PFiyYear=d.getMonth()+1>=4?[moment().subtract(1,"year").startOf("year").add(3,"month").startOf("month"),moment().subtract(1,"year").add(1,"year").startOf("year").add(2,"month").endOf("month")]:[moment().subtract(1,"year").startOf("year").add(-1,"year").add(3,"month").startOf("month"),moment().subtract(1,"year").add(1,"year").startOf("year").add(-1,"year").add(2,"month").endOf("month")],instance.isMobileDatePicker(containerid)){const containerIdWithId=containerid+"-"+id,fromDateRangeEl=$(`#cmnFromDateRange_${containerIdWithId}`),toDateRangeEl=$(`#cmnToDateRange_${containerIdWithId}`),initiateDateRangePicker=(el,startDate)=>{el.daterangepicker({startDate:startDate,singleDatePicker:!0,showDropdowns:!0,locale:{format:instance._unibase_dateFormat,firstDay:1}})};initiateDateRangePicker(fromDateRangeEl,FromDate);initiateDateRangePicker(toDateRangeEl,ToDate);$(`.mobiledaterangepicker`).remove();$(".daterangepicker").slice(-2).addClass(`mobiledaterangepicker`)}else $("#report-daterange"+containerid+"-"+id).daterangepicker({startDate:FromDate,endDate:ToDate,drops:"down",showDropdowns:!0,showWeekNumbers:!0,linkedCalendars:!1,locale:{format:instance._unibase_dateFormat,firstDay:1},ranges:{Today:[moment(),moment()],Yesterday:[moment().subtract(1,"days"),moment().subtract(1,"days")],"Last 7 Days":[moment().subtract(6,"days"),moment()],"Last 30 Days":[moment().subtract(29,"days"),moment()],"This Month":[moment().startOf("month"),moment().endOf("month")],"Last Month":[moment().subtract(1,"month").startOf("month"),moment().subtract(1,"month").endOf("month")],"This Quarter":[moment().startOf("quarter"),moment().endOf("quarter")],"Last Quarter":[moment().subtract(1,"quarter").startOf("quarter"),moment().subtract(1,"quarter").endOf("quarter")],YTD:[moment().startOf("year").startOf("month"),moment().startOf("year").add(11,"month").endOf("month")],"Last Year":[[moment().subtract(1,"year").startOf("year"),moment().subtract(1,"year").endOf("year")][0],[moment().subtract(1,"year").startOf("year"),moment().subtract(1,"year").endOf("year")][1]],"FIY Year":FiyYear,"PFIY Year":PFiyYear}}),$(`div[id=reportdatepicker_${containerid+"_"+id}]`).length&&$(`div[id=reportdatepicker_${containerid+"_"+id}]`).remove(),$(".daterangepicker").last().attr("id",`reportdatepicker_${containerid+"_"+id}`)}getDateRangeString(typeId){let range="";switch(typeId){case Unibase.Platform.Analytics.Enums.DateRangeType.Last7Days:range="Last 7 Days";break;case Unibase.Platform.Analytics.Enums.DateRangeType.Last30Days:range="Last 30 Days";break;case Unibase.Platform.Analytics.Enums.DateRangeType.ThisMonth:range="This Month";break;case Unibase.Platform.Analytics.Enums.DateRangeType.LastMonth:range="Last Month";break;case Unibase.Platform.Analytics.Enums.DateRangeType.ThisQuarter:range="This Quarter";break;case Unibase.Platform.Analytics.Enums.DateRangeType.LastQuarter:range="Last Quarter";break;case Unibase.Platform.Analytics.Enums.DateRangeType.YTD:range="YTD";break;case Unibase.Platform.Analytics.Enums.DateRangeType.LastYear:range="Last Year";break;case Unibase.Platform.Analytics.Enums.DateRangeType.FiyYear:range="FIY Year";break;case Unibase.Platform.Analytics.Enums.DateRangeType.PFiyYear:range="PFIY Year";break;case Unibase.Platform.Analytics.Enums.DateRangeType.Today:range="Today";break;case Unibase.Platform.Analytics.Enums.DateRangeType.Yesterday:range="Yesterday";break;default:range="Custom Range"}return range}getDateRangeType(range){let id=Unibase.Platform.Analytics.Enums.DateRangeType.CustomRange;switch(range){case"Last 7 Days":id=Unibase.Platform.Analytics.Enums.DateRangeType.Last7Days;break;case"Last 30 Days":id=Unibase.Platform.Analytics.Enums.DateRangeType.Last30Days;break;case"This Month":id=Unibase.Platform.Analytics.Enums.DateRangeType.ThisMonth;break;case"Last Month":id=Unibase.Platform.Analytics.Enums.DateRangeType.LastMonth;break;case"This Quarter":id=Unibase.Platform.Analytics.Enums.DateRangeType.ThisQuarter;break;case"Last Quarter":id=Unibase.Platform.Analytics.Enums.DateRangeType.LastQuarter;break;case"YTD":id=Unibase.Platform.Analytics.Enums.DateRangeType.YTD;break;case"Last Year":id=Unibase.Platform.Analytics.Enums.DateRangeType.LastYear;break;case"FIY Year":id=Unibase.Platform.Analytics.Enums.DateRangeType.FiyYear;break;case"PFIY Year":id=Unibase.Platform.Analytics.Enums.DateRangeType.PFiyYear;break;case"Today":id=Unibase.Platform.Analytics.Enums.DateRangeType.Today;break;case"Yesterday":id=Unibase.Platform.Analytics.Enums.DateRangeType.Yesterday}return id}getYesterday(){var dates=[moment().subtract(1,"days"),moment().subtract(1,"days")];return{fromDate:dates[0],toDate:dates[1]}}getToday(){var dates=[moment(),moment()];return{fromDate:dates[0],toDate:dates[1]}}getLast7days(){var dates=[moment().subtract(6,"days"),moment()];return{fromDate:dates[0],toDate:dates[1]}}getLast30days(){var dates=[moment().subtract(29,"days"),moment()];return{fromDate:dates[0],toDate:dates[1]}}getThisMonth(){var dates=[moment().startOf("month"),moment().endOf("month")];return{fromDate:dates[0],toDate:dates[1]}}getLastMonth(){var dates=[moment().subtract(1,"month").startOf("month"),moment().subtract(1,"month").endOf("month")];return{fromDate:dates[0],toDate:dates[1]}}getThisQuarter(){var dates=[moment().startOf("quarter"),moment().endOf("quarter")];return{fromDate:dates[0],toDate:dates[1]}}getLastQuarter(){var dates=[moment().subtract(1,"quarter").startOf("quarter"),moment().subtract(1,"quarter").endOf("quarter")];return{fromDate:dates[0],toDate:dates[1]}}getYTD(){var dates=[moment().startOf("year").startOf("month"),moment().startOf("year").add(11,"month").endOf("month")];return{fromDate:dates[0],toDate:dates[1]}}getLastYear(){var dates=[moment().subtract(1,"year").startOf("year"),moment().subtract(1,"year").endOf("year")];return{fromDate:dates[0],toDate:dates[1]}}getFIY(){var d=new Date,FiyFromDate,FiyToDate;return d.getMonth()+1>=4?(FiyFromDate=[moment().startOf("year").add(3,"month").startOf("month"),moment().add(1,"year").startOf("year").add(2,"month").endOf("month")][0],FiyToDate=[moment().startOf("year").add(3,"month").startOf("month"),moment().add(1,"year").startOf("year").add(2,"month").endOf("month")][1]):(FiyFromDate=[moment().startOf("year").add(-1,"year").add(3,"month").startOf("month"),moment().add(1,"year").startOf("year").add(-1,"year").add(2,"month").endOf("month")][0],FiyToDate=[moment().startOf("year").add(-1,"year").add(3,"month").startOf("month"),moment().add(1,"year").startOf("year").add(-1,"year").add(2,"month").endOf("month")][1]),{fromDate:FiyFromDate,toDate:FiyToDate}}getPFIY(){var d=new Date,FiyFromDate,FiyToDate;return d.getMonth()+1>=4?(FiyFromDate=[moment().subtract(1,"year").startOf("year").add(3,"month").startOf("month"),moment().subtract(1,"year").add(1,"year").startOf("year").add(2,"month").endOf("month")][0],FiyToDate=[moment().subtract(1,"year").startOf("year").add(3,"month").startOf("month"),moment().subtract(1,"year").add(1,"year").startOf("year").add(2,"month").endOf("month")][1]):(FiyFromDate=[moment().subtract(1,"year").startOf("year").add(-1,"year").add(3,"month").startOf("month"),moment().subtract(1,"year").add(1,"year").startOf("year").add(-1,"year").add(2,"month").endOf("month")][0],FiyToDate=[moment().subtract(1,"year").startOf("year").add(-1,"year").add(3,"month").startOf("month"),moment().subtract(1,"year").add(1,"year").startOf("year").add(-1,"year").add(2,"month").endOf("month")][1]),{fromDate:FiyFromDate,toDate:FiyToDate}}getFromDateAndToDateByDateRange(dateRange,isContainer,containterId,id){var format,date,_datetimehelper;let dates;switch(dateRange.toLowerCase()){case"yesterday":dates=this.getYesterday();break;case"today":dates=this.getToday();break;case"last 7 days":dates=this.getLast7days();break;case"last 30 days":dates=this.getLast30days();break;case"this month":dates=this.getThisMonth();break;case"last month":dates=this.getLastMonth();break;case"this quarter":dates=this.getThisQuarter();break;case"last quarter":dates=this.getLastQuarter();break;case"ytd":dates=this.getYTD();break;case"last year":dates=this.getLastYear();break;case"fiy year":dates=this.getFIY();break;case"pfiy year":dates=this.getPFIY();break;case"custom range":case"null":if(dates={fromDate:"",toDate:""},isContainer){let FromDate=$("#hfBizgaze_ReportFromDate"+containterId+"_"+id).val(),ToDate=$("#hfBizgaze_ReportToDate"+containterId+"_"+id).val();format="YYYY/MM/DD";FromDate==""&&ToDate==""&&(FromDate=moment().startOf("year").format(format),ToDate=moment().endOf("year").format(format));dates.fromDate=moment.utc();dates.toDate=moment.utc();this.dateFilters.length!=0?(date=this.dateFilters.find(d=>d.ParameterValue==id),date!=null&&(dates.fromDate=moment.utc(date.FromDate,format),dates.toDate=moment.utc(date.ToDate,format))):(dates.fromDate=moment.utc(FromDate,format),dates.toDate=moment.utc(ToDate,format))}else{let FromDate=$("#hfBizgaze_CompareFromDate").val(),ToDate=$("#hfBizgaze_CompareToDate").val();format="YYYY/MM/DD";FromDate==""&&ToDate==""&&(FromDate=moment().startOf("year").format(format),ToDate=moment().endOf("year").format(format));dates.fromDate=moment.utc(FromDate,format);dates.toDate=moment.utc(ToDate,format)}break;default:isContainer&&($("#hfBizgaze_FromDate"+containterId+"_"+id).val(moment().startOf("year").format(this.serverFormat)),$("#hfBizgaze_ToDate_"+containterId+"_"+id).val(moment().endOf("year").format(this.serverFormat)),_datetimehelper=Unibase.Platform.Helpers.DateTimeHelper.Instance(),_datetimehelper.dateRangePicker("#report-daterange"+containterId+"-"+id,function(start,end){$("#hfBizgaze_FromDate"+containterId+"_"+id).val(start.format(this.serverFormat));$("#hfBizgaze_ToDate_"+containterId+"_"+id).val(end.format(this.serverFormat));$(".daterangepicker").css("top","100px").css("right","100px").css("display","block")}),$("#hfBizgaze_CompareFromDate").val(moment().startOf("year").format(this.serverFormat)),$("#hfBizgaze_CompareToDate").val(moment().endOf("year").format(this.serverFormat)),_datetimehelper.dateRangePicker("#compare-daterange",function(start,end){$("#hfBizgaze_CompareFromDate").val(start.format(this.serverFormat));$("#hfBizgaze_CompareToDate").val(end.format(this.serverFormat))}))}return dates}static Instance(){return this.instance===undefined&&(this.instance=new FilterPanel),this.instance}}Components.FilterPanel=FilterPanel})(Components=Analytics.Components||(Analytics.Components={}))})(Analytics=Platform.Analytics||(Platform.Analytics={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))}(Unibase||(Unibase={})),function(Unibase){let Platform;(function(Platform){let DataSources;(function(DataSources){let Components;(function(Components){class QueryParser extends Unibase.Platform.Core.BaseComponent{constructor(){super(...arguments);this.ErrorThrown=!1;this.starCount=0}getInitialSelectHtml(SubQuery,Union){Union&&(SubQuery=!0);let sub_query_cls=this.getContainerClass(SubQuery,Union),cls=SubQuery?Union?sub_query_cls+" union_query":sub_query_cls+" sub_query":"main_query";return`<div class="${cls} select_container" id= "${sub_query_cls}">
- <a class="btn remove_btn ${!SubQuery&&"hidden"} pull-right" href="javascript:;"><i class="las la-times font-18"></i></a>
- <div class='initialselect_div row'>
- <div class="row star_container ${sub_query_cls}">
- <strong>select * </strong>
- <div class="custom-control custom-checkbox checkbox-primary ml-10">
- <input type="checkbox" class="custom-control-input ${sub_query_cls} query_star" id="query_select_star_${++this.starCount}" checked="">
- <label class="custom-control-label" for="query_select_star_${this.starCount}"></label>
- </div>
- <div class="tables_star_container row">
-
- </div>
- <a href="javascript:;" class="get_tables_star"> refresh tables star's </a>
- <a class="btn remove_btn ${!SubQuery&&"hidden"}" href="javascript:;"><i class="las la-times font-18"></i></a>
- </div>
- </div>
- <div class="datalist_column_container ${sub_query_cls} row">
- ${this.getAddColumnHtml()}
- </div>
- <div class="datalist_tables_container ${sub_query_cls}" >
- ${this.getTableHtml()}
- </div>
- <div class="datalist_where_container row mt-40 ${sub_query_cls}">
- ${this.getInitialWhereHtml(sub_query_cls)}
- </div>
- <div class="datalist_ord_grp_hav_container row mt-40 ${sub_query_cls}">
- ${this.getInitialClauseHtml(sub_query_cls)}
- </div>
- </div>
- ${this.getUnionDropDwnHtml()}`}getContainerClass(SubQuery,Union){let sub_query_cls="sub_query_"+($(".sub_query").length+1);return SubQuery||Union?Union&&(Union&&(SubQuery=!0),sub_query_cls="union_query_"+($(".union_query").length+1)):sub_query_cls="main_query",sub_query_cls}getAddColumnHtml(){return` <div class='datalist_column row col-6'>
- <input type="text" class="form-control col-5 datalist_column_name" placeholder="Column Name">
- <strong class="">As</strong>
- <input type="text" class="form-control col-2 datalist_column_alias_name" placeholder="Alias Name">
- <button class="btn btn-icon btn-secondary add_datalist_column">
- <span class="btn-icon-wrap"><i class="icon-plus"></i></span></button>
- </div>`}getTableHtml(){return`<div class='datalist_tablename_container row'>
- <strong>from</strong>
- <input type="text" class="form-control col-5 table_name" placeholder="Table Name">
- <div class="custom-control is_subquery_chk_box_wrapper custom-checkbox checkbox-primary ml-10">
- <input type="checkbox" class="custom-control-input is_subquery" id="is_subquery_${++this.starCount}" data-ischecked=false>
- <label class="custom-control-label" for="is_subquery_${this.starCount}"></label>
- </div>
- <strong>As</strong>
- <input type="text" class="form-control col-3 alias_name" placeholder="Alias Name">
- <button class="btn btn-icon btn-secondary add_join">
- <span class="btn-icon-wrap"><i class="icon-plus"></i></span>
- </button>
- <div class="sub_query_div hidden w-100" ></div>
- </div>`}getJoinDropDown(){return`<select class="form-control custom-select join_dropdown col-1">
- <option value="1" selected>Inner Join</option>
- <option value="2">Outer Join</option>
- <option value="3">Left Join</option>
- <option value="4">Full JOin</option>
- <option value="5">Right Join</option>
- <option value="6">Cross Join</option>
- </select>`}getJoinHtml(){return`<div class="join_row row">
- <select class="form-control custom-select join_dropdown col-1">
- <option value="1" selected>Inner Join</option>
- <option value="2">Outer Join</option>
- <option value="3">Left Join</option>
- <option value="4">Full JOin</option>
- <option value="5">Right Join</option>
- <option value="6">Cross Join</option>
- </select>
- <input type="text" class="form-control table_name col-2" placeholder="Join table">
- <div class="custom-control is_subquery_chk_box_wrapper custom-checkbox checkbox-primary ml-10">
- <input type="checkbox" class="custom-control-input is_subquery" id="is_subquery_${++this.starCount}" data-ischecked=false >
- <label class="custom-control-label" for="is_subquery_${this.starCount}"></label>
- </div>
- <strong>As</strong>
- <input type="text" class="form-control alias_name col-1" placeholder="Alias Name">
- <strong>on</strong>
- <input type="text" class="form-control join_table1_column col-2" placeholder="Condition">
- <strong>=</strong>
- <input type="text" class="form-control join_table2_column col-2" placeholder="Condition">
- <button class="btn btn-icon btn-secondary add_join">
- <span class="btn-icon-wrap"><i class="icon-plus"></i></span>
- </button>
- <div class="sub_query_div hidden w-100" ></div>
-
- </div>`}getInitialWhereHtml(cls){return`<div class="div_where_container ${cls}">
- <strong>Where </strong>
- ${this.getWhereHtml(cls)}
- </div>`}getWhereHtml(cls){return` <div class ='condition_row ${cls} row'>
- <input type="text" class="form-control col-3 aggregation_column_name" placeholder="Column Name">
- <div class="whr_btw_wrapper row col-7">
- <select class="form-control custom-select aggregation_type_operator col-3">
- <option value="1" selected>Equal to</option>
- <option value="2">Greater Than</option>
- <option value="3">Less Than</option>
- <option value="4">Between</option>
- <option value="5">Greater Than Equal to</option>
- <option value="6">Less Than Equal to</option>
- <option value="7">Not Equal to</option>
- <option value="8">Less Than Column</option>
- <option value="9">Greater Than Column</option>
- <option value="10">In</option>
- <option value="11">Not In</option>
- <option value="12">Is Null</option>
- <option value="13">!Is Null</option>
- </select>
- <input type="text" class="form-control col-4 value1" placeholder="Enter Value">
- ${this.getBetweenHtml()}
- <div class="custom-control where_subquery_wrapper custom-checkbox checkbox-primary ml-10">
- <input type="checkbox" class="custom-control-input where_subquery" id="is_subquery_${++this.starCount}"" data-ischecked="false">
- <label class="custom-control-label" for="is_subquery_${this.starCount}""></label>
- </div>
- </div>
- <select class="form-control custom-select add_condition col-1">
- <option value="0" selected>Add Conditon</option>
- <option value="1">And</option>
- <option value="2">Or</option>
- </select>
- <div class="sub_query_div hidden w-100" ></div>
- </div>`}getBetweenHtml(){return`<div class="btw_wrapper row hidden col-5"> <strong>And</strong>
- <input type="text" class="form-control col-10 value2" placeholder="Enter Value">
- </div>`}getInitialClauseHtml(cls){return`<div class="clause_container ${cls} col-12" >
- <strong>Clause</strong>
- ${this.getClauseHtml()}
- </div>`}getClauseDwnHtml(){return`<select class="form-control custom-select clause_type col-1">
- <option value="1">Order by</option>
- <option value="2">Group by</option>
- <option value="3">Having</option>
- </select>`}getClauseHtml(){return`<div class="clause_row row">
- ${this.getClauseDwnHtml()}
- <div class="clause_wrapper row col-8">
- ${this.getOrderByAggregationHtml()}
- </div>
- <button class="btn btn-icon btn-secondary add_clause">
- <span class="btn-icon-wrap"><i class="icon-plus"></i></span>
- </button>
- </div>`}getClauseWrapperWithHavingHtml(){return` <div class="clause_wrapper row col-8">
- ${this.getHavingClauseHtml()}
- </div>`}getOrderByAggregationHtml(){return`<input type="text" class="form-control col-8 columns" placeholder="columns seperated by (,)">
- <select class="form-control custom-select order_by_type col-2">
- <option value="1" selected>Asc</option>
- <option value="2">Desc</option>
- </select>`}getGroupByClauseHtml(){return`<input type="text" class="form-control col-8 columns" placeholder="columns seperated by (,)">`}getHavingClauseHtml(){return`<input type="text" class="form-control col-2 column_name" placeholder="Enter Column">
- <select class="form-control custom-select clause_expression_type col-2">
- <option value="1" selected>Equal to</option>
- <option value="2">Greater Than</option>
- <option value="3">Less Than</option>
- <option value="4">Between</option>
- <option value="5">Greater Than Equal to</option>
- <option value="6">Less Than Equal to</option>
- <option value="7">Not Equal to</option>
- <option value="8">Less Than Column</option>
- <option value="9">Greater Than Column</option>
- <option value="10">In</option>
- <option value="11">Not In</option>
- <option value="12">Is Null</option>
- <option value="13">!Is Null</option>
- </select>
- <input type="text" class="form-control col-2 value1" placeholder="Enter Value">
- ${this.getBetweenHtml()}
- <select class="form-control custom-select add_having_clause col-1">
- <option value="0" selected>Add Having</option>
- <option value="1">And</option>
- <option value="2">Or</option>
- </select>
- `}getUnionDropDwnHtml(){return`<select class="form-control custom-select union_drop_down col-1">
- <option value="0" selected>select</option>
- <option value="1"> Union </option>
- <option value="2"> Union All </option>
- </select>`}mouseDown(e){let container=$(e.target).closest(".select_container"),container_cls=container.attr("id");if(e.target.closest(".add_datalist_column")||e.target.classList.contains("add_datalist_column"))container.find(`.${container_cls}.datalist_column_container`).first().children().last().find(".add_datalist_column").addClass("hidden"),container.find(`.${container_cls}.datalist_column_container`).first().children().last().append(this.getCloseBtnHtml()),container.find(`.${container_cls}.datalist_column_container`).first().append(this.getAddColumnHtml());else if(e.target.closest(".remove_btn")||e.target.classList.contains("remove_btn")){let datalistColumnRow=$(e.target).closest(".datalist_column"),joinRow=$(e.target).closest(".join_row"),conditionRow=$(e.target).closest(".condition_row"),clauseRow=$(e.target).closest(".clause_row"),initialSelect=$(e.target).closest(".initialselect_div").first(),subquery=$(e.target).closest(".sub_query").first(),subQueryDiv=$(e.target).closest(".sub_query_div").first();datalistColumnRow.length?datalistColumnRow.remove():clauseRow.length?clauseRow.remove():joinRow.length?joinRow.remove():conditionRow.length?conditionRow.remove():initialSelect.length?(initialSelect.parent().next().remove(),initialSelect.parent().prev().val("0"),initialSelect.parent().remove(),subQueryDiv.children().length||subQueryDiv.addClass("hidden")):!subquery.length||datalistColumnRow.length||clauseRow.length||joinRow.length||conditionRow.length||initialSelect.length||subQueryDiv.empty().addClass("hidden")}else if(e.target.closest(".add_join")||e.target.classList.contains("add_join"))$(e.target).closest(".join_row").append(this.getCloseBtnHtml()),$(e.target).closest(".add_join").remove(),container.find(`.${container_cls}.datalist_tables_container`).first().append(this.getJoinHtml());else if(e.target.closest(".add_clause")||e.target.classList.contains("add_clause"))$(e.target).closest(".clause_row").append(this.getCloseBtnHtml()),container.find(`.${container_cls}.clause_container`).first().append(this.getClauseHtml()),$(e.target).closest(".add_clause").remove();else if(e.target.classList.contains("get_tables_star")){let element,clst_sub_query=$(e.target).closest(".sub_query"),clst_main_query=$(e.target).closest("#main_query"),clst_union_query=$(e.target).closest(".union_query");clst_union_query.length?element=clst_union_query:clst_sub_query.length?element=clst_sub_query:clst_main_query.length&&(element=clst_main_query);$(e.target).prev().html(this.getStarHtml(element))}else if(e.target.closest(".is_subquery_chk_box_wrapper")||e.target.classList.contains("is_subquery")){let checkbox=$(e.target).siblings(".is_subquery").length?$(e.target).siblings(".is_subquery"):$(e.target).closest(".is_subquery"),checkbox_wrapper=$(e.target).closest(".is_subquery_chk_box_wrapper"),is_subquery=!checkbox.data("ischecked"),sub_query_div=checkbox_wrapper.siblings(".sub_query_div");checkbox.data("ischecked",is_subquery);is_subquery?(sub_query_div.removeClass("hidden"),sub_query_div.children().length||sub_query_div.append(this.getInitialSelectHtml(!0))):sub_query_div.addClass("hidden")}else if(e.target.closest(".where_subquery_wrapper")||e.target.classList.contains("where_subquery")){let checkbox=$(e.target).siblings(".where_subquery").length?$(e.target).siblings(".where_subquery"):$(e.target).closest(".where_subquery"),checkbox_wrapper=$(e.target).closest(".where_subquery_wrapper"),is_subquery=!checkbox.data("ischecked"),sub_query_div=checkbox_wrapper.parent().siblings(".sub_query_div");checkbox.data("ischecked",is_subquery);is_subquery?(sub_query_div.removeClass("hidden"),checkbox.prop("checked",!0),sub_query_div.children().length||sub_query_div.append(this.getInitialSelectHtml(!0))):(sub_query_div.addClass("hidden"),checkbox.prop("checked",!1))}}changeEvent(e){let container=$(e.target).closest(".select_container"),cls=container.attr("id");if(e.target.closest(".aggregation_type_operator")||e.target.classList.contains("aggregation_type_operator"))e.target.selectedIndex+1==DataSources.Enums.ExpressionType.Between?$(e.target.closest(".whr_btw_wrapper")).find(".btw_wrapper").removeClass("hidden"):$(e.target.closest(".whr_btw_wrapper")).find(".btw_wrapper").addClass("hidden"),e.target.selectedIndex+1==DataSources.Enums.ExpressionType.IsNull||e.target.selectedIndex+1==DataSources.Enums.ExpressionType.IsNotNull?$(e.target).next().addClass("hidden"):$(e.target).next().removeClass("hidden");else if(e.target.closest(".clause_expression_type")||e.target.classList.contains("clause_expression_type"))e.target.selectedIndex+1==DataSources.Enums.ExpressionType.Between?$(e.target.closest(".clause_wrapper")).find(".btw_wrapper").removeClass("hidden"):$(e.target.closest(".clause_wrapper")).find(".btw_wrapper").addClass("hidden"),e.target.selectedIndex+1==DataSources.Enums.ExpressionType.IsNull||e.target.selectedIndex+1==DataSources.Enums.ExpressionType.IsNotNull?$(e.target).next().addClass("hidden"):$(e.target).next().removeClass("hidden");else if(e.target.closest(".clause_type")||e.target.classList.contains("clause_type"))Number(e.target.value)==Unibase.Platform.DataSources.Enums.ClauseType.OrderBy?$(e.target).closest(".clause_row").find(".clause_wrapper").html(this.getOrderByAggregationHtml()):Number(e.target.value)==Unibase.Platform.DataSources.Enums.ClauseType.GroupBy?$(e.target).closest(".clause_row").find(".clause_wrapper").html(this.getGroupByClauseHtml()):Number(e.target.value)==Unibase.Platform.DataSources.Enums.ClauseType.Having&&$(e.target).closest(".clause_row").find(".clause_wrapper").html(this.getHavingClauseHtml());else if(e.target.closest(".add_condition")||e.target.classList.contains("add_condition")){let conditionRow=$(e.target).closest(".condition_row");conditionRow.next(".condition_row").length||(conditionRow.append(this.getCloseBtnHtml()),conditionRow.after(this.getWhereHtml(cls)))}else if(e.target.closest(".add_having_clause")||e.target.classList.contains("add_having_clause")){let currentClauseWrapper=$(e.target).closest(".clause_wrapper");Number(e.target.value)==0||currentClauseWrapper.next(".clause_wrapper").length||currentClauseWrapper.after(this.getClauseWrapperWithHavingHtml())}else e.target.classList.contains("union_drop_down")&&(Number(e.target.value)==0||$(e.target).next(".select_container").length||$(e.target).parent().append(this.getInitialSelectHtml(!1,!0)))}getIsSubOrUnionFromCls(cls){let IsSub,IsUni,IsMain;return cls&&(cls.startsWith("main_")?IsMain=!1:cls.startsWith("sub_")?IsSub=!0:cls.startsWith("union_")&&(IsUni=!0)),{IsSubQuery:IsSub,IsUnionQuery:IsUni,IsMainQuery:IsMain}}getOperatorSymbolFromText(text){let returnString="";switch(text){case"greater than":returnString=">";break;case"less than":returnString="<";break;case"equal to":returnString="=";break;case"greater than equal to":returnString=">=";break;case"less than equal to":returnString="<=";break;case"not equal to":returnString="!="}return returnString?returnString:text}showError(message){return this.ErrorThrown=!0,MessageHelper.Instance().showError(message,"bl-datalist_error")}getCloseBtnHtml(){return`<a class="btn remove_btn" href="javascript:;"><i class="las la-times font-18"></i></a>`}getStarHtml(SelectContainerJqueryEle){let dataListTables=[],container_cls=SelectContainerJqueryEle.attr("id"),tablesContainer=SelectContainerJqueryEle.find(".datalist_tables_container").first().children(),html="",isGlobalStartSelected;isGlobalStartSelected=SelectContainerJqueryEle.find("."+container_cls+".query_star").first().prop("checked");jQuery.each(tablesContainer,(index,column)=>{let tableName=$(column).find(".table_name").val(),aliasName=$(column).find(".alias_name").val();if(tableName||aliasName){let table={DocTableAliasName:aliasName?aliasName:tableName,DocTypeTableName:tableName,IsMainTable:index==0?!0:!1,IsSubQuery:!1,IsStarSelected:index==0?isGlobalStartSelected:!1};dataListTables.push(table)}});for(var i=0;i<dataListTables.length;i++)html+=`<div class="select_star_wrapper"><strong>${dataListTables[i].DocTableAliasName}</strong>
- <div class="custom-control custom-checkbox checkbox-primary ml-10">
- <input type="checkbox" class="custom-control-input table_star" id="${dataListTables[i].DocTableAliasName+"_select_star"}" >
- <label class="custom-control-label" for="${dataListTables[i].DocTableAliasName+"_select_star"}"></label>
- </div></div>`;return html}generateDynamicQuery(SelectContainerEle){let dataListColumns=[],dataListJoins=[],dataListTables=[],dataListWhere=[],dataListClause=[],dynamicQuery,select_cls=SelectContainerEle.attr("id"),unionType=parseInt(SelectContainerEle.next().val()),unionQuery,isGlobalStartSelected=SelectContainerEle.find("."+select_cls+".query_star").first().prop("checked"),columnsContainer=SelectContainerEle.find("."+select_cls+".datalist_column_container").first().children(),tablesContainer=SelectContainerEle.find("."+select_cls+".datalist_tables_container").first().children(),whereContainer=SelectContainerEle.find("."+select_cls+".datalist_where_container").first().find("."+select_cls+".condition_row"),clauseContainer=SelectContainerEle.find("."+select_cls+".clause_container").first().children(".clause_row");if(jQuery.each(columnsContainer,(index,column)=>{let aliasName=$(column).find(".datalist_column_alias_name").val(),columnName=$(column).find(".datalist_column_name").val();if(index!=0||aliasName||columnName){let newColumn={ColumnName:columnName,AliasName:aliasName?aliasName:columnName};columnName&&dataListColumns.push(newColumn)}}),jQuery.each(tablesContainer,(index,column)=>{let dynamicSubQuery,joinType=$(column).find(".join_dropdown").val(),tableName=$(column).find(".table_name").val(),aliasName=$(column).find(".alias_name").val(),table1_clmn=$(column).find(".join_table1_column").val(),table2_clmn=$(column).find(".join_table2_column").val(),is_subquery=$(column).find(".is_subquery").first().data("ischecked");if(is_subquery){let subQuerySelectContainer=$(column).children(".is_subquery_chk_box_wrapper").siblings(".sub_query_div").find(".select_container").first();dynamicSubQuery=this.generateDynamicQuery(subQuerySelectContainer)}let JoinTable={DocTypeTable1Column:table1_clmn,DocTypeTable2Column:table2_clmn},table={DocTableAliasName:aliasName?aliasName:tableName,DocTypeTableName:tableName,IsMainTable:index==0?!0:!1,IsSubQuery:is_subquery,IsStarSelected:!1,SubQuery:dynamicSubQuery};table.IsStarSelected=SelectContainerEle.find("#"+table.DocTableAliasName+"_select_star").is(":checked");let join={DocTypeTableName:tableName,DocTableAliasName:aliasName,IsPrimaryKey:!1,on:JoinTable,DocJoinType:Number(joinType)||0};table.DocTypeTableName&&(dataListTables.push(table),dataListJoins.push(join))}),jQuery.each(whereContainer,(index,column)=>{let columnName=$(column).find(".aggregation_column_name").val(),value1=$(column).find(".value1").val(),value2=$(column).find(".value2").val(),aggregation_type=$(column).find(".aggregation_type_operator option:selected").val(),add_condition=$(column).find(".add_condition option:selected").val(),isBetween=!1,isSubQuery=$(column).find(".where_subquery").data("ischecked"),subQuery;if(isBetween=Number(aggregation_type)==DataSources.Enums.ExpressionType.Between?!0:!1,isSubQuery){let container_ele=$(column).find(".sub_query_div .select_container").first();subQuery=this.generateDynamicQuery(container_ele)}let where={ColumnName:columnName,Value1:value1,Value2:value2,ExpressionType:Number(aggregation_type),IsBetween:isBetween,AddConditionType:Number(add_condition),IsSubQuery:isSubQuery,SubQuery:isSubQuery?subQuery:null};where.ColumnName&&dataListWhere.push(where)}),jQuery.each(clauseContainer,(index,column)=>{let clauseWrappers=$(column).children(".clause_wrapper"),columns=$(column).find(".columns").val(),clauseType=$(column).find(".clause_type").val(),orderByType=$(column).find(".order_by_type").val(),value1=$(column).find(".value1").val(),value2=$(column).find(".value2").val(),exp_type=$(column).find(".clause_expression_type option:selected").val(),add_condition=$(column).find(".add_having_clause option:selected").val(),isHaving=!1,isBetween=!1;isHaving=Number(clauseType)==DataSources.Enums.ClauseType.Having?!0:!1;isBetween=Number(exp_type)==DataSources.Enums.ExpressionType.Between?!0:!1;let havingClauseArray=[];Number(clauseType)==DataSources.Enums.ClauseType.Having&&$.each(clauseWrappers,(i,ele)=>{let column=$(ele).find(".column_name").val(),value1=$(ele).find(".value1").val(),value2=$(ele).find(".value2").val(),exp_type=$(ele).find(".clause_expression_type option:selected").val(),add_condition=$(ele).find(".add_having_clause option:selected").val();isBetween=Number(exp_type)==DataSources.Enums.ExpressionType.Between?!0:!1;let havingClause;havingClause={IsBetween:isBetween,Value1:value1,Value2:value2,ColumnName:column,AddConditionType:Number(add_condition),ExpressionType:Number(exp_type),IsSubQuery:!1,SubQuery:null};havingClauseArray.push(havingClause)});let clause={ClauseType:Number(clauseType),Columns:columns,IsHaving:isHaving,OrderBy:Number(orderByType)||0,Having:havingClauseArray};(clause.IsHaving||clause.Columns)&&(!clause.IsHaving||!clause.Having.length||clause.Having[0].ColumnName)&&dataListClause.push(clause)}),!isGlobalStartSelected&&!dataListColumns.length)return new DataSources.Requests.DynamicQuery;if(!this.ErrorThrown){if(dynamicQuery={DataListColumns:dataListColumns,DataListDocTypes:dataListTables,DataListWhere:dataListWhere,DataListJoins:dataListJoins,DataListClause:dataListClause,IsStarSelected:isGlobalStartSelected,IsUnion:!1,UnionType:1,UnionQuery:null,TempName:null},unionType){let unionElement=SelectContainerEle.next().next();unionQuery=this.generateDynamicQuery(unionElement);dynamicQuery.IsUnion=!0;dynamicQuery.UnionType=unionType;dynamicQuery.UnionQuery=unionQuery}return dynamicQuery}}bindDynamicQuery(dynamic,SubQuery,IsUnion){var j,i;let queryCls=SubQuery?"sub_query_"+$(".sub_query").length:"main_query";IsUnion&&(queryCls="union_query_"+$(".union_query").length);var columnsContainer=$(`.${queryCls}.datalist_column_container`).children(),tablesContainer=$(`.${queryCls}.datalist_tables_container`).children(),whereContainer=$(`.${queryCls}.datalist_where_container`).find(`.${queryCls}.condition_row`),clauseContainer=$(`.${queryCls}.clause_container`).children(`.clause_row`);for(i=0;i<dynamic.DataListColumns.length;i++)$(columnsContainer[i]).find(".datalist_column_name").val(dynamic.DataListColumns[i].ColumnName),dynamic.DataListColumns[i].AliasName!=dynamic.DataListColumns[i].ColumnName&&$(columnsContainer[i]).find(".datalist_column_alias_name").val(dynamic.DataListColumns[i].AliasName),i!=dynamic.DataListColumns.length-1&&($(columnsContainer[i]).find(".add_datalist_column").click().trigger("mousedown"),columnsContainer=$(`.${queryCls}.datalist_column_container`).children());for(i=0;i<dynamic.DataListJoins.length;i++){$(tablesContainer[i]).find(".table_name").val(dynamic.DataListJoins[i].DocTypeTableName);dynamic.DataListJoins[i].DocTableAliasName!=dynamic.DataListJoins[i].DocTypeTableName&&$(tablesContainer[i]).find(".alias_name").val(dynamic.DataListJoins[i].DocTableAliasName);i!=0&&($(tablesContainer[i]).find(".join_table1_column").val(dynamic.DataListJoins[i].on.DocTypeTable1Column),$(tablesContainer[i]).find(".join_table2_column").val(dynamic.DataListJoins[i].on.DocTypeTable2Column),$(tablesContainer[i]).find(".join_dropdown").val(dynamic.DataListJoins[i].DocJoinType.toString()));let table=dynamic.DataListDocTypes.find(x=>x.DocTypeTableName==dynamic.DataListJoins[i].DocTypeTableName);table&&table.IsSubQuery&&($(tablesContainer[i]).find(".is_subquery").click().trigger("mousedown"),this.bindDynamicQuery(table.SubQuery,!0));i!=dynamic.DataListJoins.length-1&&($(tablesContainer[i]).find(".add_join").first().click().trigger("mousedown"),tablesContainer=$(`.${queryCls}.datalist_tables_container`).children())}for(i=0;i<dynamic.DataListWhere.length;i++)$(whereContainer[i]).find(".aggregation_type_operator").val(dynamic.DataListWhere[i].ExpressionType.toString()).trigger("change"),$(whereContainer[i]).find(".aggregation_column_name").val(dynamic.DataListWhere[i].ColumnName),$(whereContainer[i]).find(".value1").val(dynamic.DataListWhere[i].Value1),dynamic.DataListWhere[i].IsBetween&&$(whereContainer[i]).find(".value2").val(dynamic.DataListWhere[i].Value2),i!=dynamic.DataListWhere.length-1&&($(whereContainer[i]).find(".add_condition").first().val(dynamic.DataListWhere[i].AddConditionType.toString()).trigger("change"),whereContainer=$(`.${queryCls}.datalist_where_container`).find(`.${queryCls}.condition_row`)),dynamic.DataListWhere[i].IsSubQuery&&($(whereContainer[i]).find(".where_subquery").first().click().trigger("mousedown"),this.bindDynamicQuery(dynamic.DataListWhere[i].SubQuery,!0));for(i=0;i<dynamic.DataListClause.length;i++){if($(clauseContainer[i]).find(".clause_type").val(dynamic.DataListClause[i].ClauseType.toString()).trigger("change"),$(clauseContainer[i]).find(".columns").val(dynamic.DataListClause[i].Columns),dynamic.DataListClause[i].ClauseType==DataSources.Enums.ClauseType.OrderBy)$(clauseContainer[i]).find(".order_by_type").val(dynamic.DataListClause[i].OrderBy.toString());else if(dynamic.DataListClause[i].ClauseType==DataSources.Enums.ClauseType.Having){let clauseWrapper=$(clauseContainer[i]).find(".clause_wrapper"),havings=dynamic.DataListClause[i].Having;for(j=0;j<havings.length;j++)$(clauseWrapper[j]).find(".column_name").val(havings[j].ColumnName),$(clauseWrapper[j]).find(".clause_expression_type").val(havings[j].ExpressionType.toString()).trigger("change"),$(clauseWrapper[j]).find(".value1").val(havings[j].Value1),havings[j].IsBetween&&$(clauseWrapper[j]).find(".value2").val(havings[j].Value2),i!=havings.length-1&&($(clauseWrapper[j]).find(".add_having_clause").val(havings[j].AddConditionType.toString()).trigger("change"),clauseWrapper=$(clauseContainer[i]).find(".clause_wrapper"))}i!=dynamic.DataListClause.length-1&&($(clauseContainer[i]).find(".add_clause").click().trigger("mousedown"),clauseContainer=$(`.${queryCls}.clause_container`).children(`.clause_row`))}for($(`.${queryCls} .get_tables_star`).first().click().trigger("mousedown"),i=0;i<dynamic.DataListDocTypes.length;i++)if(dynamic.DataListDocTypes[i].IsStarSelected){let radioClassName=dynamic.DataListDocTypes[i].DocTableAliasName?dynamic.DataListDocTypes[i].DocTableAliasName:dynamic.DataListDocTypes[i].DocTypeTableName;$(`#${radioClassName}_select_star`).prop("checked",!0)}dynamic.IsStarSelected?$("."+queryCls+".query_star").first().prop("checked",!0):$("."+queryCls+".query_star").first().prop("checked",!1);dynamic.IsUnion&&($("#"+queryCls).next().val(dynamic.UnionType).trigger("change"),this.bindDynamicQuery(dynamic.UnionQuery,!1,!0))}parseQueryToDynamic(query){let tempQuery=query,tables=[],tempTables=[],columns=[],joinsArr=[],clauseArr=[],whereArr=[],dynamicQuery=new DataSources.Requests.DynamicQuery,sub_dynamicQuery=new DataSources.Requests.DynamicQuery,unionQuery=new DataSources.Requests.DynamicQuery;tempQuery=tempQuery.toLowerCase().trim();let selectStr="select ",whereStr="where ",openBrac="(",indexOfSelect=tempQuery.indexOf(selectStr),indexOfFrom=tempQuery.indexOf("from "),indexOfBrac,remainingQuery="",slctToFrom="",fromToSubQuery="",unionIdx,unionAllIdx,unionMinIdx,whereIdx,tableNames=[];if(slctToFrom=tempQuery.substring(indexOfSelect,indexOfFrom+5),slctToFrom.includes(" *")&&(dynamicQuery.IsStarSelected=!0,slctToFrom=slctToFrom.replace("*",""),tempQuery=tempQuery.replace("*","").trim()),columns=this.getDataListColumnsFromSelectString(slctToFrom),tempQuery=tempQuery.replace(slctToFrom,"").trim(),indexOfSelect=tempQuery.indexOf(selectStr),indexOfBrac=tempQuery.indexOf(openBrac),fromToSubQuery=tempQuery.substring(0,indexOfSelect-1).trim(),remainingQuery=tempQuery,whereIdx=tempQuery.indexOf(whereStr),unionIdx=tempQuery.indexOf(" union")==-1?Infinity:tempQuery.indexOf(" union"),unionAllIdx=tempQuery.indexOf(" union all")==-1?Infinity:tempQuery.indexOf(" union all"),unionMinIdx=Math.min(unionIdx,unionAllIdx),indexOfBrac!=-1&&indexOfSelect!=-1)if(indexOfBrac<indexOfSelect){while(indexOfSelect!=-1){if(unionIdx=remainingQuery.indexOf(" union")==-1?Infinity:remainingQuery.indexOf(" union"),unionAllIdx=remainingQuery.indexOf(" union all")==-1?Infinity:remainingQuery.indexOf(" union all"),indexOfSelect=remainingQuery.indexOf(selectStr),indexOfBrac=remainingQuery.indexOf(openBrac),unionMinIdx=Math.min(unionIdx,unionAllIdx),whereIdx>indexOfSelect&&unionMinIdx>indexOfSelect){let table=new DataSources.Requests.DataListTable;fromToSubQuery=remainingQuery.substring(0,indexOfSelect);remainingQuery=tempQuery.replace(fromToSubQuery,"").trim();fromToSubQuery=fromToSubQuery.substring(0,fromToSubQuery.lastIndexOf(openBrac)).trim();let sub_rmng_result=this.getSubQueryAndRmngQuery(remainingQuery);table.SubQuery=sub_rmng_result.SubDynamicQuery;table.DocTableAliasName=sub_rmng_result.SubQueryAliasName;table.DocTypeTableName=`__subquerytable_${++this.subQueryNumber}`;table.IsSubQuery=!0;tables.push(table);remainingQuery=fromToSubQuery.trim()+` __subquerytable_${this.subQueryNumber} `+sub_rmng_result.RemainingQuery}else if(whereIdx<indexOfSelect&&unionMinIdx>indexOfSelect&&unionMinIdx!=Infinity){let whereResult=this.getSubQueriesInWhere(remainingQuery);remainingQuery=whereResult.RemaingQuery;whereArr=whereArr.concat(whereResult.listOfWhere)}else if(indexOfSelect>unionMinIdx&&unionMinIdx!=Infinity&&indexOfSelect!=-1){let unionResult=this.getUnionsAndRemainingQuery(remainingQuery);dynamicQuery.IsUnion=unionResult.IsUnion;dynamicQuery.UnionType=unionResult.UnionType;dynamicQuery.UnionQuery=unionResult.UnionQuery;remainingQuery=unionResult.CurrentRmngQuery}indexOfSelect=remainingQuery.indexOf(selectStr);whereIdx=remainingQuery.indexOf(whereStr);whereIdx==-1&&(whereIdx=Infinity);indexOfSelect!=-1&&(fromToSubQuery=remainingQuery.substring(0,indexOfSelect).trim(),tempQuery=remainingQuery.replace(fromToSubQuery,"").trim())}if(remainingQuery.length){let result=this.getTablesJoinsClauses(remainingQuery);whereArr=whereArr.concat(result.Where);joinsArr=joinsArr.concat(result.Joins);clauseArr=clauseArr.concat(result.Clause);tables=tables.concat(result.Tables)}}else indexOfBrac<indexOfSelect;else if(indexOfSelect!=-1&&unionMinIdx!=-1&&indexOfSelect>unionMinIdx){let unionResult=this.getUnionsAndRemainingQuery(tempQuery);dynamicQuery.IsUnion=unionResult.IsUnion;dynamicQuery.UnionType=unionResult.UnionType;dynamicQuery.UnionQuery=unionResult.UnionQuery;remainingQuery=unionResult.CurrentRmngQuery;let result=this.getTablesJoinsClauses(remainingQuery);whereArr=whereArr.concat(result.Where);joinsArr=joinsArr.concat(result.Joins);clauseArr=clauseArr.concat(result.Clause);tables=tables.concat(result.Tables)}else if(indexOfSelect==-1){let result=this.getTablesJoinsClauses(tempQuery);whereArr=whereArr.concat(result.Where);joinsArr=joinsArr.concat(result.Joins);clauseArr=clauseArr.concat(result.Clause);tables=tables.concat(result.Tables)}dynamicQuery.DataListDocTypes=tables;dynamicQuery.DataListWhere=whereArr;dynamicQuery.DataListColumns=columns;dynamicQuery.DataListJoins=joinsArr;dynamicQuery.DataListClause=clauseArr;dynamicQuery.TempName="";dynamicQuery.DataListJoins.forEach(x=>{x.DocTypeTableName.startsWith("__")&&x&&tableNames.push(x.DocTypeTableName)});tempTables=Object.assign([],dynamicQuery.DataListDocTypes);dynamicQuery.DataListDocTypes.filter(x=>{for(var idx,i=0;i<tableNames.length;i++)tableNames[i]!=x.DocTypeTableName||x.IsSubQuery||(idx=tempTables.indexOf(x),x&&idx!=-1&&tempTables.splice(idx,1))});dynamicQuery.DataListDocTypes=tempTables;for(var i=0;i<dynamicQuery.DataListDocTypes.length;i++)(slctToFrom.includes(dynamicQuery.DataListDocTypes[i].DocTypeTableName+".*")||slctToFrom.includes(dynamicQuery.DataListDocTypes[i].DocTableAliasName+".*"))&&(dynamicQuery.DataListDocTypes[i].IsStarSelected=!0);return dynamicQuery}getSubQueryAndRmngQuery(tempQuery){var i,j,k;let selectString="select ",closingIndex,subQuery="",remainingQuery="",fromToSubQuery="",subQueryAliasName="",whereIdx,groubyIdx,orderbyIdx,havingIdx,unionIdx,unionAllIdx,minIdx,indexOfSelect=tempQuery.indexOf(selectString),indexOfFrom=tempQuery.indexOf("from "),sub_dynamicQuery=new DataSources.Requests.DynamicQuery;if(closingIndex=this.getIndexOfCorrespondingCloseBracket(tempQuery),subQuery=tempQuery.substring(0,closingIndex-1),remainingQuery=tempQuery.substring(closingIndex,tempQuery.length).trim(),whereIdx=remainingQuery.indexOf(" where")==-1?Infinity:remainingQuery.indexOf(" where"),groubyIdx=remainingQuery.indexOf(" group by")==-1?Infinity:remainingQuery.indexOf(" group by"),orderbyIdx=remainingQuery.indexOf(" order by")==-1?Infinity:remainingQuery.indexOf(" order by"),havingIdx=remainingQuery.indexOf(" having")==-1?Infinity:remainingQuery.indexOf(" having"),unionIdx=remainingQuery.indexOf(" union")==-1?Infinity:remainingQuery.indexOf(" union"),unionAllIdx=remainingQuery.indexOf(" union all")==-1?Infinity:remainingQuery.indexOf(" union all"),minIdx=Math.min(whereIdx,groubyIdx,orderbyIdx,havingIdx,unionIdx,unionAllIdx),minIdx!=Infinity){let rmngSpltedQuery=remainingQuery.split(" "),joinsArray=[],lastRelation="",keywords=Object.values(DataSources.Enums.RelationType).filter(x=>typeof x=="string");for(keywords=keywords.concat(Object.values(DataSources.Enums.UnionType).filter(x=>typeof x=="string")),lastRelation=keywords.pop(),joinsArray=remainingQuery.split(lastRelation.toLowerCase()).map(x=>x.trim()),i=0;i<keywords.length;i++)for(j=0;j<joinsArray.length;j++){let split=joinsArray[j].split(keywords[i].toLowerCase()).map(x=>x.trim());if(split.length>1)for(joinsArray.splice(j,1),k=0;k<split.length;k++)joinsArray.splice(j+k,0,split[k])}subQueryAliasName=rmngSpltedQuery[1]&&rmngSpltedQuery[1].toLowerCase()=="on"?rmngSpltedQuery[0]:joinsArray[0].split(" ").length==1?joinsArray[0]:remainingQuery.substring(0,minIdx).trim()}else if(remainingQuery.length){let andIdx=remainingQuery.indexOf("and ")==-1?Infinity:remainingQuery.indexOf("and "),orIdx=remainingQuery.indexOf("or ")==-1?Infinity:remainingQuery.indexOf("or ");minIdx=Math.min(orIdx,andIdx);minIdx!=Infinity&&minIdx!=0?subQueryAliasName=remainingQuery.substring(0,minIdx):remainingQuery.split(" ")[0].trim()=="as"?subQueryAliasName=remainingQuery.split(" ")[1]:minIdx!=0&&(subQueryAliasName=remainingQuery)}return fromToSubQuery.length>1&&fromToSubQuery!="("&&(remainingQuery=fromToSubQuery+remainingQuery),indexOfSelect=subQuery.indexOf(selectString),indexOfSelect!=-1&&(sub_dynamicQuery=this.parseQueryToDynamic(subQuery)),{SubDynamicQuery:sub_dynamicQuery,RemainingQuery:remainingQuery,SubQueryAliasName:subQueryAliasName}}getTablesJoinsClauses(tempQuery){var k,j,i;tempQuery=tempQuery.toLowerCase().trim();let joinsArr=[],clauseArr=[],whereArr=[],tables=[],whereStr="where ",orderByStr="order by",groupByStr="group by",havingStr="having ",whereConditionStr="",groupByConditionStr="",havingConditionStr="",orderByConditionStr="",tablesQuery="",joinsArray=[],lastRelation="",relations=Object.values(DataSources.Enums.RelationType).filter(x=>typeof x=="string"),whereIdx=tempQuery.indexOf(whereStr)==-1?Infinity:tempQuery.indexOf(whereStr),groubyIdx=tempQuery.indexOf(groupByStr)==-1?Infinity:tempQuery.indexOf(groupByStr),orderbyIdx=tempQuery.indexOf(orderByStr)==-1?Infinity:tempQuery.indexOf(orderByStr),havingIdx=tempQuery.indexOf(havingStr)==-1?Infinity:tempQuery.indexOf(havingStr),clauseIdx=Math.min(whereIdx,groubyIdx,orderbyIdx,havingIdx);if(tablesQuery=clauseIdx!=Infinity?tempQuery.substring(0,clauseIdx):tempQuery,lastRelation=relations.pop(),joinsArray=tablesQuery.split(lastRelation.toLowerCase()).map(x=>x.trim()),joinsArray.length>1)for(i=0;i<joinsArray.length;i++)i&&!joinsArray[i].startsWith("__")&&(joinsArray[i]=`__Cross `+joinsArray[i]);for(i=0;i<relations.length;i++){for(j=0;j<joinsArray.length;j++){let split=joinsArray[j].split(relations[i].toLowerCase()).map(x=>x.trim());if(split.length>1)for(joinsArray.splice(j,1),k=0;k<split.length;k++)joinsArray.splice(j+k,0,split[k])}if(joinsArray.length>1)for(j=0;j<joinsArray.length;j++)j&&!joinsArray[j].startsWith("__")&&(joinsArray[j]=`__${relations[i]} `+joinsArray[j])}for(j=0;j<joinsArray.length;j++){let currentEle=joinsArray[j],index=currentEle.indexOf(" join ",8);index!=-1&&(joinsArray.splice(j+1,0,"__Inner"+currentEle.substring(index,currentEle.length)),joinsArray[j]=currentEle.substring(0,index))}for(j=0;j<joinsArray.length;j++){let table=new DataSources.Requests.DataListTable,join=new DataSources.Requests.DataListJoin,joinOn=new DataSources.Requests.DataListJoinOn;if(j){joinsArray[j].includes("join ")&&(joinsArray[j]=joinsArray[j].replace("join ",""));let joinType=joinsArray[j].split(" ")[0].slice(2);join.DocJoinType=parseInt(DataSources.Enums.RelationType[joinType]);joinsArray[j]=joinsArray[j].split(" ").slice(1).join(" ");let joinArr=joinsArray[j].split(" on "),tableSplit=joinArr[0].split(" ").map(x=>x.trim()),tableColumnsSplit=joinArr[1].split("=").map(x=>x.trim());tableSplit.length==2?(join.DocTypeTableName=tableSplit[0],join.DocTableAliasName=tableSplit[1],table.DocTypeTableName=tableSplit[0],table.DocTableAliasName=tableSplit[1]):(join.DocTypeTableName=tableSplit[0],join.DocTableAliasName=tableSplit[0],table.DocTypeTableName=tableSplit[0],table.DocTableAliasName=tableSplit[0]);joinOn.DocTypeTable1Column=tableColumnsSplit[0];joinOn.DocTypeTable2Column=tableColumnsSplit[1];join.on=joinOn}else{let minIdx=Math.min(whereIdx,groubyIdx,orderbyIdx,havingIdx);minIdx!=Infinity&&(joinsArray[j]=joinsArray[j].substring(0,minIdx));let tableArr=[];joinsArray[j].includes("(")?tableArr=[joinsArray[j]]:(tableArr=joinsArray[j].split(" "),joinsArray[j].includes("as ")&&(tableArr=joinsArray[j].split("as ").map(x=>x.trim())));join.DocTypeTableName=tableArr[0];join.DocTableAliasName=tableArr[1]?tableArr[1]:tableArr[0];table.DocTypeTableName=tableArr[0];table.DocTableAliasName=tableArr[1]?tableArr[1]:tableArr[0]}joinsArr.push(join);tables.push(table)}if(whereIdx=tempQuery.indexOf(whereStr)==-1?Infinity:tempQuery.indexOf(whereStr),groubyIdx=tempQuery.indexOf(groupByStr)==-1?Infinity:tempQuery.indexOf(groupByStr),orderbyIdx=tempQuery.indexOf(orderByStr)==-1?Infinity:tempQuery.indexOf(orderByStr),havingIdx=tempQuery.indexOf(havingStr)==-1?Infinity:tempQuery.indexOf(havingStr),whereIdx!=Infinity){let minIdx=Math.min(groubyIdx,orderbyIdx,havingIdx)==Infinity?tempQuery.length:Math.min(groubyIdx,orderbyIdx,havingIdx);whereConditionStr=tempQuery.substring(whereIdx+5,minIdx).trim();whereArr=this.getWhereConditionsFromQuery(whereConditionStr)}if(groubyIdx!=Infinity){let clause=new DataSources.Requests.DataListClause,minIdx=Math.min(orderbyIdx,havingIdx)==Infinity?tempQuery.length:Math.min(orderbyIdx,havingIdx);groupByConditionStr=tempQuery.substring(groubyIdx+8,minIdx).trim();clause.ClauseType=DataSources.Enums.ClauseType.GroupBy;clause.Columns=groupByConditionStr;clauseArr.push(clause)}if(havingIdx!=Infinity){let clause=new DataSources.Requests.DataListClause;havingConditionStr=tempQuery.substring(havingIdx+6,orderbyIdx==Infinity?tempQuery.length:orderbyIdx).trim();clause.ClauseType=DataSources.Enums.ClauseType.Having;clause.Columns="";clause.Having=this.getWhereConditionsFromQuery(whereConditionStr);clauseArr.push(clause)}if(orderbyIdx!=Infinity){let clause=new DataSources.Requests.DataListClause,orderByArr=Object.values(DataSources.Enums.OrderBy).filter(x=>typeof x=="string");for(orderByConditionStr=tempQuery.substring(orderbyIdx+8,tempQuery.length).trim(),clause.ClauseType=DataSources.Enums.ClauseType.OrderBy,clause.Columns=orderByConditionStr,i=0;i<orderByArr.length;i++)orderByConditionStr.includes(orderByArr[i].toLowerCase())&&(clause.OrderBy=parseInt(DataSources.Enums.OrderBy[orderByArr[i]]));clauseArr.push(clause)}return{Tables:tables,Joins:joinsArr,Where:whereArr,Clause:clauseArr}}getIndexOfCorrespondingCloseBracket(query){let counter=1,openBrac="(",closeBrac=")",index=1;while(counter>0){let openIndex=query.indexOf(openBrac,index),closeIndex=query.indexOf(closeBrac,index);openIndex!=-1&&closeIndex!=-1?openIndex<closeIndex?(counter++,index=openIndex+1):openIndex>closeIndex&&(counter--,index=closeIndex+1):openIndex==-1&&closeIndex!=-1?(counter--,index=closeIndex+1):closeIndex==-1}return index}getDataListColumnsFromSelectString(query){let columns=[],indexOfSelect=query.indexOf("select "),indexOfFrom=query.indexOf("from "),columnsStr="";if(indexOfSelect!=-1&&indexOfFrom!=-1&&(columnsStr=query.trim().substring(indexOfSelect+6,indexOfFrom).trim(),columnsStr.indexOf(",")==0&&(columnsStr=columnsStr.slice(1)),columnsStr=this.removeParanthesisBetweenColumns(columnsStr),columnsStr.length)){let colsArray=columnsStr.trim().split(",").map(x=>x.trim());for(var i=0;i<colsArray.length;i++){let column=new DataSources.Requests.DataListColumn;if(colsArray[i].includes(" as")){let col_alias=colsArray[i].split(" as").map(x=>x.trim());column.ColumnName=col_alias[0];column.AliasName=col_alias[1]}else{let clmn=colsArray[i].trim();column.ColumnName=clmn;column.AliasName=clmn}columns.push(column)}}return columns=this.addParanthesisBtwColumns(columns)}getWhereConditionsFromQuery(query){query=query.trim().toLowerCase();let splitedArray=this.getWhereQueryAsConditionsArray(query),WhereArr=[];for(var i=0;i<splitedArray.length;i++){let where=new DataSources.Requests.DataListWhere;if(i){let clmnSplit=splitedArray[i].split(" ");clmnSplit.shift();splitedArray[i]=clmnSplit.join(" ")}if(splitedArray[i].includes("between ")){let split=splitedArray[i].split(" ");where.ColumnName=split[0];where.IsBetween=!0;where.Value1=split[2];where.Value2=split[4];where.ExpressionType=DataSources.Enums.ExpressionType.Between}else if(splitedArray[i].includes(">=")){let split=splitedArray[i].split(">=");where.ColumnName=split[0].trim();where.Value1=split[1].trim();where.ExpressionType=DataSources.Enums.ExpressionType.GreaterThanEqualTo}else if(splitedArray[i].includes("<=")){let split=splitedArray[i].split("<=");where.ColumnName=split[0].trim();where.Value1=split[1].trim();where.ExpressionType=DataSources.Enums.ExpressionType.LessThanEqualTo}else if(splitedArray[i].includes("!=")){let split=splitedArray[i].split("!=");where.ColumnName=split[0].trim();where.Value1=split[1].trim();where.ExpressionType=DataSources.Enums.ExpressionType.NotEqualTo}else if(splitedArray[i].includes(">")){let split=splitedArray[i].split(">");where.ColumnName=split[0].trim();where.Value1=split[1].trim();where.ExpressionType=DataSources.Enums.ExpressionType.GreaterThan}else if(splitedArray[i].includes("<")){let split=splitedArray[i].split("<");where.ColumnName=split[0].trim();where.Value1=split[1].trim();where.ExpressionType=DataSources.Enums.ExpressionType.LessThan}else if(splitedArray[i].includes("=")){let split=splitedArray[i].split("=");where.ColumnName=split[0].trim();where.Value1=split[1].trim();where.ExpressionType=DataSources.Enums.ExpressionType.EqualTo}else if(splitedArray[i].includes("not in ")){let split=splitedArray[i].split("not in ");where.ColumnName=split[0].trim();where.Value1=split[1].trim();where.ExpressionType=DataSources.Enums.ExpressionType.NotIn}else if(splitedArray[i].includes(" in")){let split=splitedArray[i].split(" in");split.length>2&&(split[1]=split.slice(1).join(" "));where.ColumnName=split[0].trim();where.Value1=split[1].trim();where.ExpressionType=DataSources.Enums.ExpressionType.In}else if(splitedArray[i].includes("is not")){let split=splitedArray[i].split("is not");where.ColumnName=split[0].trim();where.Value1=split[1].trim();where.ExpressionType=DataSources.Enums.ExpressionType.IsNotNull}else if(splitedArray[i].includes(" is")){let split=splitedArray[i].split(" is");where.ColumnName=split[0].trim();where.Value1=split[1].trim();where.ExpressionType=DataSources.Enums.ExpressionType.IsNull}i+1<splitedArray.length&&(where.AddConditionType=DataSources.Enums.ConditionJoinType[splitedArray[i+1].split(" ").shift().slice(2)]);WhereArr.push(where)}return WhereArr}removeParanthesisBetweenColumns(columnsStr){let openPranStr="(",indexOfOpenPranthesis=columnsStr.indexOf(openPranStr),indexOfClosedParan=-1,strBtwnParanthesis="",modifiedStr="",tempStr="";while(indexOfOpenPranthesis!=-1)tempStr=columnsStr.substring(indexOfOpenPranthesis+1,columnsStr.length),indexOfClosedParan=this.getIndexOfCorrespondingCloseBracket(tempStr),strBtwnParanthesis=columnsStr.substring(indexOfOpenPranthesis,indexOfOpenPranthesis+indexOfClosedParan+1),modifiedStr=strBtwnParanthesis.replaceAll(openPranStr,"_& "),modifiedStr=modifiedStr.replaceAll(",","__"),modifiedStr=modifiedStr.replaceAll(")"," &_"),columnsStr=columnsStr.replace(strBtwnParanthesis,modifiedStr),indexOfOpenPranthesis=columnsStr.indexOf(openPranStr);return columnsStr}addParanthesisBtwColumns(columns){for(var i=0;i<columns.length;i++){let colname=columns[i].ColumnName,aliasName=columns[i].AliasName;colname.includes("_& ")&&(colname=colname.replaceAll("_& ","("),colname=colname.replaceAll("__",","),colname=colname.replaceAll(" &_",")"),aliasName=aliasName.replaceAll("_& ","("),aliasName=aliasName.replaceAll("__",","),aliasName=aliasName.replaceAll(" &_",")"),columns[i].ColumnName=colname,columns[i].AliasName=aliasName)}return columns}getUnionsAndRemainingQuery(tempQuery){tempQuery=tempQuery.trim();let unionQuery,currentRmngQuery="",newUnionQuery="",unionIdx,unionAllIdx,unionType,isUnion;return unionAllIdx=tempQuery.indexOf(" union all")==-1?Infinity:tempQuery.indexOf(" union all"),unionIdx=tempQuery.indexOf(" union")==-1?Infinity:tempQuery.indexOf(" union"),unionIdx<unionAllIdx?(currentRmngQuery=tempQuery.substring(0,unionIdx),newUnionQuery=tempQuery.substring(unionIdx+6,tempQuery.length),unionType=DataSources.Enums.UnionType.Union):unionIdx>unionAllIdx&&(currentRmngQuery=tempQuery.substring(0,unionAllIdx),newUnionQuery=tempQuery.substring(unionAllIdx+10,tempQuery.length),unionType=DataSources.Enums.UnionType.UnionAll),unionQuery=this.parseQueryToDynamic(newUnionQuery),isUnion=!0,{UnionType:unionType,IsUnion:isUnion,UnionQuery:unionQuery,CurrentRmngQuery:currentRmngQuery}}getWhereQueryAsConditionsArray(query){var splitArray=query.split("and "),keywords=["and ","or "],j,k,i;if(splitArray.length>1)for(i=0;i<splitArray.length;i++)i&&!splitArray[i].startsWith("__")&&(splitArray[i]=`__And `+splitArray[i]);for(keywords.shift(),i=0;i<keywords.length;i++){for(j=0;j<splitArray.length;j++){let split=splitArray[j].split(keywords[i].toLowerCase()).map(x=>x.trim());if(split.length>1)for(splitArray.splice(j,1),k=0;k<split.length;k++)splitArray.splice(j+k,0,split[k])}for(k=0;k<splitArray.length;k++)k&&!splitArray[k].startsWith("__")&&(splitArray[k]=`__Or `+splitArray[k])}for(splitArray=splitArray.map(x=>x.trim()),i=0;i<splitArray.length;i++)if(splitArray[i].includes("between ")){let nextElemntArr=splitArray[i+1].split(" ");nextElemntArr.shift();splitArray[i+1]=nextElemntArr.map(x=>x.trim()).join(" ");splitArray[i]=splitArray[i]+" and "+splitArray[i+1];splitArray.splice(i+1,1)}return splitArray}someFn(joinArr){var l;if(joinArr.length==3&&joinArr[2].includes("=")){let tablesSeperatedArr=joinArr[2].split("=");for(joinArr.splice(2,1),l=0;l<tablesSeperatedArr.length;l++)joinArr.push(tablesSeperatedArr[l]),l||joinArr.push("=")}else if(joinArr.length==4&&joinArr[2].includes("="))joinArr[2]=joinArr[2].replace("=",""),joinArr.splice(3,0,"=");else if(joinArr.length==4&&joinArr[3].includes("="))joinArr[3]=joinArr[3].replace("=",""),joinArr.splice(3,0,"=");else if(joinArr.length==4&&joinArr[3].includes("=")){let tablesSeperatedArr=joinArr[3].split("=");for(joinArr.splice(3,1),l=0;l<tablesSeperatedArr.length;l++)joinArr.push(tablesSeperatedArr[l]),l||joinArr.push("=")}else joinArr.length==4&&joinArr[2].includes("=")?(joinArr[2]=joinArr[2].replace("=",""),joinArr.splice(3,0,"=")):joinArr.length==4&&joinArr[3].includes("=")&&(joinArr[3]=joinArr[3].replace("=",""),joinArr.splice(3,0,"="));return joinArr}getSubQueriesInWhere(clauseQuery){clauseQuery=clauseQuery.trim();let whereIdx,groubyIdx,orderbyIdx,havingIdx,clauseIdx,unionIdx,whereQuery="",queryBfWhr="",tempQuery="",closingIdx,selectIdx,subQueryStr="",whereInitialStr="",otherClauseQuery="",subQueryArr=[],whereArr=[];for(selectIdx=clauseQuery.indexOf("select ");selectIdx!=-1;){let subquery=new DataSources.Requests.DynamicQuery;whereInitialStr=clauseQuery.substring(0,selectIdx).trim();whereInitialStr=whereInitialStr.substring(0,whereInitialStr.lastIndexOf("(")).trim();tempQuery=clauseQuery.substring(selectIdx,clauseQuery.length);closingIdx=this.getIndexOfCorrespondingCloseBracket(tempQuery);subQueryStr=tempQuery.substring(0,closingIdx-1);clauseQuery=tempQuery.substring(closingIdx,tempQuery.length).trim();selectIdx=subQueryStr.indexOf("select ");selectIdx!=-1&&(subquery=this.parseQueryToDynamic(subQueryStr));clauseQuery=whereInitialStr+` __subquerytable_${++this.subQueryNumber} `+clauseQuery;selectIdx=clauseQuery.indexOf("select ");unionIdx=clauseQuery.indexOf("union ");unionIdx<selectIdx&&(selectIdx=-1);subquery.TempName=`__subquerytable_${this.subQueryNumber}`;subQueryArr.push(subquery)}groubyIdx=clauseQuery.indexOf("group by")==-1?Infinity:clauseQuery.indexOf("group by");orderbyIdx=clauseQuery.indexOf("order by")==-1?Infinity:clauseQuery.indexOf("order by");havingIdx=clauseQuery.indexOf("having ")==-1?Infinity:clauseQuery.indexOf("having ");unionIdx=clauseQuery.indexOf("union ")==-1?Infinity:clauseQuery.indexOf("union ");clauseIdx=Math.min(groubyIdx,orderbyIdx,havingIdx,unionIdx);whereIdx=clauseQuery.indexOf("where ");clauseIdx!=Infinity?(whereQuery=clauseQuery.substring(clauseQuery.indexOf("where ")+6,clauseIdx),otherClauseQuery=clauseQuery.substring(clauseIdx,clauseQuery.length)):whereQuery=clauseQuery.substring(clauseQuery.indexOf("where ")+6,clauseQuery.length);whereQuery=whereQuery.trim();let idx=whereQuery.indexOf("(");if(idx==0){let clseIdx=this.getIndexOfCorrespondingCloseBracket(whereQuery.slice(idx));whereQuery=whereQuery.substring(0,clseIdx-1).slice(idx+1).trim()}queryBfWhr=clauseQuery.substring(0,whereIdx);otherClauseQuery=otherClauseQuery.replace(whereQuery,"").trim();otherClauseQuery=queryBfWhr+otherClauseQuery;whereArr=this.getWhereConditionsFromQuery(whereQuery);for(var i=0;i<whereArr.length;i++){let subQuery=subQueryArr.find(x=>x.TempName==whereArr[i].Value1);subQuery&&(whereArr[i].IsSubQuery=!0,whereArr[i].SubQuery=subQuery)}return{listOfWhere:whereArr,RemaingQuery:otherClauseQuery}}static Instance(){return this.instance===undefined&&(this.instance=new QueryParser),this.instance}}Components.QueryParser=QueryParser})(Components=DataSources.Components||(DataSources.Components={}))})(DataSources=Platform.DataSources||(Platform.DataSources={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))}(Unibase||(Unibase={})),function(Unibase){let Platform;(function(Platform){let Analytics;(function(Analytics){let Components;(function(Components){class MapViewerSettings extends Platform.Core.BaseComponent{constructor(){super();this.reportManager=Analytics.Managers.ReportManager.Instance();this.viewerManager=Analytics.Managers.ViewerManager.Instance();this.ReportId=0}jsFiles(){return["platform/analytics/components/mapviewer/mapviewer.settings.js"]}cssFiles(){return[]}html(){return`<div class="b-b bg-white modal-header">
- <strong class="text-dark">Map</strong>
- </div>
- <div class="modal-body" id="MapViewer_modal">
- <div id = "divMap_ErrorMessage"></div>
- <div class="card"> <div class="card-body"><div class="row"><div class="col-sm-6">
- <div id="div_MapName" class="floating-label-form-group">
- <label for="mapname" id="lbl_MapName">Map Name</label>
- <input type="text" class="form-control value-control floating-label-control" placeholder="Map Name" data-placeholder="Map Name" data-label="Map Name" id="txt_MapName">
- </div></div>
- <div class="col-sm-4">
- <div id="div_DisplayName" class="floating-label-form-group floating-label-form-group-with-value">
- <label for="displayname" id="lbl_DisplayName">Display Name</label>
- <input type="text" id="Txt_Display_Name" class="form-control value-control floating-label-control" placeholder="Display Name" data-placeholder="Display Name" data-label="Display Name">
- </div>
- </div>
- <div class="col-sm-6">
- <div id="div_Latitude" class="">
- <label for="latitude">Latitude</label>
- <select type="text" class="form-control value-control floating-label-control" placeholder="Latitude" data-placeholder="Latitude" data-label="Latitude" id="txt_Latitude"><option value="0" selected="">Select Latitude Column</option></select>
- </div>
- </div>
- <div class="col-sm-6">
- <div id="div_Longitude" class="">
- <label for="longitude" id="lbl_Longitude">Longitude</label>
- <select type="text" class="form-control value-control floating-label-control" placeholder="Longitude" data-placeholder="Longitude" data-label="Longitude" id="txt_Longitude"> <option value="0" selected="">Select Longitude Column</option></select>
- </div></div>
- </div></div></div>
- <div class="TemplateText_Section card">
- <div class="card-header"> Template Text </div>
- <div class="card-body">
- <div id="div_TemplateText" class="">
- <textarea class="" id="input_TemplateText" placeholder="Template Text" rows="3" cols="112"></textarea>
- </div>
- </div>
- </div>
- <div class="HeaderTemplateText_Section card">
- <div class="card-header">Header Template Text </div>
- <div class="card-body">
- <div id="div_HeaderTemplateText" class="">
- <textarea class="" id="input_HeaderTemplateText" placeholder="Header Template Text" rows="3" cols="112"></textarea>
- </div>
- </div>
- </div>
- <div class="DetailTemplateText_Section card">
- <div class="card-header">Detail Template Text </div>
- <div class="card-body">
- <div id="div_DetailTemplateText" class="">
- <textarea class="" id="input_DetailTemplateText" placeholder="Detail Template Text" rows="3" cols="112"></textarea>
- </div>
- </div>
- </div>
- <div class="FooterTemplateText_Section card">
- <div class="card-header">Footer Template Text </div>
- <div class="card-body">
- <div id="div_FooterTemplateText" class="">
- <textarea class="" id="input_FooterTemplateText" placeholder="Footer Template Text" rows="3" cols="112"></textarea>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="bg-white modal-footer">
- <a class="btn btn-light btn-sm btn-center mr-auto" id="btnClose">Close</a>
- <a class="btn btn-primary btn-center btn-sm text-white" id="btnSave">Save</a>
- </div>`}load(id,containerid){var instance=this,reportid=Number(instance.ReportId),data;$("#MapViewer_modal").css("height",$(window).outerHeight()-(Number($(".modal-header").outerHeight())+Number($(".modal-footer").outerHeight()))+"px");data=[];instance.reportManager.getColumns(reportid).then(function(response){var res=response.result;for(let i=0;i<res.length;i++)data.push({id:res[i].ReportColumnName,text:res[i].ReportColumnName});$("#txt_Latitude").select2({placeholder:"Select Latitude Column",data:data});$("#txt_Longitude").select2({placeholder:"Select Longitude Column",data:data});id!=0&&instance.getMapById(id)});$("#btnClose").click(function(){$("#"+containerid).modal("hide");$("#"+containerid).remove()});jQuery("#btnSave").click(function(){instance.saveMap(id,reportid,containerid,null)})}getMapById(id){var instance=this;instance.viewerManager.getMapView(id).then(function(response){instance.response=response.result;$("#Txt_Display_Name").val(instance.response.DisplayName?instance.response.DisplayName.trim():instance.response.MapName.trim());$("#txt_MapName").val(instance.response.MapName.trim()).attr("readonly","true").css("cursor","not-allowed");$("#txt_Latitude").val(instance.response.LatColumn).trigger("change");$("#txt_Longitude").val(instance.response.LngColumn).trigger("change");$("#input_TemplateText").val(instance.response.TemplateText);$("#input_HeaderTemplateText").val(instance.response.HeaderTemplateText);$("#input_DetailTemplateText").val(instance.response.DetailTemplateText);$("#input_FooterTemplateText").val(instance.response.FooterTemplateText)})}saveMap(id,reportid,containerid,obj){var instance=this,PostData=obj;obj==null&&(PostData={LatColumn:$("#txt_Latitude option:selected").text(),LngColumn:$("#txt_Longitude option:selected").text(),MapName:$("#txt_MapName").val(),ValueColumn:$("#txt_ColumnName").val(),ReportId:Number(reportid),MapViewId:Number(id),TemplateText:$("#input_TemplateText").val(),HeaderTemplateText:$("#input_HeaderTemplateText").val(),DetailTemplateText:$("#input_DetailTemplateText").val(),FooterTemplateText:$("#input_FooterTemplateText").val(),DisplayModeTypeId:1,ViewAll:instance.response&&instance.response.ViewAll||!0,DisplayName:$("#Txt_Display_Name").val().toString().trim(),IsFromUI:Number(id)==0?!0:!1});instance.fileCacheHelper.loadJsFile("platform/analytics/managers/reportmanager.js",function(){instance.viewerManager.saveMapView(PostData).then(function(response){response.status==Unibase.Data.Status.Error?MessageHelper.Instance().showError(response.message,"divMap_ErrorMessage"):(MessageHelper.Instance().showSuccess(response.message,""),$("#"+containerid).modal("hide"),$("#"+containerid).remove())})})}static Instance(){return this._instance===undefined&&(this._instance=new Unibase.Platform.Analytics.Components.MapViewerSettings),this._instance}}Components.MapViewerSettings=MapViewerSettings})(Components=Analytics.Components||(Analytics.Components={}))})(Analytics=Platform.Analytics||(Platform.Analytics={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))}(Unibase||(Unibase={})),function(Unibase){let Platform;(function(Platform){let Analytics;(function(Analytics){let Viewers;(function(Viewers){class MapViewer extends Platform.Core.BaseComponent{constructor(){super();this.reportManager=Analytics.Managers.ReportManager.Instance();this.viewerManager=Analytics.Managers.ViewerManager.Instance();this.ViewerSettings=new Analytics.Providers.ViewerSettings}loadView(reportresponse,reportid,MapViewId,page,pageSize,containerid){var instance=this,LatIdColumnName="",LngIdColumnName="",Template="",HeaderTemplate="",DetailTemplate="",FooterTemplate="";instance.viewerManager.getMapView(MapViewId).then(function(response){var res=response.result;LatIdColumnName=res.LatColumn;LngIdColumnName=res.LngColumn;Template=res.TemplateText;HeaderTemplate=res.HeaderTemplateText;DetailTemplate=res.DetailTemplateText;FooterTemplate=res.FooterTemplateText;let postdata={ReportId:reportid,page:page,pageSize:50,IsJson:!0};$("#Table_View_"+containerid).removeClass("hidden");instance.reportManager.getReportViewerData(postdata).then(function(mapresponse){var templateScript,DetailTemplateScript,k,f;Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();var Lat_columns=[],Lng_columns=[],finalvalues=[],locations=[],contentString=[],response=JSON.parse(mapresponse.result),data="";if(response.Data&&(data=JSON.parse(response.Data)),$("#ViewerFooter_"+containerid).removeClass("hidden"),!data)return $("#Viewer_"+containerid+"").removeClass("hidden"),$("#Viewer_"+containerid+"").empty().append(`<div class='alert alert-primary text-center mb-0 border-0 w-100 font-14 rounded-0'>No data available</div>`),"";data=Unibase.Platform.Analytics.Viewers.MapViewer.Instance().toCamel(data);let Tmplt_html="",DetailTmplt_html="";templateScript=Handlebars.compile(Template);for(let i=0;i<data.length;i++){let LatValue=data[i][LatIdColumnName.toLowerCase()],LngValue=data[i][LngIdColumnName.toLowerCase()],ContactId=data[i].contactid;if(jQuery.inArray(LatValue,Lat_columns)==-1&&jQuery.inArray(LngValue,Lng_columns)==-1){finalvalues.push({LatValue:LatValue,LngValue:LngValue,ContactId:ContactId});Lat_columns.push(LatValue);Lng_columns.push(LngValue);Tmplt_html=Template!=""&&Template!=null?templateScript(data[i]):"<strong> LatId: "+LatValue+", LngId: "+LngValue+"<\/strong>";contentString.push(Tmplt_html);let html=`<div class="tab-content" id="pills-tabContent">
- <div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab">`+DetailTemplate+`</div> <div class="tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab">Close Trip </div></div></div></div></div>`;DetailTemplateScript=Handlebars.compile(DetailTemplate);DetailTmplt_html+=DetailTemplateScript(data[i])}else{let index=0;for(k=0;k<finalvalues.length;k++)finalvalues[k].LatValue==LatValue&&finalvalues[k].LngValue==LngValue&&(index=k);contentString[index]=contentString[index]+templateScript(data[i])}}for(f=0;f<finalvalues.length;f++)finalvalues[f].LatValue!=0&&finalvalues[f].LngValue!=0&&locations.push({LatId:finalvalues[f].LatValue,LngId:finalvalues[f].LngValue,ContactId:finalvalues[f].ContactId});let MapSideHtml=`<div class="row"><div class="col-md-12">
- <div id="map_canvas_`+containerid+`" class="gmap"></div></div>
- <div class="col-md-5 d-none pr-10 pb-10"><div id="map-sidebar"><div class="card mb-0"><div class="card-header" style="height:10vh;" id="map_header">`+HeaderTemplate+`</div><div class="card-body" id="mapside_body" style="overflow-y:scroll; height:71vh"> <div class="tab-content" id="pills-tabContent">
- <div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab">`+DetailTmplt_html+` </div> <div class="tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab">Close Trip </div></div></div><div class="card-footer" style="height:10vh;" id="footer_section">`+FooterTemplate+`</div></div></div></div>`;$("#Viewer_"+containerid+"").html(MapSideHtml).addClass("pa-10");$(".list-content-section"+containerid+"").removeClass("hidden");$(".Templateheader").addClass("hidden");$(".card-footer").addClass("hidden");$(".btn-list-load-more").addClass("hidden");$(".list-content-section"+containerid).find("#map_canvas").css("height",$(window).outerHeight()-$(".list-content-section"+containerid).find(".card-header").outerHeight()-55);for(var latd=locations[0].LatId,lgtd=locations[0].LngId,myLatlng=new google.maps.LatLng(latd,lgtd),mIcon={path:google.maps.SymbolPath.CIRCLE,fillOpacity:1,fillColor:"green",strokeOpacity:1,strokeWeight:1,strokeColor:"#333",scale:12,scaledSize:new google.maps.Size(54,44)},mapOptions={zoom:5,center:myLatlng},mapElement=document.getElementById("map_canvas_"+containerid),map=new google.maps.Map(mapElement,mapOptions),marker,infoWindow,Lng_Ltd=[],i=0;i<locations.length;i++)marker=new google.maps.Marker({position:new google.maps.LatLng(locations[i].LatId,locations[i].LngId),map:map,icon:mIcon}),Lng_Ltd[locations[i].LatId+"_"+locations[i].LngId]=contentString[i],infoWindow=new google.maps.InfoWindow({content:contentString[i]}),infoWindow.close(),google.maps.event.addListener(marker,"click",function(marker,i){var k=i;return function(){infoWindow.open(map,marker);infoWindow.setContent(Lng_Ltd[marker.getPosition().lat()+"_"+marker.getPosition().lng()])}}(marker,i)),google.maps.event.addListener(marker,"mouseover",function(marker,i){var k=i;return function(){infoWindow.open(map,marker);infoWindow.setContent(Lng_Ltd[marker.getPosition().lat()+"_"+marker.getPosition().lng()])}}(marker,i)),google.maps.event.addListener(marker,"mouseout",function(){infoWindow.close(map,marker)});let elem;elem=$("#mapside_body");elem.slimscroll({color:"#d6d9da",disableFadeOut:!0,borderRadius:0,size:"6px",enableKeyNavigation:!0,opacity:.8,height:"71vh"})})})}toCamel(o){var newO,origKey,newKey,value;if(o instanceof Array)return o.map(function(value){return typeof value=="object"&&(value=Unibase.Platform.Analytics.Viewers.MapViewer.Instance().toCamel(value)),value});newO={};for(origKey in o)o.hasOwnProperty(origKey)&&(newKey=(origKey.charAt(0).toLowerCase()+origKey.slice(1)||origKey).toString(),value=o[origKey],(value instanceof Array||value!==null&&value.constructor===Object)&&(value=Unibase.Platform.Analytics.Viewers.MapViewer.Instance().toCamel(value)),newO[newKey]=value);return newO}static Instance(){return new Unibase.Platform.Analytics.Viewers.MapViewer}}Viewers.MapViewer=MapViewer})(Viewers=Analytics.Viewers||(Analytics.Viewers={}))})(Analytics=Platform.Analytics||(Platform.Analytics={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))}(Unibase||(Unibase={}));
|