Merge pull request #4958 from GogoVega/palette-cleanup

Cleanup global Palette Manager variables
This commit is contained in:
Nick O'Leary 2024-11-18 16:13:37 +00:00 committed by GitHub
commit acf5427810
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -15,26 +15,35 @@
**/
RED.palette.editor = (function() {
var disabled = false;
let catalogues = []
const loadedCatalogs = []
var editorTabs;
let filterInput;
let searchInput;
let nodeList;
let packageList;
let fullList = []
// Loaded modules
let loadedList = [];
let filteredList = [];
let loadedIndex = {};
var typesInUse = {};
var nodeEntries = {};
var eventTimers = {};
var activeFilter = "";
// Module list
let fullList = [];
let filteredList = [];
var semverre = /^(\d+)(\.(\d+))?(\.(\d+))?(-([0-9A-Za-z-]+))?(\.([0-9A-Za-z-.]+))?$/;
var NUMBERS_ONLY = /^\d+$/;
// Modules installed
let nodeEntries = {};
// EditableList
let nodeList;
let packageList;
// Nodes tab - filter
let activeFilter = "";
// Nodes tab - search input
let filterInput;
// Install tab - search input
let searchInput;
const typesInUse = {};
const semverre = /^(\d+)(\.(\d+))?(\.(\d+))?(-([0-9A-Za-z-]+))?(\.([0-9A-Za-z-.]+))?$/;
const NUMBERS_ONLY = /^\d+$/;
function SemVerPart(part) {
this.number = 0;
@ -196,6 +205,7 @@ RED.palette.editor = (function() {
}
}
const eventTimers = {};
function refreshNodeModule(module) {
if (!eventTimers.hasOwnProperty(module)) {
eventTimers[module] = setTimeout(function() {
@ -272,7 +282,6 @@ RED.palette.editor = (function() {
}
}
function _refreshNodeModule(module) {
if (!nodeEntries.hasOwnProperty(module)) {
nodeEntries[module] = {info:RED.nodes.registry.getModule(module)};
@ -422,16 +431,10 @@ RED.palette.editor = (function() {
}
}
var catalogueCount;
var catalogueLoadStatus = [];
var catalogueLoadStart;
var activeSort = sortModulesRelevance;
let activeSort = sortModulesRelevance;
function refreshCatalogues (done) {
catalogueLoadStatus = [];
catalogueCount = catalogues.length;
const catalogueCount = catalogues.length;
loadedList = []
loadedIndex = {}
loadedCatalogs.length = 0
@ -441,7 +444,7 @@ RED.palette.editor = (function() {
$.getJSON(url, {_: new Date().getTime()},function(v) {
loadedCatalogs.push({ index: index, url: url, name: v.name, updated_at: v.updated_at, modules_count: (v.modules || []).length })
handleCatalogResponse({ url: url, name: v.name},index,v);
}).fail(function(jqxhr, textStatus, error) {
}).fail(function(_jqxhr, _textStatus, error) {
console.warn("Error loading catalog",url,":",error);
}).always(function() {
handled++;
@ -494,7 +497,7 @@ RED.palette.editor = (function() {
$(".red-ui-palette-module-shade-status").text(RED._('palette.editor.loading'));
$("#red-ui-palette-module-install-shade").show();
catalogueLoadStart = Date.now()
const catalogueLoadStart = Date.now()
refreshCatalogues(function () {
refreshNodeModuleList();
updateCatalogFilter(loadedCatalogs)
@ -609,36 +612,42 @@ RED.palette.editor = (function() {
return -1 * (A.info.timestamp-B.info.timestamp);
}
var installAllowList = ['*'];
var installDenyList = [];
var updateAllowed = true;
var updateAllowList = ['*'];
var updateDenyList = [];
let installAllowList = ['*'];
let installDenyList = [];
let updateAllowed = true;
let updateAllowList = ['*'];
let updateDenyList = [];
let editorTabs;
let settingsPane;
function init() {
catalogues = RED.settings.theme('palette.catalogues')||['https://catalogue.nodered.org/catalogue.json']
if (RED.settings.get('externalModules.palette.allowInstall', true) === false) {
return;
}
var settingsAllowList = RED.settings.get("externalModules.palette.allowList")
var settingsDenyList = RED.settings.get("externalModules.palette.denyList")
const settingsAllowList = RED.settings.get("externalModules.palette.allowList")
const settingsDenyList = RED.settings.get("externalModules.palette.denyList")
const settingsUpdateAllowList = RED.settings.get("externalModules.palette.allowUpdateList")
const settingsUpdateDenyList = RED.settings.get("externalModules.palette.denyUpdateList")
if (settingsAllowList || settingsDenyList) {
installAllowList = settingsAllowList;
installDenyList = settingsDenyList
installDenyList = settingsDenyList;
}
installAllowList = RED.utils.parseModuleList(installAllowList);
installDenyList = RED.utils.parseModuleList(installDenyList);
var settingsUpdateAllowList = RED.settings.get("externalModules.palette.allowUpdateList")
var settingsUpdateDenyList = RED.settings.get("externalModules.palette.denyUpdateList")
if (settingsUpdateAllowList || settingsUpdateDenyList) {
updateAllowList = settingsUpdateAllowList;
updateDenyList = settingsUpdateDenyList;
}
installAllowList = RED.utils.parseModuleList(installAllowList);
installDenyList = RED.utils.parseModuleList(installDenyList);
updateAllowed = RED.settings.get("externalModules.palette.allowUpdate", true);
updateAllowList = RED.utils.parseModuleList(updateAllowList);
updateDenyList = RED.utils.parseModuleList(updateDenyList);
updateAllowed = RED.settings.get("externalModules.palette.allowUpdate",true);
catalogues = RED.settings.theme('palette.catalogues') || ['https://catalogue.nodered.org/catalogue.json']
createSettingsPane();
@ -659,7 +668,7 @@ RED.palette.editor = (function() {
// Add the update status to the status bar
addUpdateInfoToStatusBar();
// Load catalogues
refreshCatalogues()
RED.actions.add("core:manage-palette",function() {
@ -768,8 +777,6 @@ RED.palette.editor = (function() {
});
}
var settingsPane;
function getSettingsPane() {
initInstallTab();
editorTabs.activateTab('nodes');