var __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()); }); }; var Unibase; (function (Unibase) { let Platform; (function (Platform) { let Analytics; (function (Analytics) { let Reports; (function (Reports) { class SubReport extends Platform.Core.BaseComponent { constructor() { super(); this.subReportId = 0; this.isDetail = false; this.linkreport_aliasname = ""; this.inline = true; this.appName = ""; this.childReportName = ""; this.filters = []; this.filterIndex = 0; this.subReportsExists = false; this.childReportId = 0; this.parentReportId = 0; this.isReportDuplicate = false; this._reportManager = Analytics.Managers.ReportManager.Instance(); this._reportBuilder = Reports.ReportBuilder.Instance(); this._reportBuilderTemplate = Reports.ReportBuilder_Template.Instance(); } cssFiles() { return []; } jsFiles() { var jsFiles = ['platform/analytics/managers/reportmanager.js', 'platform/analytics/enums/subreporttype.js']; return jsFiles; } html(id, containerid) { let html = this._reportBuilderTemplate.loadLinkToOtherReportForm(); return html; } load(id, containerid, callback) { var instance = this; instance.filters = []; instance.filterIndex = 0; instance.isDetail = false; instance.inline = true; instance.subReportEdit(); $("#btnConfigAddFilter").click(function (e) { instance.filterIndex++; let isValueElement = $(e.target).closest(".form-row").find("[id^=isvalue_radio]"); let isValue = isValueElement.prop("checked"); let parametername = $("#cmbmainrptCols option:selected").text().trim(); let parametervalue = $("#cmbsbrptCols option:selected").text().trim(); let operator = $("#slctdoperater option:selected").text().trim(); let isValueText = $("#cmbmainrptCols_textbox").val(); if (!isValue && parametername.toLowerCase() == "main report columns") return MessageHelper.Instance().showError("Please select main report column", "sub_report_error_message"); else if (isValue && !isValueText) return MessageHelper.Instance().showError("Please enter text in main report value column", "sub_report_error_message"); if (operator.toLowerCase() == '-select-') return MessageHelper.Instance().showError("Please select operator type", "sub_report_error_message"); if (isValue && isValueText == parametervalue.toLowerCase()) return MessageHelper.Instance().showError("Main report column name and value column and is value text cannot be same", "sub_report_error_message"); if (parametervalue.toLowerCase() == "sub report column") return MessageHelper.Instance().showError("Please select sub report column", "sub_report_error_message"); if (isValue) parametername = isValueText; instance.filters.push({ ParameterName: parametername, ParameterValue: parametervalue, Operator: operator, Isvalue: isValue, }); instance.addSubReportFilter(parametername, parametervalue, operator, isValue); if (isValue) { $("#cmbmainrptCols_textbox").val(""); isValueElement.trigger("click"); } $('#cmbmainrptCols').val(0).trigger('change'); $('#cmbsbrptCols').val(0).trigger('change'); $('#slctdoperater').val(0).trigger('change'); }); $("#btnLinkReportSave").click(() => { let subReportArray = instance.getSubReportContainerArray(); if (instance.isDetail) { instance.saveSubReport_DetailFields(); } else { if (instance.saveSubReport_Report(subReportArray)) return; } if (instance.linkreport_aliasname == undefined) { var table = instance._reportBuilder.table; var autoNumFormatter = function (cell) { var row = cell.getRow(); var rowIndex = row.getPosition(false); return (rowIndex + 1); }; if (table.element && table.element.children[1] && table.element.children[1].lastChild && table.element.children[1].lastChild.firstChild && table.element.children[1].lastChild.firstChild.firstElementChild && table.element.children[1].lastChild.firstChild.firstElementChild.firstChild && table.element.children[1].lastChild.firstChild.firstElementChild.firstChild.className != "fa fa-eye") { var hideIcon = function (cell, formatterParams, onRendered) { return ""; }; table.addColumn({ formatter: autoNumFormatter, title: "", headerSort: false, minWidth: 20, }, true); table.addColumn({ formatter: hideIcon, title: "", headerSort: false }, true); } } $('#' + containerid).modal('hide'); $('#' + containerid).remove(); }); $("#btnLinkReportClose").click(function () { $('#' + containerid).modal('hide'); $('#' + containerid).remove(); }); $("#subrpt_clear").click(function () { if (instance._reportBuilder.subreportdata.length != 0) { var subfil_Index = instance._reportBuilder.subreportdata.findIndex(s => s.AliasName == instance.linkreport_aliasname); if (subfil_Index > -1) { instance._reportBuilder.subreportdata.splice(subfil_Index, 1); } } }); $(".select_reports").change(function () { let reportId = Number($(".select_reports").val()); instance.subReportColumns(reportId); }); $('.subreport-radio-btn').change(function () { if ($(this).val() == 'report') { $('#linkreport_modal,#detailScreenBody').toggleClass('d-none'); if ($('.opentype-radio-btn:checked').val() == 'inline') { $('#subrpt_plus').removeClass('d-none'); } } else { $('#linkreport_modal,#detailScreenBody').toggleClass('d-none'); $('#subrpt_plus').addClass('d-none'); } }); $('.opentype-radio-btn').change(function () { if ($(this).val() == 'inline') { instance.inline = true; $('#subrpt_plus').removeClass('d-none'); } else { instance.inline = false; $('#subrpt_plus').addClass('d-none'); } if (instance._reportBuilder.subreportdata.length != 0) { let index; if (instance.linkreport_aliasname) { index = instance._reportBuilder.subreportdata.findIndex(s => s.AliasName == instance.linkreport_aliasname); } else { index = instance._reportBuilder.subreportdata.findIndex(s => s.RowClick == true); } if (index > -1) { instance._reportBuilder.subreportdata[index].Inline = instance.inline; } } }); $("#isvalue_radio_0").unbind().click((e) => { let isChecked = $(e.target).prop("checked"); $(e.target).closest(".form-row").find("#div_mainreportColumn_textbox").parent().toggleClass("hidden"); $(e.target).closest(".form-row").find("#div_mainreportColumn").parent().toggleClass("hidden"); }); } loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) { return []; } linkreport(aliasname) { var instance = this; instance.linkreport_aliasname = aliasname; instance.navigationHelper.popup(0, '', this, null, Platform.Helpers.Size.Medium); } ; loadReports() { var instance = this; instance.childReportName = ""; var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reports'; AutoCompleteHelper.getHelper().Create(".select_reports", "hfReportAutoComplete", url, function (res) { instance.childReportName = res.text.trim(); }); } mainReportColumns() { var instance = this; var mainrpt_Cols = []; if (instance._reportBuilder.selectedColumns.length != 0) { mainrpt_Cols.push({ id: 0, text: "Main Report Columns" }); for (let i = 0; i < instance._reportBuilder.selectedColumns.length; i++) { let sCol = instance._reportBuilder.selectedColumns[i]; mainrpt_Cols.push({ id: sCol.AliasName, text: sCol.AliasName }); } $('#cmbmainrptCols').select2({ placeholder: 'Select', data: mainrpt_Cols, }); } } subReportColumns(reportid) { var instance = this; instance._reportManager.getColumns(reportid).then(function (subresponse) { var subrpt_data = []; for (let i = 0; i < subresponse.result.length; i++) { subrpt_data.push({ id: subresponse.result[i].ReportColumnId, text: subresponse.result[i].AliasName }); } $('#cmbsbrptCols').select2({ placeholder: 'Select', data: subrpt_data, }); }); } loadInstalledApps() { return __awaiter(this, void 0, void 0, function* () { var instance = this; instance.appName = ""; var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/InstalledAppAutocomplete'; AutoCompleteHelper.getHelper().Create("#detailInstalledApps", "#hfAutoComplete_InstalledApp", url, function (res) { instance.appName = res.text.trim(); }); }); } primaryColumns() { var instance = this; var mainrpt_Cols = []; if (instance._reportBuilder.selectedColumns.length != 0) { mainrpt_Cols.push({ id: 0, text: "Main Report Columns" }); for (let i = 0; i < instance._reportBuilder.selectedColumns.length; i++) { let sCol = instance._reportBuilder.selectedColumns[i]; mainrpt_Cols.push({ id: sCol.AliasName, text: sCol.AliasName }); } $('#detailPrimaryKeyColumns').select2({ placeholder: 'Select', data: mainrpt_Cols, }); } } addSubReportFilter(paramname, paramvalue, operator, isValue) { var Confightml = ""; let id = paramname.replace(' ', '_').trim() + paramvalue.replace(' ', '_').trim(); Confightml = `
  • `; $(".ul2list_0").append(Confightml); if ($(".ul2list_0").children().length == 1) { $(".ul2list_0").children().first().find(".filter-remove-btn").addClass("disabled"); } } subReportEdit() { return __awaiter(this, void 0, void 0, function* () { var instance = this; yield instance.loadReports(); instance.mainReportColumns(); instance.primaryColumns(); yield instance.loadInstalledApps(); instance.subReportsExists = false; let subReportArray = instance.getSubReportContainerArray(); if (subReportArray != undefined) { var subfil_Index; if (subReportArray.length) instance.subReportsExists = true; if (instance.linkreport_aliasname) subfil_Index = subReportArray.findIndex(s => s.AliasName == instance.linkreport_aliasname); else { subfil_Index = subReportArray.findIndex(s => s.RowClick == true); if (subfil_Index == -1) { subfil_Index = subReportArray.findIndex(s => !s.AliasName && s.SubReportTypeId == Unibase.Platform.Analytics.Reports.Enums.SubReportType.Detail); } } if (subfil_Index > -1) { var subrpt_data = subReportArray[subfil_Index]; if (subrpt_data.SubReportTypeId == Unibase.Platform.Analytics.Reports.Enums.SubReportType.Report) { $("#reportRadioBtn").prop("checked", true); $(".select_reports").empty().append(''); $(".select_reports").val(subrpt_data.ChildReportId); instance.subReportId = subrpt_data.SubReportId; instance.childReportId = subrpt_data.ChildReportId; instance.parentReportId = subrpt_data.ReportId; instance.subReportColumns(subrpt_data.ChildReportId); var filters = JSON.parse(subrpt_data.Filters); for (var f = 0; f < filters.length; f++) { let fill = filters[f]; let id = fill.ParameterName.replaceAll(' ', '_').trim() + fill.ParameterValue.replaceAll(' ', '_').trim(); Confightml = `
  • `; $(".ul2list_0").append(Confightml); !f && $(".ul2list_0").find(".filter-remove-btn").addClass("disabled"); instance.filters.push(fill); } var Confightml = ""; if (!subrpt_data.Inline) $("#outlineRadioBtn").prop("checked", true); else $("#inlineRadioBtn").prop("checked", true); instance.inline = subrpt_data.Inline; } else { instance.isDetail = true; instance.subrpt_AliasName = subrpt_data.AliasName; instance.installedAppId = subrpt_data.InstalledAppId; instance.primaryKeyColumn = subrpt_data.PrimaryKeyColumn; $("#detailRadioBtn").prop("checked", true); $('#linkreport_modal,#detailScreenBody').toggleClass('d-none'); $('#subrpt_plus').addClass('d-none'); $("#detailInstalledApps").empty().append(''); $("#detailInstalledApps").val(subrpt_data.InstalledAppId); $('#detailPrimaryKeyColumns').val(subrpt_data.PrimaryKeyColumn).trigger('change'); } } } }); } subReportType_Deatil() { var instance = this; instance.isDetail = true; var subfil_Index = instance._reportBuilder.subreportdata.findIndex(s => s.AliasName == instance.linkreport_aliasname); if (subfil_Index > -1) { var subfill = instance._reportBuilder.subreportdata[subfil_Index]; var fil = JSON.parse(subfill.Filters); for (var i = 0; i < fil.length; i++) { let id = fil[i].ParameterName.replace(' ', '_') + fil[i].ParameterValue.replace(' ', '_'); $("#li_filter_ul2list_0" + id).remove(); instance._reportBuilder.subreportdata.splice(subfil_Index, 1); } } $('.select_reports').val(0).trigger('change'); $('#cmbmainrptCols').val(0).trigger('change'); $('#cmbsbrptCols').val(0).trigger('change'); instance.primaryColumns(); instance.loadInstalledApps(); } subReportType_Report() { var instance = this; instance.isDetail = false; var subfil_Index = instance._reportBuilder.subreportdata.findIndex(s => s.AliasName == instance.linkreport_aliasname); if (subfil_Index > -1) { $('#detailInstalledApps').val('0').trigger('change'); $('#detailPrimaryKeyColumns').val('0').trigger('change'); $("#txt_detailonclick").val(""); instance._reportBuilder.subreportdata.splice(subfil_Index, 1); } } saveSubReport_Report(subReportArray) { var instance = this; var rowclick = true; if (instance.linkreport_aliasname) rowclick = false; let reportType = this._reportBuilder.res ? this._reportBuilder.res.ReportTypeId : this._reportBuilder.reportType; let isChart = reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table ? false : true; var subreportdata = new NestedTableModel(); subreportdata.ChildReportId = Number($('.select_reports').val()); subreportdata.ChildReportName = instance.childReportName; subreportdata.Filters = JSON.stringify(instance.filters); subreportdata.SubReportTypeId = ($("#reportRadioBtn").is(":checked")) ? Unibase.Platform.Analytics.Reports.Enums.SubReportType.Report : 0; subreportdata.Inline = instance.inline; subreportdata.RowClick = rowclick; subreportdata.AliasName = instance.linkreport_aliasname; if (!subreportdata.ChildReportId && !instance.subReportsExists) { MessageHelper.Instance().showError("Please select sub report ", "sub_report_error_message"); return true; } else if (subreportdata.Filters == '[]' && !instance.subReportsExists && !isChart) { MessageHelper.Instance().showError("Please select sub report columns ", "sub_report_error_message"); return true; } if (isChart && subreportdata.Filters == '[]') { this._reportBuilder.linkReportId = subreportdata.ChildReportId; } if (subReportArray.length != 0 && typeof (subReportArray) == 'object') { var Index; if (instance.linkreport_aliasname) Index = subReportArray.findIndex(s => s.AliasName == instance.linkreport_aliasname); else Index = subReportArray.findIndex(s => s.RowClick == true); if (Index > -1 && subreportdata.Filters != "[]" && subreportdata.ChildReportId) { subReportArray[Index] = subreportdata; } else if (subreportdata.Filters != "[]" && subreportdata.ChildReportId) { subReportArray.push(subreportdata); } } else { if (subreportdata.ChildReportId) subReportArray.push(subreportdata); } instance._reportBuilder.subreporttabledata = subReportArray; return false; } saveSubReport_DetailFields() { var instance = this; var subreportdata = new NestedTableModel(); subreportdata.InstalledAppId = Number($("#detailInstalledApps").val()); subreportdata.PrimaryKeyColumn = $("#detailPrimaryKeyColumns option:selected").text().trim(); subreportdata.Inline = instance.inline; subreportdata.SubReportTypeId = ($("#detailRadioBtn").is(":checked")) ? Unibase.Platform.Analytics.Reports.Enums.SubReportType.Detail : 0; subreportdata.AliasName = instance.linkreport_aliasname; subreportdata.AppName = instance.appName; if (subreportdata.PrimaryKeyColumn.toLowerCase() == "select column") return MessageHelper.Instance().showError("Please select primary key column", "sub_report_error_message"); else if (!subreportdata.InstalledAppId) return MessageHelper.Instance().showError("Please select installed app", "sub_report_error_message"); let subReportArray = instance.getSubReportContainerArray(); if (subReportArray.length != 0) { var Index; if (instance.linkreport_aliasname) Index = subReportArray.findIndex(s => s.AliasName == instance.linkreport_aliasname); else Index = subReportArray.findIndex(s => s.RowClick == true); if (Index > -1 && subreportdata.AppName != 'Select') { subReportArray[Index] = subreportdata; } else if (subreportdata.AppName != 'Select') { subReportArray.push(subreportdata); } } else { subReportArray.push(subreportdata); } } removefilters(reportid, mainreportcolumn, subreportcolumn, id) { var instance = this; if (instance.linkreport_aliasname) { if (instance._reportBuilder.subreportdata.length != 0) { var index = instance._reportBuilder.subreportdata.findIndex(s => s.AliasName == instance.linkreport_aliasname); if (index > -1) { instance._reportBuilder.subreportdata.splice(index, 1); } } } else { if (instance.filters.length == 1) { var index = instance._reportBuilder.subreportdata.findIndex(function (o) { return (o.ChildReportId === reportid); }); if (index !== -1) instance._reportBuilder.subreportdata.splice(index, 1); } } var fillIndex = instance.filters.findIndex(function (f) { return (f.ParameterName == mainreportcolumn) && (f.ParameterValue === subreportcolumn); }); if (fillIndex > -1) instance.filters.splice(fillIndex, 1); if (!instance.filters.length) $(event.target).closest(".report-body").find(".select_reports.custom-select").empty(); $("#" + id + "").empty(); } ; load_old(id, containerid, callback) { var instance = this; $('#cmbmainrptCols_1').empty(); var data = []; var subreportid = 0; instance._reportManager.getReports().then(function (response) { var Data = response; data.push({ id: 0, text: "Select" }); data.push({ id: 0, text: "Select" }); for (let i = 0; i < Data.length; i++) { data.push({ id: Data[i].ReportId, text: Data[i].ReportName }); } $('.select_reports').select2({ placeholder: 'Select', data: data, }).on('select2:select', function (e) { var reportid = Number($(".select_reports").val()); let sub_blk = this.closest(".sub-report-block"); if (sub_blk) $(sub_blk).data("subreportid", reportid.toString()); $("#cmbsbrptCols_1").find('option').not(':first').remove(); instance._reportManager.getColumns(reportid).then(function (response) { for (let i = 0; i < response.result.length; i++) { var columnname = response.result[i].DisplayText; var columnvalue = response.result[i].ReportColumnId; $(''); }); $("#linkreport_modal").click(this.subReportMdown.bind(this)); const installedAppsUrl = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/InstalledAppAutocomplete'; AutoCompleteHelper.getHelper().Create("#detailInstalledApps", "#hfDetailInstalledApps", installedAppsUrl, null); $('.subreport-radio-btn').change(function () { if ($(this).val() == 'report') { $('#linkreport_modal,#detailScreenBody').toggleClass('d-none'); if ($('.opentype-radio-btn:checked').val() == 'inline') { $('#subrpt_plus').removeClass('d-none'); } } else { $('#linkreport_modal,#detailScreenBody').toggleClass('d-none'); $('#subrpt_plus').addClass('d-none'); } }); $('.opentype-radio-btn').change(function () { if ($(this).val() == 'inline') { $('#subrpt_plus').removeClass('d-none'); } else { $('#subrpt_plus').addClass('d-none'); } }); } removefilters_old(reportid, mainreportcolumn, subreportcolumn, id) { var instance = this; $("#" + id + "").empty(); var index = instance._reportBuilder.subreportdata.findIndex(function (o) { return (o.ChildReportId === reportid) && (o.ReportColumnId === mainreportcolumn) && (o.SubReportColumnId === subreportcolumn); }); if (index !== -1) instance._reportBuilder.subreportdata.splice(index, 1); } ; addfilter(id, SubReportId) { var instance = this; let text = $("#cmbmainrptCols_" + id + " option:selected").text(); let text1 = $("#cmbsbrptCols_" + id + " option:selected").text(); let opertaor = $("#slctdoperater_" + id + " option:selected").text(); var filterhtml = `
  • `; $(".ul2list_" + id + "").append(filterhtml); var subreportdata = new NestedTableModel(); subreportdata.SubReportId = instance.subReportId || SubReportId; subreportdata.ChildReportId = Number($("#cmdsub_" + id + "").val()); subreportdata.Operator = $("#slctdoperater_" + id + " option:selected").text(); subreportdata.ParameterValue = $("#cmbmainrptCols_" + id + " option:selected").text(); subreportdata.ParameterName = $("#cmbsbrptCols_" + id + " option:selected").text(); subreportdata.ReportColumnId = Number($("#cmbmainrptCols_" + id + " option:selected").val()); subreportdata.SubReportColumnId = Number($("#cmbsbrptCols_" + id + " option:selected").val()); subreportdata.ReportColumnName = ($("#cmbmainrptCols_" + id + " option:selected").text()); subreportdata.SubReportColumnName = $("#cmbsbrptCols_" + id + " option:selected").text(); instance._reportBuilder.subreportdata.push(subreportdata); $("#cmbmainrptCols_" + id).val("0"); $("#cmbsbrptCols_" + id).val("0"); } ; linkreport_old() { var instance = this; instance.navigationHelper.popup(0, '', this, null, Platform.Helpers.Size.Medium); } ; subReportMdown(e) { let subrp = e.target.closest(".sub-report-block"); let childReportId = $(subrp).data("subreportid"); if (childReportId) childReportId = Number(childReportId); if (e.target.classList.contains("remove_subrpt") || e.target.closest(".remove_subrpt")) { let sRIdx; if (this._reportBuilder.subreportdata.filter(x => x.ChildReportId == childReportId).length == 1) { sRIdx = this._reportBuilder.subreportdata.findIndex(x => x.ChildReportId == childReportId); if (sRIdx != -1) this._reportBuilder.subreportdata.splice(sRIdx, 1); } else if (this._reportBuilder.subreportdata.filter(x => x.ChildReportId == childReportId).length > 1) { let childReportColumnId = Number($(subrp).data("subreportcolumnid")); if (childReportColumnId) { sRIdx = this._reportBuilder.subreportdata.findIndex(x => x.ChildReportId == childReportId && x.SubReportColumnId == childReportColumnId); if (sRIdx != -1) this._reportBuilder.subreportdata.splice(sRIdx, 1); } } subrp.remove(); } else if (e.target.classList.contains("remove_subrpt_columns") || e.target.closest(".remove_subrpt_columns")) { let sRIdx = this._reportBuilder.subreportdata.findIndex(x => x.ChildReportId == childReportId); if (sRIdx != -1) this._reportBuilder.subreportdata.splice(sRIdx, 1); $(e.target).closest(".filteritems-addedrow").remove(); } } removeSubreport() { let idx = -1; let subReportArray = this.getSubReportContainerArray(); if (!this.isDetail) { if (this.subReportId) idx = subReportArray.findIndex(x => x.SubReportId == this.subReportId); else idx = subReportArray.findIndex(x => x.ReportId == this.parentReportId && x.ChildReportId == this.childReportId); if (idx > -1) { this.linkreport_aliasname = ''; this.filters = []; this.childReportName = ''; subReportArray.splice(idx, 1); } $("#subreports-filters-list").empty(); $("#cmdsub_1").val("0").empty(); } else { if (this.installedAppId) idx = subReportArray.findIndex(x => x.AliasName == this.subrpt_AliasName && x.InstalledAppId == this.installedAppId); else idx = subReportArray.findIndex(x => x.ReportId == this.parentReportId && x.ChildReportId == this.childReportId); if (idx > -1) { this.installedAppId = 0; subReportArray.splice(idx, 1); } $("#detailPrimaryKeyColumns").val("0").trigger("change"); $("#detailInstalledApps").val("0").trigger("change"); } } getSubReportContainerArray() { if (this.isReportDuplicate) { return Analytics.Components.DuplicateReport.Instance().subReports; } else { return this._reportBuilder.subreportdata; } } static Instance() { if (this.instance === undefined) { this.instance = new SubReport(); } return this.instance; } } Reports.SubReport = SubReport; })(Reports = Analytics.Reports || (Analytics.Reports = {})); })(Analytics = Platform.Analytics || (Platform.Analytics = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {}));