/** * @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() { // Get admin settings var userid = ""; var baseUrlget = OC.generateUrl('/apps/sms_relentless/user/getadminsettings'); $.ajax({ method: 'GET', url: baseUrlget + '/' + userid, contentType: 'application/json', success: function(settingsadm) { $("#telapi_key").val(settingsadm.telapi_key); $("#tel_pub_key").val(settingsadm.tel_pub_key); $("#telapi_url_rec").val(settingsadm.telapi_url_rec); $("#telapi_url").val(settingsadm.telapi_url); $("#messaging_profile_id").val(settingsadm.messaging_profile_id); $("#nexapi_key").val(settingsadm.nexapi_key); $("#nexapi_secret").val(settingsadm.nexapi_secret); $("#nexapi_url_rec").val(settingsadm.nexapi_url_rec); $("#nexapi_url").val(settingsadm.nexapi_url); $("#twilapi_key").val(settingsadm.twilapi_key); $("#twilapi_secret").val(settingsadm.twilapi_secret); $("#twilapi_url_rec").val(settingsadm.twilapi_url_rec); $("#twilapi_url").val(settingsadm.twilapi_url); $("#flowapi_key").val(settingsadm.flowapi_key); $("#flowapi_secret").val(settingsadm.flowapi_secret); $("#flowapi_url_rec").val(settingsadm.flowapi_url_rec); $("#flowapi_url").val(settingsadm.flowapi_url); $("#tel_sender_name").val(settingsadm.tel_sender_name); $("#nex_sender_name").val(settingsadm.nex_sender_name); $("#twil_sender_name").val(settingsadm.twil_sender_name); /* $("#messagesperpage").val(settingsadm.messagesperpage); if (settingsadm.get_notify == 1) { $("#get_notify").attr('checked', true); } else { $("#get_notify").attr('checked', false); } $("#notification_email").val(settingsadm.notification_email); if (settingsadm.getsmsinemail == 1) { $("#includesmsinemail").attr('checked', true); } else { $("#includesmsinemail").attr('checked', false); } if (settingsadm.show_display_names == 1) { $("#showdisplaynames").attr('checked', true); } else { $("#showdisplaynames").attr('checked', false); } */ if (settingsadm.show_all_messages == 1) { $("#showallmessages").attr("checked", true); } else { $("#showallmessages").attr("checked", false); } var crntadmDispName = settingsadm.admdisplayname; var allRestrictions = settingsadm.restrictions; var allGroups = settingsadm.allgroups; var allUsers = settingsadm.allusers; var allGroupswadm = settingsadm.allgroupswadm; var allUserswadm = settingsadm.alluserswadm; var tnxallowedgrp = settingsadm.allowedkeysuse.tnx_groups_allowed; var tnxallowedusr = settingsadm.allowedkeysuse.tnx_users_allowed; var plvallowedgrp = settingsadm.allowedkeysuse.plv_groups_allowed; var plvallowedusr = settingsadm.allowedkeysuse.plv_users_allowed; var twlallowedgrp = settingsadm.allowedkeysuse.twl_groups_allowed; var twlallowedusr = settingsadm.allowedkeysuse.twl_users_allowed; var flrallowedgrp = settingsadm.allowedkeysuse.flr_groups_allowed; var flrallowedusr = settingsadm.allowedkeysuse.flr_users_allowed; // List all the groups and users allowed to access the API keys, for each provider if (tnxallowedgrp) { var tnxallowedgrparr = tnxallowedgrp.split("|"); for (var g = 0; g < tnxallowedgrparr.length; g++) { $("#alwdakeyGrps-tnx").append("
"+ tnxallowedgrparr[g] +"
"); } } if (tnxallowedusr) { var tnxallowedusrarr = tnxallowedusr.split("|"); for (var g = 0; g < tnxallowedusrarr.length; g++) { $("#alwdakeyUsrs-tnx").append("
"+ tnxallowedusrarr[g] +"
"); } } if (plvallowedgrp) { var plvallowedgrparr = plvallowedgrp.split("|"); for (var g = 0; g < plvallowedgrparr.length; g++) { $("#alwdakeyGrps-plv").append("
"+ plvallowedgrparr[g] +"
"); } } if (plvallowedusr) { var plvallowedusrarr = plvallowedusr.split("|"); for (var g = 0; g < plvallowedusrarr.length; g++) { $("#alwdakeyUsrs-plv").append("
"+ plvallowedusrarr[g] +"
"); } } if (twlallowedgrp) { var twlallowedgrparr = twlallowedgrp.split("|"); for (var g = 0; g < twlallowedgrparr.length; g++) { $("#alwdakeyGrps-twl").append("
"+ twlallowedgrparr[g] +"
"); } } if (twlallowedusr) { var twlallowedusrarr = twlallowedusr.split("|"); for (var g = 0; g < twlallowedusrarr.length; g++) { $("#alwdakeyUsrs-twl").append("
"+ twlallowedusrarr[g] +"
"); } } if (flrallowedgrp) { var flrallowedgrparr = flrallowedgrp.split("|"); for (var g = 0; g < flrallowedgrparr.length; g++) { $("#alwdakeyGrps-flr").append("
"+ flrallowedgrparr[g] +"
"); } } if (flrallowedusr) { var flrallowedusrarr = flrallowedusr.split("|"); for (var g = 0; g < flrallowedusrarr.length; g++) { $("#alwdakeyUsrs-flr").append("
"+ flrallowedusrarr[g] +"
"); } } // Create a list with all the available groups, excluding the admin group var grpsListItemswadm = ""; $.each(allGroupswadm, function(key, value) { grpsListItemswadm += "
"+ value +"
"; }); // Create a list with all the available users, excluding the admins var usersListItemswadm = ""; $.each(allUserswadm, function(key, usrval) { usersListItemswadm += "
"+ usrval +"
"; }); function showListsalwdk() { // Append the list of available groups to the table of groups and users allowed to use the API keys $('[id^="showakeyGrps-"]').click(function() { var crtid = $(this).attr("id").split("-")[1]; $("#grpsadapik-"+ crtid).remove(); $("#showakeyGrps-"+ crtid).append("
"+ grpsListItemswadm +"
"); $("#adminOverlay").remove(); $("#app-content").append("
"); $("#adminOverlay").css({ "width" : parseInt($("#sms_relentless_adm").width() + 400) +"px", "height" : $("#sms_relentless_adm").height() +"px" }); $("#adminOverlay").click(function() { $("#adminOverlay").remove(); $("#grpsadapik-"+ crtid).remove(); $("#usrsadapik-"+ crtid).remove(); }); // Select a group $(".groupsList").click(function() { var slctdGrp = $(this).text(); $("#grpsadapik-"+ crtid).remove(); var addedTxtgrp = $("#alwdakeyGrps-"+ crtid).text(); if (addedTxtgrp.indexOf(slctdGrp) == -1) { $("#alwdakeyGrps-"+ crtid).append("
"+ slctdGrp +"
"); } else { showAlert("That group has already been added!"); } // Remove a group from list $('[id^="rmvGrp-"]').click(function() { $(this).closest(".selectedGrps").remove(); }); }); }); // Append the list of available users to the table of groups and users allowed to use the API keys $('[id^="showakeyUsrs-"]').click(function() { var crtidusr = $(this).attr("id").split("-")[1]; $("#usrsadapik-"+ crtidusr).remove(); $("#showakeyUsrs-"+ crtidusr).append("
"+ usersListItemswadm +"
"); $("#adminOverlay").remove(); $("#app-content").append("
"); $("#adminOverlay").css({ "width" : parseInt($("#sms_relentless_adm").width() + 400) +"px", "height" : $("#sms_relentless_adm").height() +"px" }); $("#adminOverlay").click(function() { $("#adminOverlay").remove(); $("#grpsadapik-"+ crtidusr).remove(); $("#usrsadapik-"+ crtidusr).remove(); }); // Select a user $(".usersList").click(function() { var slctdUsr = $(this).text(); var addedTxtusr = $("#alwdakeyUsrs-"+ crtidusr).text(); if (addedTxtusr.indexOf(slctdUsr) == -1) { $("#alwdakeyUsrs-"+ crtidusr).append("
"+ slctdUsr +"
"); } else { showAlert("That user has already been added!"); } // Remove a user from list $('[id^="rmvUsr-"]').click(function() { $(this).closest(".selectedUsrs").remove(); }); }); }); // Remove a group from the list $('[id^="rmvGrp-"]').click(function() { $(this).closest(".selectedGrps").remove(); }); // Remove a user from the list $('[id^="rmvUsr-"]').click(function() { $(this).closest(".selectedUsrs").remove(); }); } showListsalwdk(); // Save the data function saveAlwdRow() { $('[id^="alwdrstsave-"]').unbind("click"); $('[id^="alwdrstsave-"]').click(function(event) { event.preventDefault(); var crntprov = $(this).attr("id").replace("alwdrstsave-", ""); if ($(this).attr("value") == "Save") { var selGroups = []; $("#alwdakeyGrps-"+ crntprov +" .selectedGrps").each(function() { selGroups.push($(this).text()); }); if (selGroups.length == 0) { selGroups.push(""); } var selUsers = []; $("#alwdakeyUsrs-"+ crntprov +" .selectedUsrs").each(function() { selUsers.push($(this).text()); }); if (selUsers.length == 0) { selUsers.push(""); } // Check if the access key fields have been left empty if (crntprov == 'tnx' && ($("#telapi_key").val().trim() == '' || $("#tel_pub_key").val().trim() == '' || $("#messaging_profile_id").val().trim() == '')) { showAlert("Please first fill in the fields: 'Telnyx API Secret Key', 'Telnyx Account Public Key' and 'Messaging Profile ID'"); return; } else if (crntprov == 'plv' && ($("#nexapi_key").val().trim() == '' || $("#nexapi_secret").val().trim() == '')) { showAlert("Please first fill in the fields: 'Plivo Auth ID' and 'Plivo Auth Token'."); return; } else if (crntprov == 'twl' && ($("#twilapi_key").val().trim() == '' || $("#twilapi_secret").val().trim() == '')) { showAlert("Please first fill in the fields: 'Twilio Account SID' and 'Twilio Auth Token'."); return; } else if (crntprov == 'flr' && ($("#flowapi_key").val().trim() == '' || $("#flowapi_secret").val().trim() == '')) { showAlert("Please first fill in the fields: 'Flowroute Access Key' and 'Flowroute Secret Key'."); return; } var saveAlwdUrl = OC.generateUrl('/apps/sms_relentless/user/updatekeysallowedusers'); var alwddatatosend = { userId: userid, groups: selGroups, users: selUsers, provider: crntprov }; $.ajax({ method: 'PUT', url: saveAlwdUrl + '/' + userid, contentType: 'application/json', data: JSON.stringify(alwddatatosend), success: function(messagesent) { if (messagesent == 'success') { showAlert('The allowed groups and users have been successfully saved to the database!'); } else if (messagesent != 'success' && messagesent != 'failure') { showAlert(messagesent); } else if (messagesent == 'failure') { showAlert('Error while trying to save the allowed groups and users!'); } }, error: function() { showAlert('Error while attempting to save the allowed groups and users! You can check the Nextcloud log to find more details about this issue.'); } }); $(this).attr("value", "Edit"); } else { $("#alwdrstsave-"+ crntprov).attr("value", "Save"); } }); } saveAlwdRow(); // Phone number restrictions // Create a list with all the available groups var grpsListItems = ""; $.each(allGroups, function(key, value) { grpsListItems += "
"+ value +"
"; }); // Create a list with all the available users var usersListItems = ""; $.each(allUsers, function(key, usrval) { usersListItems += "
"+ usrval +"
"; }); if (allRestrictions.length > 0) { var restrNmb = allRestrictions.length; } else { var restrNmb = 0; } // List the access restrictions for groups and users if (restrNmb == 0) { $("#phoneNmbrRestr").append("
"); $("#phoneNmbrRestr").append("
"); } else { for (k = 0; k < restrNmb; k++) { if (allRestrictions[k].groups) { var groupsfdbpre = allRestrictions[k].groups.split("|"); var groupsfdb = ""; for (var g = 0; g < groupsfdbpre.length; g++) { groupsfdb += "
"+ groupsfdbpre[g] +"
"; } } else { var groupsfdb = ""; } if (allRestrictions[k].users) { var usersfdbpre = allRestrictions[k].users.split("|"); var usersfdb = ""; for (var u = 0; u < usersfdbpre.length; u++) { usersfdb += "
"+ usersfdbpre[u] +"
"; } } else { var usersfdb = ""; } $("#phoneNmbrRestr").append("
"+ groupsfdb +"
"+ usersfdb +"
"); } $("#phoneNmbrRestr").append("
"); } // Get the available phone numbers from all providers associated with the access keys entered on the Settings page $("#phoneNumberTh").addClass('icon-loading'); var getnumbersUrl = OC.generateUrl("/apps/sms_relentless/user/getsmsnumbers"); var numbersListItems = ''; $.ajax({ url: getnumbersUrl + '/' + userid, type: "POST", cache: false, processData: false, contentType: false, success: function(currentnmbrs) { $("#phoneNumberTh").removeClass('icon-loading'); // Create a list with all the available phone numbers numbersListItems = ""; $.each(currentnmbrs, function(key, indsmsnmb) { numbersListItems += ""; }); if (restrNmb == 0) { var indRow = 0; } else { var indRow = parseInt(restrNmb + 1); } // Append the list of available phone numbers $("#rstphn-"+ indRow).empty(); $("#rstphn-"+ indRow).append(numbersListItems); }, error: function() { $("#phoneNumberTh").removeClass('icon-loading'); showAlert("Error while attempting to retrieve the available phone numbers!"); } }); function showLists() { // Append the list of available groups to the restrictions table $('[id^="showGrps-"]').click(function() { var crtnmbr = $(this).attr("id").replace("showGrps-", ""); $("#grpL-"+ crtnmbr).remove(); $("#showGrps-"+ crtnmbr).append("
"+ grpsListItems +"
"); $("#adminOverlay").remove(); $("#app-content").append("
"); $("#adminOverlay").css({ "width" : parseInt($("#sms_relentless_adm").width() + 400) +"px", "height" : $("#sms_relentless_adm").height() +"px" }); $("#adminOverlay").click(function() { $("#adminOverlay").remove(); $("#grpL-"+ crtnmbr).remove(); $("#usrL-"+ crtnmbr).remove(); }); // Select a group $(".groupsList").click(function() { var slctdGrp = $(this).text(); $("#grpL-"+ crtnmbr).remove(); var addedTxtgrp = $("#rstgrp-"+ crtnmbr).text(); if (addedTxtgrp.indexOf(slctdGrp) == -1) { $("#rstgrp-"+ crtnmbr).append("
"+ slctdGrp +"
"); } else { showAlert("That group has already been added!"); } // Remove a group from list $('[id^="rmvGrp-"]').click(function() { $(this).closest(".selectedGrps").remove(); }); }); }); // Append the list of available users to the restrictions table $('[id^="showUsr-"]').click(function() { var ctusrnmbr = $(this).attr("id").replace("showUsr-", ""); $("#usrL-"+ ctusrnmbr).remove(); $("#showUsr-"+ ctusrnmbr).append("
"+ usersListItems +"
"); $("#adminOverlay").remove(); $("#app-content").append("
"); $("#adminOverlay").css({ "width" : parseInt($("#sms_relentless_adm").width() + 400) +"px", "height" : $("#sms_relentless_adm").height() +"px" }); $("#adminOverlay").click(function() { $("#adminOverlay").remove(); $("#grpL-"+ ctusrnmbr).remove(); $("#usrL-"+ ctusrnmbr).remove(); }); // Select a user $(".usersList").click(function() { var slctdUsr = $(this).text(); var addedTxtusr = $("#rstusr-"+ ctusrnmbr).text(); if (addedTxtusr.indexOf(slctdUsr) == -1) { $("#rstusr-"+ ctusrnmbr).append("
"+ slctdUsr +"
"); } else { showAlert("That user has already been added!"); } // Remove a user from list $('[id^="rmvUsr-"]').click(function() { $(this).closest(".selectedUsrs").remove(); }); }); }); // Remove a group from the list $('[id^="rmvGrp-"]').click(function() { $(this).closest(".selectedGrps").remove(); }); // Remove a user from the list $('[id^="rmvUsr-"]').click(function() { $(this).closest(".selectedUsrs").remove(); }); } showLists(); // Save the data function saveRestrRow() { $('[id^="rstsave-"]').unbind("click"); $('[id^="rstsave-"]').click(function(event) { event.preventDefault(); var crntrwnmbr = $(this).attr("id").replace("rstsave-", ""); if ($(this).attr("value") == "Save") { var phoneNmbr = $("#rstphn-"+ crntrwnmbr).val(); var slctdGroups = []; $("#rstgrp-"+ crntrwnmbr +" .selectedGrps").each(function() { slctdGroups.push($(this).text()); }); var slctdUsers = []; $("#rstusr-"+ crntrwnmbr +" .selectedUsrs").each(function() { slctdUsers.push($(this).text()); }); if (phoneNmbr != '') { if (slctdGroups.length > 0 || slctdUsers.length > 0) { var saveRestrUrl = OC.generateUrl('/apps/sms_relentless/user/updatenumberrestrictions'); var datatosend = { userId: userid, savedByDsplname: crntadmDispName, phoneNumber: phoneNmbr, groups: slctdGroups, users: slctdUsers }; $.ajax({ method: 'PUT', url: saveRestrUrl + '/' + userid, contentType: 'application/json', data: JSON.stringify(datatosend), success: function(messagetosend) { if (messagetosend == 'success') { showAlert('The restrictions have been successfully saved to the database!'); } else { showAlert('Error while trying to save the restrictions!'); } }, error: function() { showAlert('Error while attempting to save the restrictions! You can check the Nextcloud log to find more details about this issue.'); } }); } else { showAlert("You must select at least a group or a user in order to restrict the use of a phone number."); return; } } else { showAlert("Please select a phone number!"); return; } $(this).attr("value", "Edit"); } else { $("#rstsave-"+ crntrwnmbr).attr("value", "Save"); } }); } saveRestrRow(); // Remove a row function removeRestrRow() { $('[id^="rmRow-"]').click(function() { var slctRowRmv = $(this).attr("id").replace("rmRow-", ""); var crntPhNmbr = $("#rstphn-"+ slctRowRmv).val(); if (confirm("Do you really want to remove this row from the database ?")) { var rmvRestrUrl = OC.generateUrl('/apps/sms_relentless/user/removenumberrestrictions'); $.ajax({ url: rmvRestrUrl + '/' + userid, method: "POST", dataType: "text", data: { phoneNumber: crntPhNmbr }, success: function(delresult) { if (delresult.indexOf("success") > -1) { showAlert("The restriction has been removed successfully!"); $("#rstphn-"+ slctRowRmv).closest("tr").remove(); } else { showAlert("Error while trying to remove restriction data!"); } }, error: function() { showAlert("Error while attempting to remove restriction data! You can check the Nextcloud log to find more details about this issue."); } }); } }); } removeRestrRow(); // Add a new row $("#addRestrRow").click(function() { if ($("#phoneNmbrRestr").find("tr:last-child").find(".restrPhoneNmbr").length > 0) { var lastrstAuth = $("#phoneNmbrRestr").find("tr:last-child").find(".restrPhoneNmbr").attr("id").replace("rstphn-", ""); var indRowAdd = parseInt(lastrstAuth + 1); } else { var indRowAdd = 0; } $("#phoneNmbrRestr").append("
"); showLists(); saveRestrRow(); removeRestrRow(); // Check if the same phone number has been already restricted $("#rstphn-"+ indRowAdd).change(function() { var selectedPhNmbr = $("#rstphn-"+ indRowAdd).val(); var allPHoneRestr = $("#phoneNmbrRestr").find("tr").find(".restrPhoneNmbr"); var phNmbrChck = 0; allPHoneRestr.each(function() { var slctdphnmbr = ($(this).val())? $(this).val() : $(this).text(); if (selectedPhNmbr == slctdphnmbr) { phNmbrChck++; } }); if (phNmbrChck == 2) { showAlert("This phone number is already in the list of restricted phone numbers. Please edit its own row, or choose a different phone number to restrict."); $(this).val(''); return; } }); }); }, error: function() { showAlert('Error while getting the admin settings! You can check the Nextcloud log to find more details about this issue.'); } }); // Save admin settings 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 = window.location.origin + OC.generateUrl('/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(); showAlert("The link has been copied to your clipboard!"); }); $("#generate_tel_delrcpt").on("click", function(event) { var teltoken = randomStr(70); var telnyxwhurl = window.location.origin + OC.generateUrl('/apps/sms_relentless/api/recdeliverytel?teldrparam=') + teltoken; $("#telapi_url").val(telnyxwhurl); }); $("#generate_nex_rcpt").on("click", function(event) { var plivotokenrec = randomStr(70); var plivowhurlrec = window.location.origin + OC.generateUrl('/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(); showAlert("The link has been copied to your clipboard!"); }); $("#generate_nex_delrcpt").on("click", function(event) { var plivotoken = randomStr(70); var plivodrwhurl = window.location.origin + OC.generateUrl('/apps/sms_relentless/api/recdeliverynex?plivodrparam=') + plivotoken; $("#nexapi_url").val(plivodrwhurl); }); $("#generate_twil_rcpt").on("click", function(event) { var twiltokenrec = randomStr(35); var twilwhurlrec = window.location.origin + OC.generateUrl('/apps/sms_relentless/api/recsmstwil?twilrecparam=') + twiltokenrec; $("#twilapi_url_rec").val(twilwhurlrec); }); $("#copyToClipboardtwil").on("click", function(event) { var $tempElpl = $(""); $("body").append($tempElpl); $tempElpl.val($("#twilapi_url_rec").val()).select(); document.execCommand("Copy"); $tempElpl.remove(); showAlert("The link has been copied to your clipboard!"); }); $("#generate_twil_delrcpt").on("click", function(event) { var twiltoken = randomStr(35); var twildrwhurl = window.location.origin + OC.generateUrl('/apps/sms_relentless/api/recdeliverytwil?twildrparam=') + twiltoken; $("#twilapi_url").val(twildrwhurl); }); $("#generate_flow_rcpt").on("click", function(event) { var flowtokenrec = randomStr(70); var flowwhurlrec = window.location.origin + OC.generateUrl('/apps/sms_relentless/api/recsmsflow?flowrecparam=') + flowtokenrec; $("#flowapi_url_rec").val(flowwhurlrec); }); $("#copyToClipboardflow").on("click", function(event) { var $tempElpl = $(""); $("body").append($tempElpl); $tempElpl.val($("#flowapi_url_rec").val()).select(); document.execCommand("Copy"); $tempElpl.remove(); showAlert("The link has been copied to your clipboard!"); }); $("#generate_flow_delrcpt").on("click", function(event) { var flowtoken = randomStr(70); var flowdrwhurl = window.location.origin + OC.generateUrl('/apps/sms_relentless/api/recdeliveryflow?flowdrparam=') + flowtoken; $("#flowapi_url").val(flowdrwhurl); }); $("#save_admin_settings").on("click", function(event) { event.preventDefault(); OC.msg.startAction('#smsr_save_msg', t('sms_relentless', 'Saved')); var baseUrlsv = OC.generateUrl('/apps/sms_relentless/user/updateadminsettings'); var showallmsgs = 0; if ($("#showallmessages").is(':checked')) { showallmsgs = 1; } 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 twilsenderinit = $("#twil_sender_name").val(); var twilsenderproc = twilsenderinit.replace(/[^A-Za-z 0-9]/g, ''); 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(), twilapiKey: $("#twilapi_key").val(), twilapiSecret: $("#twilapi_secret").val(), twilapiUrlRec: $("#twilapi_url_rec").val(), twilapiUrl: $("#twilapi_url").val(), flowapiKey: $("#flowapi_key").val(), flowapiSecret: $("#flowapi_secret").val(), flowapiUrlRec: $("#flowapi_url_rec").val(), flowapiUrl: $("#flowapi_url").val(), telSenderName: telsenderproc, nexSenderName: nexsenderproc, twilSenderName: twilsenderproc, showAllMessages: showallmsgs }; $.ajax({ method: 'PUT', url: baseUrlsv + '/' + userid, contentType: 'application/json', data: JSON.stringify(datatosave), success: function() { }, error: function() { showAlert('Error while attempting to save the settings! You can check the Nextcloud log to find more details about this issue.'); } }); }); function showAlert(alertText) { let alertwnd = "
"; alertwnd += ""; alertwnd += "
"+ alertText +"
"; alertwnd += ""; alertwnd += "
"; $("#content").append("
"); $("#content").append(alertwnd); let topDist = parseInt((window.innerHeight / 2).toFixed(2) - 152) +"px"; let leftDist = parseInt((window.innerWidth / 2).toFixed(2) - 150) +"px"; $("#alertMessage").css({ "top" : topDist, "left" : leftDist }); $("#closeAlertWnd").click(function() { $("#alertMsgOverlay").remove(); $("#alertMessage").remove(); }); $("#alertMsgOverlay").click(function() { $("#alertMsgOverlay").remove(); $("#alertMessage").remove(); }); $("#alertOk").click(function() { $("#alertMsgOverlay").remove(); $("#alertMessage").remove(); }); } });