var Unibase; (function (Unibase) { let Platform; (function (Platform) { let Analytics; (function (Analytics) { let Reports; (function (Reports) { class ReportFilter extends Platform.Core.BaseComponent { constructor() { super(); this.isUnLimited = true; this.isreportViewer = false; this.dynamicFilters = []; this.datalistColumns = []; this.reportManager = Analytics.Managers.ReportManager.Instance(); this.reportBuilder = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance(); } cssFiles() { return []; } jsFiles() { var jsFiles = ['platform/analytics/managers/reportmanager.js', 'platform/datasources/managers/datalistmanager.js']; return jsFiles; } html(id, containerid) { var html = ``; return html; } load(index, containerid, callback) { var instance = this; $("#isunlimited_checkbox").click(function () { if ($('#isunlimited_checkbox').prop('checked') == false) { instance.isUnLimited = false; $('#isunlimited_checkbox').prop('checked', false); } else { instance.isUnLimited = true; $('#isunlimited_checkbox').prop('checked', true); } }); var reportcolumn = Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.selectedColumns[index]; var filtercols = []; if (!instance.isreportViewer) { filtercols = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().dynamicFilters.filter(function (o) { return o.IsFilterableColumn === reportcolumn.AliasName; }); } else { filtercols = instance.dynamicFilters.filter(function (o) { return o.IsFilterableColumn === instance.displayText; }); } if (filtercols.length > 0) { if (filtercols[0].IsUnLimited) { $('#isunlimited_checkbox').prop('checked', true); } if (filtercols[0].IsRequired) { $('#isrequired_checkbox').prop('checked', true); } $("#ControlTypeDropDown").val(filtercols[0].ControlTypeId); $("#FontCaseTypeDropDown").val(filtercols[0].FontCaseTypeId); $("#datalistauto_AutoComplete").append(""); $('#datalistauto_AutoComplete').unbind().trigger('change'); Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportManager.getDataListColumns(Number($("#datalistauto_AutoComplete").val()), null, null).then((response) => { if (response.status == Unibase.Data.Status.Success) { if (response.result != "") { this.datalistColumns = JSON.parse(response.result); var data = []; for (let i = 0; i < this.datalistColumns.length; i++) { data.push({ id: this.datalistColumns[i].ColumnId, text: this.datalistColumns[i].AliasName }); } var valcol; var txtcol; if (data.filter(function (o) { return o.text === filtercols[0].ValueColumn; }).length > 0) { valcol = data.filter(function (o) { return o.text === filtercols[0].ValueColumn; })[0].id; } if (data.filter(function (o) { return o.text === filtercols[0].TextColumn; }).length > 0) { txtcol = data.filter(function (o) { return o.text === filtercols[0].TextColumn; })[0].id; } $("#datalistvalue_AutoComplete").select2({ placeholder: 'Select DataList', data: data, }); $("#datalisttext_AutoComplete").select2({ placeholder: 'Select DataList', data: data, }); $("#datalistvalue_AutoComplete").val(valcol).trigger("change"); $("#datalisttext_AutoComplete").val(txtcol).trigger("change"); } else { return MessageHelper.Instance().showError("No DatalistColumns", "divDynamicFilter_ErrorMessage"); } } else { return MessageHelper.Instance().showError(response.message, "divDynamicFilter_ErrorMessage"); } }); $("#txt_DisplayName").val(filtercols[0].DisplayName); } else { (reportcolumn) && $("#txt_DisplayName").val(reportcolumn.DisplayText); } var url = _appsettings.server_url() + '/apis/v4/unibase/platform/datalists/getall_autocomplete'; AutoCompleteHelper.getHelper().Create("#datalistauto_AutoComplete", "#hfcommmonfilterAutoComplete_DataList", url, function (response) { var data = response; $("#btnClear").click(function () { let dynamicFilters = []; if (!Unibase.Platform.Analytics.Reports.ReportFilter.Instance().isreportViewer) { dynamicFilters = Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters; var index = Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters.findIndex(function (o) { return (o.IsFilterableColumn === reportcolumn.DisplayText); }); if (index !== -1) Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters.splice(index, 1); reportcolumn.IsFilterable = false; } else { dynamicFilters = Unibase.Platform.Filters.Components.Editfilters.Instance().dynamicFilters; } var filter = dynamicFilters.find(x => x.TextColumn == $("#datalisttext_AutoComplete").select2('data')[0].text.trim()); Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportManager.deleteDynamicFilter(filter.DynamicFilterId).then(function (response) { }); $("#datalistauto_AutoComplete").text("select"); $("#datalisttext_AutoComplete").text("select"); $("#datalistvalue_AutoComplete").text("select"); }); $("#btnSave").unbind().click(function () { if (instance.isreportViewer) Unibase.Platform.Filters.Components.Editfilters.Instance().saveDynamicFilter(containerid); else instance.save(reportcolumn, containerid); }); $("#btnClose").unbind().click(function () { $('#' + containerid).modal('hide'); $('#' + containerid).remove(); instance.isreportViewer = false; }); $("#datalistauto_AutoComplete").unbind().change(function () { Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportManager.getDataListColumns(Number($("#datalistauto_AutoComplete").val()), null, null).then(function (response) { if (response.status == Unibase.Data.Status.Success) { var res; if (response.result != "") { res = JSON.parse(response.result); var data = []; for (let i = 0; i < res.length; i++) { data.push({ id: res[i].ColumnId, text: res[i].AliasName }); } $("#datalistvalue_AutoComplete").html(""); $("#datalisttext_AutoComplete").html(""); $("#datalistvalue_AutoComplete").select2({ placeholder: 'Select DataList', data: data, }); $("#datalisttext_AutoComplete").select2({ placeholder: 'Select DataList', data: data, }); } else { return MessageHelper.Instance().showError("No DataListColumns", "divDynamicFilter_ErrorMessage"); } } else { return MessageHelper.Instance().showError(response.message, "divDynamicFilter_ErrorMessage"); } }); }); }); let dlId = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().DataListId; Unibase.Platform.DataSources.Managers.DataListManager.Instance().getDataList(dlId).then((res) => { if (res.status == Unibase.Data.Status.Success) { if (res.result.Parameters) { let params = res.result.Parameters.replaceAll("@", ""); params = params.split("|"); let paramOptions = ""; for (var i = 0; i < params.length; i++) { let currentFilter = filtercols.find(x => x.MappedColumn == params[i]); if (currentFilter) paramOptions += ``; else paramOptions += ``; } $("#mappedcolumnsdropdown").append(paramOptions); } else { $(".mappedcolumnsdiv").addClass("d-none"); } } }); } save(reportcolumn, containerid) { let currentDatalistCol; let IsFilterable = reportcolumn.IsFilterable; if (IsFilterable == false) reportcolumn.IsFilterable = !IsFilterable; var dynamicFilters = Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters; let dynamicfilterid = 0; var dynamicfilIndex = dynamicFilters.find(d => d.IsFilterableColumn == reportcolumn.DisplayText); var dynFill = dynamicFilters.filter(function (o) { return o.IsFilterableColumn === reportcolumn.DisplayText; }); if (dynFill.length > 0) { dynamicfilterid = dynFill[0].DynamicFilterId; var index = dynamicFilters.findIndex(function (o) { return (o.IsFilterableColumn === reportcolumn.DisplayText); }); if (index !== -1) dynamicFilters.splice(index, 1); } var model = new DynamicFilterModel(); model.IsFilterableColumn = reportcolumn.AliasName; model.DynamicFilterId = dynamicfilterid; model.DataListId = Number($("#datalistauto_AutoComplete").val()); model.DataListName = $("#datalistauto_AutoComplete").select2('data')[0].text; model.ReportId = 0; model.MappedColumn = $("#mappedcolumnsdropdown option:selected").val() === "0" ? "" : $("#mappedcolumnsdropdown option:selected").val().toString(); model.TextColumn = $("#datalisttext_AutoComplete").select2('data')[0].text.trim(); model.ValueIdColumn = Number($("#datalistvalue_AutoComplete").val()); model.ValueColumn = $("#datalistvalue_AutoComplete").select2('data')[0].text.trim(); model.TextIdColumn = Number($("#datalisttext_AutoComplete").val()); model.Index = (dynamicfilIndex) ? dynamicfilIndex.Index : dynamicFilters.length; model.ControlTypeId = Number($("#ControlTypeDropDown").val()); model.FontCaseTypeId = Number($("#FontCaseTypeDropDown").val()); model.DataType = reportcolumn.DataType; model.DisplayName = $("#txt_DisplayName").val().toString(); model.IsDefault = $(".dynamicfilter-defaultdate_" + reportcolumn.ColumnName).is(":checked"); model.IsUnLimited = $("#isunlimited_checkbox").prop("checked"); model.IsRequired = $("#isrequired_checkbox").prop("checked"); currentDatalistCol = this.datalistColumns.find(x => x.ColumnId == model.ValueIdColumn); if (currentDatalistCol && reportcolumn.DataType == Reports.Enums.DataType.string && currentDatalistCol.DataTypeId != Reports.Enums.DataType.string && currentDatalistCol.DataTypeId != Reports.Enums.DataType.text) return MessageHelper.Instance().showError("Selected value column data type should be string", "report_viewer_filter"); else if (currentDatalistCol && (reportcolumn.DataType == Reports.Enums.DataType.int32 || reportcolumn.DataType == Reports.Enums.DataType.int64 || reportcolumn.DataType == Reports.Enums.DataType.decimal) && currentDatalistCol.DataTypeId != Reports.Enums.DataType.int32 && currentDatalistCol.DataTypeId != Reports.Enums.DataType.int64 && currentDatalistCol.DataTypeId != Reports.Enums.DataType.decimal) return MessageHelper.Instance().showError("Selected value column data type should be integer as dynamic filter data type is integer", "report_viewer_filter"); Unibase.Platform.Analytics.Reports.ReportFilter.Instance().sortDynamicFilter(model); Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters.push(model); $('#' + containerid).modal('hide'); $('#' + containerid).remove(); } sortDynamicFilter(model) { var instance = this; let filetersList = $('#dynamic-list-group-wrapper'); if (!filetersList) return; filetersList.sortable({ connectWith: "#dynamic-list-group-wrapper", cursor: 'move', update: function (event, ui) { $.each($('#dynamic-list-group-wrapper .datagroup'), function (index, item) { let itemName = $(item).attr('data-isfilterablecolumn'); let dynamicFilters = instance.dynamicFilters; if (dynamicFilters.length != 0) { for (let x = 0; x < dynamicFilters.length; x++) { if (dynamicFilters[x].IsFilterableColumn == itemName) { dynamicFilters[x].Index = index; break; } } } if (instance.isreportViewer) $(item).find('.filter-index').text(index + 1); }); if (!instance.isreportViewer) instance.reportBuilder.load_data(instance.reportBuilder.table); } }); } dynamicFilterIsDefaultDateColumn(columnName) { var dIndex = this.getIndexByDisplayText_dynamicFilterColumns(columnName); if (dIndex != -1) { let filtermodelarray = new Array(); let currentFilter = this.reportBuilder.dynamicFilters[dIndex]; if (currentFilter.IsPartition) { $("#dynamicfilter-defaultdate_" + columnName).prop("checked", false); return MessageHelper.Instance().showError("Dynamic filter cannot be both partition and default, uncheck partition before making default", "div_ReportBuilderErrorMessage"); } if ($("#dynamicfilter-defaultdate_" + columnName).hasClass("imchecked")) { $("input[type=radio][name=defaultdate]").prop('checked', false); $("#dynamicfilter-defaultdate_" + columnName).removeClass("imchecked"); } var isdefault = $("#dynamicfilter-defaultdate_" + columnName).is(":checked"); if (isdefault) $("#dynamicfilter-defaultdate_" + columnName).addClass("imchecked"); currentFilter.IsDefault = isdefault; this.reportBuilder.dynamicFilters[dIndex] = currentFilter; Unibase.Platform.Analytics.Managers.ReportManager.Instance().saveDynamicFilter(this.reportBuilder.reportid, this.reportBuilder.dynamicFilters).then((res) => { if (res.status == Unibase.Data.Status.Success) MessageHelper.Instance().showSuccess("Filter Saved Sucessfully", "divEditFiltersErrMsg"); else MessageHelper.Instance().showError(res.message, "div_ReportBuilderErrorMessage"); }); } } dynamicFilterIsPartition(columnName) { var dIndex = this.getIndexByDisplayText_dynamicFilterColumns(columnName); if (dIndex != -1) { let filtermodelarray = new Array(); let currentFilter = this.reportBuilder.dynamicFilters[dIndex]; if (currentFilter.IsDefault) { $("#chk_ispartition_" + columnName).prop("checked", false); return MessageHelper.Instance().showError("Dynamic filter cannot be both partition and default, uncheck default before making partition", "div_ReportBuilderErrorMessage"); } var ispartition = $("#chk_ispartition_" + columnName).prop("checked"); currentFilter.IsPartition = ispartition; this.reportBuilder.dynamicFilters[dIndex] = currentFilter; Unibase.Platform.Analytics.Managers.ReportManager.Instance().saveDynamicFilter(this.reportBuilder.reportid, this.reportBuilder.dynamicFilters).then((res) => { if (res.status == Unibase.Data.Status.Success) MessageHelper.Instance().showSuccess("Filter Saved Sucessfully", "divEditFiltersErrMsg"); else MessageHelper.Instance().showError(res.message, "div_ReportBuilderErrorMessage"); }); } } removeDynamicFilterSelectedColumn_table(DisplayText) { var instance = this; bootbox.confirm("Do you want to Delete the Filter?", function (result) { if (result) { var index = instance.dynamicFilters.findIndex(function (o) { if (o.IsFilterableColumn === DisplayText) { instance.reportManager.deleteDynamicFilter(o.DynamicFilterId).then(function (response) { if (response.status == Unibase.Data.Status.Success) { MessageHelper.Instance().showSuccess(response.message, ''); } else if (response.status == Unibase.Data.Status.Error) { MessageHelper.Instance().showError(response.message, 'divEditFiltersErrMsg'); } }); } return o.IsFilterableColumn === DisplayText; }); if (index !== -1) instance.dynamicFilters.splice(index, 1); $(`[data-isfilterablecolumn="${DisplayText}"]`).remove(); if (instance.dynamicFilters.length != 0) { for (var i = 0; i < instance.dynamicFilters.length; i++) { let filterIndex = instance.getIndexByDisplayText_dynamicFilterColumns(instance.dynamicFilters[i].IsFilterableColumn); instance.dynamicFilters[filterIndex].Index = i; if (instance.isreportViewer) $("#dynamic-list-group-wrapper .filter-item").eq(i).find('.filter-index').text(i + 1); } } else { if (instance.isreportViewer) { $('#dynamicFiltersCard').addClass('d-none'); if (!$('#staticFiltersCard').is(':visible')) { $('#noFiltersErrMsg').removeClass('d-none'); } } } } }); } getIndexByDisplayText_dynamicFilterColumns(isFilterableColumn) { return this.reportBuilder.dynamicFilters.findIndex(x => x.IsFilterableColumn == isFilterableColumn); } static Instance() { if (this.instance === undefined) { this.instance = new ReportFilter(); } return this.instance; } } Reports.ReportFilter = ReportFilter; })(Reports = Analytics.Reports || (Analytics.Reports = {})); })(Analytics = Platform.Analytics || (Platform.Analytics = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {})); var Unibase; (function (Unibase) { let Platform; (function (Platform) { let Analytics; (function (Analytics) { let Reports; (function (Reports) { let Requests; (function (Requests) { class ReportGroup { } Requests.ReportGroup = ReportGroup; })(Requests = Reports.Requests || (Reports.Requests = {})); })(Reports = Analytics.Reports || (Analytics.Reports = {})); })(Analytics = Platform.Analytics || (Platform.Analytics = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {})); var Unibase; (function (Unibase) { let Platform; (function (Platform) { let Analytics; (function (Analytics) { let Reports; (function (Reports) { class ReportGroup extends Platform.Core.BaseComponent { constructor() { super(); this.parentGroupId = 0; this.groupId = 0; this.groupName = ''; this._reportManager = Analytics.Managers.ReportManager.Instance(); } cssFiles() { return []; } jsFiles() { var jsFiles = ['platform/analytics/requests/reportgroup.js', 'platform/core/infos/status.js']; return jsFiles; } html(id, containerid) { let html = `
`; return html; } load(id, containerid, callback) { var instance = this; instance.parentGroupId = 0; $("#" + containerid).find(".modal-body").css('height', $(window).outerHeight() - $("#" + containerid).find(".modal-header").outerHeight() - $("#" + containerid).find(".modal-footer").outerHeight() + 'px'); if (id != 0) instance.loadReportGroup(id); $("#btn_SaveReportGrp").click(function () { let isInternal = $("#reportGroup_IsInternalGroup").prop("checked"); let isEnableFolder = $("#reportGroup_IsEnableFolder").prop("checked"); let groupIndex = $("#txt_reportgroupindex").val(); if ($("#txt_GroupName").val() == "") return MessageHelper.Instance().showError("Please select ReportGroup", 'divReportGroup_ErrorMessage'); let model = new Unibase.Platform.Analytics.Reports.Requests.ReportGroup(); model.GroupName = String($("#txt_GroupName").val()); model.ReportGroupId = id; model.IsInternalGroup = isInternal; model.EnableFolder = isEnableFolder; model.ReportGroupIndex = !parseInt(groupIndex) ? 0 : parseInt(groupIndex); model.ParentGroupId = instance.parentGroupId; model.DisplayName = String($("#txt_displayname").val()); instance._reportManager.saveReportGroup(model).then(function (response) { let res = JSON.parse(response.result); if (response.status == Unibase.Data.Status.Error) { MessageHelper.Instance().showError(response.message, 'divReportGroup_ErrorMessage'); } else { $("#RptGroup_AutoComplete").append(""); MessageHelper.Instance().showSuccess(response.message, ''); $('#' + containerid).modal('hide'); $('#' + containerid).remove(); } }); }); $("#btn_CloseForm").click(function () { $('#' + containerid).modal('hide'); $('#' + containerid).remove(); $("#RptGroup_AutoComplete").remove(); }); instance.loadReportGroups(); $("#parentgroupid").change(function (e) { instance.parentGroupId = Number(e.currentTarget.value); var parentGroupName = e.currentTarget.textContent.trim(); if (instance.groupId == instance.parentGroupId) { e.currentTarget.value = "0"; e.currentTarget.textContent = ""; MessageHelper.Instance().showError(`Cannot select same report group as parent group`, 'divReportGroup_ErrorMessage'); return false; } if (instance.groupId && instance.parentGroupId) { instance._reportManager.checkReportGroupDependency(instance.groupId, instance.parentGroupId).then((response) => { if (response.status == Unibase.Data.Status.Success && response.result) { e.currentTarget.value = "0"; e.currentTarget.textContent = ""; MessageHelper.Instance().showError(`Parent group ${parentGroupName} has the current report group ${instance.groupName} as parent group, change the parent report group and try again`, 'divReportGroup_ErrorMessage'); return false; } }); } }); } loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) { var instance = this; instance.navigationHelper.popup(0, '', instance, null, Platform.Helpers.Size.Large); } loadReportGroupForm(iscreate) { var Pk_Value = 0; var instance = this; if (!iscreate) { Pk_Value = Unibase.Themes.Providers.DetailHelper.recordId; } instance.navigationHelper.popup(Pk_Value, '', instance, null, Platform.Helpers.Size.Large); } editReportGroup() { var instance = this; var reportGroupId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportgroupid")).Value); instance.navigationHelper.popup(reportGroupId, "", instance, null, Unibase.Platform.Helpers.Size.Large); } loadReportGroup(id) { var instance = this; instance._reportManager.getReportGroupById(id).then(function (response) { if (response.status == Unibase.Data.Status.Success) { var res = response.result; instance.groupId = response.result.ReportGroupId; instance.groupName = response.result.GroupName; instance.displayName = response.result.DisplayName; $("#txt_GroupName").val(res.GroupName).attr("disabled", "disabled"); $("#reportGroup_IsInternalGroup").prop("checked", res.IsInternalGroup); $("#reportGroup_IsEnableFolder").prop("checked", res.EnableFolder); $("#txt_reportgroupindex").val(res.ReportGroupIndex); $("#txt_displayname").val(res.DisplayName); if (res.ParentGroupId) { instance.parentGroupId = res.ParentGroupId; instance._reportManager.getReportGroupById(res.ParentGroupId).then(res => { if (res.status == Unibase.Data.Status.Success) { var option = new Option(res.result.RecursiveParentName, res.result.ReportGroupId.toString(), true, true); $("#parentgroupid").append(option); } }); } } else { return MessageHelper.Instance().showError(response.message, "divReportGroup_ErrorMessage"); } }); } exportGroupReports(reportgroupid) { var instance = this; var ReportGroupId = 0; if (reportgroupid == 0) ReportGroupId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportgroupid")).Value); else ReportGroupId = reportgroupid; if (ReportGroupId != 0) { instance.navigationHelper.showLoading(); instance._reportManager.getReportGroupById(ReportGroupId).then(function (response) { let groupname = response.result.GroupName; instance._reportManager.exportGroupreports(ReportGroupId).then(function (rptgrpresponse) { var filename = groupname + ".xml"; var xmltext = rptgrpresponse.result; var pom = document.createElement('a'); var 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 = true; pom.classList.add('dragout'); pom.click(); instance.navigationHelper.hideLoading(); }); }); } } deleteReportGroup() { const reportGroupId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportgroupid")).Value); const reportCount = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportcount")).Value); if (!reportCount) { bootbox.confirm("Are you sure to delete this group?", (result) => { if (result) { this._reportManager.deleteReportGroup(reportGroupId).then((response) => { if (response.status == Unibase.Data.Status.Success) { MessageHelper.Instance().showSuccess("Report group has been sucessfully deleted", 'divReportGroup_ErrorMessage'); Unibase.Platform.Apps.Managers.AppManager.Instance().getInstallAppId("Unibase_Platform_Analytics_Reports_App_ReportsGroup").then((response) => { if (response.status == Unibase.Data.Status.Success) Unibase.Themes.Compact.Components.Nav.Instance().loadList(response.result.InstalledAppId); }); } else MessageHelper.Instance().showError(response.message, 'divReportGroup_ErrorMessage'); }); } }); } else bootbox.confirm("One or more reports are associated with this group, Please ensure to delete all reports associated with this group before deleting", () => { }); } loadReportGroups() { var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reportgroups_autocompleterecursive'; AutoCompleteHelper.getHelper().Create("#parentgroupid", "#hfAutoComplete_ReportGroup", url, null); } updateStatus() { var instance = this; let reportidGroupId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportgroupid")).Value); let statusId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("statusid")).Value); let installedappId = Number(Unibase.Themes.Providers.DetailHelper.installedAppId); $("#DetailSetting_" + installedappId + "_Active").removeClass("btn-outline-primary"); if (statusId == Unibase.Platform.Core.Enums.RowStatus.Active) { $("#DetailSetting_" + installedappId + "_Active").addClass("btn-success"); $("#DetailSetting_" + installedappId + "_Active").removeClass("btn-red"); } else { $("#DetailSetting_" + installedappId + "_Active").removeClass("btn-success"); $("#DetailSetting_" + installedappId + "_Active").addClass("btn-red"); } $("#DetailSetting_" + installedappId + "_Active").text((statusId == Unibase.Platform.Core.Enums.RowStatus.Active) ? "Active" : "InActive"); $("#DetailSetting_" + installedappId + "_Active").click(function () { let id = Unibase.Platform.Core.Enums.RowStatus.Active; if ($("#DetailSetting_" + installedappId + "_Active").text() == "Active") id = Unibase.Platform.Core.Enums.RowStatus.InActive; instance._reportManager.updateReportGroupStatus(reportidGroupId, id).then(function (statusres) { if (statusres.status == Unibase.Data.Status.Success) { } }); }); } static Instance() { if (this.instance === undefined) { this.instance = new ReportGroup(); } return this.instance; } } Reports.ReportGroup = ReportGroup; })(Reports = Analytics.Reports || (Analytics.Reports = {})); })(Analytics = Platform.Analytics || (Platform.Analytics = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {})); 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 (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.ChildReportId) { subReportArray[Index] = subreportdata; } else if (subreportdata.ChildReportId) { subReportArray.push(subreportdata); } } else { if (subreportdata.ChildReportId) subReportArray.push(subreportdata); } instance._reportBuilder.subreportdata = 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 = {})); var Unibase; (function (Unibase) { let Platform; (function (Platform) { let Analytics; (function (Analytics) { let Reports; (function (Reports) { class ColumnFormat { loadFormats(DataType) { var formats = []; if (DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) { formats = [{ id: 0, format: 'Default' }, { id: 1, format: 'dd/mm/yyyy' }, { id: 2, format: 'mm/dd/yyyy' }, { id: 3, format: 'yyyy/mm/dd' }, { id: 4, format: 'Mon dd, yyyy' }, { id: 5, format: 'Mon/yyyy' }, { id: 6, format: 'hh' }, { id: 7, format: 'mm' }, { id: 8, format: 'ss' }, { id: 9, format: 'hh:mm:ss' }, { id: 10, format: 'hh:mm:ss AM' }, { id: 11, format: 'dd/mm/yyyy hh:mm:ss' }, { id: 12, format: 'dd/mm/yyyy hh:mm' }, { id: 13, format: 'dd/mm/yyyy hh:mm:ss AM' }, { id: 14, format: 'Mon dd, yyyy hh:mm:ss AM' }]; } else if (DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.decimal) { formats = [{ id: 0, format: 'Default' }, { id: 1, format: '0.0' }, { id: 2, format: '0.00' }, { id: 3, format: '0.000' }, { id: 3, format: '0.0000' }]; } return formats; } static Instance() { if (this.instance === undefined) { this.instance = new ColumnFormat(); } return this.instance; } } Reports.ColumnFormat = ColumnFormat; })(Reports = Analytics.Reports || (Analytics.Reports = {})); })(Analytics = Platform.Analytics || (Platform.Analytics = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {})); var Unibase; (function (Unibase) { let Platform; (function (Platform) { let Analytics; (function (Analytics) { let Reports; (function (Reports) { class ReportRoleSettings extends Platform.Core.BaseComponent { constructor() { super(); this.isSingleAppSelected = false; this.reportManager = Analytics.Managers.ReportManager.Instance(); } cssFiles() { return []; } jsFiles() { var jsFiles = ['platform/analytics/managers/reportmanager.js']; return jsFiles; } html(id, containerid) { let html = ``; return html; } load(id, containerid, callback) { var instance = this; let isRoleSettingsExists = false; instance._reportbuilder = Reports.ReportBuilder.Instance(); $("#btnRoleSettingsClose").click(function () { $('#' + containerid).modal('hide'); $('#' + containerid).remove(); if (instance.isSingleAppSelected) { instance._reportbuilder.roleSettings = []; instance.isSingleAppSelected = false; } }); $('#rolesettings_installedapps').empty(); if (instance._reportbuilder.roleSettings && instance._reportbuilder.roleSettings.length) isRoleSettingsExists = true; if (instance._reportbuilder.roleSettings != null) { for (let i = 0; i < instance._reportbuilder.roleSettings.length; i++) { let item = instance._reportbuilder.roleSettings[i]; instance.appendRoleSetting(item.AppTitle, item.SettingName); } } $("#btnConfigAddRoleSetting").click(function () { if (instance._reportbuilder.roleSettings && instance._reportbuilder.roleSettings.length >= 1) { let idx = instance._reportbuilder.selectedColumns.findIndex(x => x.AliasName == 'installedappid'); if (idx == -1) { MessageHelper.Instance().showError("Please add installedappid column in order to select app", "divRoleSetting_ErrorMessage"); return false; } } var appName = $("#rolesettings_installedapps option:selected").text(); var installedappid = $("#rolesettings_installedapps option:selected").val(); var rolesetting = $("#rolesettings_ddl option:selected").text(); if (appName == "" || rolesetting == "") return; var lefNavigationInstalledAppId = Number($("#InstalledApp_AutoComplete option:selected").val()); if (installedappid == lefNavigationInstalledAppId) { if (instance._reportbuilder.roleSettings && instance._reportbuilder.roleSettings.length == 1) { instance.isSingleAppSelected = true; } return MessageHelper.Instance().showError(`Cannot use same app ${appName} in both role settings and installed app field of left navigation in report builder.`, 'divRoleSetting_ErrorMessage'); } var rolset = false; if (instance._reportbuilder.roleSettings != null) rolset = instance._reportbuilder.roleSettings.find(x => x.AppTitle == appName && x.SettingName == rolesetting) ? true : false; if (!rolset) { instance.appendRoleSetting(appName, rolesetting); instance._reportbuilder.roleSettings.push({ InstalledAppId: Number($("#rolesettings_installedapps option:selected").val()), AppPermissionId: Number($("#rolesettings_ddl option:selected").val()), AppTitle: appName, SettingName: rolesetting, }); } $("#rolesettings_installedapps").html('').val("0"); $("#rolesettings_ddl").html('').val("0"); }); $("#btnRoleSettingsSave").click(function () { if (instance._reportbuilder.roleSettings != null) { if (instance._reportbuilder.roleSettings.length == 0 && !isRoleSettingsExists) { return MessageHelper.Instance().showError('Please Select Role Setting', 'divRoleSetting_ErrorMessage'); } else if (instance._reportbuilder.roleSettings.length < 2) { var inst = $("#InstalledApp_AutoComplete").val(); if (instance._reportbuilder.roleSettings.length == 1) { instance.isSingleAppSelected = true; } if (!inst) return MessageHelper.Instance().showError('Use installed app field in left navigation of report builder, if report have only one role setting', 'divRoleSetting_ErrorMessage'); } else if (instance._reportbuilder.roleSettings.length == 2) { let installedid = $("#InstalledApp_AutoComplete option:selected").val(); if (installedid) { return MessageHelper.Instance().showError('Remove installedapp from left navigation of report builder to use multiple report role settings', 'divRoleSetting_ErrorMessage'); } } if (instance._reportbuilder.roleSettings.length > 1) { instance.isSingleAppSelected = false; } } else { return MessageHelper.Instance().showError('Please Select Role Setting', 'divRoleSetting_ErrorMessage'); } $('#' + containerid).modal('hide'); $('#' + containerid).remove(); }); instance.loadInstalledApps(); } loadInstalledApps() { var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/InstalledAppAutocomplete'; AutoCompleteHelper.getHelper().Create("#rolesettings_installedapps", "#hfrolesettings_installedapps", url, function (response) { var installedappid = $("#hfrolesettings_installedapps").val(); Unibase.Platform.Apps.Managers.AppManager.Instance().getAppPermissions(installedappid).then(function (response) { var drpdata = ''; $("#rolesettings_ddl").html(""); var data = response.result; let viewPermission = data.find(function (x) { return x.SettingName.toLowerCase() == 'view'; }); if (viewPermission) { $("#rolesettings_ddl").append('').val(viewPermission.AppPermissionId).trigger("change"); } }); }); } appendRoleSetting(appName, rolesetting) { let ulDiv = 'ulAppName_' + appName.replace(/ /g, "_") + '-' + rolesetting.replace(/ /g, "_"); var rshtml = '
    ' + '
    ' + '
    ' + appName + '
    ' + '
    ' + rolesetting + '
    ' + '
    ' + '
    ' + '
    '; $("#RoleSettingExp").append(rshtml); } RemoveRoleSettingExp(appname, rolesetting, ul) { var instance = this; $("#" + ul + "").remove(); var index = instance._reportbuilder.roleSettings.findIndex(function (r) { return (r.AppTitle === appname && r.SettingName === rolesetting); }); if (index !== -1) instance._reportbuilder.roleSettings.splice(index, 1); } static Instance() { if (this.instance === undefined) { this.instance = new ReportRoleSettings(); } return this.instance; } } Reports.ReportRoleSettings = ReportRoleSettings; })(Reports = Analytics.Reports || (Analytics.Reports = {})); })(Analytics = Platform.Analytics || (Platform.Analytics = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {}));