Skip to content
Open
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
0688070
Upgrade to VueJs3
Jan 22, 2026
d7f7209
Backport: Display optional blank node as list (#194) (#198)
dennisvang Jun 16, 2025
65b1618
Backport: Detect optional nodes using nodeShape instead of BlankNodeE…
dennisvang Jun 27, 2025
f89ae09
fix tsc command
Jan 22, 2026
34596c3
applied review comments and fix lint errors
Jan 22, 2026
276569c
Applied review comments
Feb 12, 2026
cb947c2
Applied review comment part 2
Feb 12, 2026
ef38168
Create dependabot.yml for version updates
hcvdwerf Feb 13, 2026
4ba4493
Rename publish.yml to release.yml
hcvdwerf Feb 13, 2026
72c8287
Merge pull request #1 from Health-RI/Upgrade-to-VueJs3
hcvdwerf Feb 13, 2026
3a94dfa
Update test
Feb 13, 2026
5c53419
Fix release
Feb 13, 2026
86d8047
remove UT
Feb 13, 2026
981202a
remove prettier
Feb 13, 2026
e894c10
I did a patch of the index.html
Feb 13, 2026
8b7bef9
doc: update CHANGELOG.md for v1.0.0
LNDS-Sysadmins Feb 13, 2026
0aa3a73
fix resolve host
Feb 13, 2026
241aa72
Cherry pick fix of host
Feb 13, 2026
fb97994
fix index.html
Feb 13, 2026
71bfe49
Merge pull request #11 from Health-RI/update-test
SeanBerrieHRI Feb 16, 2026
97790f7
Bump axios from 1.13.2 to 1.13.5
dependabot[bot] Feb 20, 2026
3c1b5f4
Bump rollup from 4.55.2 to 4.59.0
dependabot[bot] Mar 1, 2026
96a8d15
Bump minimatch from 3.1.2 to 3.1.5
dependabot[bot] Mar 2, 2026
2c8aa06
Bump immutable from 5.1.4 to 5.1.5
dependabot[bot] Mar 4, 2026
9411e54
fix ping save
Mar 11, 2026
ff58689
Merge pull request #17 from Health-RI/dependabot/npm_and_yarn/immutab…
hcvdwerf Mar 11, 2026
ab9e60a
Merge pull request #16 from Health-RI/dependabot/npm_and_yarn/minimat…
hcvdwerf Mar 11, 2026
6c88746
Bump serialize-javascript and terser-webpack-plugin
dependabot[bot] Mar 11, 2026
03ef58d
Merge pull request #15 from Health-RI/dependabot/npm_and_yarn/rollup-…
hcvdwerf Mar 11, 2026
552e799
Merge pull request #18 from Health-RI/dependabot/npm_and_yarn/multi-0…
hcvdwerf Mar 11, 2026
6cbf922
Merge pull request #14 from Health-RI/dependabot/npm_and_yarn/axios-1…
hcvdwerf Mar 11, 2026
f375951
Merge commit '6cbf9225161352ba19fea2a09634739d162dabdf' into Upgrade-…
Mar 11, 2026
e856124
Merge commit '6cbf9225161352ba19fea2a09634739d162dabdf' into chore/v1…
Mar 11, 2026
7954a78
Merge pull request #10 from Health-RI/chore/v1.0.0
hcvdwerf Mar 11, 2026
bdb05f9
Merge branch 'main' into Upgrade-to-VueJs3
hcvdwerf Mar 11, 2026
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
15 changes: 15 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,23 @@ module.exports = {
'max-classes-per-file': 'off',
'no-use-before-define': 'off',
'vue/multi-word-component-names': 'off',
'@typescript-eslint/no-unused-vars': ['warn', {
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
caughtErrorsIgnorePattern: '^_',
}],
'vue/no-v-for-template-key': 'off',
'vue/html-button-has-type': 'off',
'vue/no-template-target-blank': 'off',
},
parserOptions: {
parser: '@typescript-eslint/parser',
},
settings: {
'import/resolver': {
typescript: {
project: './tsconfig.json',
},
},
},
}
6 changes: 2 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
###### BUILD STAGE ######
# https://v2.vuejs.org/v2/cookbook/dockerize-vuejs-app.html

FROM node:16-alpine AS build-stage
FROM node:20-alpine AS build-stage
WORKDIR /app

# install-layer
Expand All @@ -26,10 +26,8 @@ COPY --from=build-stage /app/src/scss src/scss
COPY --from=build-stage /app/src/components src/components
COPY --from=build-stage /app/src/views src/views
COPY --from=build-stage /app/node_modules/bootstrap/scss src/~bootstrap/scss
COPY --from=build-stage /app/node_modules/bootstrap-vue/src src/~bootstrap-vue/src
COPY --from=build-stage /app/node_modules/bootstrap-vue-next/src src/~bootstrap-vue-next/src
COPY --from=build-stage /app/node_modules/prismjs/themes src/~prismjs/themes
COPY --from=build-stage /app/node_modules/vue-select/src/scss src/~vue-select/src/scss
COPY --from=build-stage /app/node_modules/vue2-datepicker/scss src/~vue2-datepicker/scss

# nginx
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
Expand Down
48 changes: 46 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,26 @@ Install dependencies using:
$ npm install
```

Create `public/config.js` file. For local development, you need to set the apiURL to where the FDP server is running, usually:
### Local development (no Docker)

1) Start the FDP server (default `http://localhost:8080`).
2) Create `public/config.js` and set `apiURL` to the FDP server:

