From cba2251ed80abcddb4a7900d1ecd5bf23c26f073 Mon Sep 17 00:00:00 2001 From: jrobinso <933148+jrobinso@users.noreply.github.com> Date: Tue, 11 Jun 2024 14:48:40 -0700 Subject: [PATCH] Add ability to create titled sections in Sessions menu list. Add examples for sample info. --- js/app.js | 67 ++++++++++++++++---- resources/sessions/1kg-variants-session.json | 25 ++++++++ resources/sessions/gbm-copynumber.json | 25 ++++++++ resources/sessions/sessionRegistry.json | 16 +++++ 4 files changed, 120 insertions(+), 13 deletions(-) create mode 100644 resources/sessions/1kg-variants-session.json create mode 100644 resources/sessions/gbm-copynumber.json diff --git a/js/app.js b/js/app.js index a178972..7fc5236 100644 --- a/js/app.js +++ b/js/app.js @@ -27,8 +27,17 @@ import * as GooglePicker from '../node_modules/google-utils/src/googleFilePicker import makeDraggable from "./widgets/utils/draggable.js" import AlertSingleton from "./widgets/alertSingleton.js" import {createSessionWidgets} from "./widgets/sessionWidgets.js" -import {updateTrackMenusWithTrackConfigurations, createTrackWidgetsWithTrackRegistry, getPathsWithTrackRegistryFile} from "./widgets/trackWidgets.js" -import {dropboxDropdownItem, dropboxButtonImageBase64, googleDriveButtonImageBase64, googleDriveDropdownItem} from "./widgets/markupFactory.js" +import { + updateTrackMenusWithTrackConfigurations, + createTrackWidgetsWithTrackRegistry, + getPathsWithTrackRegistryFile +} from "./widgets/trackWidgets.js" +import { + dropboxDropdownItem, + dropboxButtonImageBase64, + googleDriveButtonImageBase64, + googleDriveDropdownItem +} from "./widgets/markupFactory.js" import GenomeFileLoad from "./widgets/genomeFileLoad.js" import FileLoadManager from "./widgets/fileLoadManager.js" import FileLoadWidget from "./widgets/fileLoadWidget.js" @@ -556,32 +565,64 @@ async function createSessionMenu(sessionListDivider, sessionRegistryFile, sessio const sessions = sessionJSON['sessions'] + let firstSection = true for (let {name, url} of sessions.reverse()) { const referenceNode = document.getElementById(sessionListDivider) - const button_id = `${id_prefix}_${guid()}` - const html = `` - const fragment = document.createRange().createContextualFragment(html) + if (url) { + const button_id = `${id_prefix}_${guid()}` + const html = `` + const fragment = document.createRange().createContextualFragment(html) - referenceNode.after(fragment.firstChild) + referenceNode.after(fragment.firstChild) - const button = document.getElementById(button_id) - button.addEventListener('click', () => { + const button = document.getElementById(button_id) + button.addEventListener('click', () => { - const config = {} - const key = true === isFile(url) ? 'file' : 'url' - config[key] = url + const config = {} + const key = true === isFile(url) ? 'file' : 'url' + config[key] = url - sessionLoader(config) + sessionLoader(config) - }) + }) + } else { + const html = `` + const el = fromHTML(html) + referenceNode.after(el) + if (!firstSection) { + referenceNode.after(fromHTML('