Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
2352c01
Update vue components to use composition API
marySalvi Sep 24, 2025
5ffe519
Upgrade to vue2.7, vuetify2.7, vue-router3.6 and remove @vue/composit…
marySalvi Sep 24, 2025
67665ec
Remove @vue/composition-api imports
marySalvi Sep 24, 2025
6485c1e
Update config for typescript and webpack
marySalvi Sep 24, 2025
b07a887
Remove duplicate imports
marySalvi Sep 24, 2025
f6c7c9c
Remove references to deprecated 'root'
marySalvi Sep 24, 2025
1a4c26d
Update webpack config
marySalvi Sep 24, 2025
91623fb
Update vuetify theme references
marySalvi Sep 24, 2025
d2eda41
Update map logic to wait for the map to be ready before trying to render
marySalvi Sep 24, 2025
dee6c09
Add webpack to dev dependencies
marySalvi Sep 25, 2025
5b3cf7d
Remove alias for node_modules import
marySalvi Sep 25, 2025
ddc4e7e
Upgrade core-js, babel and typescript and add coresponding config for…
marySalvi Sep 25, 2025
2a72716
Use clean lockfile
marySalvi Sep 25, 2025
9e5eeba
Roll back d3 packages a major version to compatability
marySalvi Sep 25, 2025
684c5ca
Lint fixes after upgrading packages
marySalvi Sep 25, 2025
ca92b0a
Initial progress on vue/vuetify 3 upgrade
codytodonnell Oct 9, 2025
a67a4c9
Move in store, use, and components
codytodonnell Oct 10, 2025
ce79e1c
Add types, data, definitions, encoding, menus, and schema files
codytodonnell Oct 10, 2025
4184601
Remove backup web-vue27 directory
codytodonnell Oct 10, 2025
a877a84
Add autogenerated type files and js util file
codytodonnell Oct 10, 2025
cdc2873
Process yaml files with vite
codytodonnell Oct 13, 2025
124feb9
Remove js utils from ts utils
codytodonnell Oct 13, 2025
d32edad
Add colors file
codytodonnell Oct 13, 2025
88188fe
Fix for loop syntaxes and type import rule
codytodonnell Oct 13, 2025
30c9c9c
Add public assets
codytodonnell Oct 13, 2025
d38b984
Add src assets and comment out map clusters for now
codytodonnell Oct 13, 2025
b134fff
Add mixin files
codytodonnell Oct 13, 2025
cb9ba28
Fix for loop syntax and remove Vue.delete and Vue.set (removed from V…
codytodonnell Oct 13, 2025
b5a00d9
Add proxies, update component syntax, upgrade google charts
codytodonnell Oct 13, 2025
a9cfdd1
Update the data type bar chart to work with vue 3
codytodonnell Oct 15, 2025
3b6bd91
Update bar chart selection
codytodonnell Oct 15, 2025
cb17e64
Rework facet mixins to be more vue3 like
codytodonnell Oct 24, 2025
0f39e28
Fix v-on syntax
codytodonnell Oct 24, 2025
73251c9
Fix several vuetify 3 component upgrades
codytodonnell Oct 24, 2025
72ed700
Fix padding issue in overall layout
codytodonnell Oct 27, 2025
66d55fa
Fix brushing and filter behavior for time histogram
codytodonnell Oct 27, 2025
b9de03a
Update theme and outlined syntax
codytodonnell Oct 27, 2025
5df9a24
Remove unnecessary theme variables
codytodonnell Oct 27, 2025
173a9de
Temporarily disable the bulk download component
codytodonnell Oct 27, 2025
00b49fe
Fix isOpen error in condition chips
codytodonnell Oct 28, 2025
ec0a178
Update the useRouter hook to use the newer version
codytodonnell Oct 28, 2025
8cb8745
Reintroduce the app header
codytodonnell Oct 28, 2025
4aadaf3
Fix errors and z-index issue in AppHeader
codytodonnell Oct 29, 2025
c099424
Update the way css vars are used in AppHeader
codytodonnell Oct 29, 2025
84b7e72
Fix sidebar and app header styles
codytodonnell Oct 29, 2025
92493f1
Restructure app layout
codytodonnell Oct 29, 2025
624fcb1
Fix overall layout so that sidebar and appbar are fixed
codytodonnell Oct 30, 2025
a685bd5
Fix condition chips for vuetify 3 api
codytodonnell Oct 30, 2025
47f8773
Update search result styles and props
codytodonnell Oct 30, 2025
7eeaef0
Fix active query item title and button
codytodonnell Oct 30, 2025
e87a62c
Fix logo size
codytodonnell Oct 30, 2025
250af6d
Fix pagination
codytodonnell Oct 30, 2025
ce7faad
Fix PI Name filter
codytodonnell Oct 30, 2025
d6ed0d9
Fix float filters and close button
codytodonnell Oct 30, 2025
2ed7733
Fix condition chip editing menu
codytodonnell Oct 30, 2025
2640b4b
Update and refactor EcosystemSankey
codytodonnell Oct 31, 2025
19b7a0e
Fix spelling of hierarchy
codytodonnell Oct 31, 2025
36f5124
Update auth button for vuetify 3
codytodonnell Oct 31, 2025
53660b3
Fix initial map rendering
codytodonnell Oct 31, 2025
ebfac4f
Add custom marker cluster group layer
codytodonnell Oct 31, 2025
cd966ae
Fix and update date inputs
codytodonnell Oct 31, 2025
503bf94
Make gutters consistent sizes and fix other spacing
codytodonnell Oct 31, 2025
5dae164
Fix the facet search bar
codytodonnell Oct 31, 2025
c11a351
Fix headers and styles of data object tables
codytodonnell Oct 31, 2025
dcac868
Fix orcid hover menu behavior
codytodonnell Oct 31, 2025
e88a974
Update sample page
codytodonnell Oct 31, 2025
4a54ecb
Update study page for vue 3
codytodonnell Oct 31, 2025
1808541
Fix query string parsing and initialization
codytodonnell Nov 3, 2025
6077284
Implement new treeselect library for sidebar filters
codytodonnell Nov 3, 2025
0788093
Restore bulk download
codytodonnell Nov 3, 2025
d2fddb6
Refactor stepper component for vuetify 3
codytodonnell Nov 3, 2025
f221cef
Fix v-on syntax for submission list
codytodonnell Nov 3, 2025
00f16fa
Refactor submission portal banner to use vite features
codytodonnell Nov 3, 2025
3e68920
Begin updating the submission portal for vue/vuetify 3
codytodonnell Nov 4, 2025
b828cd7
Begin switching to use the gap utility instead of margins for study form
codytodonnell Nov 4, 2025
a59eb35
Merge branch 'main' into issue-1573-vuetify3-upgrade
codytodonnell Nov 4, 2025
5c777f3
Fix issues with merge from main
codytodonnell Nov 4, 2025
2d9c13a
Fix study form and list
codytodonnell Nov 4, 2025
cb08db7
Fix route syntax for image upload
codytodonnell Nov 4, 2025
d5cc2b6
Fix spacing and syntax in inner submission forms
codytodonnell Nov 4, 2025
55541ff
Update jump to column autocomplete component
codytodonnell Nov 4, 2025
2a5ec25
Fix harmonizer layout
codytodonnell Nov 4, 2025
20e7854
Fix styles for column examples and jump to column
codytodonnell Nov 4, 2025
55628c4
Update stepper styles
codytodonnell Nov 4, 2025
4098c06
Re-add start script for web docker build
codytodonnell Nov 6, 2025
39c064c
Update favicon and html title
codytodonnell Nov 6, 2025
50ef05f
Remove extra favicon file
codytodonnell Nov 6, 2025
81a29b7
Fix uses of getCurrentInstance to use new router hooks
codytodonnell Nov 6, 2025
788b640
Fix initial load of submission list items
codytodonnell Nov 6, 2025
b135ee7
Fix type errors in HarmonizerView and MultiOmicsDataForm
codytodonnell Nov 6, 2025
8cc12fd
Fix ts errors in user components
codytodonnell Nov 6, 2025
4922caa
Fix ts issues and remove typed routing plugin
codytodonnell Nov 6, 2025
0f8f568
Fix ts and vue errors in other submission portal components
codytodonnell Nov 6, 2025
a821cac
Complete ts errors for submission portal
codytodonnell Nov 7, 2025
f17b90a
Fix some data portal ts errors
codytodonnell Nov 7, 2025
8ff311d
Configure updated gtag plugin
codytodonnell Nov 7, 2025
00e7050
Fix ts errors in utils, store, float components, and date components
codytodonnell Nov 7, 2025
ba0d83c
Fix the rest of the ts errors in the data portal
codytodonnell Nov 7, 2025
5552870
Update eslint and fix all the lint errors
codytodonnell Nov 7, 2025
1d8b294
Remove unnecessary prop from sankey
codytodonnell Nov 8, 2025
e4bf047
Fix disabled omics button tooltip
codytodonnell Nov 10, 2025
6a837f6
Merge branch 'main' into issue-1573-vuetify3-upgrade
codytodonnell Nov 10, 2025
5848961
Reintroduce and upgrade sentry
codytodonnell Nov 10, 2025
e899e9a
Update docs for frontend
codytodonnell Nov 10, 2025
1e50f9f
Add .nvmrc file and docs for how to utilize it
codytodonnell Nov 14, 2025
fd02321
Fix spacing in bulk download
codytodonnell Nov 17, 2025
10aaf24
Fix sticky nav menus
codytodonnell Nov 17, 2025
3b933f9
Fix icon button on multiomics form
codytodonnell Nov 17, 2025
9194575
Fix other text field size in multiomics form
codytodonnell Nov 17, 2025
e2d3b36
Fix select menu item values
codytodonnell Nov 17, 2025
37e61dc
Fix submission portal login button
codytodonnell Nov 17, 2025
6e4ecd0
Fix text inputs on user page
codytodonnell Nov 17, 2025
41b3f53
Supress bootstrap sass warnings
codytodonnell Nov 17, 2025
dbaa1ad
Upgrade data-harmonizer to fix sass warning and fix DH import
codytodonnell Nov 17, 2025
97902f3
Remove default vuetify logos
codytodonnell Nov 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion docs/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -240,11 +240,20 @@ docker compose up --build -d

### Running with frontend development server

You will need Node version 22 or greater to install and run the web app locally. You can find installation instructions here: https://nodejs.org/en/download. If you're on a Mac, it is recommended to use nvm to install and manage your node versions.

If you have nvm installed, you can run the following command at the root of the `web` directory to use the Node version specified in our `.nvmrc` file:

```bash
nvm use
```

If you are modifying files in the `web` directory, additionally run the frontend development server to enable hot reloading in your browser:

```bash
cd web
yarn serve
yarn install
yarn dev
```

<details>
Expand Down
4 changes: 4 additions & 0 deletions web/.browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
> 1%
last 2 versions
not dead
not ie 11
6 changes: 6 additions & 0 deletions web/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue}]
charset = utf-8
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
50 changes: 0 additions & 50 deletions web/.eslintrc.js

