123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597 |
- 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 = `<form id="frmUnibase_InstantReminder" data-validate="parsley" data-isdynamic="false">
- <div class="card bg-light">
- <div class="bg-white modal-header"> <strong class="text-dark title" id="Spn_InstantReminder">Create Notifications</strong> </div>
- <div data-simplebar class="modal-body simple-scrollbar">
- <div class="bg-white card" id="divInstantReminder">
- <div id="Unibase_Actions_ValidationSummary" class="clear"></div>
- <div class="card-body">
- <div class="row">
- <div class="col-sm-12">
- <label for="lbl_ReminderType" id="lbl_ReminderType">Choose Option For Sending Message<span class="text-danger"> *</span></label>
- </div>
- </div>
- <div class="row">
- <div class="col-sm-3">
- <div class="custom-control custom-radio">
- <input type="radio" id="rdb_Notification" name="ReminderType" value="Notification" class="custom-control-input" checked="checked">
- <label class="custom-control-label" for="rdb_Notification">Notification</label>
- <input type="hidden" id="hfId_Notification" value=""> </div>
- </div>
- <div class="col-sm-3">
- <div class="custom-control custom-radio">
- <input type="radio" id="rdb_SMS" name="ReminderType" value="SMS" class="custom-control-input">
- <label class="custom-control-label" for="rdb_SMS">SMS</label>
- <input type="hidden" id="hfId_SMS" value=""> </div>
- </div>
- <div class="col-sm-3">
- <div class="custom-control custom-radio">
- <input type="radio" id="rdb_Email" name="ReminderType" value="Email" class="custom-control-input">
- <label class="custom-control-label" for="rdb_Email">Email</label>
- <input type="hidden" id="hfId_Email" value=""> </div>
- </div>
- <div class="col-sm-3 hidden">
- <div class="custom-control custom-radio">
- <input type="radio" id="rdb_WhatsApp" name="ReminderType" value="WhatsApp" class="custom-control-input">
- <label class="custom-control-label" for="rdb_WhatsApp">WhatsApp</label>
- <input type="hidden" id="hfId_WhatsApp" value=""> </div>
- </div>
- </div>
- </div>
- </div>
- <div class="bg-white card" id="SendToContactsDiv">
- <div class="card-header">Send To Contacts</div>
- <div class="card-body">
- <div class="row">
- <div class="col-sm-6 mt-10" id="Lbl_ContactsReport"><u><b style="font-weight: bold;" class="" id="Txt_ContactsReport">Select Contacts Report</b></u></div>
- <div class="col-sm-12 hidden" id="ContactsReportDiv">
- <div class="bg-white card" style="border:groove">
- <div class="card-header hidden" id="Header_ReportName"> <span id="Spn_ReportName"></span>
- <div id="ChangeReport" class="pull-right"> <u><b style="font-weight:normal;" id="txt_ChangeReport">Change Report</b></u> </div>
- </div>
- <div class="card-body">
- <div class="row" id="Row_Report">
- <div class="col-sm-6">
- <div id="div_Report" class="floating-label-form-group-with-value floating-validate" style="border-bottom:0;">
- <input type="hidden" id="hdnselect2_Report" class="value-control" value="0">
- <select id="select2_Report" class="type-control select2_Report form-control text-control" style="width:100%;"></select>
- </div>
- </div>
- </div>
- <div class="row pull-right" id="Row_Buttons"> <a href="javascript:;" id="btnCancel" class="btn btn-danger btn-sm mr-10"> Cancel</a> <a href="javascript:;" id="btnApply" class="btn btn-green btn-sm"> Apply</a> </div>
- <div class="row Row_DynamicFilers"> </div>
- <div class="row ContactColumns mt-10"> </div>
- <div class="row hidden pull-right" id="Row_IsDefault">
- <div class="custom-control custom-checkbox chkIsDefault checkbox-primary">
- <input type="checkbox" class="custom-control-input" id="chkDefault">
- <label class="custom-control-label" for="chkDefault">Set As Default</label>  </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="bg-white card" id="RemindersContentDiv">
- <div class="card-body">
- <div class="row">
- <div class="col-sm-12">
- <div id="div_Subject" class="floating-label-form-group">
- <label for="lbl_MessageSubject" id="lbl_MessageSubject">Subject<span class="text-danger"> *</span></label>
- <div class="input-group">
- <input type="text" id="txtNotifications_MessageSubject" class="col-sm-9 form-control value-control required floating-label-control" data-placeholder="Enter Subject" placeholder="Subject *" data-label="Subject *">
- <select id="ddl_SubjectTokens" class="col-sm-3 form-control value-control">
- <option value="0">Select Token</option>
- </select>
- </div>
- </div>
- </div>
- </div>
- <div class="row">
- <div id="div_MessageBody" class="TextEditor col-sm-12">
- <label for="lbl_MessageBody" id="lbl_MessageBody">Description<span class="text-danger"> *</span></label>
- <inpu type="hidden" id="txthdn_MessageBody" class="value-control" value=""> <span class="text-danger" id="spnIsRequired_MessageBody"></span>
- <div class="type-control summernote_MessageBody" style="display: block;" id="summernote_MessageBody" data-propdoctypename="MessageBody" data-required="" placeholder="Message Body" data-placeholder="Message Body" data-label="Message Body"></div>
- <label for="Validation" id="lblValidation"></label>
- </inpu>
- </div>
- </div>
- </div>
- </div>
- <div class="bg-white card d-none" id="smsinstantreminder">
- <div class="card-header">Send From Details</div>
- <div class="card-body">
- <div class="row SendFrom">
- <div class="col-sm-6">
- <div class="input-group">
- <label for="lbl_ProviderName" id="lbl_ProviderName">Provider Name <span class="text-danger" id="span_ProviderName">*</span> </label>
- <select id="Autocomplete_ProviderName" class="form-control text-control required" style="width:100%;" placeholder="ProviderName" data-placeholder="ProviderName" data-label="" data-istagselect="true"></select>
- <input type="hidden" id="hf_ProviderName" class="form-control value-control" data-isdynamic="true" /> </div>
- </div>
- <div class="col-sm-6">
- <div class="input-group">
- <label for="lbl_SendSmsFrom" id="lbl_SendFrom">Sender Name <span class="text-danger" id="span_smssendfrom">*</span> </label>
- <select id="Autocomplete_SenderName" class="form-control text-control required" style="width:100%;" placeholder="Sender Name" data-placeholder="Sender Name" data-label="" data-istagselect="true"></select>
- <input type="hidden" id="hf_SenderName" class="form-control value-control" data-isdynamic="true" /> </div>
- </div>
- </div>
- </div>
- </div>
- <div class="bg-white card d-none" id="AttachmentsDiv">
- <div class="card-header">Attachments</div>
- <div class="card-body" id="instantreminderattachments">
- </div></div>
- <div class="bg-white card" id="mailinstantreminder">
- <div class="card-header">Send From Details</div>
- <div class="card-body">
- <div class="row SendFrom">
- <div class="col-sm-6">
- <div class="input-group">
- <label for="lbl_MailServer" id="lbl_MailServer">Mail Server<span class="text-danger" id="span_MailServer">*</span></label>
- <select id="Autocomplete_MailServer" class="form-control text-control required" style="width:100%;" placeholder="MailServer" data-placeholder="MailServer" data-label="" data-istagselect="true"></select>
- <input type="hidden" id="hf_MailServer" class="form-control value-control" data-isdynamic="true" /> </div>
- </div>
- <div class="col-sm-6">
- <div class="input-group">
- <label for="lbl_MailAccount" id="lbl_MailAccount">Mail Account<span class="text-danger" id="span_MailAccount">*</span></label>
- <select id="Autocomplete_MailAccount" class="form-control text-control required" style="width:100%;" placeholder="MailAccount" data-placeholder="MailAccount" data-label="" data-istagselect="true"></select>
- <input type="hidden" id="hf_MailAccount" class="form-control value-control" data-isdynamic="true" /> </div>
- </div>
- </div>
- </div>
- </div>
- <div class="bg-white card" id="ScheduleSendMessage">
- <div class="card-header">Schedule Message</div>
- <div class="card-body">
- <div class="col-sm-6 mt-10" id="ScheduleMessageDiv"><u><b style="font-weight: bold;" class="" id="Txt_ScheduleMessage">Schedule This Message</b></u></div>
- <div class="col-sm-6 hidden" id="ScheduleExecutionDateDiv">
- <div class="floating-label-form-group" id="div_ExecutionDate">
- <label for="lbl" id="lbl_ExecutionDate">Execution Date<span class="text-danger" id="spnIsRequired_ExecutionDate"> *</span></label>
- <div class="input-group">
- <input type="text" id="date_ExecutionDate" class="form-control type-control datepicker-input hasDatepicker value-control floating-label-control" placeholder="Execution Date *" data-placeholder="dd/mm/yyyy hh:mm" data-label="Execution Date *"> <span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span>
- <input type="hidden" id="hf_ExecutionDate" /> </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="bg-white modal-footer" id="CreateNotificationFooter"> <a href="javascript:;" id="btnCloseNotification" class="btn btn-light btn-sm mr-auto "> Close</a> <a href="javascript:;" id="btnSaveNotification" class="btn btn-primary btn-sm"> Save</a> </div>
- </form>`;
- 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 $('<span>{{' + user + '}}</span>')[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 = $("<p>" + contents + "</p>").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 += '<div class="col-sm-3"><div class="custom-control custom-checkbox divEnablePieces checkbox-primary"><input type="checkbox" class="type-control custom-control-input" id="chk_' + response.result[i].ReportColumnName + '" name="Contactcolumns" onclick="' + onclick + '"><label class="custom-control-label" for="chk_' + response.result[i].ReportColumnName + '">' + response.result[i].ReportColumnName + '</label><span></span> </div></div>';
- $(".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 += '<div class="col-sm-6 dynamicfilter"><div id="div_' + response[i].TextColumn + '" class="floating-label-form-group-with-value floating-validate" style="border-bottom:0;"><label for= "lbl" id = "lbl_' + response[i].TextColumn + '" >' + response[i].TextColumn + '</label ><label class="hidden propname">' + response[i].TextColumn + '</label><label class="hidden propvalue">' + response[i].ValueColumn + '</label>' +
- '<input type="hidden" id="hdnselect2_' + response[i].TextColumn + '" class="value-control" value="0">' +
- '<select id="select2_' + response[i].TextColumn + '" class="type-control select2_' + response[i].TextColumn + ' form-control text-control" multiple="multiple" style="width:100%;"></select>' +
- '</div></div>';
- $(".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 = {}));
|