From 6a408d57de165e2b9a9784b19554a25c0b0141f4 Mon Sep 17 00:00:00 2001 From: Dave Lawrence Date: Thu, 11 Jun 2026 07:05:39 +0930 Subject: [PATCH] JS linting round 3: declare missing locals/globals, repair latent bugs #1588 --- eslint.config.mjs | 55 +++++++++++++++++++ .../default_static/js/analysis_nodes.js | 2 +- .../default_static/js/citations.js | 2 +- .../default_static/js/datatable_definition.js | 4 +- .../static_files/default_static/js/flags.js | 14 ++--- .../default_static/js/panel_app.js | 8 +-- .../default_static/js/samplenode.js | 4 +- .../static_files/default_static/js/vc_diff.js | 4 +- .../static_files/default_static/js/vc_form.js | 11 +--- .../default_static/js/vc_links.js | 2 +- .../default_static/js/venn_intersect.js | 12 ++-- 11 files changed, 84 insertions(+), 34 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 5bd37b547..6fe8986cd 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -45,17 +45,72 @@ export default [ loadNodeData: "readonly", // analysis.js getGridAndEditorWindow: "readonly", // analysis.js lockNodeField: "readonly", // analysis.js + replaceEditorWindow: "readonly", // analysis.js + loadGridAndEditorForNode: "readonly", // analysis.js + analysisVariable: "readonly", // analysis.js + addAnalysisVariableButton: "readonly", // analysis.js + _getAnalysisWindow: "readonly", // analysis.js + createJSEvent: "readonly", // analysis.js + addVariantTag: "readonly", // analysis.js + removeVariantTag: "readonly", // analysis.js + hideLoadingOverlay: "readonly", // analysis.js getAnalysisWindow: "readonly", // grid.js + createIgvUrl: "readonly", // grid.js (typeof-guarded use in vc_links.js) deleteNodesFromDOM: "readonly", // analysis_nodes.js unselectActive: "readonly", // analysis_nodes.js + addNodesToDOM: "readonly", // analysis_nodes.js + attatchAnalysisNodeConnections: "readonly", // analysis_nodes.js + checkAndMarkDirtyNodes: "readonly", // analysis_nodes.js + getNode: "readonly", // analysis_nodes.js + loggedOutHandler: "readonly", // analysis_nodes.js createSampleNode: "readonly", // samplenode.js + createTrioNode: "readonly", // pedigree_node.js + createQuadNode: "readonly", // pedigree_node.js + venn2: "readonly", // venn_intersect.js + venn_select: "readonly", // venn_intersect.js + getValue: "readonly", // global.js + removeItemFromArray: "readonly", // global.js + checkLoggedIn: "readonly", // global.js + convertTimestamp: "readonly", // global.js + JS_DATE_FORMAT_SECONDS: "readonly", // global.js + JS_DATE_FORMAT_SCIENTIFIC: "readonly", // global.js + loadAjaxBlock: "readonly", // global.js + formatJson: "readonly", // global.js + createTimestampDom: "readonly", // global.js + setupModalAnimationForWebTesting: "readonly", // global.js + EncodeQueryData: "readonly", // global.js + deleteItemClickHandler: "readonly", // global.js + createModal: "readonly", // global.js + highlightTextAsDom: "readonly", // global.js + limitLengthSpan: "readonly", // global.js + DataTableDefinition: "readonly", // datatable_definition.js + VCTable: "readonly", // vc_form.js + Flags: "readonly", // flags.js + VCLinks: "readonly", // vc_links.js + // cross-execution state in fragment-loaded files: these scripts are + // re-executed on AJAX load, so the state must stay a plain assignment + // (a top-level let/const would throw on re-execution) + seen_igv_error: "writable", // grid.js + RAISED_GET_ANALYSIS_WINDOW_JS_ERROR: "writable", // grid.js + VENN_TOGGLE_WIDGET_CLASS: "writable", // venn_intersect.js, read by analysis_nodes.js + venn_id: "writable", // venn_intersect.js + freq: "writable", // cached_generated_files.js // globals injected by Django templates (inline