var Unibase; (function (Unibase) { let Platform; (function (Platform) { let Communications; (function (Communications) { let Components; (function (Components) { class InstantReminder extends Unibase.Platform.Core.BaseComponent { constructor() { super(...arguments); this.RecipientProviders = []; this.TokensData = []; } jsFiles() { var jsfiles = ["platform/automation/managers/rulemanager.js", "platform/communications/managers/reminders/remindermanager.js", "platform/analytics/managers/reportmanager.js", "platform/communications/requests/reminders/instantreminder.js", "platform/communications/infos/reminders/instantreminder.js", "platform/analytics/managers/reportmanager.js", "platform/communications/requests/reminders/instantreminder.js", "platform/communications/requests/reminders/defaultreminderreport.js", "platform/communications/requests/reminders/reminderfilter.js", "apps/communications/managers/mails/mailmanager.js", "apps/communications/managers/sms/smsmanager.js"]; return jsfiles; } cssFiles() { return []; } html(id, containerid) { let html = `
`; return html; } load(id, containerid, callback) { var instance = this; $("#btnCloseNotification").click(function () { $('#' + containerid).modal('hide'); $('#' + containerid).remove(); }); $("#btnSaveNotification").click(function () { Unibase.Platform.Communications.Components.InstantReminder.Instance().SaveInstantReminder(containerid); }); $('#ScheduleMessageDiv').click(function () { $('#ScheduleMessageDiv').addClass('hidden'); $('#ScheduleExecutionDateDiv').removeClass('hidden'); }); $('#Lbl_ContactsReport').click(function () { $('#Lbl_ContactsReport').addClass('hidden'); $('#ContactsReportDiv').removeClass('hidden'); }); $('#ChangeReport').click(function () { $('#Row_Report').removeClass('hidden'); $('#Row_Buttons').removeClass('hidden'); $('#Header_ReportName').addClass('hidden'); $('#Row_IsDefault').addClass('hidden'); if ($('#chkDefault').is(':checked')) { $("#chkDefault").prop("checked", false); } $(".Row_DynamicFilers").html(""); }); $('#btnApply').click(function () { $('#Row_Report').addClass('hidden'); $('#Row_Buttons').addClass('hidden'); $('#Header_ReportName').removeClass('hidden'); $('#Row_IsDefault').removeClass('hidden'); $('#Spn_ReportName').text($("#select2_Report option:selected").text()); let reportid = Number($("#select2_Report option:selected").val()); Unibase.Platform.Communications.Components.InstantReminder.Instance().LoadDynamicFilters(reportid); Unibase.Platform.Communications.Components.InstantReminder.Instance().LoadContactColumns(reportid); }); var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reports'; AutoCompleteHelper.getHelper().Create("#select2_Report", "hdnselect2_Report", url, function (response) { var data = response; }); $("#select2_Report").change(function () { let reportid = Number($("#select2_Report option:selected").val()); $(".ContactColumns").html(""); $(".Row_DynamicFilers").html(""); Unibase.Platform.Communications.Components.InstantReminder.Instance().LoadMsgSubjectTokens(reportid); Unibase.Platform.Communications.Components.InstantReminder.Instance().LoadMsgBodyTokens(reportid); }); $("#ddl_SubjectTokens").change(function () { var textAreaTxt = $("#txtNotifications_MessageSubject").val(); var txtToAdd = '{{' + $("#ddl_SubjectTokens option:selected").text() + '}}'; $("#txtNotifications_MessageSubject").val(textAreaTxt + txtToAdd); $("#ddl_SubjectTokens").val(0); }); var _fileCacheHelper = Platform.Helpers.FileCacheHelper.Instance(); _fileCacheHelper.loadJsFileAsync("platform/automation/components/actions/externalattachments.js", function () { let IsMultiple = true; let ValidationDiv = "Unibase_Actions_ValidationSummary"; let externalattchmentshtml = Unibase.Platform.Automation.Components.ExternalAttachments.Instance().init("instantreminderattachments", IsMultiple, ValidationDiv); jQuery("#instantreminderattachments").html(externalattchmentshtml); $(".drag").css("border", "3px dashed #cccccc"); Unibase.Platform.Automation.Components.ExternalAttachments.Instance().dragNdrop("instantreminderattachments"); }); $("#date_ExecutionDate").daterangepicker({ autoUpdateInput: false, timePicker: true, timePicker24Hour: true, locale: { format: 'DD/MM/YYYY HH:mm', }, singleDatePicker: true, showDropdowns: true, minYear: 1901, maxDate: new Date(2050, 11, 31) }); $(".summernote_MessageBody").summernote({ height: 100, minHeight: null, maxHeight: null, placeholder: "Message 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(Unibase.Platform.Communications.Components.InstantReminder.Instance().TokensData, function (i) { var user = i; return user.indexOf(keyword) === 0; })); }, content: function (i) { var user = i; return $('{{' + user + '}}')[0]; } } }); Unibase.Platform.Communications.Components.InstantReminder.Instance().GetActions(); $("#smsinstantreminder").addClass("d-none"); $("#mailinstantreminder").addClass("d-none"); $('input[name="ReminderType"]').change(function () { if ($("input[name='ReminderType']:checked").val() == "Notification") { $("#smsinstantreminder").addClass("d-none"); $("#mailinstantreminder").addClass("d-none"); $("#AttachmentsDiv").addClass("d-none"); $('#txtNotifications_MessageSubject').removeClass('d-none'); $('#ddl_SubjectTokens').removeClass('d-none'); } else if ($("input[name='ReminderType']:checked").val() == "SMS") { $("#mailinstantreminder").addClass("d-none"); $("#smsinstantreminder").removeClass("d-none"); $("#AttachmentsDiv").addClass("d-none"); $('#txtNotifications_MessageSubject').addClass('d-none'); $('#ddl_SubjectTokens').addClass('d-none'); } else if ($("input[name='ReminderType']:checked").val() == "Email") { $("#smsinstantreminder").addClass("d-none"); $("#mailinstantreminder").removeClass("d-none"); $("#AttachmentsDiv").removeClass("d-none"); $('#txtNotifications_MessageSubject').removeClass('d-none'); $('#ddl_SubjectTokens').removeClass('d-none'); } }); Unibase.Platform.Communications.Components.InstantReminder.Instance().getDefaultSmsSender(); Unibase.Platform.Communications.Components.InstantReminder.Instance().getDefaultMailServer(); } loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) { InstantReminder.Instance().init(Pk_Value, null); Unibase.Platform.Apps.Managers.AppManager.Instance().getAppConfiguration(AppConfigurationId).then(function (response) { InstantReminder.installedappid = response.result.InstalledAppId; }); } loadInstantReminderForm(iscreate) { var Pk_Value = 0; if (!iscreate) { Pk_Value = Unibase.Themes.Providers.DetailHelper.recordId; } this.navigationHelper.popup(Pk_Value, '', Unibase.Platform.Communications.Components.InstantReminder.Instance(), null, Unibase.Platform.Helpers.Size.DockLeft); } init(id, callback) { this.render(id, callback); } render(id, callback) { this.navigationHelper.popup(id, '', Unibase.Platform.Communications.Components.InstantReminder.Instance(), null, Unibase.Platform.Helpers.Size.DockLeft); } SaveInstantReminder(containerid) { let model = new Unibase.Platform.Communications.Requests.InstantReminder(); let ActionName = ""; let reminderFilters = Unibase.Platform.Communications.Components.InstantReminder.Instance().GetFilters(); let defaultReminderReport = Unibase.Platform.Communications.Components.InstantReminder.Instance().GetDefaultReport(); let contactcolumns = Unibase.Platform.Communications.Components.InstantReminder.Instance().getContactColumns(); let ExternalAttachments = Unibase.Platform.Automation.Components.ExternalAttachments.Instance().getFiles("instantreminderattachments"); if ($("input[name='ReminderType']:checked").val() == "Notification") { ActionName = "Send Notification"; } else if ($("input[name='ReminderType']:checked").val() == "SMS") { ActionName = "Send Sms"; model.String1 = $('#Autocomplete_ProviderName option:selected').val().toString(); model.String2 = $('#Autocomplete_SenderName option:selected').val().toString(); } else if ($("input[name='ReminderType']:checked").val() == "Email") { ActionName = "Send Email"; model.String1 = $('#Autocomplete_MailServer option:selected').val().toString(); model.String2 = $('#Autocomplete_MailAccount option:selected').val().toString(); model.String3 = ExternalAttachments.length > 0 ? JSON.stringify(ExternalAttachments) : ""; } var contents = $('.summernote_MessageBody').summernote('code'); var plainText = $("

" + contents + "

").text(); model.Subject = $("#txtNotifications_MessageSubject").val().toString(); model.Body = plainText; model.ReportId = ($("#select2_Report option:selected").val() == undefined) ? 0 : Number($("#select2_Report option:selected").val()); model.ActionId = Unibase.Platform.Communications.Components.InstantReminder.ActionsArray.find(x => x.ActionName == ActionName).ActionId; model.Users = contactcolumns; model.IsScheduled = false; if ($("#date_ExecutionDate").val() != '' && $("#date_ExecutionDate").val() != null) { let ExecutionDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#date_ExecutionDate").val()); model.ExecutionDate = new Date(ExecutionDate); model.IsScheduled = true; } model.ReminderFilters = reminderFilters; model.DefaultReminderReport = defaultReminderReport; Communications.Managers.ReminderManager.Instance().saveInstantReminder(model).then(function (response) { if (response.status == Unibase.Data.Status.Error) { MessageHelper.Instance().showError(response.message, "Unibase_Actions_ValidationSummary"); } else { MessageHelper.Instance().showSuccess(response.message, "Unibase_Actions_ValidationSummary"); $('#' + containerid).modal('hide'); $('#' + containerid).remove(); Unibase.Platform.Helpers.NavigationHelper.Instance().loadList(Unibase.Platform.Communications.Components.InstantReminder.installedappid, null); } }); } LoadMsgSubjectTokens(reportid) { Unibase.Platform.Analytics.Managers.ReportManager.Instance().getColumns(reportid).then(function (response) { let cmbConditionProperties = document.getElementById('ddl_SubjectTokens'); $('#ddl_SubjectTokens').empty(); var defaultOpt1 = document.createElement("option"); defaultOpt1.text = "Select Token"; defaultOpt1.value = "0"; cmbConditionProperties.appendChild(defaultOpt1); for (let i = 0; i <= response.result.length - 1; i++) { var opt = document.createElement("option"); opt.text = response.result[i].ReportColumnName; opt.value = response.result[i].ReportColumnId.toString(); cmbConditionProperties.appendChild(opt); } }); } LoadMsgBodyTokens(reportid) { Unibase.Platform.Analytics.Managers.ReportManager.Instance().getColumns(reportid).then(function (response) { var Data = new Array(); for (let i = 0; i <= response.result.length - 1; i++) { var result = response.result[i].ReportColumnName; Data.push(result); } Unibase.Platform.Communications.Components.InstantReminder.Instance().TokensData = Data; }); } GetActions() { Unibase.Platform.Automation.Managers.RuleManager.Instance().getActions().then(function (response) { for (var i = 0; i <= response.length - 1; i++) { Unibase.Platform.Communications.Components.InstantReminder.ActionsArray.push(response[i]); } }); } LoadContactColumns(reportid) { Unibase.Platform.Analytics.Managers.ReportManager.Instance().getIsContactReportColumns(reportid).then(function (response) { if (response != null) { for (let i = 0; i <= response.result.length - 1; i++) { let html = ''; html += '
 
'; $(".ContactColumns").append(html); } } }); } GetFilters() { let dynamicfilters = new Array(); $(".dynamicfilter").each(function () { let dynamicfilter = new Unibase.Platform.Communications.Requests.ReminderFilter(); let id = $(this).find(".dynamicfilter"); let index = (id.prevObject[0].id).split('_'); index = index[1]; dynamicfilter.ColumnName = $(this).find(".propvalue").text(); let columnname = $(this).find(".propname").text(); let selectid = "select2_" + columnname + ""; let filtervalues = Unibase.Platform.Communications.Components.InstantReminder.Instance().getSelectedValues(selectid); dynamicfilter.ColumnValues = filtervalues; dynamicfilter.ReportId = ($("#select2_Report option:selected").val() == undefined) ? 0 : Number($("#select2_Report option:selected").val()); dynamicfilters.push(dynamicfilter); }); return dynamicfilters; } GetDefaultReport() { let defaultreminderreport = new Unibase.Platform.Communications.Requests.DefaultReminderReport(); defaultreminderreport.IsDefault = $('#chkDefault').is(':checked'); defaultreminderreport.ReportId = ($("#select2_Report option:selected").val() == undefined) ? 0 : Number($("#select2_Report option:selected").val()); return defaultreminderreport; } getSelectedValues(selectid) { let Recipientcount = new Array(); Recipientcount = $('#' + selectid).val(); let Recipient = ""; for (var i = 0; i < Recipientcount.length; i++) { Recipient += "|" + Recipientcount[i]; } if (Recipient != "") Recipient += "|"; return Recipient; } getContactColumns() { var contactcolumns = ""; $.each($("input[name='Contactcolumns']:checked"), function () { var Contact = $(this).parents("label"); Contact = Contact.prevObject[0].labels[0].innerText; contactcolumns += "|" + Contact; }); if (contactcolumns != "") contactcolumns += "|"; return contactcolumns; } LoadDynamicFilters(ReportId) { Unibase.Platform.Analytics.Managers.ReportManager.Instance().getDynamicFilters(ReportId).then(function (response) { let data = response; for (var i = 0; i <= response.length - 1; i++) { if (response[i].DatalistId != 0) { let html = ''; html += '
' + '' + '' + '
'; $(".Row_DynamicFilers").append(html); let selectid = "select2_" + response[i].TextColumn + ""; let reportid = response[i].ReportId; let columnname = response[i].TextColumn; let ismultiple = true; var obj = { datalistId: response[i].DatalistId, valueColumn: response[i].ValueColumn, textColumn: response[i].TextColumn, isFilterableColumn: response[i].IsFilterableColumn, }; Unibase.Platform.Communications.Components.InstantReminder.Instance().loadSelect2(selectid, reportid, ismultiple, 0, obj); } } }); } 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); }); } }); } getDefaultMailServer() { Unibase.Apps.Communications.Managers.MailManager.Instance().getUserDefaultMailAccount().then(function (response) { if (response.status == Unibase.Data.Status.Success) { var mailserveroption = new Option(response.result.ServerName, response.result.MailServerId.toString(), true); $("#Autocomplete_MailServer").append(mailserveroption); var mailaccountoption = new Option(response.result.UserName, response.result.MailAccountId.toString(), true); $("#Autocomplete_MailAccount").append(mailaccountoption); } }); } loadSelect2(select2id, reportid, isMultiple, containerid, res) { var data = []; var Ids = 0; var instance = this; var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser(); var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/getdynamicfilterdata'; $("#" + select2id).select2({ placeholder: "Select", multiple: isMultiple, allowClear: true, data: data, ajax: { url: function (request) { var reqUrl = url; return reqUrl; }, contentType: 'application/json', type: "POST", delay: 250, data: function (params) { let encoded_term = (params.term) ? btoa(params.term) : ""; var obj = { ReportId: reportid, DataListId: res.datalistId, IsFilterableColumn: res.isFilterableColumn, TextColumn: res.textColumn, ValueColumn: res.valueColumn, Term: encoded_term, AuthToken: userinfo.sessionId, }; return JSON.stringify(obj); }, beforeSend: function (xhr) { if (userinfo !== undefined && userinfo !== null) { xhr.setRequestHeader("Authorization", "Basic " + userinfo.sessionId); xhr.setRequestHeader('geoposition', userinfo.latd + ':' + userinfo.lgId); } }, processResults: function (data) { var selectData = []; var Data; var result = JSON.parse(data.result); if (!result.Data) { selectData.push({ id: 123456, text: "No results found", disabled: true }); } else { Data = JSON.parse(result.Data); for (var i = 0; i < Data.length; i++) { selectData.push({ id: Data[i][res.valueColumn], text: Data[i][res.textColumn] }); } ; } return { results: selectData }; } }, templateResult: function (item) { return item.text; }, templateSelection: function (item) { return item.text; }, }); $("#" + select2id).val(Ids).trigger('change'); } static Instance() { if (this.instance === undefined) { this.instance = new InstantReminder(); } return this.instance; } } InstantReminder.ActionsArray = []; Components.InstantReminder = InstantReminder; })(Components = Communications.Components || (Communications.Components = {})); })(Communications = Platform.Communications || (Platform.Communications = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {}));