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 = '
';
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?' +
' ' +
'
' +
'');
});
}
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 = {}));