`;
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 = {}));