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