/** * @copyright 2021 Double Bastion LLC * * @author Double Bastion LLC * * @license GNU AGPL version 3 or any later version * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE * License as published by the Free Software Foundation; either * version 3 of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU Affero General Public * License along with this program. If not, see . * */ $(document).ready(function() { var userid = ""; var strlength; function randomStr(strlength) { var fintext = ""; var keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; for (var i = 0; i < strlength; i++) { fintext += keyspace.charAt(Math.floor(Math.random() * keyspace.length)); } return fintext; } $("#generate_tel_rcpt").on("click", function(event) { var teltokenrec = randomStr(70); var telnyxwhurlrec = 'https://'+window.location.host+'/apps/sms_relentless/api/recsmstel?telrecparam='+teltokenrec; $("#telapi_url_rec").val(telnyxwhurlrec); }); $("#copyToClipboardtel").on("click", function(event) { var $tempEl = $(""); $("body").append($tempEl); $tempEl.val($("#telapi_url_rec").val()).select(); document.execCommand("Copy"); $tempEl.remove(); alert("The link has been copied to your clipboard!"); }); $("#generate_tel_delrcpt").on("click", function(event) { var teltoken = randomStr(70); var telnyxwhurl = 'https://'+window.location.host+'/apps/sms_relentless/api/recdeliverytel?teldrparam='+teltoken; $("#telapi_url").val(telnyxwhurl); }); $("#generate_nex_rcpt").on("click", function(event) { var plivotokenrec = randomStr(70); var plivowhurlrec = 'https://'+window.location.host+'/apps/sms_relentless/api/recsmsnex?plivorecparam='+plivotokenrec; $("#nexapi_url_rec").val(plivowhurlrec); }); $("#copyToClipboardnex").on("click", function(event) { var $tempElpl = $(""); $("body").append($tempElpl); $tempElpl.val($("#nexapi_url_rec").val()).select(); document.execCommand("Copy"); $tempElpl.remove(); alert("The link has been copied to your clipboard!"); }); $("#generate_nex_delrcpt").on("click", function(event) { var plivotoken = randomStr(70); var plivodrwhurl = 'https://'+window.location.host+'/apps/sms_relentless/api/recdeliverynex?plivodrparam='+plivotoken; $("#nexapi_url").val(plivodrwhurl); }); $("#save_sms_settings").on("click", function(event) { event.preventDefault(); OC.msg.startAction('#smsr_save_msg', t('sms_relentless', 'Saved')); var baseUrl = OC.generateUrl('/apps/sms_relentless/user/updatesettings'); var messagesperpageinit = $("#messagesperpage").val(); var messagesperpagesec = messagesperpageinit.replace(/[^0-9]/g, ''); if (messagesperpagesec != '') { var messagesperpageproc = messagesperpagesec; } else { alert('Please enter a valid natural number in the "Number of messages per page" field. Otherwise, the default of 100 will be used.'); var messagesperpageproc = 100; } var getnotify = 0; if ($("#get_notify").is(':checked')) { getnotify = 1; } var telnyxemailinit = $("#telnyx_email").val(); var emailaddressinit = $("#notification_email").val(); function validate_email($email) { var email_reg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; return email_reg.test($email); } if (validate_email(telnyxemailinit)) { var telnyxemail = telnyxemailinit; } else { var telnyxemail = ''; } if (validate_email(emailaddressinit)) { var notifyemail = emailaddressinit; } else { var notifyemail = ''; } var telsenderinit = $("#tel_sender_name").val(); var telsenderproc = telsenderinit.replace(/[^A-Za-z 0-9]/g, ''); var nexsenderinit = $("#nex_sender_name").val(); var nexsenderproc = nexsenderinit.replace(/[^A-Za-z 0-9]/g, ''); var includesmsinemail = 0; if ($("#includesmsinemail").is(':checked')) { includesmsinemail = 1; } var datatosave = { userId: userid, telapiKey: $("#telapi_key").val(), telPubKey: $("#tel_pub_key").val(), telapiUrlRec: $("#telapi_url_rec").val(), telapiUrl: $("#telapi_url").val(), messagingProfileId: $("#messaging_profile_id").val(), nexapiKey: $("#nexapi_key").val(), nexapiSecret: $("#nexapi_secret").val(), nexapiUrlRec: $("#nexapi_url_rec").val(), nexapiUrl: $("#nexapi_url").val(), telSenderName: telsenderproc, nexSenderName: nexsenderproc, messagesperpage: messagesperpageproc, getNotify: getnotify, notificationEmail: notifyemail, getsmsinemail: includesmsinemail }; $.ajax({ method: 'PUT', url: baseUrl + '/' + userid, contentType: 'application/json', data: JSON.stringify(datatosave), error: function(resp) { alert('Error ! Please check your settings !'); } }); }); var baseUrlget = OC.generateUrl('/apps/sms_relentless/user/getsettings'); $.ajax({ method: 'GET', url: baseUrlget + '/' + userid, contentType: 'application/json', success: function(settingsfromdb) { $("#telapi_key").val(settingsfromdb.telapi_key); $("#tel_pub_key").val(settingsfromdb.tel_pub_key); $("#telapi_url_rec").val(settingsfromdb.telapi_url_rec); $("#telapi_url").val(settingsfromdb.telapi_url); $("#messaging_profile_id").val(settingsfromdb.messaging_profile_id); $("#nexapi_key").val(settingsfromdb.nexapi_key); $("#nexapi_secret").val(settingsfromdb.nexapi_secret); $("#nexapi_url_rec").val(settingsfromdb.nexapi_url_rec); $("#nexapi_url").val(settingsfromdb.nexapi_url); $("#tel_sender_name").val(settingsfromdb.tel_sender_name); $("#nex_sender_name").val(settingsfromdb.nex_sender_name); $("#messagesperpage").val(settingsfromdb.messagesperpage); if (settingsfromdb.get_notify == 1) { $("#get_notify").attr('checked', true); } else { $("#get_notify").attr('checked', false); } $("#notification_email").val(settingsfromdb.notification_email); if (settingsfromdb.getsmsinemail == 1) { $("#includesmsinemail").attr('checked', true); } else { $("#includesmsinemail").attr('checked', false); } } }); });