Skip to content

Commit f7e3970

Browse files
committed
Merge remote-tracking branch 'origin/feature/article-search' into loki-f2f-demo-2025-12-01
2 parents 08f792a + 129366a commit f7e3970

25 files changed

Lines changed: 63489 additions & 322 deletions

.env.template

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
# This is for development only. For production you need to replace this with the actual URL.
55
VITE_API_URL=http://localhost:8000
66

7+
# VITE_ARTICLE_API_URL= http://sc-010187l:8001/
8+
VITE_ARTICLE_API_URL=http://localhost:8001
9+
710
###### IDP Settings ######
811
# Change accordingly for dev, staging or production
912

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,15 @@ dist
1414
reports
1515
coverage
1616

17+
# .env
18+
.eslintcache
1719
.env
20+
.venv
21+
__pycache__/
22+
/public/assets
23+
/public/locales
24+
/public/node_modules
25+
/public/pdf.worker.min.mjs
1826
.eslintcache
27+
.env
28+
.DS_Store

assets/third-party-attributions.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

docs/contribute.md

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -178,39 +178,38 @@ would be difficult to handle with React's `props` alone.
178178
- The Spacing is done in 5 steps: `0 px`, `4 px`, `8 px`, `12 px`, and `26 px`
179179

180180
</details>
181-
182181
- The theme is provided using the [MUI Theme Provider](https://mui.com/customization/theming 'mui.com')
183182
- <details>
184183
<summary>It can be accessed in components like this: <i>(-- Click to expand --)</i></summary>
185184

186-
```tsx
187-
import {useTheme} from '@mui/material/styles';
188-
189-
export default function MyComponent(): JSX.Element {
190-
const theme = useTheme();
191-
192-
return (
193-
<Box
194-
sx={{
195-
/*
196-
* Available theme properties can be found at their declaration inside the App.tsx.
197-
*/
198-
// accessing theme variables
199-
background: theme.palette.background.default,
200-
border: `1px solid ${theme.palette.divider}`,
201-
202-
// accessing theme typography
203-
typography: theme.typography.h1,
204-
// or
205-
typography: 'h1',
206-
207-
// accessing theme spacing via index [0, 4, 8, 12, 26]
208-
margin: theme.spacing(3), // 12 px margin
209-
}}
210-
></Box>
211-
);
212-
}
213-
```
185+
```tsx
186+
import {useTheme} from '@mui/material/styles';
187+
188+
export default function MyComponent(): JSX.Element {
189+
const theme = useTheme();
190+
191+
return (
192+
<Box
193+
sx={{
194+
/*
195+
* Available theme properties can be found at their declaration inside the App.tsx.
196+
*/
197+
// accessing theme variables
198+
background: theme.palette.background.default,
199+
border: `1px solid ${theme.palette.divider}`,
200+
201+
// accessing theme typography
202+
typography: theme.typography.h1,
203+
// or
204+
typography: 'h1',
205+
206+
// accessing theme spacing via index [0, 4, 8, 12, 26]
207+
margin: theme.spacing(3), // 12 px margin
208+
}}
209+
></Box>
210+
);
211+
}
212+
```
214213

215214
</details>
216215

locales/de-global.json5

Lines changed: 86 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,6 @@
2727
'next-day-tooltip': 'Nächster Tag',
2828
'play-pause-tooltip': 'Start/Pause',
2929
'fullscreen-tooltip': 'Vollbild',
30-
'display-settings': {
31-
tooltip: 'Anzeigeeinstellungen für Daten',
32-
title: 'Anzeigeeinstellungen',
33-
'time-period': 'Aggregation',
34-
'time-period-tooltip': 'Wählen Sie aus, wie Werte am ausgewählten Datum aggregiert werden',
35-
total: 'Gesamt',
36-
'one-day': '1T-neu',
37-
'seven-days': '7T-neu',
38-
'time-period-total-tooltip': 'Gesamtzahl der Fälle am ausgewählten Datum anzeigen',
39-
'time-period-one-day-tooltip': 'Neue Fälle in den letzten 24 Stunden am ausgewählten Datum anzeigen',
40-
'time-period-seven-days-tooltip': 'Neue Fälle in den letzten 7 Tagen am ausgewählten Datum anzeigen',
41-
'number-type': 'Zahlenanzeige',
42-
'number-type-tooltip': 'Fallzahl pro 100.000 Einwohner',
43-
relative: 'Relativ',
44-
absolute: 'Absolut',
45-
'relative-tooltip': 'Fälle pro 100.000 Einwohner anzeigen',
46-
'absolute-tooltip': 'Absolute Fallzahl anzeigen',
47-
},
48-
'selection-chip': {
49-
'per-100k': 'pro 100.000 Einwohner',
50-
},
51-
},
52-
history: {
53-
placeholder: 'history',
5430
},
5531
BEZ: {
5632
K: 'Kreis',
@@ -150,7 +126,6 @@
150126
today: 'Heute',
151127
more: 'Mehr',
152128
less: 'Weniger',
153-
search: 'Suche',
154129
germany: 'Deutschland',
155130
WIP: 'Diese Funktionalität befindet sich noch in der Entwicklung.',
156131
'no-data': 'Keine Daten',
@@ -183,4 +158,90 @@
183158
button: 'Daten hochladen',
184159
dropNotice: 'Hier ablegen um die Datei(en) hochzuladen.',
185160
},
161+
semanticSearch: {
162+
title: 'Semantische Suche',
163+
description: 'Stellen Sie Fragen zu den Daten, Modellen oder Funktionen, um relevante Dokumentationen und Artikel zu finden.',
164+
placeholder: 'Geben Sie eine Frage für die Suche ein...',
165+
suggestions: {
166+
title: 'Oder versuchen Sie eine dieser Optionen:',
167+
scenarioForecasting: 'Wie unterstützt die ESID-Plattform szenariobasierte Prognosen für Ausbrüche von Infektionskrankheiten?',
168+
purpose: 'Was ist der Zweck von ESID?',
169+
},
170+
results: {
171+
noResults: 'Keine Ergebnisse gefunden. Versuchen Sie, Ihre Frage umzuformulieren oder andere Schlüsselwörter zu verwenden.',
172+
resultsFound_one: '1 Ergebnis gefunden für',
173+
resultsFound_other: '{{count}} Ergebnisse gefunden für',
174+
},
175+
classification: {
176+
direct: 'Direkte Antwort',
177+
high: 'Hohe Relevanz',
178+
related: 'Verwandt',
179+
unrelated: 'Nicht Verwandt',
180+
},
181+
},
182+
language: 'Sprache',
183+
legal: {
184+
attributions: 'Namensnennung',
185+
},
186+
scenarios: {
187+
cards: {
188+
cases: 'Fälle',
189+
hospitalization: 'Krankenhausaufnahme',
190+
intensiveCare: 'Intensivpflege',
191+
death: 'Todesfälle',
192+
rValue: 'R-Wert',
193+
doublingTime: 'Verdopplungszeit',
194+
attackRate: 'Befallsrate',
195+
},
196+
},
197+
groups: {
198+
title: 'Filter',
199+
addGroup: 'Gruppe hinzufügen',
200+
manageGroups: 'Gruppen verwalten',
201+
noGroups: 'Keine Gruppen definiert.',
202+
groupName: {
203+
label: 'Gruppenname',
204+
alreadyExists: 'Eine Gruppe mit diesem Namen existiert bereits.',
205+
cannotBeEmpty: 'Der Gruppenname darf nicht leer sein.',
206+
},
207+
options: {
208+
delete: 'Löschen',
209+
edit: 'Bearbeiten',
210+
},
211+
},
212+
compartments: {
213+
title: 'Kompartimente',
214+
S: 'Suszeptible',
215+
E: 'Exponiert',
216+
I: 'Infiziert',
217+
R: 'Genesen',
218+
H: 'Hospitalisiert',
219+
U: 'Intensivpflege',
220+
D: 'Verstorben',
221+
X: 'Geimpft',
222+
V: 'Geimpft (geschützt)',
223+
W: 'Geimpft (nachlassend)',
224+
},
225+
lineChart: {
226+
title: 'Liniendiagramm',
227+
showConfidence: 'Konfidenzintervalle anzeigen',
228+
logScale: 'Logarithmische Skala',
229+
sum: 'Summe',
230+
yAxis: 'Wert',
231+
},
232+
map: {
233+
title: 'Karte',
234+
legendTitle: 'Fälle pro 100k',
235+
incidences: {
236+
total: 'Gesamt',
237+
per100k: 'pro 100k',
238+
per100kIn7Days: '7-Tage-Inzidenz pro 100k',
239+
},
240+
},
241+
parameter: {
242+
title: 'Parameter',
243+
compartment: 'Kompartiment',
244+
reset: 'Auf Standardwert zurücksetzen',
245+
r0: 'Basisreproduktionszahl (R0)',
246+
},
186247
}