This file was deleted.

1 change: 1 addition & 0 deletions web/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ node_modules
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Editor directories and files
.idea
Expand Down
1 change: 1 addition & 0 deletions web/.nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v24.9.0
5 changes: 2 additions & 3 deletions web/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# NMDC Data Portal

Follow setup instructions in `../README.md` first.
Follow setup instructions in the [Development Docs](/docs/development.md).

## Client architecture

Expand All @@ -16,5 +16,4 @@ Some components, like `src/views/Search/FilterList` use lazy-load of data that c

## Stateless requests

This application serves data from a stateless database, so queries can be cached, and many requests only need to be loaded once.

This application serves data from a stateless database, so queries can be cached, and many requests only need to be loaded once.
5 changes: 0 additions & 5 deletions web/babel.config.js

This file was deleted.

12 changes: 12 additions & 0 deletions web/env.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/// <reference types="vite/client" />
/// <reference types="unplugin-vue-router/client" />

declare module '*.yaml' {
const content: any;
export default content;
}

declare module '*.yml' {
const content: any;
export default content;
}
75 changes: 75 additions & 0 deletions web/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import js from '@eslint/js';
import vue from 'eslint-plugin-vue';
import typescript from '@typescript-eslint/eslint-plugin';
import typescriptParser from '@typescript-eslint/parser';
import vueParser from 'vue-eslint-parser';
import globals from 'globals';

