Add periodic update check

This commit is contained in:
GogoVega 2024-10-29 17:31:23 +01:00
parent 83acc4836b
commit 9169ca54da
No known key found for this signature in database
GPG Key ID: E1E048B63AC5AC2B
2 changed files with 39 additions and 1 deletions

View File

@ -583,6 +583,8 @@ RED.palette.editor = (function() {
var updateAllowList = ['*'];
var updateDenyList = [];
var settingsPane;
function init() {
catalogues = RED.settings.theme('palette.catalogues')||['https://catalogue.nodered.org/catalogue.json']
if (RED.settings.get('externalModules.palette.allowInstall', true) === false) {
@ -607,6 +609,10 @@ RED.palette.editor = (function() {
updateDenyList = RED.utils.parseModuleList(updateDenyList);
updateAllowed = RED.settings.get("externalModules.palette.allowUpdate",true);
if (RED.settings.get("editorTheme.palette.checkForUpdates", true) === true) {
// Enable checking for updates triggered every 30 minutes
initCheckForUpdatesInterval();
}
createSettingsPane();
@ -727,7 +733,34 @@ RED.palette.editor = (function() {
});
}
var settingsPane;
/**
* Initializes the check for updates triggered every 30 minutes.
* This interval is based on the cumulative active window time.
*/
function initCheckForUpdatesInterval() {
let activeTime = 0, lastActiveTime = Date.now();
const INTERVAL = 30 * 60; // 30min
document.addEventListener("visibilitychange", function () {
if (document.visibilityState === "visible") {
lastActiveTime = Date.now();
} else {
activeTime += (Date.now() - lastActiveTime) / 1000;
}
});
setInterval(function () {
if (document.visibilityState === "visible") {
activeTime += (Date.now() - lastActiveTime) / 1000;
lastActiveTime = Date.now();
if (activeTime >= INTERVAL) {
activeTime = 0;
getSettingsPane();
}
}
}, 1000 * 60); // refresh every minute
}
function getSettingsPane() {
initInstallTab();

View File

@ -416,6 +416,11 @@ module.exports = {
* If not set, the following default order is used:
*/
//categories: ['subflows', 'common', 'function', 'network', 'sequence', 'parser', 'storage'],
/**
* To enable checking for updates every 30min when the editor is open and active.
*/
checkForUpdates: false,
},
projects: {