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 = {}));