export default [
// Ignore build output directories
{
ignores: ['**/dist/**', '**/node_modules/**', '**/build/**'],
},
js.configs.recommended,
...vue.configs['flat/recommended'],
{
files: ['**/*.{js,mjs,cjs,vue,ts}'],
languageOptions: {
parser: vueParser,
parserOptions: {
parser: typescriptParser,
ecmaVersion: 2020,
sourceType: 'module',
},
globals: {
...globals.browser,
...globals.node,
},
},
rules: {
'max-len': 'off',
'no-underscore-dangle': 0,
'spaced-comment': 'off',
'vuejs-accessibility/anchor-has-content': 'off',
'vuejs-accessibility/click-events-have-key-events': 'off',
'vue/no-dupe-keys': 'off',
'vue/no-v-html': 'off',
// See: https://github.com/vuejs/eslint-plugin-vue/issues/365
// The issue is supposed to be resolved, but eslint complains without the ignore
'vue/html-indent': ['warn', 2, { ignores: ['VElement[name=pre].children'] }],
'camelcase': 0,
// we should always disable console logs and debugging in production
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
},
],
},
},
{
files: ['**/*.ts', '**/*.vue'],
plugins: {
'@typescript-eslint': typescript,
},
rules: {
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
caughtErrorsIgnorePattern: '^_',
vars: 'all',
args: 'after-used',
ignoreRestSiblings: true,
},
],
'no-unused-vars': 'off',
'no-undef': 'off',
'no-shadow': 'off',
},
},
];
13 changes: 13 additions & 0 deletions web/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NMDC</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
13 changes: 0 additions & 13 deletions web/jsconfig.json

