From 6aa76f3071df892342905bbe5c68bf2871f3021b Mon Sep 17 00:00:00 2001 From: Robert Olson Date: Thu, 5 Mar 2026 14:21:15 -0600 Subject: [PATCH 1/2] Allow local proxying to both http and https services --- app.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app.js b/app.js index 6025c901f8..bb7c15c2b3 100644 --- a/app.js +++ b/app.js @@ -94,9 +94,11 @@ if (proxyConfig) { for (const prox of proxyConfig) { console.log(prox); + // Use https by default, but allow it to be disabled per-proxy + const useHttps = prox.https !== undefined ? prox.https : prox.site.startsWith('https://'); app.use(prox.local, proxy(prox.site, { proxyReqPathResolver: req => req.originalUrl.replace(prox.local, ""), - https: true + https: useHttps })); } } From d03c26f24dc4f43ba8880e30f16b5b7580c43833 Mon Sep 17 00:00:00 2001 From: Robert Olson Date: Thu, 5 Mar 2026 14:21:57 -0600 Subject: [PATCH 2/2] Summary of Changes: Add Genome and Feature Group Creation to Protein Structure Grid Issue Users viewing the Structures tab on taxonomy pages could not create genome groups or feature groups from their selections because structure_data was not in the validContainerTypes for the AddGroup action. Files Modified 1. public/js/p3/widget/GridContainer.js (bvbrc_website) Change 1a: Added structure_data to the validContainerTypes array for the AddGroup action (line ~1519): validContainerTypes: ['genome_data', 'sequence_data', 'feature_data', 'protein_data', 'transcriptomics_experiment_data', 'transcriptomics_gene_data', 'spgene_data', 'structure_data'] Change 1b: Added handling for structure_data in the type determination logic (lines ~1535-1537): } else if (containerWidget.containerType == 'structure_data') { type = 'feature_group'; } 2. public/js/p3/widget/SelectionToGroup.js (bvbrc_website) Added structure_data to the conversionTypes object to enable the type selector dropdown: conversionTypes: { feature_data: [{ label: 'Feature', value: 'feature_group' }, { label: 'Genome', value: 'genome_group' }], structure_data: [{ label: 'Feature', value: 'feature_group' }, { label: 'Genome', value: 'genome_group' }] }, How It Works 1. The GROUP icon now appears in the action bar when selecting protein structures 2. When clicked, the SelectionToGroup widget detects inputType is structure_data and shows a dropdown with "Feature" and "Genome" options 3. Users can create either a Feature Group (using feature_id) or a Genome Group (using genome_id) from selected structures --- public/js/p3/widget/GridContainer.js | 4 +++- public/js/p3/widget/SelectionToGroup.js | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/public/js/p3/widget/GridContainer.js b/public/js/p3/widget/GridContainer.js index db4970aa28..abb0aced65 100644 --- a/public/js/p3/widget/GridContainer.js +++ b/public/js/p3/widget/GridContainer.js @@ -1516,7 +1516,7 @@ define([ requireAuth: true, max: 10000, tooltip: 'Add selection to a new or existing group', - validContainerTypes: ['genome_data', 'sequence_data', 'feature_data', 'protein_data', 'transcriptomics_experiment_data', 'transcriptomics_gene_data', 'spgene_data'] + validContainerTypes: ['genome_data', 'sequence_data', 'feature_data', 'protein_data', 'transcriptomics_experiment_data', 'transcriptomics_gene_data', 'spgene_data', 'structure_data'] }, function (selection, containerWidget) { var dlg = new Dialog({ title: 'Add selected items to group' }); @@ -1532,6 +1532,8 @@ define([ type = 'feature_group'; } else if (containerWidget.containerType == 'transcriptomics_experiment_data') { type = 'experiment_group'; + } else if (containerWidget.containerType == 'structure_data') { + type = 'feature_group'; } if (!type) { diff --git a/public/js/p3/widget/SelectionToGroup.js b/public/js/p3/widget/SelectionToGroup.js index 22fff0a1e6..2138074d51 100644 --- a/public/js/p3/widget/SelectionToGroup.js +++ b/public/js/p3/widget/SelectionToGroup.js @@ -20,7 +20,8 @@ define([ idType: null, inputType: null, conversionTypes: { - feature_data: [{ label: 'Feature', value: 'feature_group' }, { label: 'Genome', value: 'genome_group' }] + feature_data: [{ label: 'Feature', value: 'feature_group' }, { label: 'Genome', value: 'genome_group' }], + structure_data: [{ label: 'Feature', value: 'feature_group' }, { label: 'Genome', value: 'genome_group' }] }, selectType: false, _setTypeAttr: function (t) {