locales/en-global.json5

Lines changed: 90 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
placeholder: 'Main Content',
5656
},
5757
history: {
58-
Tabtitle: 'history',
58+
title: 'History',
5959
},
6060
details: {
6161
Tabtitle: 'Details',
@@ -158,7 +158,6 @@
158158
today: 'Today',
159159
more: 'More',
160160
less: 'Less',
161-
search: 'Search',
162161
germany: 'Germany',
163162
'no-data': 'No Data',
164163
'loki-logo': 'LOKI logo',
@@ -197,4 +196,93 @@
197196
button: 'Upload Data',
198197
dropNotice: 'Drop here to upload.',
199198
},
199+
values: 'Values',
200+
name: 'Name',
201+
date: 'Date',
202+
semanticSearch: {
203+
title: 'Semantic Search',
204+
description: 'Ask questions about the data, models, or functionality to find relevant documentation and articles.',
205+
placeholder: 'Enter a question to search...',
206+
suggestions: {
207+
title: 'Or try one of these:',
208+
scenarioForecasting: 'How does the ESID platform support scenario-based forecasting for infectious disease outbreaks?',
209+
purpose: 'What is ESID purpose?',
210+
},
211+
results: {
212+
noResults: 'No results found. Try rephrasing your question or using different keywords.',
213+
resultsFound_one: 'Found 1 result for',
214+
resultsFound_other: 'Found {{count}} results for',
215+
},
216+
classification: {
217+
direct: 'Direct Answer',
218+
high: 'High Relevance',
219+
related: 'Related',
220+
unrelated: 'Unrelated',
221+
},
222+
},
223+
language: 'Language',
224+
legal: {
225+
attributions: 'Attributions',
226+
},
227+
scenarios: {
228+
cards: {
229+
cases: 'Cases',
230+
hospitalization: 'Hospitalization',
231+
intensiveCare: 'Intensive Care',
232+
death: 'Deaths',
233+
rValue: 'R-Value',
234+
doublingTime: 'Doubling Time',
235+
attackRate: 'Attack Rate',
236+
},
237+
},
238+
groups: {
239+
title: 'Filter',
240+
addGroup: 'Add Group',
241+
manageGroups: 'Manage Groups',
242+
noGroups: 'No Groups defined.',
243+
groupName: {
244+
label: 'Group Name',
245+
alreadyExists: 'A group with this name already exists.',
246+
cannotBeEmpty: 'The group name cannot be empty.',
247+
},
248+
options: {
249+
delete: 'Delete',
250+
edit: 'Edit',
251+
},
252+
},
253+
compartments: {
254+
title: 'Compartments',
255+
S: 'Susceptible',
256+
E: 'Exposed',
257+
I: 'Infected',
258+
R: 'Recovered',
259+
H: 'Hospitalized',
260+
U: 'Intensive Care',
261+
D: 'Dead',
262+
X: 'Vaccinated',
263+
V: 'Vaccinated (protected)',
264+
W: 'Vaccinated (waned)',
265+
},
266+
lineChart: {
267+
title: 'Line Chart',
268+
showConfidence: 'Show confidence intervals',
269+
logScale: 'Logarithmic Scale',
270+
sum: 'Sum',
271+
yAxis: 'Value',
272+
},
273+
map: {
274+
title: 'Map',
275+
legendTitle: 'Cases per 100k',
276+
incidences: {
277+
total: 'Total',
278+
per100k: 'per 100k',
279+
per100kIn7Days: '7-day-incidence per 100k',
280+
},
281+
},
282+
parameter: {
283+
title: 'Parameters',
284+
compartment: 'Compartment',
285+
reset: 'Reset to default value',
286+
r0: 'Basic Reproduction Number (R0)',
287+
},
200288
}

0 commit comments

Comments
 (0)