123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385 |
- 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 += `<div class="header bg-white">
- <strong>Viewer Permissions<span class="reportname"></span></strong>
- <a class="btn btn-sm ml-auto"><i class="ti-help-alt" title="help" href="javascript:;" target="_blank"></i></a>
- </div>
- <div class="scrollable bg-light" id="div_viewerpermissions">
- <div class="wrapper">
- <div id="Bizgaze_ValidationSummary" class="clear m-b-sm">
- </div>
- <div class="card">
- <div class="card-body d-flex justify-content-between align-items-center py-10">
- <div class="font-weight-bold font-16 text-dark">Inherit report permissions</div>
- <label class="switch pull-right ml-10 mb-0">
- <input id="inheritPermissionsChk" type="checkbox"><span></span>
- </label>
- </div>
- </div>
- <div class="card" id="viewerPermissionsCard">
- <div class="card-body">
- <div class="row">
- <div class="col-sm-12">
- <strong class="Report">Everyone can view this report?</strong>
- <label class="switch pull-right">
- <input id="chkIsViewable" data-group="Viewable" checked onchange="javascript:Unibase.Platform.Analytics.Components.ViewerPermissions.Instance().setViewable(` + id + `)" type="checkbox">
- <span></span>
- </label>
- </div>
- </div>
- <div class="row" id="divViewRoles" style="display:none">
- <div class="col-sm-12 m-b">
- <label> Included roles that can view this report</label>
- <input type="hidden" id="hfViewRoles" />
- <select id="txtIncludeViewRoles_Viewer" style="width:100%" class="b-a" value="" multiple="multiple"></select>
- </div>
-
- </div>
-
- <div class="row">
- <div class="col-sm-12 mb-0">
- <label>Excluded roles that can view this report</label>
- <input type="hidden" id="hfViewRoles" />
- <select id="txtExcludeViewRoles_Viewer" style="width:100%" class="b-a" value="" placeholder="select role" multiple="multiple"></select>
- </div>
-
- </div>
- </div>
- </div>
- </div>
- </div>
- <footer class="bg-white footer" style="position:absolute; bottom:0px;width:100%;">
- <a href="javascript:;" class="btn btn-light btn-sm mr-auto" id="btn_Close">Close</a>
- </footer>`;
- 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 = {}));
|