Skip to content

Commit 1b99a17

Browse files
authored
feat: show alternative office name in dropdown
1 parent c23ccb4 commit 1b99a17

6 files changed

Lines changed: 2482 additions & 240 deletions

File tree

src/app/components/Editor.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,9 @@ export default function Editor() {
165165

166166
const organisations = organisationData.flatMap(data =>
167167
data.organisations.map(organisation => ({
168-
text: getLocalizedText(organisation.name, i18n.language),
168+
text: getLocalizedText(organisation.name, i18n.language) + (organisation.alternativeName ? ` (${getLocalizedText(organisation.alternativeName, i18n.language)})` : ""),
169169
value: organisation.id,
170-
group: getLocalizedText(data.name, i18n.language) + " (" + getLocalizedText(data.abbreviation, i18n.language) + ")",
170+
group: `${getLocalizedText(data.name, i18n.language)} (${getLocalizedText(data.abbreviation, i18n.language)})`,
171171
}))
172172
);
173173

src/app/data/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44

55
The data in the file `organisations.json` originates from the following sources:
66

7-
- The seven departements and the Federal Chancellery (`departements.json`)
7+
- The seven departments and the Federal Chancellery (`departements.json`)
88
```
99
https://ld.admin.ch/sparql/#query=PREFIX%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0A%0ASELECT%20DISTINCT%20%3Fdepartment%20%3FnameDepDe%20%3FnameDepFr%20%3FnameDepIt%20%3FnameDepEn%20%3FaltNameDepDe%20%3FaltNameDepFr%20%3FaltNameDepIt%20%3FaltNameDepEn%20%3Foffice%20%3FnameDe%20%3FnameFr%20%3FnameIt%20%3FnameEn%20WHERE%20%7B%0A%20%20%0A%20%20%3Fdepartment%20schema%3AinDefinedTermSet%20%3Chttps%3A%2F%2Fld.admin.ch%2Fdimension%2Fdepartment%3E.%0A%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDe.%20FILTER(lang(%3FnameDe)%20%3D%20%22de%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameFr.%20FILTER(lang(%3FnameFr)%20%3D%20%22fr%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameIt.%20FILTER(lang(%3FnameIt)%20%3D%20%22it%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameEn.%20FILTER(lang(%3FnameEn)%20%3D%20%22en%22)%20%7D%0A%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDe.%20FILTER(lang(%3FaltNameDe)%20%3D%20%22de%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameFr.%20FILTER(lang(%3FaltNameFr)%20%3D%20%22fr%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameIt.%20FILTER(lang(%3FaltNameIt)%20%3D%20%22it%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameEn.%20FILTER(lang(%3FaltNameEn)%20%3D%20%22en%22)%20%7D%0A%20%20%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDepDe.%20FILTER(lang(%3FnameDepDe)%20%3D%20%22de%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDepFr.%20FILTER(lang(%3FnameDepFr)%20%3D%20%22fr%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDepIt.%20FILTER(lang(%3FnameDepIt)%20%3D%20%22it%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDepEn.%20FILTER(lang(%3FnameDepEn)%20%3D%20%22en%22)%20%7D%0A%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDepDe.%20FILTER(lang(%3FaltNameDepDe)%20%3D%20%22de%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDepFr.%20FILTER(lang(%3FaltNameDepFr)%20%3D%20%22fr%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDepIt.%20FILTER(lang(%3FaltNameDepIt)%20%3D%20%22it%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDepEn.%20FILTER(lang(%3FaltNameDepEn)%20%3D%20%22en%22)%20%7D%0A%0A%7D%0A&endpoint=https%3A%2F%2Fld.admin.ch%2Fquery&requestMethod=POST&tabTitle=Query&headers=%7B%7D&contentTypeConstruct=text%2Fturtle&contentTypeSelect=application%2Fsparql-results%2Bjson&outputFormat=table&outputSettings=%7B%22isEllipsed%22%3Atrue%2C%22compact%22%3Afalse%7D
1010
```
1111

1212
- All offices of the seven departments (`offices.json`)
1313
```
14-
https://ld.admin.ch/sparql/#query=PREFIX%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0A%0ASELECT%20DISTINCT%20%3Fdepartment%20%3FnameDepDe%20%3FnameDepFr%20%3FnameDepIt%20%3FnameDepEn%20%3FaltNameDepDe%20%3FaltNameDepFr%20%3FaltNameDepIt%20%3FaltNameDepEn%20%3Foffice%20%3FnameDe%20%3FnameFr%20%3FnameIt%20%3FnameEn%20WHERE%20%7B%0A%20%0A%20%20%3Foffice%20schema%3AinDefinedTermSet%20%3Chttps%3A%2F%2Fld.admin.ch%2Foffice%3E.%0A%20%20%3Foffice%20schema%3AparentOrganization%20%3Fdepartment.%0A%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3Aname%20%3FnameDe.%20FILTER(lang(%3FnameDe)%20%3D%20%22de%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3Aname%20%3FnameFr.%20FILTER(lang(%3FnameFr)%20%3D%20%22fr%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3Aname%20%3FnameIt.%20FILTER(lang(%3FnameIt)%20%3D%20%22it%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3Aname%20%3FnameEn.%20FILTER(lang(%3FnameEn)%20%3D%20%22en%22)%20%7D%0A%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3AalternateName%20%3FaltNameDe.%20FILTER(lang(%3FaltNameDe)%20%3D%20%22de%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3AalternateName%20%3FaltNameFr.%20FILTER(lang(%3FaltNameFr)%20%3D%20%22fr%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3AalternateName%20%3FaltNameIt.%20FILTER(lang(%3FaltNameIt)%20%3D%20%22it%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3AalternateName%20%3FaltNameEn.%20FILTER(lang(%3FaltNameEn)%20%3D%20%22en%22)%20%7D%0A%20%20%0A%20%20%3Fdepartment%20schema%3AinDefinedTermSet%20%3Chttps%3A%2F%2Fld.admin.ch%2Fdepartment%3E.%0A%20%20%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDepDe.%20FILTER(lang(%3FnameDepDe)%20%3D%20%22de%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDepFr.%20FILTER(lang(%3FnameDepFr)%20%3D%20%22fr%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDepIt.%20FILTER(lang(%3FnameDepIt)%20%3D%20%22it%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDepEn.%20FILTER(lang(%3FnameDepEn)%20%3D%20%22en%22)%20%7D%0A%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDepDe.%20FILTER(lang(%3FaltNameDepDe)%20%3D%20%22de%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDepFr.%20FILTER(lang(%3FaltNameDepFr)%20%3D%20%22fr%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDepIt.%20FILTER(lang(%3FaltNameDepIt)%20%3D%20%22it%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDepEn.%20FILTER(lang(%3FaltNameDepEn)%20%3D%20%22en%22)%20%7D%0A%0A%7D%0A&endpoint=https%3A%2F%2Fld.admin.ch%2Fquery&requestMethod=POST&tabTitle=Query&headers=%7B%7D&contentTypeConstruct=text%2Fturtle&contentTypeSelect=application%2Fsparql-results%2Bjson&outputFormat=table&outputSettings=%7B%22pageSize%22%3A-1%7D
14+
https://ld.admin.ch/sparql/#query=PREFIX%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%0APREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0A%0ASELECT%20DISTINCT%20%3Fdepartment%20%3FnameDepDe%20%3FnameDepFr%20%3FnameDepIt%20%3FnameDepEn%20%3FaltNameDepDe%20%3FaltNameDepFr%20%3FaltNameDepIt%20%3FaltNameDepEn%20%3Foffice%20%3FnameDe%20%3FnameFr%20%3FnameIt%20%3FnameEn%20%3FaltNameDe%20%3FaltNameFr%20%3FaltNameIt%20%3FaltNameEn%20WHERE%20%7B%0A%20%0A%20%20%3Foffice%20schema%3AinDefinedTermSet%20%3Chttps%3A%2F%2Fld.admin.ch%2Foffice%3E.%0A%20%20%3Foffice%20schema%3AparentOrganization%20%3Fdepartment.%0A%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3Aname%20%3FnameDe.%20FILTER(lang(%3FnameDe)%20%3D%20%22de%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3Aname%20%3FnameFr.%20FILTER(lang(%3FnameFr)%20%3D%20%22fr%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3Aname%20%3FnameIt.%20FILTER(lang(%3FnameIt)%20%3D%20%22it%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3Aname%20%3FnameEn.%20FILTER(lang(%3FnameEn)%20%3D%20%22en%22)%20%7D%0A%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3AalternateName%20%3FaltNameDe.%20FILTER(lang(%3FaltNameDe)%20%3D%20%22de%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3AalternateName%20%3FaltNameFr.%20FILTER(lang(%3FaltNameFr)%20%3D%20%22fr%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3AalternateName%20%3FaltNameIt.%20FILTER(lang(%3FaltNameIt)%20%3D%20%22it%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Foffice%20schema%3AalternateName%20%3FaltNameEn.%20FILTER(lang(%3FaltNameEn)%20%3D%20%22en%22)%20%7D%0A%20%20%0A%20%20%3Fdepartment%20schema%3AinDefinedTermSet%20%3Chttps%3A%2F%2Fld.admin.ch%2Fdepartment%3E.%0A%20%20%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDepDe.%20FILTER(lang(%3FnameDepDe)%20%3D%20%22de%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDepFr.%20FILTER(lang(%3FnameDepFr)%20%3D%20%22fr%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDepIt.%20FILTER(lang(%3FnameDepIt)%20%3D%20%22it%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3Aname%20%3FnameDepEn.%20FILTER(lang(%3FnameDepEn)%20%3D%20%22en%22)%20%7D%0A%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDepDe.%20FILTER(lang(%3FaltNameDepDe)%20%3D%20%22de%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDepFr.%20FILTER(lang(%3FaltNameDepFr)%20%3D%20%22fr%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDepIt.%20FILTER(lang(%3FaltNameDepIt)%20%3D%20%22it%22)%20%7D%0A%20%20OPTIONAL%20%7B%20%3Fdepartment%20schema%3AalternateName%20%3FaltNameDepEn.%20FILTER(lang(%3FaltNameDepEn)%20%3D%20%22en%22)%20%7D%0A%0A%7D%0A&endpoint=https%3A%2F%2Fld.admin.ch%2Fquery&requestMethod=POST&tabTitle=Query&headers=%7B%7D&contentTypeConstruct=text%2Fturtle&contentTypeSelect=application%2Fsparql-results%2Bjson&outputFormat=table&outputSettings=%7B%22pageSize%22%3A-1%7D
1515
```
1616

1717
Additionally, some special cases are added in `additional-organisations.json`. These are organisations are part of organisations returned in the above queries and must be added manually. It would be possible to fetch all organisations recursevely with the above queries, but that would yield too many organisations!
@@ -20,5 +20,5 @@ Additionally, some special cases are added in `additional-organisations.json`. T
2020
It can be (re-)generated by running:
2121

2222
```bash
23-
npx run build:organisations
23+
npm run build:organisations
2424
```
Lines changed: 72 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,82 @@
11
[
22
{
33
"id": "https://ld.admin.ch/department/I",
4-
"organisations": [ ]
4+
"organisations": []
55
},
66
{
77
"id": "https://ld.admin.ch/department/II",
8-
"organisations": [ ]
8+
"organisations": []
99
},
1010
{
1111
"id": "https://ld.admin.ch/department/III",
1212
"organisations": [
1313
{
1414
"id": "https://ld.admin.ch/ou/10009470",
1515
"name": {
16-
"de": "Informatik Service Center ISC-EJPD",
17-
"fr": "Centre de services informatiques CSI-DFJP",
18-
"it": "Centro servizi informatici CSI-DFGP",
19-
"en": "Informatik Service Center ISC-EJPD"
16+
"de": "Informatik Service Center",
17+
"fr": "Centre de services informatiques",
18+
"it": "Centro servizi informatici",
19+
"en": "Informatik Service Center"
20+
},
21+
"alternativeName": {
22+
"de": "ISC-EJPD",
23+
"fr": "CSI-DFJP",
24+
"it": "CSI-DFGP",
25+
"en": "ISC-EJPD"
2026
}
2127
}
2228
]
2329
},
2430
{
2531
"id": "https://ld.admin.ch/department/IV",
26-
"organisations": [ ]
32+
"organisations": []
2733
},
2834
{
2935
"id": "https://ld.admin.ch/department/V",
3036
"organisations": [
3137
{
3238
"id": "https://ld.admin.ch/ou/20048227",
3339
"name": {
34-
"de": "Digitale Verwaltung Schweiz DVS",
35-
"fr": "Administration numérique suisse ANS",
36-
"it": "Amministrazione digitale Svizzera ADS",
37-
"en": "Digitale Verwaltung Schweiz DVS"
40+
"de": "Digitale Verwaltung Schweiz",
41+
"fr": "Administration numérique suisse",
42+
"it": "Amministrazione digitale Svizzera",
43+
"en": "Digitale Verwaltung Schweiz"
44+
},
45+
"alternativeName": {
46+
"de": "DVS",
47+
"fr": "ANS",
48+
"it": "ADS",
49+
"en": "DVS"
3850
}
3951
},
4052
{
4153
"id": "https://ld.admin.ch/ou/10001962",
4254
"name": {
43-
"de": "Eidgenössische Ausgleichskasse EAK",
44-
"fr": "Caisse fédérale de compensation CFC",
45-
"it": "Cassa federale di compensazione CFC",
46-
"en": "Eidgenössische Ausgleichskasse EAK"
55+
"de": "Eidgenössische Ausgleichskasse",
56+
"fr": "Caisse fédérale de compensation",
57+
"it": "Cassa federale di compensazione",
58+
"en": "Eidgenössische Ausgleichskasse"
59+
},
60+
"alternativeName": {
61+
"de": "EAK",
62+
"fr": "CFC",
63+
"it": "CFC",
64+
"en": "EAK"
4765
}
4866
},
4967
{
5068
"id": "https://ld.admin.ch/ou/10001950",
5169
"name": {
52-
"de": "Zentrale Ausgleichsstelle ZAS",
53-
"fr": "Centrale de compensation CdC",
54-
"it": "Ufficio centrale di compensazione UCC",
55-
"en": "Zentrale Ausgleichsstelle ZAS"
70+
"de": "Zentrale Ausgleichsstelle",
71+
"fr": "Centrale de compensation",
72+
"it": "Ufficio centrale di compensazione",
73+
"en": "Zentrale Ausgleichsstelle"
74+
},
75+
"alternativeName": {
76+
"de": "ZAS",
77+
"fr": "CdC",
78+
"it": "UCC",
79+
"en": "ZAS"
5680
}
5781
},
5882
{
@@ -62,6 +86,12 @@
6286
"fr": "Monnaie fédérale Swissmint",
6387
"it": "Zecca federale Swissmint",
6488
"en": "Eidgenössische Münzstätte Swissmint"
89+
},
90+
"alternativeName": {
91+
"de": "SMT",
92+
"fr": "SMT",
93+
"it": "SMT",
94+
"en": "SMT"
6595
}
6696
}
6797
]
@@ -72,14 +102,20 @@
72102
{
73103
"id": "https://ld.admin.ch/ou/10008676",
74104
"name": {
75-
"de": "Wettbewerbskommission WEKO",
76-
"fr": "Commission de la concurrence COMCO",
77-
"it": "Commissione della concorrenza COMCO",
78-
"en": "Wettbewerbskommission WEKO"
105+
"de": "Wettbewerbskommission",
106+
"fr": "Commission de la concurrence",
107+
"it": "Commissione della concorrenza",
108+
"en": "Wettbewerbskommission"
109+
},
110+
"alternativeName": {
111+
"de": "WEKO",
112+
"fr": "COMCO",
113+
"it": "COMCO",
114+
"en": "WEKO"
79115
}
80116
},
81117
{
82-
"id": "hhttps://ld.admin.ch/ou/10002660",
118+
"id": "https://ld.admin.ch/ou/10002660",
83119
"name": {
84120
"de": "Büro für Konsumentenfragen",
85121
"fr": "Bureau de la consommation",
@@ -90,13 +126,19 @@
90126
{
91127
"id": "https://ld.admin.ch/ou/10009853",
92128
"name": {
93-
"de": "Information Service Center WBF ISCeco",
129+
"de": "Information Service Center WBF",
94130
"fr": "Centre de services informatiques DEFR",
95131
"it": "Informatica Centro Servizi DEFR",
96-
"en": "Information Service Center WBF ISCeco"
132+
"en": "Information Service Center WBF"
133+
},
134+
"alternativeName": {
135+
"de": "ISCeco",
136+
"fr": "L'ISCeco",
137+
"it": "ISCeco",
138+
"en": "ISCeco"
97139
}
98140
},
99-
{
141+
{
100142
"id": "https://ld.admin.ch/ou/10003634",
101143
"name": {
102144
"de": "Agroscope",
@@ -109,10 +151,10 @@
109151
},
110152
{
111153
"id": "https://ld.admin.ch/department/VII",
112-
"organisations": [ ]
154+
"organisations": []
113155
},
114156
{
115157
"id": "https://ld.admin.ch/FCh",
116-
"organisations": [ ]
158+
"organisations": []
117159
}
118-
]
160+
]

src/app/data/generateOrganisations.ts

Lines changed: 41 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import * as fs from 'fs';
2-
import * as path from 'path';
3-
import { fileURLToPath } from 'url';
1+
import * as fs from "fs";
2+
import * as path from "path";
3+
import { fileURLToPath } from "url";
44

55
const __filename = fileURLToPath(import.meta.url);
66
const __dirname = path.dirname(__filename);
@@ -24,6 +24,10 @@ interface OfficeBinding {
2424
nameFr: SPARQLBinding;
2525
nameIt: SPARQLBinding;
2626
nameEn?: SPARQLBinding;
27+
altNameDe?: SPARQLBinding;
28+
altNameFr?: SPARQLBinding;
29+
altNameIt?: SPARQLBinding;
30+
altNameEn?: SPARQLBinding;
2731
}
2832

2933
interface SPARQLResult {
@@ -42,6 +46,7 @@ interface MultilingualName {
4246
interface Organisation {
4347
id: string;
4448
name: MultilingualName;
49+
alternativeName?: MultilingualName;
4550
}
4651

4752
interface Department {
@@ -117,8 +122,18 @@ function generateOrganisations(): void {
117122
fr: office.nameFr.value,
118123
it: office.nameIt.value,
119124
en: office.nameEn?.value || '',
120-
}
121-
}))
125+
},
126+
...((office.altNameDe?.value?.trim() || office.altNameFr?.value?.trim() || office.altNameIt?.value?.trim() || office.altNameEn?.value?.trim())
127+
? {
128+
alternativeName: {
129+
de: office.altNameDe?.value || '',
130+
fr: office.altNameFr?.value || '',
131+
it: office.altNameIt?.value || '',
132+
en: office.altNameEn?.value || '',
133+
},
134+
}
135+
: {}),
136+
})),
122137
};
123138

