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 SendSms extends Platform.Core.BaseComponent { constructor() { super(...arguments); this.RuleProviderId = 0; this.RowIndex = 0; this.AutomationMode = 0; this.RuleInstance = Unibase.Platform.Automation.Components.Rule.Instance(); } jsFiles() { var jsfiles = ["platform/automation/managers/rulemanager.js", "platform/automation/enums/automationmode.js", "platform/automation/components/conditions.js", "platform/automation/components/contactselection.js", "platform/automation/requests/ruleaction.js", "platform/automation/requests/rulecondition.js", "platform/forms/components/formviewer/formviewer.js", "libs/parsley/parsley.min.js", "libs/floatinglabels/floatinglabel.js", "apps/communications/managers/sms/smsmanager.js", "libs/querybuilder/query-builder.min.js", "libs/querybuilder/query-builder.standalone.min.js", "libs/querybuilder/query-builder.standalone.js", "libs/querybuilder/sql-parser.min.js", "platform/templates/enums/templatetype.js", "platform/templates/managers/templatemanager.js", "libs/notificationbuilder/notificationbuilder.js", "platform/apps/managers/stagemanager.js", "platform/automation/components/rulebuilder/rulebuilder.rule.js", "platform/automation/components/externalrecipients.js", "platform/automation/components/rulebuilder/notificationgroup.js", "platform/automation/managers/notificationgroupmanager.js" ]; return jsfiles; } cssFiles() { return []; } html(id, containerid) { let html = `
Create Sms
SMS Details

Advanced Options
Condition Details
Stage Event
Send To Details
External Recipients
`; return html; } load(id, containerid, callback) { return __awaiter(this, void 0, void 0, function* () { var instance = this; Unibase.Platform.Automation.Components.SendSms.Instance().ActionId = instance.ActionId; Unibase.Platform.Automation.Components.SendSms.Instance().RuleActionData = instance.RuleActionData; Unibase.Platform.Automation.Components.SendSms.Instance().RowIndex = instance.RowIndex; Unibase.Platform.Automation.Components.SendSms.Instance().AutomationMode = instance.AutomationMode; Unibase.Platform.Automation.Components.SendSms.Instance().ParentActionId = instance.ParentActionId; Unibase.Platform.Automation.Components.SendSms.Instance().IsAutomationMode = instance.IsAutomationMode; yield Unibase.Platform.Automation.Components.NotificationGroup.Instance().LoadNotificationGroups(); Unibase.Platform.Automation.Components.ExternalRecipients.Instance().loadreports(); if (instance.AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode) { eval('bizgaze_automation_flow_main.getcontainerid("' + containerid + '")'); } $("#btnCloseSms").click(function () { $('#' + containerid).modal('hide'); $('#' + containerid).remove(); if (Unibase.Platform.Automation.Components.SendSms.Instance().AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.NormalMode) { if (Unibase.Platform.Automation.Components.SendSms.Instance().AutomationMode) { if (Unibase.Platform.Automation.Components.SendSms.Instance().IsAutomationMode) { Unibase.Platform.Automation.Components.Rule.Instance().ChangeAction(instance.RowIndex, id); } } } else { eval("bizgaze_automation_flow_main.getpopupclosed()"); } Unibase.Platform.Automation.Components.Conditions.conditionArray = []; }); $('#creategrp_btn').click(function () { Unibase.Platform.Automation.Components.NotificationGroup.Instance().init(0, null, true); }); $("#txtAutoComplete_ReportsExternal").change(function () { var reportid = Number($('#txtAutoComplete_ReportsExternal option:selected').val()); Unibase.Platform.Automation.Components.ExternalRecipients.Instance().loadexternalreportcolumns(reportid); }); $("#btnSaveSms").click(function () { let appcontrolid = "frmUnibase_SendSms"; let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid); if (result == false) { MessageHelper.Instance().showError("Mandatory fields are missing", "Validate_SmsAction"); return false; } else { Unibase.Platform.Automation.Components.SendSms.Instance().SaveSmsAction(id, containerid); } }); if (instance.RuleInstance.IsStageChangeEvent()) { $('#SelectstagesDiv').removeClass('d-none'); yield Unibase.Platform.Automation.Components.SendSms.Instance().LoadAppStages(); } else { $('#SelectstagesDiv').addClass('d-none'); } var _fileCacheHelper = Platform.Helpers.FileCacheHelper.Instance(); yield _fileCacheHelper.loadJsFileAsync("platform/automation/components/contactselection.js", function () { jQuery(".ContactSelection").html(Unibase.Platform.Automation.Components.ContactSelection.Instance().init(instance.RuleProviderId)); }); yield _fileCacheHelper.loadJsFileAsync("platform/automation/components/externalrecipients.js", function () { jQuery(".ExternalRecipients").html(Unibase.Platform.Automation.Components.ExternalRecipients.Instance().init(instance.RuleProviderId)); Unibase.Platform.Automation.Components.ExternalRecipients.Instance().load(instance.RuleProviderId); }); if (instance.ParentActionId != 0) { Unibase.Platform.Automation.Components.ContactSelection.Instance().getResultActions(instance.ParentActionId); yield Unibase.Platform.Automation.Components.SendSms.Instance().GetRuleActionInfo(Number(instance.ParentActionId)); $('#ddl_NotificationGrp').prop("disabled", true); $('#creategrp_btn').addClass('d-none'); } if (id != "") { setTimeout(function () { Unibase.Platform.Automation.Components.SendSms.Instance().EditSmsAction(id); }, 10); } if (instance.RuleProviderId != 0) { Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(instance.RuleProviderId, null); Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(instance.RuleProviderId).then(function (response) { var Data = new Array(); for (let i = 0; i <= response.length - 1; i++) { var result = response[i]; Data.push(result); } Unibase.Platform.Automation.Components.SendSms.Instance().loadSummernote(Data); }); Unibase.Platform.Automation.Components.SendSms.Instance().loadTemplates(instance.RuleProviderId); } var url = _appsettings.server_url() + '/apis/v4/bizgaze/communications/sms/SmsProvidersAutocomplete'; AutoCompleteHelper.getHelper().Create("#Autocomplete_ProviderName", "#hf_ProviderName", url, function (response) { var data = response; }); $("#Autocomplete_ProviderName").change(function () { var url = _appsettings.server_url() + '/apis/v4/bizgaze/communications/sms/SmsSenderAutocomplete/smsproviderid/' + Number($("#Autocomplete_ProviderName option:selected").val()); AutoCompleteHelper.getHelper().Create("#Autocomplete_SenderName", "#hf_SenderName", url, function (response) { var data = response; }); }); $("#Autocomplete_Template").change(function () { let templateid = Number($("#Autocomplete_Template option:selected").val()); Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplateText(Number(templateid)).then(function (response) { if (response.result != null) { var templatetext = HtmlHelper.getHelper().decode(response.result.TemplateText); $('.summernote__SMSBody').summernote("code", templatetext); } }); }); if (instance.RuleActionData.length == 0 && id == "") { Unibase.Platform.Automation.Components.SendSms.Instance().getDefaultSmsSender(); } if (instance.RuleActionData.length != 0) { Unibase.Platform.Automation.Components.SendSms.Instance().LoadSmsData(instance.RuleActionData); } }); } Toggleadvancedoptions() { if ($('.arrowicon').hasClass('fa-angle-down')) { $('.arrowicon').removeClass('fa-angle-down').addClass('fa-angle-up'); } else { $('.arrowicon').removeClass('fa-angle-up').addClass('fa-angle-down'); } $('.Advanced_options').toggleClass("hidden"); } ToggleSendSmsConditions() { $('#ActionConditionsDiv').toggleClass("hidden"); if ($('.conditionicon').hasClass('fa-angle-down')) { $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up'); Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(Unibase.Platform.Automation.Components.SendSms.Instance().RuleProviderId, null); } else { $('.conditionicon').removeClass('fa-angle-up').addClass('fa-angle-down'); } } LoadAppStages() { return __awaiter(this, void 0, void 0, function* () { var html = ''; var fromstage = ''; var tostage = ''; var installeappid = Unibase.Platform.Automation.Components.Rule.Instance().RuleInstalledAppId; yield Unibase.Platform.Apps.Managers.StageManager.Instance().getStages(installeappid).then(function (response) { if (response.result != null) { for (let i = 0; i < response.result.length; i++) { var data = response.result[i]; html += ''; } } $('.from_stage_sms').html(fromstage + html); $('.to_stage_sms').html(tostage + html); }); }); } ToggleExternalRecipients() { $("#ExternalRecipientsDiv").toggle(function () { $("#btn_ExternalRecipients").addClass("hidden"); $("#ExternalRecipientsDiv").removeClass("hidden"); }); } ToggleSmsSendFrom() { $("#SendFromDetailsDiv").toggle(function () { $("#btn_SendFrom").addClass("hidden"); $("#SendFromDetailsDiv").removeClass("hidden"); }); } EditSmsAction(id) { return __awaiter(this, void 0, void 0, function* () { let actionid = Number(id); $("#Spn_SendSMS").text("Edit Sms"); yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleAction(actionid).then(function (response) { $("#txtSms_RuleActionName").val(response.RuleActionName); $('#message_result').val(Number(response.BString5)); $('#ddl_NotificationGrp option[value=' + response.NotificationGroupId + ']').prop('selected', true); if (response.ResultActionId != null) { $('#ddl_ResultAction').val(response.ResultActionId); } if (!Unibase.Platform.Automation.Components.SendSms.Instance().IsAutomationMode) { Unibase.Platform.Automation.Components.SendSms.Instance().RuleId = response.RuleId; Unibase.Platform.Automation.Components.SendSms.Instance().RuleEventId = response.RuleEventId; Unibase.Platform.Automation.Components.SendSms.Instance().EventGroupId = response.EventGroupId; Unibase.Platform.Automation.Components.SendSms.Instance().ActionId = response.ActionId; Unibase.Platform.Automation.Components.SendSms.Instance().ParentActionId = response.ParentActionId; } if (response.ExecuteStatusId != Number(Unibase.Platform.Automation.Enums.ExecuteActionStatus.Approved)) $("#chkAutoApprovedSMS").prop("checked", false); else $("#chkAutoApprovedSMS").prop("checked", true); $("#btn_SendFrom").addClass("hidden"); $("#SendFromDetailsDiv").removeClass("hidden"); if (response.FromStage != 0 && response.ToStage != 0) { $('.from_stage_sms option[value=' + response.FromStage + ' ]').prop('selected', true); $('to_stage_sms option[value=' + response.ToStage + ']').prop('selected', true); } if (response.ExternalReportId != 0) { $('#txtAutoComplete_ReportsExternal option[value=' + response.ExternalReportId + ']').prop("selected", true); } Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckContactColumns(response.Users); Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckSecondaryContactColumns(response.SecondaryUsers); Unibase.Platform.Automation.Components.ContactSelection.Instance().BindRecipients(response.RuleActionId); Unibase.Apps.Communications.Managers.SmsManager.Instance().getSmsSender(Number(response.String3)).then(function (response) { if (response.status == Unibase.Data.Status.Success) { var smsprovideroption = new Option(response.result.SmsProviderName, response.result.SmsProviderId.toString(), true); $("#Autocomplete_ProviderName").append(smsprovideroption); var url = _appsettings.server_url() + '/apis/v4/bizgaze/communications/sms/SmsSenderAutocomplete/smsproviderid/' + Number($("#Autocomplete_ProviderName option:selected").val()); AutoCompleteHelper.getHelper().Create("#Autocomplete_SenderName", "#hf_SenderName", url, function (res) { var data = res; var smssenderoption = new Option(response.result.SmsSenderName, response.result.SmsSenderId.toString(), true); $("#Autocomplete_SenderName").append(smssenderoption); }); } }); let templateid = Number(response.BString1); Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplateText(templateid).then(function (res) { var smstemplate = new Option(res.result.TemplateName, res.result.TemplateId.toString(), true); $("#Autocomplete_Template").append(smstemplate); }); $('.summernote__SMSBody').summernote("code", response.BString2); if (response.SqlWhere != null && response.SqlWhere != "") { $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up'); $("#ActionConditionsDiv").removeClass("hidden"); } Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(response.RuleProviderId, response.SqlWhere); eval('_floatingLabelHelper.init();'); }); }); } LoadSmsData(Data) { for (var i = 0; i < Data.length; i++) { $("#txtSms_RuleActionName").val(Data[i].RuleActionName); if (!Data[i].AutoApproved) $("#chkAutoApprovedSMS").prop("checked", false); else $("#chkAutoApprovedSMS").prop("checked", true); Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckContactColumns(Data[i].Users); Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckSecondaryContactColumns(Data[i].SecondaryUsers); if (Data[i].SqlWhere != "" && Data[i].SqlWhere != null) { $(".conditionicon").addClass("fa-angle-up").removeClass('fa-fa-angle-down'); $("#ActionConditionsDiv").removeClass("hidden"); Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(Unibase.Platform.Automation.Components.SendSms.Instance().RuleProviderId, Data[i].SqlWhere); } Unibase.Apps.Communications.Managers.SmsManager.Instance().getSmsSender(Number(Data[i].String3)).then(function (response) { if (response.status == Unibase.Data.Status.Success) { var smsprovideroption = new Option(response.result.SmsProviderName, response.result.SmsProviderId.toString(), true); $("#Autocomplete_ProviderName").append(smsprovideroption); var url = _appsettings.server_url() + '/apis/v4/bizgaze/communications/sms/SmsSenderAutocomplete/smsproviderid/' + Number($("#Autocomplete_ProviderName option:selected").val()); AutoCompleteHelper.getHelper().Create("#Autocomplete_SenderName", "#hf_SenderName", url, function (res) { var data = res; var smssenderoption = new Option(response.result.SmsSenderName, response.result.SmsSenderId.toString(), true); $("#Autocomplete_SenderName").append(smssenderoption); }); } }); let templateid = Number(Data[i].BString1); Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplateText(templateid).then(function (res) { var smstemplate = new Option(res.result.TemplateName, res.result.TemplateId.toString(), true); $("#Autocomplete_Template").append(smstemplate); }); $('.summernote__SMSBody').summernote("code", Data[i].BString2); eval('_floatingLabelHelper.init();'); } } getDefaultSmsSender() { Unibase.Apps.Communications.Managers.SmsManager.Instance().getDefaultSmsSender().then(function (response) { if (response.status == Unibase.Data.Status.Success) { var smsprovideroption = new Option(response.result.SmsProviderName, response.result.SmsProviderId.toString(), true); $("#Autocomplete_ProviderName").append(smsprovideroption); var url = _appsettings.server_url() + '/apis/v4/bizgaze/communications/sms/SmsSenderAutocomplete/smsproviderid/' + Number($("#Autocomplete_ProviderName option:selected").val()); AutoCompleteHelper.getHelper().Create("#Autocomplete_SenderName", "#hf_SenderName", url, function (res) { var data = res; var smssenderoption = new Option(response.result.SmsSenderName, response.result.SmsSenderId.toString(), true); $("#Autocomplete_SenderName").append(smssenderoption); }); } }); } SaveSmsAction(smsid, containerid) { var instance = this; let ruleactionid = Number(smsid); let queryelmnt = $("#builder"); let recipients = Unibase.Platform.Automation.Components.ContactSelection.Instance().GetRecipients(); let contactcolumns = Unibase.Platform.Automation.Components.ContactSelection.Instance().getContactColumns(); let secondarycontactcolumns = Unibase.Platform.Automation.Components.ContactSelection.Instance().getSecondaryContactColumns(); var externalrecipients = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().getexternalrecipients(); let externalroles = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().GetExternalRoles(); let externalusers = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().GetExternalUsers(); var contents = $('.summernote__SMSBody').summernote('code'); var plainText = $("

" + contents + "

").text(); let model = new Unibase.Platform.Automation.Requests.RuleAction(); model.RuleActionId = ruleactionid; model.ActionId = Unibase.Platform.Automation.Components.SendSms.Instance().ActionId; model.RuleId = 0; model.NotificationGroupId = $('#ddl_NotificationGrp').val() == undefined ? 0 : Number($('#ddl_NotificationGrp').val()); if (model.NotificationGroupId == 0) { MessageHelper.Instance().showError("Please Select Notification Group", "Validate_SmsAction"); return; } if (instance.RuleInstance.IsStageChangeEvent()) { model.FromStage = $('.from_stage_sms option:selected').val() != "0" ? Number($('.from_stage option:selected').val()) : 0; model.ToStage = $('.to_stage_sms option:selected').val() != "0" ? Number($('.to_stage option:selected').val()) : 0; } model.RuleActionName = $("#txtSms_RuleActionName").val().toString(); model.Users = contactcolumns; model.String4 = Number($("#Autocomplete_ProviderName option:selected").val()); model.String3 = $("#Autocomplete_SenderName option:selected").val().toString(); model.BString1 = $("#Autocomplete_Template option:selected").val() == undefined || null ? "0" : $("#Autocomplete_Template option:selected").val().toString(); model.BString2 = plainText; model.BString6 = externalroles; model.BString7 = externalusers; model.BString5 = $('#message_result option:selected').val().toString(); model.ExternalReportId = ($("#txtAutoComplete_ReportsExternal option:selected").val() == undefined) ? 0 : Number($("#txtAutoComplete_ReportsExternal option:selected").val()); model.ExternalReportColumnId = Number($("#txtAutoComplete_ReportColumns option:selected").val()); model.ProviderColumnId = Number($("#txtAutoComplete_ProviderColumns option:selected").val()); let query = queryelmnt.queryBuilder('getSQL', false, true); if (query != null) { model.SqlWhere = queryelmnt.queryBuilder('getSQL', false, true).sql.replace(/\n/g, " ").replace(/LIKE/g, "ILIKE"); ; model.SqlWhereJson = JSON.stringify(queryelmnt.queryBuilder('getSQL', false, true)); } else { model.SqlWhere = ""; model.SqlWhereJson = ""; } model.ResultActionId = $("#ddl_ResultAction option:selected").val() == undefined ? 0 : Number($("#ddl_ResultAction option:selected").val()); if (model.ResultActionId != 0) { model.ResultActionName = $("#ddl_ResultAction option:selected").text(); } else { model.ResultActionName = ""; } model.DelayTime = 0; model.ParentActionId = Unibase.Platform.Automation.Components.SendSms.Instance().ParentActionId; model.AutoApproved = $('#chkAutoApprovedSMS').is(':checked'); model.RecipientsData = recipients; model.SecondaryUsers = secondarycontactcolumns; model.ExternalRecipients = externalrecipients; model.RowIndex = Unibase.Platform.Automation.Components.SendSms.Instance().RowIndex; if (Unibase.Platform.Automation.Components.SendSms.Instance().IsAutomationMode) { if (Unibase.Platform.Automation.Components.SendSms.Instance().AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.NormalMode) { Unibase.Platform.Automation.Components.Rule.Instance().RuleActionsArray(model); $('#' + containerid).modal('hide'); $('#' + containerid).remove(); Unibase.Platform.Automation.Components.Conditions.conditionArray = []; } else { model.RuleId = eval("bizgaze_automation_flow_main.getruleid()"); Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) { if (response.status == Unibase.Data.Status.Error) { MessageHelper.Instance().showError(response.message, "Validate_SmsAction"); } else { MessageHelper.Instance().showSuccess(response.message, "Validate_SmsAction"); $('#' + containerid).modal('hide'); $('#' + containerid).remove(); Unibase.Platform.Automation.Components.Conditions.conditionArray = []; var actionname = response.result.RuleActionName; eval("bizgaze_automation_flow_main.savesmsblock('" + response.result.RuleActionId + "','" + actionname + "')"); } }); } } else { model.RuleId = Unibase.Platform.Automation.Components.SendSms.Instance().RuleId; model.EventGroupId = Unibase.Platform.Automation.Components.SendSms.Instance().EventGroupId; model.RuleEventId = Unibase.Platform.Automation.Components.SendSms.Instance().RuleEventId; model.ActionId = Unibase.Platform.Automation.Components.SendSms.Instance().ActionId; model.ParentActionId = Unibase.Platform.Automation.Components.SendSms.Instance().ParentActionId; Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) { if (response.status == Unibase.Data.Status.Error) { MessageHelper.Instance().showError(response.message, "Validate_SmsAction"); } else { MessageHelper.Instance().showSuccess(response.message, "Validate_SmsAction"); $('#' + containerid).modal('hide'); $('#' + containerid).remove(); Unibase.Platform.Automation.Components.Conditions.conditionArray = []; } }); } } GetRuleActionInfo(parentactionid) { return __awaiter(this, void 0, void 0, function* () { yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleAction(parentactionid).then(function (response) { if (response != null) { var html = ''; $('#ddl_NotificationGrp').html('').html(html); } }); }); } loadSummernote(Data) { $(".summernote__SMSBody").summernote({ height: 100, minHeight: null, maxHeight: null, placeholder: "SMS Body", disableDragAndDrop: true, codemirror: { mode: 'text/html', lineNumbers: true }, toolbar: [ ['font', ['bold', 'italic', 'underline']], ['color', ['color']], ['view', ['fullscreen', 'codeview', 'help']], ], hint: { match: /\B[@!](\w*)$/, search: function (keyword, callback) { callback($.grep(Data, function (i) { var user = i; return user.indexOf(keyword) === 0; })); }, content: function (i) { var user = i; return $('{{' + user + '}}')[0]; } } }); } loadTemplates(ruleproviderid) { let templatetypeid = Number(Unibase.Platform.Templates.Enums.TemplateType.SMS); Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleProvider(ruleproviderid).then(function (response) { var url = _appsettings.server_url() + '/apis/v4/unibase/platform/templates/gettemplatesautocomplatebytemplatetype/installedappid/' + response.InstalledAppId + '/templatetypeid/' + templatetypeid; AutoCompleteHelper.getHelper().Create("#Autocomplete_Template", "#hf_Template", url, function (response) { var data = response; }); }); } static Instance() { if (this.instance === undefined) { this.instance = new SendSms(); } return this.instance; } } Components.SendSms = SendSms; })(Components = Automation.Components || (Automation.Components = {})); })(Automation = Platform.Automation || (Platform.Automation = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {}));