var Unibase; (function (Unibase) { let Platform; (function (Platform) { let Widgets; (function (Widgets) { let Components; (function (Components) { class WidgetPermission extends Platform.Core.BaseComponent { constructor() { super(); this.widgetpermissions_portletwidgetid = 0; this.widgetpermissions_portletid = 0; this.widgetpermissions_portletwidgetuniqkey = 0; } jsFiles() { return ['platform/portlets/managers/portletmanager.js', "platform/permission/managers/permissionmanager.js", 'platform/widgets/managers/widgetmanager.js', "platform/portlets/requests/portlet.js", 'platform/permission/managers/permissionmanager.js', "platform/widgets/requests/widgetrole.js", "platform/portlets/requests/portletrole.js", "platform/widgets/enums/widgettype.js"]; } cssFiles() { return []; } html(id, containerid) { let html = '
' + '
' + ' ' + ' ' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + ' Everyone can view?' + ' ' + '
' + '
' + '
' + '
' + '' + ' ' + '
' + '
' + ' ' + '
' + '
' + '
' + '
' + `` + '' + '
' + '
' + '' + '
' + '
' + '
' + '
' + '
' + '
' + '' + '
'; return html; } load(id, containerid, callback) { $("#btn_WidgetPermissions_close").click(function () { Unibase.Platform.Helpers.NavigationHelper.Instance().closePopUp(); $('.btn_addportlt').removeClass('hidden'); $('.btnEdit_portlet').removeClass('hidden'); $('.manage_pPermissions').removeClass('hidden'); $('.btn_dltportlet').removeClass('hidden'); $(".toplayout-structures-panel").css({ "z-index": "9999" }); $(".biz-submenu").css({ "z-index": "9999" }); $(".biz-layout-3-left-nav").css({ "z-index": "9999" }); }); $("#chkIsWidgetViewable").change(function () { Unibase.Platform.Widgets.Components.WidgetPermission.Instance().setViewable(); }); } init() { this.fileCacheHelper.loadJsFile('platform/portlets/managers/portletmanager.js', null); this.fileCacheHelper.loadJsFile("platform/permission/managers/permissionmanager.js", null); } setViewable() { var viewable = $("#chkIsWidgetViewable").prop('checked'); if (viewable) $('#divWidgetViewRoles').hide(); else $('#divWidgetViewRoles').show(); Unibase.Platform.Widgets.Managers.WidgetManager.Instance().setViewable(Unibase.Platform.Widgets.Components.WidgetPermission.Instance().widgetpermissions_portletwidgetid, viewable).then(function (response) { if (response.status != Unibase.Data.Status.Error) { MessageHelper.Instance().showSuccess(response.message, 'div_WidgetMessage'); } else { MessageHelper.Instance().showError(response.message, 'div_WidgetMessage'); } }); } showPermissions(Id, type, unix_pwid) { var instance = Unibase.Platform.Widgets.Components.WidgetPermission.Instance(); instance.widgetpermissions_AllRoles = []; instance.widgetpermissions_WidgetRoles = []; instance.Stagespermissions_ViewRoles = []; instance.widgetpermissions_ReportStages = []; instance.widgetpermissions_portletwidgetid = 0; instance.widgetpermissions_portletid = 0; instance.widgetpermissions_AddViewRoles = []; instance.Stagespermissions_ExcludeViewRoles = []; instance.widgetpermissions_portletwidgetuniqkey = 0; if (Id == 0) { instance.Stagespermissions_ViewRoles; } instance.widgetpermissions_WidgetRoles = []; instance.widgetpermissions_portletid = 0; instance.widgetpermissions_portletwidgetid = 0; var url = ""; if (type == 'portlet') { $('.permissionHeading').text('Portlet Permissions'); var portletname = $("#portletName_" + Id + "").text(); $('.portletname').text("(" + portletname + ")"); instance.widgetpermissions_portletid = Id; Unibase.Platform.Portlets.Managers.PortletManager.Instance().getPortletRoles(Id).then(function (response) { var selectedRoles = response.result; for (let i = 0; i < selectedRoles.length; i++) { var id = 0; id = selectedRoles[i].PortletRoleId; instance.widgetpermissions_WidgetRoles.push({ RoleWidgetId: id, RoleId: selectedRoles[i].RoleId, RoleName: selectedRoles[i].RoleName, IsExclude: selectedRoles[i].IsExclude }); } instance.getRoleList(Id, type); instance.loadStagePermissions(Id, type); }); } else { $('.permissionHeading').text('Widget Permissions'); var widgetname = $("#hf_widgetName_" + Id + "").val(); $('.widgetname').text("(" + widgetname + ")"); if (Id == undefined) { Id = 0; instance.widgetpermissions_portletwidgetid = Id; instance.widgetpermissions_portletwidgetuniqkey = unix_pwid; Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getWidgetRoles(Id).then(function (response) { var selectedRoles = response.result; for (let i = 0; i < selectedRoles.length; i++) { var id = 0; id = selectedRoles[i].WidgetRoleId; instance.widgetpermissions_WidgetRoles.push({ RoleWidgetId: id, RoleId: selectedRoles[i].RoleId, RoleName: selectedRoles[i].RoleName, IsExclude: selectedRoles[i].IsExclude }); } instance.getRoleList(Id, type); instance.loadStagePermissions(Id, type); }); } else { instance.widgetpermissions_portletwidgetid = Id; Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getPortletWidget(Id).then(function (response) { if (response.result != null) { var appId = Unibase.Themes.Providers.DetailHelper.installedAppId; if (response.result.WidgetTypeId != Unibase.Platform.Widgets.Enums.WidgetType.DashboardWidget && appId != 0) { instance.loadStagePermissions(Id, type); } } Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getWidgetRoles(Id).then(function (response) { var selectedRoles = response.result; for (let i = 0; i < selectedRoles.length; i++) { var id = 0; id = selectedRoles[i].WidgetRoleId; instance.widgetpermissions_WidgetRoles.push({ RoleWidgetId: id, RoleId: selectedRoles[i].RoleId, RoleName: selectedRoles[i].RoleName, IsExclude: selectedRoles[i].IsExclude }); } instance.getRoleList(Id, type); }); }); } } $('#hfApplyType').val(type); } getRoleList(Id, type) { var instance = this; instance.Stagespermissions_ViewRoles = []; if (instance.widgetpermissions_AllRoles.length == 0) { Unibase.Platform.Permissions.Managers.PermissionManager.Instance().getRoles("").then(function (response) { instance.widgetpermissions_AllRoles = response.result; instance.loadAssignedRoles(Id, type); }); } else { instance.loadAssignedRoles(Id, type); } } loadStagePermissions(Id, type) { var instance = this; instance.widgetpermissions_ReportStages = []; if (type == 'portlet') { Unibase.Platform.Portlets.Managers.PortletManager.Instance().getPortletStagesbyId(Id).then(function (response) { var selectedStages = response.result; for (let i = 0; i < selectedStages.length; i++) { Unibase.Platform.Widgets.Components.WidgetPermission.Instance().widgetpermissions_ReportStages.push({ StagePortletId: selectedStages[i].PortletStageId, Portlet_StageId: selectedStages[i].Portlet_StageId, StatusId: selectedStages[i].StatusId }); } instance.loadStageList(Id, type); }); } else { Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getWidgetStages(Id).then(function (response) { var selectedStages = response.result; for (let i = 0; i < selectedStages.length; i++) { instance.widgetpermissions_ReportStages.push({ StageWidgetId: selectedStages[i].WidgetStageId, Portlet_StageId: selectedStages[i].StageId, StatusId: selectedStages[i].StatusId }); } instance.loadStageList(Id, type); }); } } loadStageList(Id, type) { var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var headerHtml = ""; var html = ""; Unibase.Platform.Apps.Managers.StageManager.Instance().getStages(InstalledAppId).then(function (response) { var assignedStages = Unibase.Platform.Widgets.Components.WidgetPermission.Instance().widgetpermissions_ReportStages; var result = response.result; if (response.result.length > 0) { headerHtml = '
' + 'Every stage can view?' + ' ' + '
' + ''; } for (var i = 0; i < result.length; i++) { var data = result[i]; var checked = ""; for (var j = 0; j < assignedStages.length; j++) { var assignedStage = assignedStages[j]; if (assignedStage.Portlet_StageId == data.StageId && assignedStage.StatusId != 3) { checked = "checked"; break; } } html += ''; } $("#divWPStages").html(headerHtml + html + '
StageSelect
' + data.StageName + '
'); }); } viewToAllStages(portletwidgetid) { var widinstance = Unibase.Platform.Widgets.Components.WidgetPermission.Instance(); var viewable; var type = $('#hfApplyType').val(); if (type == "widget") { viewable = $("#chkAllStages").prop('checked'); } else if (type = "portlet") { viewable = $("#chkAllStages").prop('checked'); } if (type == "portlet") { Unibase.Platform.Portlets.Components.PortletPermission.Instance().setViewToAllStages(widinstance.widgetpermissions_portletid, viewable); } else { widinstance.setViewToAllStages(portletwidgetid, viewable); } } StagePermissionAction(stageId, Id, type) { var instance = this; var action = $('.chkStage_' + stageId).is(':checked'); if (type == 'portlet') Unibase.Platform.Portlets.Components.PortletPermission.Instance().changeStagePortletPermissions(stageId, Id, action); else instance.changeStageWidgetPermissions(stageId, Id, action); } setViewToAllStages(portletwidgetid, viewable) { var widgets = Unibase.Themes.Compact.Components.Details.Instance().model.find(x => x.PortletWidgetId == portletwidgetid); Unibase.Platform.Widgets.Managers.WidgetManager.Instance().setViewToAllStages(widgets.WidgetId, viewable).then(function (response) { if (response.status == Unibase.Data.Status.Success) { if (response.result.ViewAllStages) { $('#tblWPStages').hide(); } else { $('#tblWPStages').show(); } MessageHelper.Instance().showSuccess(response.message, 'div_WidgetMessage'); } else { MessageHelper.Instance().showError(response.message, 'div_WidgetMessage'); } }); } changeStageWidgetPermissions(stageId, portletwidgetId, action) { if (portletwidgetId != 0) { var postData = { PortletWidgetId: portletwidgetId, Widget_StageId: stageId, Status: action }; Unibase.Platform.Widgets.Managers.WidgetManager.Instance().saveWidgetStage(postData).then(function (response) { MessageHelper.Instance().showSuccess(response.message, 'div_WidgetMessage'); }, function (response) { MessageHelper.Instance().showError(response.Message, 'div_WidgetMessage'); }); } else { var widgetinst = Unibase.Platform.Widgets.Components.WidgetPermission.Instance().widgetpermissions_portletwidgetuniqkey; var oldstages = Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets[widgetinst].Stages.StageIds; if (oldstages == undefined) { Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets[widgetinst].Stages = { PortletWidgetId: portletwidgetId, StageIds: stageId }; } else { Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets[widgetinst].Stages = { PortletWidgetId: portletwidgetId, StageIds: oldstages + '|' + stageId }; } } } loadAssignedRoles(Id, type) { var widinstance = Unibase.Platform.Widgets.Components.WidgetPermission.Instance(); for (let i = 0; i < widinstance.widgetpermissions_AllRoles.length; i++) { var data = widinstance.widgetpermissions_AllRoles[i]; var assignedRoles = widinstance.widgetpermissions_WidgetRoles; for (let j = 0; j < assignedRoles.length; j++) { var assignedRole = assignedRoles[j]; if (assignedRole.RoleId == data.RoleId) { if (assignedRole.IsExclude == true) { widinstance.Stagespermissions_ExcludeViewRoles.push({ id: data.RoleId, text: data.RoleName }); } else { widinstance.Stagespermissions_ViewRoles.push({ id: data.RoleId, text: data.RoleName }); } } } } if (type == "portlet") { Unibase.Platform.Portlets.Components.PortletPermission.Instance().DataBind(Id); } else { widinstance.DataBind(Id); } } DataBind(Id) { var widinstance = Unibase.Platform.Widgets.Components.WidgetPermission.Instance(); Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getPortletWidget(Id).then(function (response) { if (response.result != null) { if (response.result.ViewAll == true) { $('#divWidgetViewRoles').hide(); } else { $('#divWidgetViewRoles').show(); } widinstance.loadViewRoles(response.result.ViewAll); if (response.result.ViewAllStages == true) { $('#tblWPStages').hide(); } else { $('#tblWPStages').show(); } $("#chkIsWidgetViewable").prop('checked', response.result.ViewAll); $("#chkAllStages").prop('checked', response.result.ViewAllStages); } else { widinstance.loadViewRoles(true); $("#chkIsWidgetViewable").prop('checked', true); } }); } loadViewRoles(canView) { var Ids = []; var ExcludeIds = []; var widinstance = Unibase.Platform.Widgets.Components.WidgetPermission.Instance(); for (var i = 0; i < widinstance.Stagespermissions_ViewRoles.length; i++) { Ids.push(widinstance.Stagespermissions_ViewRoles[i].id); } var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser(); var url = _appsettings.server_url() + '/apis/v4/unibase/platform/roles/getroles/term/'; $(".txtWidgetViewRoles,.txtPortletViewRoles").select2({ multiple: true, allowClear: false, data: widinstance.Stagespermissions_ViewRoles, placeholder: 'Select Role', ajax: { url: function (request) { var reqUrl = url; var term = request.term; if (term == "") term = undefined; if (term == undefined) 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].DisplayText }); } ; return { results: selectData }; } }, templateResult: function (item) { return item.text; }, templateSelection: function (item) { return item.text; }, }); jQuery(".txtWidgetViewRoles,.txtPortletViewRoles").val(Ids).trigger('change'); $('.txtWidgetViewRoles,.txtPortletViewRoles').on("select2:select", function (e) { var result = e.params.data; if (Number(result.id) != 0) { var roleId = Number(result.id); widinstance.addViewRole(roleId, false); Ids.push(roleId); $(ExcludeIds).each(function (i, value) { if (value == roleId) { var index = ExcludeIds.indexOf(value); if (index > -1) { ExcludeIds.splice(index, 1); } ExcludeIds.splice(value, 1); jQuery(".txtWidgetExcludeViewRoles,.txtPortletExcludeViewRoles").val(ExcludeIds).trigger('change'); return false; } }); } }); $('.txtWidgetViewRoles,.txtPortletViewRoles').on("select2:unselect", function (e) { var result = e.params.data; if (Number(result.id) != 0) { var roleId = Number(result.id); widinstance.removeViewRole(roleId, false); Ids.splice(ExcludeIds.indexOf(roleId), 1); } }); for (var i = 0; i < widinstance.Stagespermissions_ExcludeViewRoles.length; i++) { ExcludeIds.push(widinstance.Stagespermissions_ExcludeViewRoles[i].id); } $(".txtWidgetExcludeViewRoles,.txtPortletExcludeViewRoles").select2({ multiple: true, allowClear: false, data: widinstance.Stagespermissions_ExcludeViewRoles, placeholder: 'Select Role', ajax: { url: function (request) { var reqUrl = url; var term = request.term; if (term == "") term = undefined; if (term == undefined) reqUrl = reqUrl + term + "/authtoken/" + userinfo.sessionId; else reqUrl = reqUrl + term + "/authtoken/" + userinfo.sessionId; return reqUrl; }, delay: 250, beforeSend: function (xhr) { if (userinfo !== undefined && userinfo !== null) { xhr.setRequestHeader("Authorization", "Basic " + userinfo.sessionId); xhr.setRequestHeader('geoposition', userinfo.latd + ':' + userinfo.lgId); } }, 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].DisplayText }); } ; return { results: selectData }; } }, templateResult: function (item) { return item.text; }, templateSelection: function (item) { return item.text; }, }); jQuery(".txtWidgetExcludeViewRoles,.txtPortletExcludeViewRoles").val(ExcludeIds).trigger('change'); $('.txtWidgetExcludeViewRoles,.txtPortletExcludeViewRoles').on("select2:select", function (e) { var result = e.params.data; if (Number(result.id) != 0) { var roleId = Number(result.id); widinstance.addViewRole(roleId, true); ExcludeIds.push(roleId); $(Ids).each(function (i, value) { if (value == roleId) { var index = Ids.indexOf(value); if (index > -1) { Ids.splice(index, 1); } jQuery(".txtWidgetViewRoles,.txtPortletViewRoles").val(Ids).trigger('change'); return false; } }); } }); $('.txtWidgetExcludeViewRoles,.txtPortletExcludeViewRoles').on("select2:unselect", function (e) { var result = e.params.data; if (Number(result.id) != 0) { var roleId = Number(result.id); widinstance.removeViewRole(roleId, true); ExcludeIds.splice(ExcludeIds.indexOf(roleId), 1); } }); } removeViewRole(roleId, IsExclude) { var instance = this; var id = 0; if (instance.widgetpermissions_portletwidgetid != 0) { id = instance.widgetpermissions_portletwidgetid; let reqObj = new Unibase.Platform.Widgets.Requests.WidgetRole(); reqObj.PortletWidgetId = id; reqObj.RoleId = roleId, reqObj.IsExclude = IsExclude; Unibase.Platform.Widgets.Managers.WidgetManager.Instance().removeViewRole(reqObj.PortletWidgetId, reqObj.RoleId, IsExclude).then(function (response) { MessageHelper.Instance().showSuccess(response.message, 'div_WidgetMessage'); }); } else if (instance.widgetpermissions_portletid != 0) { id = instance.widgetpermissions_portletid; let reqObj = new Unibase.Platform.Portlets.Requests.PortletRole(); reqObj.PortletId = id; reqObj.RoleId = roleId, reqObj.IsExclude = IsExclude; Unibase.Platform.Portlets.Managers.PortletManager.Instance().removeViewRole(reqObj.PortletId, reqObj.RoleId, IsExclude).then(function (response) { MessageHelper.Instance().showSuccess(response.message, 'div_WidgetMessage'); }); } } addViewRole(roleId, IsExclude) { var instance = this; var id = 0; var postData = null; if (instance.widgetpermissions_portletid == 0) { id = Unibase.Platform.Widgets.Components.WidgetPermission.Instance().widgetpermissions_portletwidgetid; if (id != 0) { let reqObj = new Unibase.Platform.Widgets.Requests.WidgetRole(); reqObj.PortletWidgetId = id; reqObj.RoleId = roleId, reqObj.IsExclude = IsExclude; Unibase.Platform.Widgets.Managers.WidgetManager.Instance().saveWidgetRole(reqObj).then(function (response) { MessageHelper.Instance().showSuccess(response.message, 'div_WidgetMessage'); }); } else { var widgetinst = instance.widgetpermissions_portletwidgetuniqkey; var oldroles = Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets[widgetinst].Roles.RoleIds; if (oldroles == undefined) { Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets[widgetinst].Roles = { PortletWidgetId: id, RoleId: roleId, IsExclude: IsExclude }; } else { Unibase.Platform.Widgets.WidgetHiddenFields.Instance().NewWidgets[widgetinst].Roles = { PortletWidgetId: id, RoleIds: oldroles + '|' + roleId, IsExclude: IsExclude }; } } } else { id = Number(instance.widgetpermissions_portletid); let reqObj = new Unibase.Platform.Portlets.Requests.PortletRole(); reqObj.PortletId = id; reqObj.RoleId = roleId, reqObj.IsExclude = IsExclude; Unibase.Platform.Portlets.Managers.PortletManager.Instance().addViewRole(reqObj).then(function (response) { MessageHelper.Instance().showSuccess(response.message, 'div_WidgetMessage'); }); } } static Instance() { if (this._instance === undefined) this._instance = new WidgetPermission(); return this._instance; } } Components.WidgetPermission = WidgetPermission; })(Components = Widgets.Components || (Widgets.Components = {})); })(Widgets = Platform.Widgets || (Platform.Widgets = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {}));