var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var Unibase;
(function (Unibase) {
let Platform;
(function (Platform) {
let Automation;
(function (Automation) {
let Components;
(function (Components) {
class Notifications extends Platform.Core.BaseComponent {
constructor() {
super(...arguments);
this.InstalledAppId = 0;
this.RuleId = 0;
this.RuleActions = [];
}
cssFiles() {
return [
"libs/jquery-ui-slider-pips/jquery-ui-slider-pips.css",
"libs/jquery-ui-slider-pips/Custom-slider-ui-pips.css",
];
}
jsFiles() {
return [
"libs/jquery-ui-slider-pips/jquery-ui-slider-pips.js",
"/platform/automation/managers/rulemanager.js", "/platform/automation/enums/executeactionstatus.js", "/platform/automation/components/actions/actions.notification.js", "/platform/automation/components/notifications.contactselection.js", "/platform/automation/components/externalrecipients.js", "/platform/automation/requests/ruleaction.js", "/platform/automation/components/conditions.js", "platform/automation/managers/notificationgroupmanager.js"
];
}
html(id, containerid) {
var instance = this;
instance.InstalledAppId = instance.appSettings.InstalledAppId;
let html = `
`;
return html;
}
load(id, containerid, callback) {
var instance = this;
instance.loadNotificationRules();
}
init() {
var instance = this;
this.navigationHelper.popup(0, "", instance, null, Platform.Helpers.Size.Large);
}
loadNotificationRules() {
var instance = this;
Unibase.Platform.Automation.Managers.NotificationGroupManager.Instance().GetNotificationGroups().then(function (response) {
var data = response;
var html = "
No Data";
var data = response;
if (data.length > 0) {
Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleActionsByInstalledApp(instance.InstalledAppId).then(function (responsedata) {
Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions = responsedata;
});
html = "";
data = data.sort((a, b) => a.Index - b.Index);
for (var i = 0; i < data.length; i++) {
var NotificationGroupId = data[i].NotificationGroupId;
var NotificationGroupName = data[i].NotificationGroupName;
html += "" +
"" + "" + "" + "
" + "";
}
}
$(".ruleslist-div").append(html);
});
}
loadRuleActions(NotificationGroupId) {
var collapsed = $("#panelId-" + NotificationGroupId).hasClass("collapse");
if (!collapsed) {
$("#panelId-" + NotificationGroupId).addClass("collapse");
$(".notificationgroupid-" + NotificationGroupId).find("#down_notificationgroupid_" + NotificationGroupId).removeClass("d-none");
$(".notificationgroupid-" + NotificationGroupId).find("#up_notificationgroupid_" + NotificationGroupId).addClass("d-none");
}
else {
$(".notificationgroupid-" + NotificationGroupId).find("#up_notificationgroupid_" + NotificationGroupId).removeClass("d-none");
$(".notificationgroupid-" + NotificationGroupId).find("#down_notificationgroupid_" + NotificationGroupId).addClass("d-none");
$("#panelId-" + NotificationGroupId).removeClass("collapse");
$(".notificationgroupid-" + NotificationGroupId).find(".sliderDetails").remove();
}
var html = "No Data";
var data = Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions.filter(x => x.NotificationGroupId == NotificationGroupId);
if (data.length > 0) {
html = "";
for (var i = 0; i < data.length; i++) {
var ruleName = data[i].RuleActionName;
var actionType = data[i].ActionName;
var ruleactionid = data[i].RuleActionId;
var executestatus = data[i].ExecuteStatusId;
var Bodyonclick = "onclick='Unibase.Platform.Automation.Components.Notifications.Instance().editMessageBody(" + ruleactionid + ")'";
var Recipientonclick = "onclick='Unibase.Platform.Automation.Components.Notifications.Instance().EditRuleActions(" + ruleactionid + ")'";
var styleclass = "";
var isChecked;
if (executestatus == 2) {
isChecked = "checked";
}
else {
isChecked = "";
}
if (actionType == "Stage Change" || actionType == "Api Integrator" || actionType == "Execute Query") {
Bodyonclick = "", Recipientonclick = "";
styleclass = "text-light";
}
html += "";
if (actionType.toLowerCase().includes('email')) {
html += '';
}
else if (actionType.toLowerCase().includes('task')) {
html += '';
}
else if (actionType.toLowerCase().includes('change')) {
html += '';
}
else if (actionType.toLowerCase().includes('send')) {
html += '';
}
html += "" + ruleName + "
";
}
}
$("#panelId-" + NotificationGroupId).html(html);
}
closeRuleActions(ruleactionid, response, Textdiv) {
if (!Textdiv) {
$("#SelectRoleDiv_" + ruleactionid).remove();
}
else {
$("#MessageDiv_" + ruleactionid).remove();
}
let index = Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions.findIndex(x => x.RuleActionId == ruleactionid);
Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions[index] = response;
}
closeActions(RuleActionId, textdiv) {
$('#ruleaction_' + RuleActionId).addClass('border-bottom');
;
if (textdiv) {
$("#MessageDiv_" + RuleActionId).addClass('d-none');
}
else {
$("#SelectRoleDiv_" + RuleActionId).addClass('d-none');
}
}
editMessageBody(RuleActionId) {
var data = Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions.find(x => x.RuleActionId == RuleActionId);
$("#ruleaction_" + RuleActionId).removeClass("border-bottom");
var html = "";
$("#edit_ruleactions_" + RuleActionId).html(html);
var RuleProviderId = data.RuleProviderId;
$('#txtNotifications_MessageSubject_' + RuleActionId).val(data.BString1);
$("#txtNotifications_MessageBody_" + RuleActionId).val(data.BString2);
$("#ddl_SubjectTokens_" + RuleActionId).change(function () {
var textAreaTxt = $("#txtNotifications_MessageSubject_" + RuleActionId).val().toString();
var txtToAdd = '{{' + $("#ddl_SubjectTokens_" + RuleActionId + " option:selected").text() + '}}';
var firsttext = textAreaTxt.slice(0, Notifications.Instance().tokenposition);
var lasttext = textAreaTxt.slice(Notifications.Instance().tokenposition, textAreaTxt.length);
$("#txtNotifications_MessageSubject_" + RuleActionId).val(firsttext + txtToAdd + lasttext);
$("#ddl_SubjectTokens_" + RuleActionId).val(0);
});
$("#ddl_BodyTokens_" + RuleActionId).change(function (event) {
var textAreaTxt = $("#txtNotifications_MessageBody_" + RuleActionId).val().toString();
var txtToAdd = '{{' + $("#ddl_BodyTokens_" + RuleActionId + " option:selected").text() + '}}';
var firsttext = textAreaTxt.slice(0, Notifications.Instance().tokenposition);
var lasttext = textAreaTxt.slice(Notifications.Instance().tokenposition, textAreaTxt.length);
$("#txtNotifications_MessageBody_" + RuleActionId).val(firsttext + txtToAdd + lasttext);
$("#ddl_BodyTokens_" + RuleActionId).val(0);
});
$("#txtNotifications_MessageBody_" + RuleActionId).focusout(function (event) {
Notifications.Instance().tokenposition = event["target"]["selectionStart"];
});
$("#txtNotifications_MessageSubject_" + RuleActionId).focusout(function (event) {
Notifications.Instance().tokenposition = event["target"]["selectionStart"];
});
if (RuleActionId != 0 && RuleProviderId != 0) {
Unibase.Platform.Automation.Components.Notifications.Instance().LoadMsgSubjectTokens(RuleProviderId, RuleActionId);
Unibase.Platform.Automation.Components.Notifications.Instance().LoadMsgBodyTokens(RuleProviderId, RuleActionId);
}
}
LoadMsgSubjectTokens(ruleproviderid, ruleactionid) {
Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(ruleproviderid).then(function (response) {
let cmbConditionProperties = document.getElementById('ddl_SubjectTokens_' + ruleactionid);
$('#ddl_SubjectTokens_' + ruleactionid).empty();
var defaultOpt1 = document.createElement("option");
defaultOpt1.text = "Select Token";
defaultOpt1.value = "0";
cmbConditionProperties.appendChild(defaultOpt1);
for (let i = 0; i <= response.length - 1; i++) {
var opt = document.createElement("option");
opt.text = response[i];
opt.value = (i + 1).toString();
cmbConditionProperties.appendChild(opt);
}
});
}
LoadExternalreports(ruleactionid) {
var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reports';
AutoCompleteHelper.getHelper().Create("#txtAutoComplete_ReportsExternal_" + ruleactionid, "#hf_Autocomplete_ReportsExternal", url, function (response) {
var data = response;
});
}
LoadMsgBodyTokens(ruleproviderid, ruleactionid) {
Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(ruleproviderid).then(function (response) {
let cmbConditionProperties = document.getElementById('ddl_BodyTokens_' + ruleactionid);
$('#ddl_BodyTokens_' + ruleactionid).empty();
var defaultOpt1 = document.createElement("option");
defaultOpt1.text = "Select Token";
defaultOpt1.value = "0";
cmbConditionProperties.appendChild(defaultOpt1);
for (let i = 0; i <= response.length - 1; i++) {
var opt = document.createElement("option");
opt.text = response[i];
opt.value = (i + 1).toString();
cmbConditionProperties.appendChild(opt);
}
});
}
EditRuleActions(RuleActionId) {
return __awaiter(this, void 0, void 0, function* () {
var data = Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions.find(x => x.RuleActionId == RuleActionId);
var additionalhtml = '';
if (data.actiontype == "Send Sms" || data.actiontype == "Send Email") {
additionalhtml = Unibase.Platform.Automation.Components.Notifications.Instance().AdditionalHtml(RuleActionId);
}
$('#ruleaction_' + RuleActionId).removeClass('border-bottom');
var html = "";
$("#edit_ruleactions_" + RuleActionId).html(html);
var RuleProviderId = data.RuleProviderId;
Unibase.Platform.Automation.Components.Notifications.Instance().BindData(RuleActionId).then(function () {
Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().loadRecipients(RuleActionId).then(function () {
Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().LoadContactColumns(RuleProviderId, RuleActionId).then(function () {
Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().BindRecipients(RuleActionId);
Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().CheckContactColumns(data.Users, RuleActionId);
Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().CheckSecondaryContactColumns(data.SecondaryUsers, RuleActionId);
});
Unibase.Platform.Automation.Components.Notifications.Instance().LoadExternalreports(RuleActionId);
});
});
});
}
AdditionalHtml(ruleactionid) {
var html = "";
return html;
}
BindData(ruleactionid) {
return __awaiter(this, void 0, void 0, function* () {
return $(".ContactSelection_" + ruleactionid).html(yield Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().html(ruleactionid));
});
}
SaveNotificationAction(RuleActionId, istext) {
var data = Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions.find(x => x.RuleActionId == RuleActionId);
let model = new Unibase.Platform.Automation.Requests.RuleAction();
model.RuleActionId = data.RuleActionId;
model.RuleActionName = data.RuleActionName;
model.BString4 = data.BString4;
model.BString1 = data.BString1;
model.BString2 = data.BString2;
model.BString3 = data.BString3;
model.BString6 = data.BString6;
model.BString7 = data.BString7;
model.BString5 = data.BString5;
model.ExternalReportId = data.ExternalReportId;
model.ExternalReportColumnId = data.ExternalReportColumnId;
model.ProviderColumnId = data.ProviderColumnId;
model.ActionId = data.ActionId;
model.RuleId = data.RuleId;
model.Users = data.Users;
model.SecondaryUsers = data.SecondaryUsers;
model.String2 = data.String2;
model.String6 = data.String6;
model.String7 = data.String7;
model.IsParent = data.IsParent;
model.ResultActionId = data.ResultActionId;
model.DelayTime = data.DelayTime;
model.ParentActionId = data.ParentActionId;
model.AutoApproved = $('#chk_' + RuleActionId).is(':checked');
model.RecipientsData = data.RecipientsData;
model.RowIndex = data.RowIndex;
model.EventGroupId = data.EventGroupId;
model.RuleEventId = data.RuleEventId;
model.NotificationGroupId = data.NotificationGroupId;
model.ExternalReportId = data.ExternalReportId;
model.ExternalRecipients = data.ExternalRecipients;
if (istext) {
model.BString1 = $('#txtNotifications_MessageSubject_' + RuleActionId).val().toString();
model.BString2 = $('#txtNotifications_MessageBody_' + RuleActionId).val().toString();
data.BString1 = $('#txtNotifications_MessageSubject_' + RuleActionId).val().toString();
data.BString2 = $('#txtNotifications_MessageBody_' + RuleActionId).val().toString();
}
else {
let recipients = Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().GetRecipients(RuleActionId);
let contactcolumns = Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().getContactColumns(RuleActionId);
let secondarycontactcolumns = Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().getSecondaryContactColumns(RuleActionId);
model.RecipientsData = recipients;
model.Users = contactcolumns;
model.SecondaryUsers = secondarycontactcolumns;
data.RecipientsData = recipients;
data.Users = contactcolumns;
data.SecondaryUsers = secondarycontactcolumns;
}
Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) {
if (response.status == Unibase.Data.Status.Error) {
MessageHelper.Instance().showError(response.message, "Validate_NotificationAction");
}
else {
MessageHelper.Instance().showSuccess(response.message, "Validate_NotificationAction");
Unibase.Platform.Automation.Components.Notifications.Instance().closeRuleActions(model.RuleActionId, data, istext);
}
});
}
ChangeRuleActionStatus(RuleActionId) {
var status = Unibase.Platform.Automation.Enums.ExecuteActionStatus.Draft;
if ($('#chk_' + RuleActionId).is(":checked")) {
status = Unibase.Platform.Automation.Enums.ExecuteActionStatus.Approved;
}
Unibase.Platform.Automation.Managers.RuleManager.Instance().UpdateRuleActionStatus(RuleActionId, status).then(function (response) {
if (response.status == Unibase.Data.Status.Success) {
MessageHelper.Instance().showSuccess(response.message, " ");
}
});
}
static Instance() {
if (this.instance == undefined) {
this.instance = new Notifications();
}
return this.instance;
}
}
Components.Notifications = Notifications;
})(Components = Automation.Components || (Automation.Components = {}));
})(Automation = Platform.Automation || (Platform.Automation = {}));
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
})(Unibase || (Unibase = {}));