Skip to content
Snippets Groups Projects
Unverified Commit 1ffee080 authored by xgui3783's avatar xgui3783 Committed by GitHub
Browse files

Merge pull request #1118 from FZJ-INM1-BDA/staging

v2.6.0
parents e1ea8b84 b49fe5b9
No related branches found
No related tags found
No related merge requests found
Showing
with 62 additions and 56 deletions
...@@ -2,10 +2,6 @@ name: '[ci]' ...@@ -2,10 +2,6 @@ name: '[ci]'
on: on:
push: push:
branches-ignore:
- 'dev'
- 'staging'
- 'master'
# ignore changes to docs and mkdocs.yml # ignore changes to docs and mkdocs.yml
paths-ignore: paths-ignore:
...@@ -66,4 +62,4 @@ jobs: ...@@ -66,4 +62,4 @@ jobs:
cd deploy cd deploy
npm i npm i
npm run test npm run test
\ No newline at end of file
name: '[docker image]' name: '[docker image]'
on: [ 'push' ] on:
push:
# do not rebuild if...
paths-ignore:
# changes to .openshift directory... mostly devops config
- '.openshift/*'
# docs (docs are built on readthedocs any way)
- 'docs/*'
jobs: jobs:
build-docker-img: build-docker-img:
......
...@@ -11,3 +11,4 @@ site ...@@ -11,3 +11,4 @@ site
*.log *.log
cachedKgDataset.json cachedKgDataset.json
tmp
{ {
"$schema": "./node_modules/@angular/cli/lib/config/schema.json", "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"cli": {
"analytics": false
},
"version": 1, "version": 1,
"newProjectRoot": "projects", "newProjectRoot": "projects",
"projects": { "projects": {
......
...@@ -112,7 +112,10 @@ ...@@ -112,7 +112,10 @@
QUICKTOUR_CANCEL: `Dismiss`, QUICKTOUR_CANCEL: `Dismiss`,
DELETE_ALL_ANNOTATION_CONFIRMATION_MSG: `Are you sure you want to delete all annotations?`, DELETE_ALL_ANNOTATION_CONFIRMATION_MSG: `Are you sure you want to delete all annotations?`,
LOADING_ANNOTATION_MSG: `Loading annotations... Please wait...` LOADING_ANNOTATION_MSG: `Loading annotations... Please wait...`,
ATLAS_SELECTOR_LABEL_SPACES: `Spaces`,
ATLAS_SELECTOR_LABEL_PARC_MAPS: `Parcellation maps`
} }
exports.QUICKTOUR_DESC ={ exports.QUICKTOUR_DESC ={
......
...@@ -197,9 +197,6 @@ app.get('/', (req, res, next) => { ...@@ -197,9 +197,6 @@ app.get('/', (req, res, next) => {
} }
}) })
app.use('/logo', require('./logo'))
app.get('/ready', async (req, res) => { app.get('/ready', async (req, res) => {
const authIsReady = authReady ? await authReady() : false const authIsReady = authReady ? await authReady() : false
......
...@@ -116,8 +116,8 @@ module.exports = { ...@@ -116,8 +116,8 @@ module.exports = {
'unpkg.com/kg-dataset-previewer@1.2.0/', // preview component 'unpkg.com/kg-dataset-previewer@1.2.0/', // preview component
'cdnjs.cloudflare.com/ajax/libs/mathjax/', // math jax 'cdnjs.cloudflare.com/ajax/libs/mathjax/', // math jax
'https://unpkg.com/three-surfer@0.0.10/dist/bundle.js', // for threeSurfer (freesurfer support in browser) 'https://unpkg.com/three-surfer@0.0.10/dist/bundle.js', // for threeSurfer (freesurfer support in browser)
'https://unpkg.com/ng-layer-tune@0.0.2/dist/ng-layer-tune/', // needed for ng layer control 'https://unpkg.com/ng-layer-tune@0.0.5/dist/ng-layer-tune/', // needed for ng layer control
(req, res) => res.locals.nonce ? [`'nonce-${res.locals.nonce}'`] : [], (req, res) => res.locals.nonce ? `'nonce-${res.locals.nonce}'` : null,
...SCRIPT_SRC, ...SCRIPT_SRC,
...WHITE_LIST_SRC, ...WHITE_LIST_SRC,
...defaultAllowedSites ...defaultAllowedSites
......
const fs = require('fs')
const path = require('path')
const { getHandleErrorFn } = require('../util/streamHandleError')
const router = require('express').Router()
const map = new Map([
['hbp', {
mimetype: 'image/png',
light: 'HBP_Primary_RGB_BlackText.png',
dark: 'HBP_Primary_RGB_WhiteText.png'
}],
['ebrains', {
mimetype: 'image/svg+xml',
light: 'ebrains-logo-dark.svg',
dark: 'ebrains-logo-light.svg'
}],
['fzj', {
mimetype: 'image/svg+xml',
light: 'fzj_black_transparent_svg.svg',
dark: 'fzj_white_transparent_svg.svg'
}]
])
router.get('/', (req, res) => {
const USE_LOGO = process.env.USE_LOGO || 'hbp'
const { mimetype, light, dark } = map.get(USE_LOGO) || map.get('hbp')
const darktheme = !!req.query.darktheme
try {
res.setHeader('Content-type', mimetype)
fs.createReadStream(
path.join(__dirname, `assets/${darktheme ? dark : light}`)
).pipe(res).on('error', getHandleErrorFn(req, res))
} catch (e) {
console.error(`Fetching logo error ${e.toString()}`)
res.status(500).end()
}
})
module.exports = router
\ No newline at end of file
...@@ -7,6 +7,16 @@ const express = require('express') ...@@ -7,6 +7,16 @@ const express = require('express')
const lruStore = require('../lruStore') const lruStore = require('../lruStore')
const got = require('got') const got = require('got')
const router = express.Router() const router = express.Router()
const DEV_PLUGINS = (() => {
try {
return JSON.parse(
process.env.DEV_PLUGINS || `[]`
)
} catch (e) {
console.warn(`Parsing DEV_PLUGINS failed: ${e}`)
return []
}
})()
const PLUGIN_URLS = (process.env.PLUGIN_URLS && process.env.PLUGIN_URLS.split(';')) || [] const PLUGIN_URLS = (process.env.PLUGIN_URLS && process.env.PLUGIN_URLS.split(';')) || []
const STAGING_PLUGIN_URLS = (process.env.STAGING_PLUGIN_URLS && process.env.STAGING_PLUGIN_URLS.split(';')) || [] const STAGING_PLUGIN_URLS = (process.env.STAGING_PLUGIN_URLS && process.env.STAGING_PLUGIN_URLS.split(';')) || []
...@@ -44,7 +54,7 @@ router.get('/manifests', async (_req, res) => { ...@@ -44,7 +54,7 @@ router.get('/manifests', async (_req, res) => {
})) }))
res.status(200).json( res.status(200).json(
allManifests.filter(v => !!v) [...DEV_PLUGINS, ...allManifests.filter(v => !!v)]
) )
}) })
......
...@@ -7,7 +7,12 @@ const RedisStore = require('rate-limit-redis') ...@@ -7,7 +7,12 @@ const RedisStore = require('rate-limit-redis')
const { redisURL } = require('../lruStore') const { redisURL } = require('../lruStore')
const { ProxyStore, NotExactlyPromiseAny } = require('./util') const { ProxyStore, NotExactlyPromiseAny } = require('./util')
const store = new Store() let store
try {
store = new Store()
} catch (e) {
console.error(`Failed to new store.`, e)
}
const depStore = new DepcStore() const depStore = new DepcStore()
const proxyStore = new ProxyStore(store) const proxyStore = new ProxyStore(store)
......
...@@ -2,6 +2,7 @@ const { NotFoundError } = require('./store') ...@@ -2,6 +2,7 @@ const { NotFoundError } = require('./store')
class ProxyStore { class ProxyStore {
static async StaticGet(store, req, name) { static async StaticGet(store, req, name) {
if (!store) throw new Error(`store is falsy`)
const payload = JSON.parse(await store.get(name)) const payload = JSON.parse(await store.get(name))
const { expiry, value, ...rest } = payload const { expiry, value, ...rest } = payload
if (expiry && (Date.now() > expiry)) { if (expiry && (Date.now() > expiry)) {
...@@ -21,6 +22,7 @@ class ProxyStore { ...@@ -21,6 +22,7 @@ class ProxyStore {
} }
async set(req, name, value) { async set(req, name, value) {
if (!this.store) throw new Error(`store is falsy`)
const supplementary = req.user const supplementary = req.user
? { ? {
userId: req.user.id, userId: req.user.id,
......
# v2.6.0
## New features
- add the capability of add 3rd party plugins (experimental)
## Under the hood stuff
- refactor: simplify DOM, remove unused functions
- reworked logo path
- added visual indication when a new template is being loaded
- reworked visual for `supported template` in region side panel
- improve performance by disabling `zone.js` patch of `requestAnimationFrame` and change detection strategy of nehuba viewer
- added message when no regional features found (#1111)
...@@ -54,4 +54,11 @@ ...@@ -54,4 +54,11 @@
- [ ] Waxholm - [ ] Waxholm
- [ ] v4 are visible - [ ] v4 are visible
- [ ] on hover, show correct region name(s) - [ ] on hover, show correct region name(s)
- [ ] whole mesh loads - [ ] whole mesh loads
\ No newline at end of file ## saneURL
- [ ] [saneUrl](https://siibra-explorer.apps.hbp.eu/staging/saneUrl/bigbrainGreyWhite) redirects to big brain
- [ ] [saneUrl](https://siibra-explorer.apps.hbp.eu/staging/saneUrl/julichbrain) redirects to julich brain (colin 27)
- [ ] [saneUrl](https://siibra-explorer.apps.hbp.eu/staging/saneUrl/whs4) redirects to waxholm v4
- [ ] [saneUrl](https://siibra-explorer.apps.hbp.eu/staging/saneUrl/allen2017) redirects to allen 2017
- [ ] [saneUrl](https://siibra-explorer.apps.hbp.eu/staging/saneUrl/mebrains) redirects to monkey
...@@ -40,6 +40,7 @@ pages: ...@@ -40,6 +40,7 @@ pages:
- Fetching datasets: 'advanced/datasets.md' - Fetching datasets: 'advanced/datasets.md'
- Display non-atlas volumes: 'advanced/otherVolumes.md' - Display non-atlas volumes: 'advanced/otherVolumes.md'
- Release notes: - Release notes:
- v2.6.0: 'releases/v2.6.0.md'
- v2.5.8: 'releases/v2.5.8.md' - v2.5.8: 'releases/v2.5.8.md'
- v2.5.7: 'releases/v2.5.7.md' - v2.5.7: 'releases/v2.5.7.md'
- v2.5.6: 'releases/v2.5.6.md' - v2.5.6: 'releases/v2.5.6.md'
......
{ {
"name": "interactive-viewer", "name": "interactive-viewer",
"version": "2.5.8", "version": "2.6.0",
"description": "HBP interactive atlas viewer. Integrating KG query, dataset previews & more. Based on humanbrainproject/nehuba & google/neuroglancer. Built with angular", "description": "HBP interactive atlas viewer. Integrating KG query, dataset previews & more. Based on humanbrainproject/nehuba & google/neuroglancer. Built with angular",
"scripts": { "scripts": {
"build-aot": "ng build && node ./third_party/matomo/processMatomo.js", "build-aot": "ng build && node ./third_party/matomo/processMatomo.js",
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment