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 = "
Subject *
"; $("#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 = "
Send To Contacts
" + additionalhtml + "
"; $("#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 = {}));