Get internet IP setting + session cache fix

This commit is contained in:
Jokob-sk
2023-01-14 10:03:56 +11:00
parent 121b5cdf32
commit 3c13f82d61
6 changed files with 51 additions and 43 deletions

View File

@@ -766,7 +766,7 @@ function main () {
initializeCalendar();
// Read Cookies
devicesList = getCookie('devicesList');
devicesList = getCache('devicesList');
if (devicesList != '') {
devicesList = JSON.parse (devicesList);
} else {
@@ -923,22 +923,22 @@ function writeDropdownHtml(dropdownId, dropdownHtmlContent)
HTMLelement.innerHTML += dropdownHtmlContent;
}
// -----------------------------------------------------------------------------
function getCache(key)
{
// check cache
if(sessionStorage.getItem(key))
{
return sessionStorage.getItem(key);
} else
{
return "";
}
}
// -----------------------------------------------------------------------------
function setCache(key, data)
{
sessionStorage.setItem(key, data);
}
// function getCache(key)
// {
// // check cache
// if(sessionStorage.getItem(key))
// {
// return sessionStorage.getItem(key);
// } else
// {
// return "";
// }
// }
// // -----------------------------------------------------------------------------
// function setCache(key, data)
// {
// sessionStorage.setItem(key, data);
// }
// -----------------------------------------------------------------------------
function initializeComboSkipRepeated () {

View File

@@ -341,11 +341,11 @@ function initializeDatatable () {
$('#tableDevices').on( 'order.dt', function () {
setParameter (parTableOrder, JSON.stringify (table.order()) );
setCookie ('devicesList', getDevicesFromTable(table) );
setCache ('devicesList', getDevicesFromTable(table) );
} );
$('#tableDevices').on( 'search.dt', function () {
setCookie ('devicesList', getDevicesFromTable(table) );
setCache ('devicesList', getDevicesFromTable(table) );
} );
};

View File

@@ -16,21 +16,30 @@ var emptyArr = ['undefined', "", undefined, null];
// get: (searchParams, prop) => searchParams.get(prop.toString()),
// });
// -----------------------------------------------------------------------------
// Simple session cache withe expiration managed via cookies
// -----------------------------------------------------------------------------
function getCache(key)
{
// check cache
if(sessionStorage.getItem(key))
{
return sessionStorage.getItem(key);
} else
{
return "";
// check if not expired
if(getCookie(key + '_session_expiry') != "")
{
return sessionStorage.getItem(key);
}
}
return "";
}
function setCache(key, data)
// -----------------------------------------------------------------------------
function setCache(key, data, expirationMinutes='')
{
sessionStorage.setItem(key, data);
setCookie (key + '_session_expiry', 'OK', expirationMinutes='')
}
@@ -40,7 +49,7 @@ function setCookie (cookie, value, expirationMinutes='') {
var expires = '';
if (typeof expirationMinutes === 'number') {
expires = ';expires=' + new Date(Date.now() + expirationMinutes *60*1000).toUTCString();
}
}
// Save Cookie
document.cookie = cookie + "=" + value + expires;
@@ -87,7 +96,8 @@ function deleteAllCookies() {
}
// -----------------------------------------------------------------------------
// Modal dialog handling
// -----------------------------------------------------------------------------
function showModalOk (title, message, callbackFunction = null) {
// set captions
@@ -170,13 +180,6 @@ function modalWarningOK () {
}, 100);
}
// -----------------------------------------------------------------------------
// remove unnecessary lines from the result
function sanitize(data)
{
return data.replace(/(\r\n|\n|\r)/gm,"").replace(/[^\x00-\x7F]/g, "")
}
// -----------------------------------------------------------------------------
function showMessage (textMessage="") {
if (textMessage.toLowerCase().includes("error") ) {
@@ -194,6 +197,15 @@ function showMessage (textMessage="") {
}
// -----------------------------------------------------------------------------
// General utilities
// -----------------------------------------------------------------------------
// remove unnecessary lines from the result
function sanitize(data)
{
return data.replace(/(\r\n|\n|\r)/gm,"").replace(/[^\x00-\x7F]/g, "")
}
// -----------------------------------------------------------------------------
function setParameter (parameter, value) {
// Retry

View File

@@ -485,6 +485,8 @@ the arp-scan will take hours to complete instead of seconds.
'DAYS_TO_KEEP_EVENTS_description' => 'This is a maintenance setting. This specifies the number of days worth of event entries that will be kept. All older events will be deleted periodically.',
'REPORT_DASHBOARD_URL_name' => 'Pi.Alert URL',
'REPORT_DASHBOARD_URL_description' => 'This URL is used as the base for generating links in the emails. Enter full URL starting with <code>http://</code> including the port number (no trailig slash <code>/</code>).',
'DIG_GET_IP_ARG_name' => 'Internet IP discovery',
'DIG_GET_IP_ARG_description' => 'Change the <a href="https://linux.die.net/man/1/dig" target="_blank">dig utility</a> arguments if you have issues resolving your Internet IP. Arguments are added at the end of the following command: <code>dig +short </code>.',
//Email
'REPORT_MAIL_name' => 'Enable email',

View File

@@ -286,7 +286,7 @@ CommitDB();
<script>
// number of settings has to be equal to
var settingsNumber = 59;
var settingsNumber = 60;
// Wrong number of settings processing
if(<?php echo count($settings)?> != settingsNumber)