This file was deleted.

102 changes: 42 additions & 60 deletions web/package.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,31 @@
{
"name": "nmdc-server",
"version": "0.1.0",
"name": "web",
"private": true,
"type": "module",
"version": "0.0.0",
"scripts": {
"serve": "rimraf -rf ./node_modules/.cache/vue-loader && vue-cli-service serve --host 127.0.0.1 --port 8081 src/main.ts",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
"dev": "vite",
"build": "run-p type-check \"build-only {@}\" --",
"preview": "vite preview",
"build-only": "vite build",
"type-check": "vue-tsc --build --force",
"lint": "eslint . --fix"
},
"dependencies": {
"@microbiomedata/data-harmonizer": "^1.7.0",
"@riophae/vue-treeselect": "^0.4.0",
"@sentry/vue": "^6.16.1",
"@vue/composition-api": "^1.4.1",
"@fontsource/roboto": "5.2.7",
"@mdi/font": "7.4.47",
"@microbiomedata/data-harmonizer": "^1.7.1",
"@sentry/vue": "^10.24.0",
"@types/lodash": "^4.17.20",
"@vue-leaflet/vue-leaflet": "^0.10.1",
"@vueuse/core": "^13.9.0",
"@zanmato/vue3-treeselect": "^0.4.1",
"axios": "^0.28.0",
"axios-cache-adapter": "^2.7.3",
"bootstrap": "4.3.1",
"chrono-node": "^2.4.1",
"citation-js": "^0.5.4",
"core-js": "^3.19.3",
"core-js": "^3.45.1",
"d3": "^7.2.1",
"d3-array": "^3.1.1",
"d3-axis": "^3.0.0",
Expand All @@ -38,58 +46,32 @@
"popper.js": "1.16.1",
"protobufjs": "^6.11.3",
"serialize-javascript": "^6.0.0",
"vue": "^2.6.14",
"vue-async-computed": "^3.9.0",
"vue-google-charts": "^0.3.3",
"vue-gtag": "^1.16.1",
"vue-router": "^3.5.3",
"vue2-leaflet": "^2.7.1",
"vue2-leaflet-markercluster": "^3.1.0",
"vuetify": "^2.6.10",
"vue": "^3.5.21",
"vue-google-charts": "^1.1.0",
"vue-gtag": "^3.6.3",
"vue-router": "^4.5.1",
"vuetify": "^3.10.1",
"xlsx": "^0.17.5"
},
"devDependencies": {
"@types/axios": "^0.14.0",
"@types/d3": "^7.1.0",
"@types/d3-array": "^3.0.2",
"@types/d3-brush": "^3.0.1",
"@types/d3-scale": "^4.0.2",
"@types/d3-selection": "^3.0.2",
"@types/d3-time-format": "^4.0.0",
"@types/leaflet": "^1.7.6",
"@types/linkify-it": "^3.0.2",
"@types/lodash": "^4.14.178",
"@typescript-eslint/eslint-plugin": "^5.6.0",
"@typescript-eslint/parser": "^5.6.0",
"@vue/cli-plugin-babel": "^4.5.15",
"@vue/cli-plugin-eslint": "^4.5.15",
"@vue/cli-plugin-typescript": "^4.5.15",
"@vue/cli-service": "^4.5.15",
"@vue/eslint-config-airbnb": "^6.0.0",
"@vue/eslint-config-typescript": "^9.1.0",
"babel-eslint": "^10.0.3",
"copy-webpack-plugin": "^6.4.0",
"eslint": "^7.32.0",
"eslint-plugin-import": "^2.25.3",
"eslint-plugin-vue": "^8.2.0",
"eslint-plugin-vuejs-accessibility": "^1.1.0",
"raw-loader": "^4.0.2",
"sass": "~1.32.0",
"sass-loader": "^10.1.1",
"typescript": "^4.5.3",
"vue-cli-plugin-vuetify": "^2.4.5",
"vue-cli-plugin-yaml": "^1.0.2",
"vue-template-compiler": "^2.6.14",
"vuetify-loader": "^1.7.3"
"@modyfi/vite-plugin-yaml": "^1.1.1",
"@tsconfig/node22": "^22.0.0",
"@types/leaflet": "^1.9.21",
"@types/node": "^22.9.0",
"@vitejs/plugin-vue": "^6.0.1",
"@vue/tsconfig": "^0.8.1",
"eslint": "^9.35.0",
"eslint-config-vuetify": "^4.2.0",
"globals": "^16.5.0",
"npm-run-all2": "^8.0.4",
"sass-embedded": "^1.92.1",
"typescript": "~5.9.2",
"unplugin-fonts": "^1.4.0",
"unplugin-vue-components": "^29.0.0",
"unplugin-vue-router": "^0.15.0",
"vite": "^7.1.5",
"vite-plugin-vuetify": "^2.1.2",
"vue-tsc": "^3.0.7"
},
"browserslist": [
"> 1%",
"last 2 versions"
],
"resolutions": {
"node-forge": "^1.3.0",
"serialize-javascript": "^3.1",
"http-proxy": "1.18.1"
},
"packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447"
"packageManager": "yarn@1.22.22+sha256.c17d3797fb9a9115bf375e31bfd30058cac6bc9c3b8807a3d8cb2094794b51ca"
}
36 changes: 0 additions & 36 deletions web/public/index.html

This file was deleted.

Loading