```js
// public/config.js
window.config = {
apiURL: 'http://localhost:8080'
apiURL: 'http://localhost:8080',
}
```

3) Run the dev server:

```
$ npm run serve
```

The client will be available at `http://localhost:8081`.

> **Tip:** If you run both, the server and the client locally, start the server first, because it needs to run on port 8080. The client will then be automatically started on port 8081.

Compile and hot-reload for development:
Expand All @@ -40,6 +51,39 @@ Compile and minify for production:
$ npm run build
```

## Docker

The nginx container can be configured at runtime using environment variables:

- `API_URL` (optional): absolute URL the browser should call for the API (recommended for Docker).
- `FDP_HOST` (optional): backend host:port used by nginx proxy inside the container network.
- `FDP_SCHEME` (optional): `http` or `https` for the proxy (`http` default).
- `PUBLIC_PATH` (optional): base path if serving under a subpath (e.g. `/app`).
- `REBUILD_STYLES` (optional): set to any value to force rebuilding SCSS at container start.

Example: backend is another container on the same network (`fdp` service):

```
docker run --rm -p 8081:80 \
--network fdppv1_default \
-e FDP_HOST=fdp:8080 \
-e FDP_SCHEME=http \
-e API_URL=http://localhost:8081 \
fdp-client
```

Example: backend is on host machine:

```
docker run --rm -p 8081:80 \
-e FDP_HOST=host.docker.internal:8080 \
-e FDP_SCHEME=http \
-e API_URL=http://localhost:8081 \
fdp-client
```

If the backend is HTTPS-only, set `FDP_SCHEME=https` and ensure the API URL is `https://...`.

Run tests or linter:

```
Expand Down
6 changes: 3 additions & 3 deletions public/index.html → index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap" rel="stylesheet">
<script src="<%= BASE_URL %>config.js"></script>
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<script type="module" src="/config.js" data-vite-ignore></script>
<link rel="icon" href="%BASE_URL%favicon.ico">
<title>FAIR Data Point</title>
</head>
<body>
<noscript>
<strong>We're sorry but fdp-client doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
<script type="module" src="/src/main.ts"></script>
</body>
</html>
38 changes: 32 additions & 6 deletions nginx/start.sh
Original file line number Diff line number Diff line change
@@ -1,23 +1,49 @@
#!/bin/sh

# normalize public path
PUBLIC_PATH="${PUBLIC_PATH%/}"
if [ -z "$PUBLIC_PATH" ]; then
PUBLIC_PATH="/"
fi
REWRITE_PATH="$PUBLIC_PATH"
if [ "$REWRITE_PATH" = "/" ]; then
REWRITE_PATH=""
fi

# create config
config=/usr/share/nginx/html/config.js

echo -n "window.config={publicPath:'"$PUBLIC_PATH"'};" > ${config}
CONFIG_JS="window.config={publicPath:'$PUBLIC_PATH'"

if [ -n "$API_URL" ]; then
CONFIG_JS="$CONFIG_JS,apiURL:'$API_URL'"
elif [ -n "$FDP_HOST" ]; then
FDP_SCHEME_VALUE="${FDP_SCHEME:-http}"
CONFIG_JS="$CONFIG_JS,apiURL:'${FDP_SCHEME_VALUE}://${FDP_HOST}'"
fi

CONFIG_JS="$CONFIG_JS};"
echo -n "$CONFIG_JS" > ${config}

# set correct FDP Host for proxy pass
sed -i "s#\$FDP_HOST#"$FDP_HOST"#g" /etc/nginx/conf.d/default.conf

# set correct Public Path
sed -i "s#/app/#"$PUBLIC_PATH"/#g" /usr/share/nginx/html/js/*.js
sed -i "s#/app/#"$PUBLIC_PATH"/#g" /usr/share/nginx/html/index.html
if [ -d /usr/share/nginx/html/assets ]; then
find /usr/share/nginx/html/assets -name "*.js" -exec sed -i "s#/app/#${REWRITE_PATH}/#g" {} \;
find /usr/share/nginx/html/assets -name "*.css" -exec sed -i "s#/app/#${REWRITE_PATH}/#g" {} \;
fi
sed -i "s#/app/#${REWRITE_PATH}/#g" /usr/share/nginx/html/index.html

# update default logo URL with the Public Path
sed -i "s#/assets/fair-logo.png#"$PUBLIC_PATH"/assets/fair-logo.png#" /src/scss/_variables.scss

# regenerate styles if there are any customizations or Public Path is set
if [[ ! -z "$PUBLIC_PATH" || $(find /src/scss/custom -name "*.scss" | xargs cat | wc -c) -gt 0 ]]; then
find /usr/share/nginx/html/css -name "*.css" -exec sassc -I /src -t compressed /src/scss/main.scss {} \;
# regenerate app styles only when custom overrides have content or explicitly requested
if [ -n "$REBUILD_STYLES" ] || [ -n "$(find /src/scss/custom -type f -name '*.scss' -size +0c -print -quit)" ]; then
if [ -d /usr/share/nginx/html/assets ]; then
find /usr/share/nginx/html/assets \( -name "index-*.css" -o -name "style-*.css" \) \
-exec sassc -I /src -t compressed /src/scss/main.scss {} \;
fi
fi

nginx -g 'daemon off;'
Loading