var Unibase; (function (Unibase) { let Platform; (function (Platform) { let Analytics; (function (Analytics) { let Components; (function (Components) { class ViewerPermissions extends Platform.Core.BaseComponent { constructor() { super(); this._ReportPermission_ViewRoles = []; this._ReportPermission_ChangeRoles = []; this.Viewerpermission_ReportRoles = []; this.reportId = 0; this.viewerTypeId = 0; this.viewerManager = Analytics.Managers.ViewerManager.Instance(); this.reportManager = Analytics.Managers.ReportManager.Instance(); } cssFiles() { return []; } jsFiles() { var jsFiles = [ "platform/analytics/components/reportviewer/reportviewer.js", "platform/analytics/managers/viewermanager.js", "platform/analytics/requests/new/report.js", "platform/permission/managers/permissionmanager.js", ]; return jsFiles; } html(id, containerid) { let html = ""; html += `
Viewer Permissions
Inherit report permissions
Everyone can view this report?
`; return html; } load(viewerid, containerid, callback) { var instance = this; $("#div_viewerpermissions").height($(window).outerHeight() - 115); instance.Viewerpermission_ReportRoles = []; instance.viewerManager.getViewerRoles(viewerid, instance.reportId).then(function (response) { if (response.result != null) { var isReportPermission = response.result.find(r => r.IsReportPermissions == true) ? true : false; if (!isReportPermission) { var selectedRoles = response.result; for (var i = 0; i < selectedRoles.length; i++) { instance.Viewerpermission_ReportRoles.push({ ReportRoleId: selectedRoles[i].ViewerRoleId, RoleId: selectedRoles[i].RoleId, ViewViewer: selectedRoles[i].ViewViewer, ChangeViewer: selectedRoles[i].ChangeViewer }); } instance.getRoleList(viewerid, selectedRoles); } else { $("#inheritPermissionsChk").prop("checked", true); $('#viewerPermissionsCard').addClass('d-none'); } } else { MessageHelper.Instance().showError(response.message, "Bizgaze_ValidationSummary"); } }); $("#btn_Close").click(function () { $('#' + containerid).modal('hide'); $('#' + containerid).remove(); }); $('#inheritPermissionsChk').change(function () { if ($(this).is(':checked')) { $('#viewerPermissionsCard').addClass('d-none'); instance.getReportRoles(viewerid, true); } else { $('#viewerPermissionsCard').removeClass('d-none'); instance.getReportRoles(viewerid, false); } }); } getReportRoles(viewerid, isSave) { var instance = this; var reportRoles = []; instance.reportManager.getReportRoles(instance.reportId).then(function (response) { if (response.result != null && response.result.length > 0) { var selectedRoles = response.result; for (var i = 0; i < selectedRoles.length; i++) { let isLastRecord = i == selectedRoles.length - 1; if (isSave) instance.addViewRole(viewerid, selectedRoles[i].RoleId, selectedRoles[i].ViewReport, selectedRoles[i].ExcludeViewReport, true, isLastRecord); else instance.removeViewRole(viewerid, selectedRoles[i].RoleId, selectedRoles[i].ViewReport, selectedRoles[i].ExcludeViewReport, isLastRecord); } } else { $("#inheritPermissionsChk").prop("checked", false); $('#viewerPermissionsCard').removeClass('d-none'); MessageHelper.Instance().showError("Report does not contain roles", "Bizgaze_ValidationSummary"); } }); } getRoleList(viewerid, widgetroles) { var instance = this; Unibase.Platform.Permissions.Managers.PermissionManager.Instance().getRoles("").then(function (response) { var widgetpermissions_AllRoles = response.result; instance.loadAssignedRoles(viewerid, widgetroles, widgetpermissions_AllRoles); }); } loadAssignedRoles(viewerid, widgetroles, widgetpermissions_AllRoles) { var instance = this; var ExcludeViewRoles = []; var _ViewerPermissions_ViewRoles = []; for (var i = 0; i < widgetpermissions_AllRoles.length; i++) { var data = widgetpermissions_AllRoles[i]; var assignedRoles = widgetroles; for (var j = 0; j < assignedRoles.length; j++) { var assignedRole = assignedRoles[j]; if (assignedRole.RoleId == data.RoleId) { if (assignedRole.ViewViewer == true) { _ViewerPermissions_ViewRoles.push({ id: data.RoleId, text: data.RoleName }); } else if (assignedRole.ExcludeViewViewer == true) { ExcludeViewRoles.push({ id: data.RoleId, text: data.RoleName }); } } } } instance.loadViewerDetails(viewerid, _ViewerPermissions_ViewRoles, ExcludeViewRoles); } loadViewerDetails(viewerid, _ViewerPermissions_ViewRoles, ExcludeViewRoles) { var instance = this; instance.viewerManager.getViewer(viewerid).then(function (response) { var data = response.result; if (data.ViewAll == true) { $("#chkIsViewable").prop('checked', true); instance.loadViewRoles(viewerid, _ViewerPermissions_ViewRoles, ExcludeViewRoles); $('#divViewRoles').hide(); } else { $("#chkIsViewable").prop('checked', false); instance.loadViewRoles(viewerid, _ViewerPermissions_ViewRoles, ExcludeViewRoles); $('#divViewRoles').show(); } }); } loadViewRoles(viewerid, _ViewerPermissions_ViewRoles, ExcludeViewRoles) { var Ids = []; for (var i = 0; i < _ViewerPermissions_ViewRoles.length; i++) { Ids.push(_ViewerPermissions_ViewRoles[i].id); } let ExludedIds = []; for (var i = 0; i < ExcludeViewRoles.length; i++) { ExludedIds.push(ExcludeViewRoles[i].id); } var ViewRoleElementId = "txtIncludeViewRoles_Viewer"; var ExcludeRoleElementId = "txtExcludeViewRoles_Viewer"; var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser(); var url = _appsettings.server_url() + '/apis/v4/unibase/platform/roles/getroles'; url = url + "/term/"; url = url.replace('#', ''); $("#" + ViewRoleElementId).select2({ multiple: true, allowClear: false, data: _ViewerPermissions_ViewRoles, placeholder: 'Select Role', ajax: { url: function (request) { var reqUrl = url; var term = request.term; if (term == undefined || term == "") reqUrl = reqUrl + term + "/authtoken/" + userinfo.sessionId; else reqUrl = reqUrl + term + "/authtoken/" + userinfo.sessionId; return reqUrl; }, beforeSend: function (xhr) { if (userinfo !== undefined && userinfo !== null) { xhr.setRequestHeader("Authorization", "Basic " + userinfo.sessionId); xhr.setRequestHeader('geoposition', userinfo.latd + ':' + userinfo.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].Value, text: Data[i].SelectText }); } ; return { results: selectData }; } }, templateResult: function (item) { return item.text; }, templateSelection: function (item) { return item.text; }, }); $("#" + ViewRoleElementId).val(Ids).trigger('change'); $('#txtIncludeViewRoles_Viewer').on('select2:select', function (e) { let result = e.params.data; if (Number(result.id) != 0) { var roleId = result.id; ViewerPermissions.Instance().addViewRole(viewerid, roleId, true, false, false, true); 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("#txtExcludeViewRoles_Viewer").val(ExludedIds).trigger('change'); return false; } }); } }); $('#txtIncludeViewRoles_Viewer').on('select2:unselect', function (e) { let result = e.params.data; if (Number(result.id) != 0) { var roleId = result.id; ViewerPermissions.Instance().removeViewRole(viewerid, roleId, true, false, true); } }); $("#" + ExcludeRoleElementId).select2({ multiple: true, allowClear: false, data: ExcludeViewRoles, placeholder: 'Select Role', ajax: { url: function (request) { var reqUrl = url; var term = request.term; if (term == undefined || term == "") reqUrl = reqUrl + term + "/authtoken/" + userinfo.sessionId; else reqUrl = reqUrl + term + "/authtoken/" + userinfo.sessionId; return reqUrl; }, beforeSend: function (xhr) { if (userinfo !== undefined && userinfo !== null) { xhr.setRequestHeader("Authorization", "Basic " + userinfo.sessionId); xhr.setRequestHeader('geoposition', userinfo.latd + ':' + userinfo.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].Value, text: Data[i].SelectText }); } ; return { results: selectData }; } }, templateResult: function (item) { return item.text; }, templateSelection: function (item) { return item.text; }, }); jQuery("#" + ExcludeRoleElementId).val(ExludedIds).trigger('change'); $('.select2-search__field').css("width", "100%"); $('#txtExcludeViewRoles_Viewer').on('select2:select', function (e) { let result = e.params.data; if (Number(result.id) != 0) { var roleId = result.id; ViewerPermissions.Instance().addViewRole(viewerid, roleId, false, true, false, 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("#txtIncludeViewRoles_Viewer").val(Ids).trigger('change'); return false; } }); } }); $('#txtExcludeViewRoles_Viewer').on('select2:unselect', function (e) { let result = e.params.data; if (Number(result.id) != 0) { var roleId = result.id; ViewerPermissions.Instance().removeViewRole(viewerid, roleId, false, true, true); } }); } addViewRole(viewerid, roleId, IsView, IsExclude, isReportPermission, ShowResponseMessage) { var instance = this; let reqObj = new Unibase.Platform.Analytics.Requests.ViewerRole(); reqObj.ViewerId = viewerid; reqObj.ReportId = instance.reportId; reqObj.RoleId = Number(roleId); reqObj.ViewViewer = IsView; reqObj.ExcludeViewViewer = IsExclude; reqObj.IsReportPermissions = isReportPermission; instance.viewerManager.addViewerRole(reqObj).then(function (response) { ShowResponseMessage && MessageHelper.Instance().showSuccess(response.message, 'Bizgaze_ValidationSummary'); }); } removeViewRole(viewerid, roleId, IsView, IsExclude, ShowResponseMessage) { var instance = this; let reqObj = new Unibase.Platform.Analytics.Requests.ViewerRole(); reqObj.ViewerId = viewerid; reqObj.ReportId = instance.reportId; reqObj.RoleId = Number(roleId); reqObj.ViewViewer = IsView; reqObj.ExcludeViewViewer = IsExclude; instance.viewerManager.removeViewerRole(reqObj).then(function (response) { ShowResponseMessage && MessageHelper.Instance().showSuccess(response.message, 'Bizgaze_ValidationSummary'); }); } setViewable(viewerid) { var instance = this; var viewable = $("#chkIsViewable").prop('checked'); if (viewable) $('#divViewRoles').hide(); else $('#divViewRoles').show(); instance.viewerManager.setViewable(viewerid, viewable, instance.viewerTypeId).then(function (response) { MessageHelper.Instance().showSuccess(response.message, 'Bizgaze_ValidationSummary'); }); } static Instance() { if (this.rp_instance === undefined) { this.rp_instance = new ViewerPermissions(); } return this.rp_instance; } } Components.ViewerPermissions = ViewerPermissions; })(Components = Analytics.Components || (Analytics.Components = {})); })(Analytics = Platform.Analytics || (Platform.Analytics = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {}));