123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- 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 = `<section id="link-report-section" class="modal-content">
- <div class="modal-header pa-10" id="reportrolesetting_header">
- <strong class="modal-title biz-highlight-bg-color">Role Settings</strong>
- </div>
- <div data-simplebar class="simple-scroll-bar">
- <div id="divRoleSetting_ErrorMessage"></div>
- <div class="modal-body bg-charcoal-light-5 sub-report-block" id="reportrolesetting_modal">
- <div class="report-rolesettings-block card" data-select2-id="24">
- <div data-select2-id="23">
- <header class="report-rolesettings-head">
- <h6 class="required">
- Role Settings
- </h6>
- <span>
- <i class="las la-braille dragger"></i>
- </span>
- </button>
- </header>
- <div id="subrpts_div" data-select2-id="subrpts_div" class="">
- <div class="report-body">
- <div class="form-group">
- <div id="divsubrpt_0" data-select2-id="divsubrpt_">
- <div class="form-row">
- <div class="col">
- <div id="div_installedapps">
- <input type="hidden" id="hfrolesettings_installedapps">
- <select id="rolesettings_installedapps" class="form-control text-control required">
- <option value="0" selected="">Apps</option>
- </select>
- </div>
- </div>
- <div class="col">
- <div id="div_rolesettings">
- <select id="rolesettings_ddl" class="form-control custom-select mb-10 required">
- <option value="0" selected="">Role Settings</option>
- </select>
- </div>
- </div>
- <div class="col-auto">
- <a class="btn btn-icon btn-theme" id="btnConfigAddRoleSetting" onclick="" ;="">
- <span class="btn-icon-wrap"><span class="line-icon text-white"><i class="las la-plus"></i></span></span>
- </a>
- </div>
- </div>
- <div class="m-t-sm">
- <div class="form-row">
- <div class="col px-4 py-2">
- <strong> App Name </strong>
- </div>
- <div class="col py-2">
- <strong> RoleSetting </strong>
- </div>
- <div class="col-auto py-2 px-4">
- <a class="invisible"><i class="fa fa-close text-danger"></i></a>
- </div>
- </div>
- </div>
- <div id="RoleSettingExp"></div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div></div>
- <div class="modal-footer pa-10" id="linkreport_footer">
- <button type="button" class="btn btn-sm btn-light mr-auto" id="btnRoleSettingsClose">Cancel</button>
- <button type="button" class="btn btn-sm btn-primary" id="btnRoleSettingsSave">Save</button>
- </div>
- </section>`;
- 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('<option value="0" selected="">Apps</option>').val("0");
- $("#rolesettings_ddl").html('<option value="0" selected="">Role Settings</option>').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('<option value="' + viewPermission.AppPermissionId + '" columnvalue="" selected>' + viewPermission.SettingName + '</option>').val(viewPermission.AppPermissionId).trigger("change");
- }
- });
- });
- }
- appendRoleSetting(appName, rolesetting) {
- let ulDiv = 'ulAppName_' + appName.replace(/ /g, "_") + '-' + rolesetting.replace(/ /g, "_");
- var rshtml = '<div class="border border-1 mt-2 ulDatalistFilters_' + appName.replace(" ", "_") + rolesetting.replace(" ", "_") + '" id = "' + ulDiv + '">' +
- '<div class="form-row" id="li_AppName_' + appName + rolesetting + '"> ' +
- '<div class="col py-2 px-4 lblappname"> ' + appName + ' </div> ' +
- '<div class="col py-2 px-4 lblrolesetting"> ' + rolesetting + ' </div>' +
- '<div class="col-auto py-2 px-4"><a id = "btnRemove" onclick="Unibase.Platform.Analytics.Reports.ReportRoleSettings.Instance().RemoveRoleSettingExp(' + "'" + appName + "'" + ',' + "'" + rolesetting + "'" + ',' + "'" + ulDiv + "'" + ')" class="pull-right" ><i class="fa fa-close text-danger"></i></a></div>' +
- '</div>' +
- '</div>';
- $("#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 = {}));
|