a92694d2 |
/**
* @copyright 2021 Double Bastion LLC <www.doublebastion.com>
*
* @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 <http://www.gnu.org/licenses/>.
*
*/
$(document).ready(function() {
var userid = "<?php p($userId); ?>";
// Delete from the database all the received messages older than the specified period
$("#delOldrecSMS").on("click", function() {
var oldrecInterval = $("#oldrecSmsInterval").val();
var procoldrecint = oldrecInterval.replace(/[^0-9]/g, "");
var finaloldrecint = parseInt(procoldrecint);
if (finaloldrecint == "" || !$.isNumeric(finaloldrecint)) {
alert("Please enter the number of days in the box from above !");
} else {
var getRecUrl = OC.generateUrl("/apps/sms_relentless/user/getreceivedtablefordel");
$('#smstables').addClass('icon-loading');
$.ajax({
url: getRecUrl + '/' + userid,
method: "GET",
dataType:'text',
success: function(recinfoFromDB) {
var parsedinfo = $.parseJSON(recinfoFromDB);
if (parsedinfo == "not permitted") {
alert("Only admins can remove old messages using this option!");
$('#smstables').removeClass('icon-loading');
return;
} else {
var recmessagedbIDs = [];
var oldrecRows = [];
oldrecRows.push("id,user_id,message_id,date,from,to,message\r\n");
var targetdate = new Date(new Date().setDate(new Date().getDate() - finaloldrecint));
for (var j = 0; j < parsedinfo.length; j++) {
var firstdate = parsedinfo[j].date;
var secdate = firstdate.split(" ");
var thirddate = secdate[0].split("-");
var fourthdate = secdate[1].split(":");
var pastdate = new Date(thirddate[0],(thirddate[1]-1),thirddate[2],fourthdate[0],fourthdate[1],fourthdate[2]);
if (pastdate < targetdate) {
recmessagedbIDs.push(parsedinfo[j].id);
oldrecRows.push(parsedinfo[j].id + "," + parsedinfo[j].user_id + "," + parsedinfo[j].message_id + "," + parsedinfo[j].date + "," + parsedinfo[j].from + "," + parsedinfo[j].to + "," + parsedinfo[j].message + "\r\n");
}
}
if (oldrecRows.length == 1) {
alert("No messages will be deleted since there are no messages older than " + finaloldrecint + " days.");
// Save in a '.csv' file all the received messages that will be deleted from the database, then delete them
} else {
if (confirm("Are you sure you want to delete all the received messages older than " + finaloldrecint + " days ?")) {
var deloldrecRowsUrl = OC.generateUrl("/apps/sms_relentless/user/saveoldrecrows");
$.ajax({
url: deloldrecRowsUrl + '/' + userid,
method: "POST",
dataType:'text',
data: { oldrecRows: oldrecRows },
success: function(savecheck) {
// Delete received messages from the database
var delrecDbSmsUrl = OC.generateUrl("/apps/sms_relentless/user/removerecrows");
if (savecheck == 1) {
$.ajax({
url: delrecDbSmsUrl + '/' + userid,
method: "POST",
dataType:'text',
data: {recmessagedbIDs: recmessagedbIDs},
success: function() {
alert((oldrecRows.length - 1)+" rows have been successfully saved in the 'SMS_relentless/removed_received_messages' directory and then deleted from the database !");
$('#smstables').removeClass('icon-loading');
},
error: function() {
alert("There was an error while deleting the messages older than the specified period!");
$('#smstables').removeClass('icon-loading');
}
});
} else { alert("There was an error while saving the messages older than the specified period!"); }
$('#smstables').removeClass('icon-loading');
},
error: function() {
alert("There was an error while saving and/or deleting the messages older than the specified period!");
$('#smstables').removeClass('icon-loading');
}
});
}
}
}
},
error: function() {
alert("An error occurred while getting data from the database!");
$('#smstables').removeClass('icon-loading');
}
});
}
});
// Delete from the database all the sent messages older than the specified period
$("#delOldsentSMS").on("click", function() {
var oldsentInterval = $("#oldsentSmsInterval").val();
var procoldsentint = oldsentInterval.replace(/[^0-9]/g, "");
var finaloldsentint = parseInt(procoldsentint);
if (finaloldsentint == "" || !$.isNumeric(finaloldsentint)) {
alert("Please enter the number of days in the box above !");
} else {
var getSentUrl = OC.generateUrl("/apps/sms_relentless/user/getsenttablefordel");
$('#smstables').addClass('icon-loading');
$.ajax({
url: getSentUrl + '/' + userid,
method: "GET",
dataType:'text',
success: function(sentinfoFromDB) {
var parsedsentinfo = $.parseJSON(sentinfoFromDB);
if (parsedsentinfo == "not permitted") {
alert("Only admins can remove old messages using this option!");
$('#smstables').removeClass('icon-loading');
return;
} else {
var sentmessagedbIDs = [];
var oldsentRows = [];
oldsentRows.push("id,user_id,message_id,date,from,to,network,price,status,deliveryreceipt,message\r\n");
var senttargetdate = new Date(new Date().setDate(new Date().getDate() - finaloldsentint));
for (var j = 0; j < parsedsentinfo.length; j++) {
var firstdate = parsedsentinfo[j].date;
var secdate = firstdate.split(" ");
var thirddate = secdate[0].split("-");
var fourthdate = secdate[1].split(":");
var sentpastdate = new Date(thirddate[0],(thirddate[1]-1),thirddate[2],fourthdate[0],fourthdate[1],fourthdate[2]);
if (sentpastdate < senttargetdate) {
sentmessagedbIDs.push(parsedsentinfo[j].id);
oldsentRows.push(parsedsentinfo[j].id + "," + parsedsentinfo[j].user_id + "," + parsedsentinfo[j].message_id + "," + parsedsentinfo[j].date + "," + parsedsentinfo[j].from + "," + parsedsentinfo[j].to + "," + parsedsentinfo[j].network + "," + parsedsentinfo[j].price + "," + parsedsentinfo[j].status + "," + parsedsentinfo[j].deliveryreceipt + "," + parsedsentinfo[j].message + "\r\n");
}
}
if (oldsentRows.length == 1) {
alert("No messages will be deleted since there are no messages older than " + finaloldsentint + " days.");
// Save in a '.csv' file all the sent messages that will be deleted from the database, then delete them
} else {
if (confirm("Are you sure you want to delete all the sent messages older than " + finaloldsentint + " days ?")) {
var deloldsentRowsUrl = OC.generateUrl("/apps/sms_relentless/user/saveoldsentrows");
$.ajax({
url: deloldsentRowsUrl + '/' + userid,
method: "POST",
dataType:'text',
data: { oldsentRows: oldsentRows },
success: function(savesentcheck) {
// Delete sent messages from the database
var delsentDbSmsUrl = OC.generateUrl("/apps/sms_relentless/user/removesentrows");
if (savesentcheck == 1) {
$.ajax({
url: delsentDbSmsUrl + '/' + userid,
method: "POST",
dataType:'text',
data: { sentmessagedbIDs: sentmessagedbIDs },
success: function() {
alert((oldsentRows.length - 1) + " rows have been successfully saved in the 'SMS_relentless/removed_sent_messages' directory and then deleted from the database !");
$('#smstables').removeClass('icon-loading');
},
error: function() {
alert("There was an error while deleting the messages older than the specified period!");
$('#smstables').removeClass('icon-loading');
}
});
} else { alert("There was an error while saving the messages older than the specified period!"); }
$('#smstables').removeClass('icon-loading');
},
error: function() {
alert("There was an error while saving and/or deleting the messages older than the specified period!");
$('#smstables').removeClass('icon-loading');
}
});
}
}
}
},
error: function() {
alert("An error occurred while getting data from the database!");
$('#smstables').removeClass('icon-loading');
}
});
}
});
});
|