124139
departments.push(dept);
@@ -141,15 +156,27 @@ function generateOrganisations(): void {
141156
it: binding.altNameDepIt.value,
142157
en: binding.altNameDepEn?.value,
143158
},
144-
organisations: [{
145-
id: deptId,
146-
name: {
147-
de: binding.nameDepDe.value,
148-
fr: binding.nameDepFr.value,
149-
it: binding.nameDepIt.value,
150-
en: binding.nameDepEn?.value || '',
151-
}
152-
}]
159+
organisations: [
160+
{
161+
id: deptId,
162+
name: {
163+
de: binding.nameDepDe.value,
164+
fr: binding.nameDepFr.value,
165+
it: binding.nameDepIt.value,
166+
en: binding.nameDepEn?.value || '',
167+
},
168+
...((binding.altNameDe?.value?.trim() || binding.altNameFr?.value?.trim() || binding.altNameIt?.value?.trim() || binding.altNameEn?.value?.trim())
169+
? {
170+
alternativeName: {
171+
de: binding.altNameDe?.value || '',
172+
fr: binding.altNameFr?.value || '',
173+
it: binding.altNameIt?.value || '',
174+
en: binding.altNameEn?.value || '',
175+
},
176+
}
177+
: {}),
178+
},
179+
],
153180
};
154181

155182
departments.push(dept);

0 commit comments

Comments
 (0)