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 Dashboards; (function (Dashboards) { let Components; (function (Components) { class DashboardPermissions extends Platform.Core.BaseComponent { ShowPermissions(DashboardId) { var type = 'dashboard'; var dashboardroles = []; var _fileCacheHelper = this.fileCacheHelper; _fileCacheHelper.loadCssFile("libs/select2/css/select2.min.css", null); _fileCacheHelper.loadJsFile("platform/dashboards/managers/dashboardmanager.js", function () { Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().getDashboardRoles(DashboardId).then(function (response) { var selectedRoles = response.result; for (var i = 0; i < selectedRoles.length; i++) { var id = 0; id = selectedRoles[i].PortletRoleId; dashboardroles.push({ RoleDashboardId: id, RoleId: selectedRoles[i].RoleId, RoleName: selectedRoles[i].RoleName, IsExclude: selectedRoles[i].IsExclude }); } DashboardPermissions.Instance().getRoleList(DashboardId, type, dashboardroles); }); }); DashboardPermissions.Instance().chkIsDashboardViewable(DashboardId); } chkIsDashboardViewable(DashboardId) { $('#chkIsDashboardViewable').change(function () { var viewable = $("#chkIsDashboardViewable").prop('checked'); if (viewable) $('#divDashboardViewRoles').addClass("hidden"); else $('#divDashboardViewRoles').removeClass("hidden"); var type = $('#hfApplyType').val(); Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().setDashboardAsViewable(DashboardId, viewable); }); } getRoleList(DashboardId, type, dashboardroles) { Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().getRolesList().then(function (response) { var dashboardpermissions_AllRoles = response.result; DashboardPermissions.Instance().loadAssignedRoles(DashboardId, type, dashboardroles, dashboardpermissions_AllRoles); }); } loadAssignedRoles(DashboardId, type, dashboardroles, dashboardpermissions_AllRoles) { var ExcludeViewRoles = []; var _Permissions_ViewRoles = []; for (var i = 0; i < dashboardpermissions_AllRoles.length; i++) { var data = dashboardpermissions_AllRoles[i]; var assignedRoles = dashboardroles; for (var j = 0; j < assignedRoles.length; j++) { var assignedRole = assignedRoles[j]; if (assignedRole.RoleId == data.RoleId) { if (assignedRole.IsExclude == true) { ExcludeViewRoles.push({ id: data.RoleId, text: data.RoleName }); } else { _Permissions_ViewRoles.push({ id: data.RoleId, text: data.RoleName }); } } } } DashboardPermissions.Instance().loadDashboardDetails(DashboardId, _Permissions_ViewRoles, ExcludeViewRoles); } loadDashboardDetails(DashboardId, _Permissions_ViewRoles, ExcludeViewRoles) { this.fileCacheHelper.loadJsFile("platform/dashboards/requests/dashboards.js", function () { Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().getDashboard(DashboardId).then(function (response) { if (response.result.IsMandatory == true) { $('#divDashboardViewRoles').addClass("hidden"); } else { $('#divDashboardViewRoles').removeClass("hidden"); } if (response.result.IsTrackable) { $("#Ch_IsTrackable").prop('checked', true); } $("#chkIsDashboardViewable").prop('checked', response.result.IsMandatory); DashboardPermissions.Instance().loadViewRoles(DashboardId, response.result.IsMandatory, _Permissions_ViewRoles, ExcludeViewRoles); }); }); } loadViewRoles(DashboardId, IsMandatory, _Permissions_ViewRoles, ExcludeViewRoles) { var Ids = []; for (var i = 0; i < _Permissions_ViewRoles.length; i++) { Ids.push(_Permissions_ViewRoles[i].id); } let ExludedIds = []; for (var i = 0; i < ExcludeViewRoles.length; i++) { ExludedIds.push(ExcludeViewRoles[i].id); } var ViewRoleElementId = "txtDashboardViewRoles"; var ExcludeRoleElementId = "txtDashboardExcludeViewRoles"; DashboardPermissions.Instance().select2dashboardbinding(DashboardId, IsMandatory, _Permissions_ViewRoles, ExcludeViewRoles, Ids, ExludedIds, ViewRoleElementId, ExcludeRoleElementId); $('#txtDashboardViewRoles').on('select2:select', function (e) { let result = e.params.data; if (Number(result.id) != 0) { var roleId = result.id; DashboardPermissions.Instance().addViewRole(DashboardId, roleId, false); Ids.push(roleId); $(ExludedIds).each(function (i, value) { if (value == roleId) { var index = ExludedIds.indexOf(value); if (index > -1) { ExludedIds.splice(index, 1); } ExludedIds.splice(value, 1); jQuery("#txtDashboardExcludeViewRoles").val(ExludedIds).trigger('change'); return false; } }); } }); $('#txtDashboardViewRoles').on('select2:unselect', function (e) { let result = e.params.data; if (Number(result.id) != 0) { var roleId = result.id; DashboardPermissions.Instance().removeViewRole(DashboardId, roleId, false); } }); $('#txtDashboardExcludeViewRoles').on('select2:select', function (e) { let result = e.params.data; if (Number(result.id) != 0) { var roleId = result.id; DashboardPermissions.Instance().addViewRole(DashboardId, roleId, true); ExludedIds.push(roleId); $(Ids).each(function (i, value) { if (value == roleId) { var index = Ids.indexOf(value); if (index > -1) { Ids.splice(index, 1); } jQuery("#txtDashboardViewRoles").val(Ids).trigger('change'); return false; } }); } }); $('#txtDashboardExcludeViewRoles').on('select2:unselect', function (e) { let result = e.params.data; if (Number(result.id) != 0) { var roleId = result.id; DashboardPermissions.Instance().removeViewRole(DashboardId, roleId, true); } }); } addViewRole(DashboarId, roleId, IsExclude) { this.fileCacheHelper.loadJsFile("platform/dashboards/managers/dashboardmanager.js", function () { let reqObj = new Unibase.Platform.Dashboards.Requests.DashboardRole(); reqObj.DashboardId = DashboarId; reqObj.RoleId = Number(roleId); reqObj.IsExclude = IsExclude; Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().addViewRole(reqObj).then(function (response) { }); }); } removeViewRole(DashboardId, roleId, IsExclude) { this.fileCacheHelper.loadJsFile("platform/dashboards/managers/dashboardmanager.js", function () { let reqObj = new Unibase.Platform.Dashboards.Requests.DashboardRole(); reqObj.DashboardId = DashboardId; reqObj.RoleId = Number(roleId); reqObj.IsExclude = IsExclude; Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().removeViewRole(reqObj).then(function (response) { }); }); } select2dashboardbinding(DashboardId, IsMandatory, _Permissions_ViewRoles, ExcludeViewRoles, Ids, ExludedIds, ViewRoleElementId, ExcludeRoleElementId) { return __awaiter(this, void 0, void 0, function* () { var user = Unibase.Platform.Membership.Infos.Identity.getCurrentUser(); var url = _appsettings.server_url() + '/apis/v4/unibase/platform/roles/get/term/'; $("#" + ViewRoleElementId).select2({ multiple: true, allowClear: false, data: _Permissions_ViewRoles, placeholder: 'Select', ajax: { url: function (request) { var reqUrl = url; var term = request.term; if (term == "") term = undefined; if (term == undefined) reqUrl = reqUrl + term; else reqUrl = reqUrl + term; return reqUrl; }, beforeSend: function (xhr) { if (user !== undefined && user !== null) { xhr.setRequestHeader("Authorization", "Basic " + user.sessionId); xhr.setRequestHeader('geoposition', user.latd + ':' + user.lgId); } }, delay: 250, dataType: 'json', processResults: function (data) { var selectData = []; var Data = JSON.parse(data.result); for (var i = 0; i < Data.length; i++) { selectData.push({ id: Data[i].RoleId, text: Data[i].RoleName }); } ; return { results: selectData }; } }, templateResult: function (item) { return item.text; }, templateSelection: function (item) { return item.text; }, }); $("#" + ViewRoleElementId).val(Ids).trigger('change'); $("#" + ExcludeRoleElementId).select2({ multiple: true, allowClear: false, data: ExcludeViewRoles, placeholder: 'Select', ajax: { url: function (request) { var reqUrl = url; var term = request.term; if (term == "") term = undefined; if (term == undefined) reqUrl = reqUrl + term; else reqUrl = reqUrl + term; return reqUrl; }, beforeSend: function (xhr) { if (user !== undefined && user !== null) { xhr.setRequestHeader("Authorization", "Basic " + user.sessionId); xhr.setRequestHeader('geoposition', user.latd + ':' + user.lgId); } }, delay: 250, dataType: 'json', processResults: function (data) { var selectData = []; var Data = JSON.parse(data.result); for (var i = 0; i < Data.length; i++) { selectData.push({ id: Data[i].RoleId, text: Data[i].RoleName }); } ; return { results: selectData }; } }, templateResult: function (item) { return item.text; }, templateSelection: function (item) { return item.text; }, }); jQuery("#" + ExcludeRoleElementId).val(ExludedIds).trigger('change'); }); } static Instance() { return new DashboardPermissions(); } } Components.DashboardPermissions = DashboardPermissions; })(Components = Dashboards.Components || (Dashboards.Components = {})); })(Dashboards = Platform.Dashboards || (Platform.Dashboards = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {}));