123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333 |
- var Unibase;
- (function (Unibase) {
- let Platform;
- (function (Platform) {
- let Analytics;
- (function (Analytics) {
- let Components;
- (function (Components) {
- class ReportPermissions extends Platform.Core.BaseComponent {
- constructor() {
- super();
- this._ReportPermission_ViewRoles = [];
- this._ReportPermission_ChangeRoles = [];
- this.Reportspermission_ReportRoles = [];
- this.reportManager = Analytics.Managers.ReportManager.Instance();
- }
- cssFiles() {
- return [];
- }
- jsFiles() {
- var jsFiles = [];
- return jsFiles;
- }
- html(id, containerid) {
- let html = "";
- html += `<div class="header bg-white">
- <strong> Report 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_reportpermissions">
- <div class="wrapper">
- <div id="Bizgaze_ValidationSummary" class="clear m-b-sm">
- </div>
- <div class="card">
- <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.ReportPermissions.Instance().setViewable()" 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" 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" 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(reportid, containerid, callback) {
- var instance = this;
- var _fileCacheHelper = this.fileCacheHelper;
- $("#div_reportpermissions").height($(window).outerHeight() - 115);
- _fileCacheHelper.loadJsFile('/platform/analytics/managers/reportmanager.js', function () {
- Unibase.Platform.Analytics.Components.ReportPermissions.Instance().Reportspermission_reportid = reportid;
- instance.Reportspermission_ReportRoles = [];
- instance.reportManager.getReportRoles(reportid).then(function (response) {
- if (response.result != null) {
- var selectedRoles = response.result;
- for (var i = 0; i < selectedRoles.length; i++) {
- instance.Reportspermission_ReportRoles.push({ ReportRoleId: selectedRoles[i].ReportRoleId, RoleId: selectedRoles[i].RoleId, ViewReport: selectedRoles[i].ViewReport, ChangeReport: selectedRoles[i].ChangeReport });
- }
- instance.getRoleList(reportid, selectedRoles);
- }
- else {
- MessageHelper.Instance().showError(response.message, "Bizgaze_ValidationSummary");
- }
- });
- });
- $("#btn_Close").click(function () {
- $('#' + containerid).modal('hide');
- $('#' + containerid).remove();
- });
- }
- getRoleList(reportid, widgetroles) {
- var instance = this;
- Unibase.Platform.Permissions.Managers.PermissionManager.Instance().getRoles("").then(function (response) {
- var widgetpermissions_AllRoles = response.result;
- instance.loadAssignedRoles(reportid, widgetroles, widgetpermissions_AllRoles);
- });
- }
- loadAssignedRoles(reportid, widgetroles, widgetpermissions_AllRoles) {
- var instance = this;
- var ExcludeViewRoles = [];
- var _Permissions_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.ViewReport == true) {
- _Permissions_ViewRoles.push({ id: data.RoleId, text: data.RoleName });
- }
- else if (assignedRole.ExcludeViewReport == true) {
- ExcludeViewRoles.push({ id: data.RoleId, text: data.RoleName });
- }
- }
- }
- }
- instance.loadReportDetails(reportid, _Permissions_ViewRoles, ExcludeViewRoles);
- }
- loadReportDetails(ReportId, _Permissions_ViewRoles, ExcludeViewRoles) {
- var instance = this;
- instance.reportManager.getReportById(ReportId).then(function (response) {
- var data = response.result;
- if (data.ViewAll == true) {
- $("#chkIsViewable").prop('checked', true);
- instance.loadViewRoles(ReportId, response.result.ChangeAll, _Permissions_ViewRoles, ExcludeViewRoles);
- $('#divViewRoles').hide();
- }
- else {
- $("#chkIsViewable").prop('checked', false);
- instance.loadViewRoles(ReportId, response.result.ChangeAll, _Permissions_ViewRoles, ExcludeViewRoles);
- $('#divViewRoles').show();
- }
- });
- }
- loadViewRoles(reportid, 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 = "txtIncludeViewRoles";
- var ExcludeRoleElementId = "txtExcludeViewRoles";
- 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: _Permissions_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').on('select2:select', function (e) {
- let result = e.params.data;
- if (Number(result.id) != 0) {
- var roleId = result.id;
- ReportPermissions.Instance().addViewRole(reportid, roleId, true, 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("#txtExcludeViewRoles").val(ExludedIds).trigger('change');
- return false;
- }
- });
- }
- });
- $('#txtIncludeViewRoles').on('select2:unselect', function (e) {
- let result = e.params.data;
- if (Number(result.id) != 0) {
- var roleId = result.id;
- ReportPermissions.Instance().removeViewRole(reportid, roleId, true, false);
- }
- });
- $("#" + 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').on('select2:select', function (e) {
- let result = e.params.data;
- if (Number(result.id) != 0) {
- var roleId = result.id;
- ReportPermissions.Instance().addViewRole(reportid, roleId, 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").val(Ids).trigger('change');
- return false;
- }
- });
- }
- });
- $('#txtExcludeViewRoles').on('select2:unselect', function (e) {
- let result = e.params.data;
- if (Number(result.id) != 0) {
- var roleId = result.id;
- ReportPermissions.Instance().removeViewRole(reportid, roleId, false, true);
- }
- });
- }
- addViewRole(reportId, roleId, IsView, IsExclude) {
- var instance = this;
- var _fileCacheHelper = this.fileCacheHelper;
- let reqObj = new Unibase.Platform.Analytics.Requests.ReportRole();
- reqObj.ReportId = reportId;
- reqObj.RoleId = Number(roleId);
- reqObj.ViewReport = IsView;
- reqObj.ExcludeViewReport = IsExclude;
- instance.reportManager.addReportRole(reqObj).then(function (response) {
- MessageHelper.Instance().showSuccess(response.message, 'Bizgaze_ValidationSummary');
- });
- }
- removeViewRole(ReportId, roleId, IsView, IsExclude) {
- var instance = this;
- let reqObj = new Unibase.Platform.Analytics.Requests.ReportRole();
- reqObj.ReportId = ReportId;
- reqObj.RoleId = Number(roleId);
- reqObj.ViewReport = IsView;
- reqObj.ExcludeViewReport = IsExclude;
- instance.reportManager.removeReportRole(reqObj).then(function (response) {
- MessageHelper.Instance().showSuccess(response.message, 'Bizgaze_ValidationSummary');
- });
- }
- setViewable() {
- var instance = this;
- var viewable = $("#chkIsViewable").prop('checked');
- if (viewable)
- $('#divViewRoles').hide();
- else
- $('#divViewRoles').show();
- instance.reportManager.setViewable(instance.Reportspermission_reportid, viewable).then(function (response) {
- MessageHelper.Instance().showSuccess(response.message, 'Bizgaze_ValidationSummary');
- });
- }
- static Instance() {
- if (this.rp_instance === undefined) {
- this.rp_instance = new ReportPermissions();
- }
- return this.rp_instance;
- }
- }
- Components.ReportPermissions = ReportPermissions;
- })(Components = Analytics.Components || (Analytics.Components = {}));
- })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
- })(Platform = Unibase.Platform || (Unibase.Platform = {}));
- })(Unibase || (Unibase = {}));
|