first commit
This commit is contained in:
28
media/system/js/keepalive.js
Normal file
28
media/system/js/keepalive.js
Normal file
@ -0,0 +1,28 @@
|
||||
/**
|
||||
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
/**
|
||||
* Keepalive javascript behavior
|
||||
*
|
||||
* Used for keeping the session alive
|
||||
*
|
||||
* @package Joomla.JavaScript
|
||||
* @since 3.7.0
|
||||
*/
|
||||
if (!window.Joomla) {
|
||||
throw new Error('Joomla API was not properly initialised');
|
||||
}
|
||||
const keepAliveOptions = Joomla.getOptions('system.keepalive');
|
||||
const keepAliveInterval = keepAliveOptions && keepAliveOptions.interval ? parseInt(keepAliveOptions.interval, 10) : 45 * 1000;
|
||||
let keepAliveUri = keepAliveOptions && keepAliveOptions.uri ? keepAliveOptions.uri.replace(/&/g, '&') : '';
|
||||
|
||||
// Fallback in case no keepalive uri was found.
|
||||
if (keepAliveUri === '') {
|
||||
const systemPaths = Joomla.getOptions('system.paths');
|
||||
keepAliveUri = `${systemPaths ? `${systemPaths.root}/index.php` : window.location.pathname}?option=com_ajax&format=json`;
|
||||
}
|
||||
setInterval(() => fetch(keepAliveUri, {
|
||||
method: 'POST'
|
||||
}), keepAliveInterval);
|
||||
Reference in New Issue
Block a user