geonetwork-ui 2.10.0-dev.25c2dd4c0 → 2.10.0-dev.270411d14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/geonetwork-ui.mjs +270 -208
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/index.d.ts +21 -9
- package/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +44 -30
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +46 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +0 -5
- package/src/libs/common/domain/src/lib/model/user/group.model.ts +8 -0
- package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +2 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-topics/form-field-topics.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/fields.config.ts +60 -47
- package/src/libs/ui/elements/src/lib/contact-details/contact-details.component.html +1 -1
- package/src/libs/ui/elements/src/lib/contact-pill/contact-pill.component.html +7 -3
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.ts +4 -0
- package/tailwind.base.css +6 -0
- package/translations/de.json +19 -19
- package/translations/en.json +19 -19
- package/translations/es.json +19 -19
- package/translations/fr.json +19 -19
- package/translations/it.json +19 -19
- package/translations/nl.json +19 -19
- package/translations/pt.json +19 -19
- package/translations/sk.json +19 -19
|
@@ -385,38 +385,52 @@ export class Gn4Repository implements RecordsRepositoryInterface {
|
|
|
385
385
|
openRecordForDuplication(
|
|
386
386
|
uniqueIdentifier: string
|
|
387
387
|
): Observable<[CatalogRecord, string, true] | null> {
|
|
388
|
-
return this.
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
388
|
+
return this.platformService.getUserPermissionsByGroup().pipe(
|
|
389
|
+
map((permissions) => {
|
|
390
|
+
const groupId =
|
|
391
|
+
permissions.find((p) => p.canApprove)?.groupId?.toString() ??
|
|
392
|
+
permissions.find((p) => p.canEdit)?.groupId?.toString()
|
|
393
|
+
if (!groupId)
|
|
394
|
+
throw new Error(
|
|
395
|
+
'Current user has no writable group to duplicate into'
|
|
396
|
+
)
|
|
397
|
+
return groupId
|
|
398
|
+
}),
|
|
399
|
+
switchMap((groupId) =>
|
|
400
|
+
this.gn4RecordsApi
|
|
401
|
+
.create(
|
|
402
|
+
uniqueIdentifier,
|
|
403
|
+
groupId,
|
|
404
|
+
'METADATA',
|
|
405
|
+
'',
|
|
406
|
+
false,
|
|
407
|
+
undefined,
|
|
408
|
+
true,
|
|
409
|
+
false,
|
|
410
|
+
undefined,
|
|
411
|
+
'body',
|
|
412
|
+
false,
|
|
413
|
+
{
|
|
414
|
+
httpHeaderAccept: 'application/json',
|
|
415
|
+
httpContentTypeSelected: 'application/json;charset=UTF-8',
|
|
416
|
+
}
|
|
417
|
+
)
|
|
418
|
+
.pipe(
|
|
419
|
+
switchMap((uniqueIdentifier) => {
|
|
420
|
+
return this.getRecordAsXml(uniqueIdentifier)
|
|
421
|
+
}),
|
|
422
|
+
switchMap((xml) => {
|
|
423
|
+
return from(
|
|
424
|
+
findConverterForDocument(xml)
|
|
425
|
+
.readRecord(xml)
|
|
426
|
+
.then((record) => {
|
|
427
|
+
return [record, xml, true] as [CatalogRecord, string, true]
|
|
428
|
+
})
|
|
429
|
+
)
|
|
430
|
+
})
|
|
417
431
|
)
|
|
418
|
-
})
|
|
419
432
|
)
|
|
433
|
+
)
|
|
420
434
|
}
|
|
421
435
|
|
|
422
436
|
saveRecord(
|
|
@@ -12,11 +12,13 @@ import {
|
|
|
12
12
|
} from '../../../../../../../libs/common/domain/src/lib/model/record'
|
|
13
13
|
import { KeywordType } from '../../../../../../../libs/common/domain/src/lib/model/thesaurus'
|
|
14
14
|
import { UserModel } from '../../../../../../../libs/common/domain/src/lib/model/user/user.model'
|
|
15
|
+
import { GroupModel } from '../../../../../../../libs/common/domain/src/lib/model/user/group.model'
|
|
15
16
|
import {
|
|
16
17
|
PlatformServiceInterface,
|
|
17
18
|
UploadEvent,
|
|
18
19
|
} from '../../../../../../../libs/common/domain/src/lib/platform.service.interface'
|
|
19
20
|
import {
|
|
21
|
+
GroupsApiService,
|
|
20
22
|
MeApiService,
|
|
21
23
|
RecordsApiService,
|
|
22
24
|
RegistriesApiService,
|
|
@@ -57,6 +59,7 @@ export const DISABLE_AUTH = new InjectionToken<boolean>('gnDisableAuth', {
|
|
|
57
59
|
export class Gn4PlatformService implements PlatformServiceInterface {
|
|
58
60
|
private meApi = inject(MeApiService)
|
|
59
61
|
private usersApi = inject(UsersApiService)
|
|
62
|
+
private groupsApi = inject(GroupsApiService)
|
|
60
63
|
private mapper = inject(Gn4PlatformMapper)
|
|
61
64
|
private toolsApiService = inject(ToolsApiService)
|
|
62
65
|
private registriesApiService = inject(RegistriesApiService)
|
|
@@ -155,6 +158,49 @@ export class Gn4PlatformService implements PlatformServiceInterface {
|
|
|
155
158
|
return this.users$
|
|
156
159
|
}
|
|
157
160
|
|
|
161
|
+
getUserPermissionsByGroup(): Observable<GroupModel[]> {
|
|
162
|
+
if (this.disableAuth) return of([])
|
|
163
|
+
return combineLatest([this.meApi.getMe(), this.groupsApi.getGroups()]).pipe(
|
|
164
|
+
map(([meResponse, groups]) => {
|
|
165
|
+
if (!meResponse) return []
|
|
166
|
+
if (meResponse.admin) {
|
|
167
|
+
return groups.map((group) => ({
|
|
168
|
+
groupId: group.id,
|
|
169
|
+
groupName: group.name,
|
|
170
|
+
isMember: true,
|
|
171
|
+
canEdit: true,
|
|
172
|
+
canApprove: true,
|
|
173
|
+
canAdministrate: true,
|
|
174
|
+
}))
|
|
175
|
+
}
|
|
176
|
+
const reviewerIds = meResponse.groupsWithReviewer ?? []
|
|
177
|
+
const editorIds = meResponse.groupsWithEditor ?? []
|
|
178
|
+
const memberIds = meResponse.groupsWithRegisteredUser ?? []
|
|
179
|
+
const adminIds = meResponse.groupsWithUserAdmin ?? []
|
|
180
|
+
const groupsById = new Map(groups.map((g) => [g.id, g]))
|
|
181
|
+
return [
|
|
182
|
+
...new Set([
|
|
183
|
+
...reviewerIds,
|
|
184
|
+
...editorIds,
|
|
185
|
+
...groups.map((g) => g.id),
|
|
186
|
+
]),
|
|
187
|
+
]
|
|
188
|
+
.filter((id) => groupsById.has(id))
|
|
189
|
+
.map((id) => {
|
|
190
|
+
const group = groupsById.get(id)
|
|
191
|
+
return {
|
|
192
|
+
groupId: group.id,
|
|
193
|
+
groupName: group.name,
|
|
194
|
+
isMember: memberIds.includes(id),
|
|
195
|
+
canEdit: editorIds.includes(id),
|
|
196
|
+
canApprove: reviewerIds.includes(id),
|
|
197
|
+
canAdministrate: adminIds.includes(id),
|
|
198
|
+
}
|
|
199
|
+
})
|
|
200
|
+
})
|
|
201
|
+
)
|
|
202
|
+
}
|
|
203
|
+
|
|
158
204
|
translateKey(key: string): Observable<string> {
|
|
159
205
|
// if the key is a URI, use the registries API to look for the translation
|
|
160
206
|
if (key.match(/^https?:\/\//)) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Observable } from 'rxjs'
|
|
2
2
|
import type { UserModel } from './model/user/user.model'
|
|
3
|
+
import type { GroupModel } from './model/user/group.model'
|
|
3
4
|
import type { Organization } from './model/record/organization.model'
|
|
4
5
|
import { CatalogRecord, Keyword, UserFeedback } from './model/record'
|
|
5
6
|
import { KeywordType } from './model/thesaurus'
|
|
@@ -28,6 +29,7 @@ export abstract class PlatformServiceInterface {
|
|
|
28
29
|
abstract getMe(): Observable<UserModel>
|
|
29
30
|
abstract isAnonymous(): Observable<boolean>
|
|
30
31
|
abstract getUsers(): Observable<UserModel[]>
|
|
32
|
+
abstract getUserPermissionsByGroup(): Observable<GroupModel[]>
|
|
31
33
|
abstract getUsersByOrganization(
|
|
32
34
|
organisation: Organization
|
|
33
35
|
): Observable<UserModel[]>
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
DropdownMultiselectComponent,
|
|
6
6
|
} from '../../../../../../../../../libs/ui/inputs/src'
|
|
7
7
|
import { TranslatePipe, TranslateService } from '@ngx-translate/core'
|
|
8
|
-
import {
|
|
8
|
+
import { ISO_TOPICS } from '../../../../fields.config'
|
|
9
9
|
|
|
10
10
|
@Component({
|
|
11
11
|
selector: 'gn-ui-form-field-topics',
|
|
@@ -22,7 +22,7 @@ export class FormFieldTopicsComponent {
|
|
|
22
22
|
this.topics = topics
|
|
23
23
|
}
|
|
24
24
|
@Output() valueChange: EventEmitter<string[]> = new EventEmitter()
|
|
25
|
-
availableTopics =
|
|
25
|
+
availableTopics = ISO_TOPICS.map((topic) => {
|
|
26
26
|
return {
|
|
27
27
|
label: this.translateService.instant(topic.label),
|
|
28
28
|
value: topic.value,
|
|
@@ -4,10 +4,12 @@ import {
|
|
|
4
4
|
EditorField,
|
|
5
5
|
EditorSection,
|
|
6
6
|
} from './models/editor-config.model'
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
import { Keyword } from '../../../../../libs/common/domain/src/lib/model/record'
|
|
8
|
+
|
|
9
|
+
export interface ISOTopic {
|
|
10
|
+
value: string
|
|
11
|
+
label: string
|
|
12
|
+
}
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
15
|
* This file contains the configuration of the fields that will be displayed in the editor.
|
|
@@ -359,75 +361,86 @@ export const SPATIAL_SCOPES: Keyword[] = [
|
|
|
359
361
|
]
|
|
360
362
|
|
|
361
363
|
/************************************************************
|
|
362
|
-
***************
|
|
364
|
+
*************** ISO TOPICS **************
|
|
363
365
|
************************************************************
|
|
364
366
|
*/
|
|
365
367
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
+
// label keys mirror the ISO MD_TopicCategoryCode value for consistency
|
|
369
|
+
// TODO: correctly handle code lists; for instance, this code list is specific to ISO 19139
|
|
370
|
+
export const ISO_TOPICS: ISOTopic[] = [
|
|
371
|
+
{ value: 'biota', label: marker('editor.record.form.topics.iso.biota') },
|
|
368
372
|
{
|
|
369
373
|
value: 'boundaries',
|
|
370
|
-
label: 'editor.record.form.topics.
|
|
374
|
+
label: marker('editor.record.form.topics.iso.boundaries'),
|
|
371
375
|
},
|
|
372
376
|
{
|
|
373
377
|
value: 'climatologyMeteorologyAtmosphere',
|
|
374
|
-
label:
|
|
378
|
+
label: marker(
|
|
379
|
+
'editor.record.form.topics.iso.climatologyMeteorologyAtmosphere'
|
|
380
|
+
),
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
value: 'economy',
|
|
384
|
+
label: marker('editor.record.form.topics.iso.economy'),
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
value: 'elevation',
|
|
388
|
+
label: marker('editor.record.form.topics.iso.elevation'),
|
|
375
389
|
},
|
|
376
|
-
{ value: 'economy', label: 'editor.record.form.topics.inspire.economy' },
|
|
377
|
-
{ value: 'elevation', label: 'editor.record.form.topics.inspire.elevation' },
|
|
378
390
|
{
|
|
379
391
|
value: 'environment',
|
|
380
|
-
label: 'editor.record.form.topics.
|
|
392
|
+
label: marker('editor.record.form.topics.iso.environment'),
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
value: 'farming',
|
|
396
|
+
label: marker('editor.record.form.topics.iso.farming'),
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
value: 'geoscientificInformation',
|
|
400
|
+
label: marker('editor.record.form.topics.iso.geoscientificInformation'),
|
|
381
401
|
},
|
|
382
|
-
{ value: 'farming', label: 'editor.record.form.topics.inspire.farming' },
|
|
383
402
|
{
|
|
384
|
-
value: '
|
|
385
|
-
label: 'editor.record.form.topics.
|
|
403
|
+
value: 'health',
|
|
404
|
+
label: marker('editor.record.form.topics.iso.health'),
|
|
386
405
|
},
|
|
387
|
-
{ value: 'health', label: 'editor.record.form.topics.inspire.health' },
|
|
388
406
|
{
|
|
389
407
|
value: 'imageryBaseMapsEarthCover',
|
|
390
|
-
label: 'editor.record.form.topics.
|
|
408
|
+
label: marker('editor.record.form.topics.iso.imageryBaseMapsEarthCover'),
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
value: 'inlandWaters',
|
|
412
|
+
label: marker('editor.record.form.topics.iso.inlandWaters'),
|
|
391
413
|
},
|
|
392
|
-
{ value: 'inlandWaters', label: 'editor.record.form.topics.inspire.waters' },
|
|
393
414
|
{
|
|
394
415
|
value: 'intelligenceMilitary',
|
|
395
|
-
label: 'editor.record.form.topics.
|
|
416
|
+
label: marker('editor.record.form.topics.iso.intelligenceMilitary'),
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
value: 'location',
|
|
420
|
+
label: marker('editor.record.form.topics.iso.location'),
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
value: 'oceans',
|
|
424
|
+
label: marker('editor.record.form.topics.iso.oceans'),
|
|
396
425
|
},
|
|
397
|
-
{ value: 'Location', label: 'editor.record.form.topics.inspire.location' },
|
|
398
|
-
{ value: 'Oceans', label: 'editor.record.form.topics.inspire.oceans' },
|
|
399
426
|
{
|
|
400
427
|
value: 'planningCadastre',
|
|
401
|
-
label: 'editor.record.form.topics.
|
|
428
|
+
label: marker('editor.record.form.topics.iso.planningCadastre'),
|
|
402
429
|
},
|
|
403
|
-
{ value: 'Society', label: 'editor.record.form.topics.inspire.society' },
|
|
404
|
-
{ value: 'Structure', label: 'editor.record.form.topics.inspire.structure' },
|
|
405
430
|
{
|
|
406
|
-
value: '
|
|
407
|
-
label: 'editor.record.form.topics.
|
|
431
|
+
value: 'society',
|
|
432
|
+
label: marker('editor.record.form.topics.iso.society'),
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
value: 'structure',
|
|
436
|
+
label: marker('editor.record.form.topics.iso.structure'),
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
value: 'transportation',
|
|
440
|
+
label: marker('editor.record.form.topics.iso.transportation'),
|
|
408
441
|
},
|
|
409
442
|
{
|
|
410
443
|
value: 'utilitiesCommunication',
|
|
411
|
-
label: 'editor.record.form.topics.
|
|
444
|
+
label: marker('editor.record.form.topics.iso.utilitiesCommunication'),
|
|
412
445
|
},
|
|
413
446
|
]
|
|
414
|
-
|
|
415
|
-
marker('editor.record.form.topics.inspire.biota')
|
|
416
|
-
marker('editor.record.form.topics.inspire.boundaries')
|
|
417
|
-
marker('editor.record.form.topics.inspire.climatology')
|
|
418
|
-
marker('editor.record.form.topics.inspire.economy')
|
|
419
|
-
marker('editor.record.form.topics.inspire.elevation')
|
|
420
|
-
marker('editor.record.form.topics.inspire.environnement')
|
|
421
|
-
marker('editor.record.form.topics.inspire.farming')
|
|
422
|
-
marker('editor.record.form.topics.inspire.geoscientific')
|
|
423
|
-
marker('editor.record.form.topics.inspire.health')
|
|
424
|
-
marker('editor.record.form.topics.inspire.imagery')
|
|
425
|
-
marker('editor.record.form.topics.inspire.intelligence')
|
|
426
|
-
marker('editor.record.form.topics.inspire.location')
|
|
427
|
-
marker('editor.record.form.topics.inspire.oceans')
|
|
428
|
-
marker('editor.record.form.topics.inspire.planning')
|
|
429
|
-
marker('editor.record.form.topics.inspire.society')
|
|
430
|
-
marker('editor.record.form.topics.inspire.structure')
|
|
431
|
-
marker('editor.record.form.topics.inspire.transportation')
|
|
432
|
-
marker('editor.record.form.topics.inspire.utilities')
|
|
433
|
-
marker('editor.record.form.topics.inspire.waters')
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<gn-ui-button
|
|
2
|
-
[type]="overlayOpen ? '
|
|
2
|
+
[type]="overlayOpen ? 'gray-light' : 'primary-light'"
|
|
3
3
|
extraClass="group w-full min-h-12 gap-3 justify-between py-2 pl-5 pr-4 rounded"
|
|
4
4
|
data-test="contact-pill"
|
|
5
5
|
(buttonClick)="toggleOverlay()"
|
|
@@ -7,12 +7,16 @@
|
|
|
7
7
|
#overlayOrigin="cdkOverlayOrigin"
|
|
8
8
|
>
|
|
9
9
|
<span
|
|
10
|
-
class="font-title font-medium text-base leading-tight truncate
|
|
10
|
+
class="font-title font-medium text-base leading-tight truncate"
|
|
11
|
+
[class]="!overlayOpen ? 'text-primary-black group-hover:text-white' : ''"
|
|
11
12
|
[title]="displayName"
|
|
12
13
|
>{{ displayName }}</span
|
|
13
14
|
>
|
|
14
15
|
<div
|
|
15
|
-
class="gn-ui-card-icon items-center justify-center w-10 h-8
|
|
16
|
+
class="gn-ui-card-icon items-center justify-center w-10 h-8"
|
|
17
|
+
[class]="
|
|
18
|
+
!overlayOpen ? 'group-hover:border-white group-hover:text-white' : ''
|
|
19
|
+
"
|
|
16
20
|
>
|
|
17
21
|
@if (overlayOpen) {
|
|
18
22
|
<ng-icon class="!w-6 !h-6 !text-[24px]" name="matClose"></ng-icon>
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
>
|
|
114
114
|
<div class="flex flex-col gap-1 pt-3 pb-4">
|
|
115
115
|
@for (group of contactGroups; track group.role) {
|
|
116
|
-
<div class="flex flex-col gap-1 rounded
|
|
116
|
+
<div class="flex flex-col gap-1 rounded py-4 px-2">
|
|
117
117
|
<p class="text-xs font-normal text-black">
|
|
118
118
|
{{ group.roleLabel | translate }}
|
|
119
119
|
</p>
|
|
@@ -25,6 +25,7 @@ export class ButtonComponent {
|
|
|
25
25
|
| 'outline'
|
|
26
26
|
| 'light'
|
|
27
27
|
| 'gray'
|
|
28
|
+
| 'gray-light'
|
|
28
29
|
| 'black'
|
|
29
30
|
| 'primary-light'
|
|
30
31
|
) {
|
|
@@ -45,6 +46,9 @@ export class ButtonComponent {
|
|
|
45
46
|
case 'gray':
|
|
46
47
|
this.btnClass = 'gn-ui-btn-gray'
|
|
47
48
|
break
|
|
49
|
+
case 'gray-light':
|
|
50
|
+
this.btnClass = 'gn-ui-btn-gray-light'
|
|
51
|
+
break
|
|
48
52
|
case 'black':
|
|
49
53
|
this.btnClass = 'gn-ui-btn-black'
|
|
50
54
|
break
|
package/tailwind.base.css
CHANGED
|
@@ -119,6 +119,12 @@
|
|
|
119
119
|
border-gray-100 focus:ring-4 focus:ring-gray-50;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
.gn-ui-btn-gray-light {
|
|
123
|
+
@apply gn-ui-btn text-black
|
|
124
|
+
bg-gray-50 hover:bg-gray-100 focus:bg-gray-100 active:bg-gray-200
|
|
125
|
+
border-gray-50 focus:ring-4 focus:ring-gray-100;
|
|
126
|
+
}
|
|
127
|
+
|
|
122
128
|
.gn-ui-btn-black {
|
|
123
129
|
@apply gn-ui-btn text-white
|
|
124
130
|
bg-black hover:bg-gray-950 focus:bg-gray-950 active:bg-gray-900
|
package/translations/de.json
CHANGED
|
@@ -243,25 +243,25 @@
|
|
|
243
243
|
"editor.record.form.temporalExtents.addRange": "Zeitraum",
|
|
244
244
|
"editor.record.form.temporalExtents.date": "Datum",
|
|
245
245
|
"editor.record.form.temporalExtents.range": "Datumsbereich",
|
|
246
|
-
"editor.record.form.topics.
|
|
247
|
-
"editor.record.form.topics.
|
|
248
|
-
"editor.record.form.topics.
|
|
249
|
-
"editor.record.form.topics.
|
|
250
|
-
"editor.record.form.topics.
|
|
251
|
-
"editor.record.form.topics.
|
|
252
|
-
"editor.record.form.topics.
|
|
253
|
-
"editor.record.form.topics.
|
|
254
|
-
"editor.record.form.topics.
|
|
255
|
-
"editor.record.form.topics.
|
|
256
|
-
"editor.record.form.topics.
|
|
257
|
-
"editor.record.form.topics.
|
|
258
|
-
"editor.record.form.topics.
|
|
259
|
-
"editor.record.form.topics.
|
|
260
|
-
"editor.record.form.topics.
|
|
261
|
-
"editor.record.form.topics.
|
|
262
|
-
"editor.record.form.topics.
|
|
263
|
-
"editor.record.form.topics.
|
|
264
|
-
"editor.record.form.topics.
|
|
246
|
+
"editor.record.form.topics.iso.biota": "Biologie",
|
|
247
|
+
"editor.record.form.topics.iso.boundaries": "Grenzen",
|
|
248
|
+
"editor.record.form.topics.iso.climatologyMeteorologyAtmosphere": "Klimatologie/Meteorologie/Atmosphäre",
|
|
249
|
+
"editor.record.form.topics.iso.economy": "Wirtschaft",
|
|
250
|
+
"editor.record.form.topics.iso.elevation": "Höhenangaben",
|
|
251
|
+
"editor.record.form.topics.iso.environment": "Umwelt",
|
|
252
|
+
"editor.record.form.topics.iso.farming": "Landwirtschaft",
|
|
253
|
+
"editor.record.form.topics.iso.geoscientificInformation": "Geowissenschaften",
|
|
254
|
+
"editor.record.form.topics.iso.health": "Gesundheitswesen",
|
|
255
|
+
"editor.record.form.topics.iso.imageryBaseMapsEarthCover": "Bilddaten/Basiskarten/Landbedeckung",
|
|
256
|
+
"editor.record.form.topics.iso.intelligenceMilitary": "Aufklärung/Militär",
|
|
257
|
+
"editor.record.form.topics.iso.location": "Ortsangaben",
|
|
258
|
+
"editor.record.form.topics.iso.oceans": "Meere",
|
|
259
|
+
"editor.record.form.topics.iso.planningCadastre": "Planungsunterlagen/Kataster",
|
|
260
|
+
"editor.record.form.topics.iso.society": "Gesellschaft",
|
|
261
|
+
"editor.record.form.topics.iso.structure": "Bauwerke",
|
|
262
|
+
"editor.record.form.topics.iso.transportation": "Verkehrswesen",
|
|
263
|
+
"editor.record.form.topics.iso.utilitiesCommunication": "Ver- und Entsorgung/Nachrichtenwesen",
|
|
264
|
+
"editor.record.form.topics.iso.inlandWaters": "Binnengewässer",
|
|
265
265
|
"editor.record.form.topics.placeholder": "Ein oder mehrere Themen auswählen",
|
|
266
266
|
"editor.record.form.updateFrequency.planned": "Dieses Dataset wird regelmäßig aktualisiert.",
|
|
267
267
|
"editor.record.importFromExternalFile.failure.body": "Beim Importieren des Datensatzes ist ein Fehler aufgetreten:",
|
package/translations/en.json
CHANGED
|
@@ -243,25 +243,25 @@
|
|
|
243
243
|
"editor.record.form.temporalExtents.addRange": "Time period",
|
|
244
244
|
"editor.record.form.temporalExtents.date": "Date",
|
|
245
245
|
"editor.record.form.temporalExtents.range": "Date range",
|
|
246
|
-
"editor.record.form.topics.
|
|
247
|
-
"editor.record.form.topics.
|
|
248
|
-
"editor.record.form.topics.
|
|
249
|
-
"editor.record.form.topics.
|
|
250
|
-
"editor.record.form.topics.
|
|
251
|
-
"editor.record.form.topics.
|
|
252
|
-
"editor.record.form.topics.
|
|
253
|
-
"editor.record.form.topics.
|
|
254
|
-
"editor.record.form.topics.
|
|
255
|
-
"editor.record.form.topics.
|
|
256
|
-
"editor.record.form.topics.
|
|
257
|
-
"editor.record.form.topics.
|
|
258
|
-
"editor.record.form.topics.
|
|
259
|
-
"editor.record.form.topics.
|
|
260
|
-
"editor.record.form.topics.
|
|
261
|
-
"editor.record.form.topics.
|
|
262
|
-
"editor.record.form.topics.
|
|
263
|
-
"editor.record.form.topics.
|
|
264
|
-
"editor.record.form.topics.
|
|
246
|
+
"editor.record.form.topics.iso.biota": "Biota",
|
|
247
|
+
"editor.record.form.topics.iso.boundaries": "Boundaries",
|
|
248
|
+
"editor.record.form.topics.iso.climatologyMeteorologyAtmosphere": "Climatology / Meteorology / Atmosphere",
|
|
249
|
+
"editor.record.form.topics.iso.economy": "Economy",
|
|
250
|
+
"editor.record.form.topics.iso.elevation": "Elevation",
|
|
251
|
+
"editor.record.form.topics.iso.environment": "Environnement",
|
|
252
|
+
"editor.record.form.topics.iso.farming": "Farming",
|
|
253
|
+
"editor.record.form.topics.iso.geoscientificInformation": "Geoscientific Information",
|
|
254
|
+
"editor.record.form.topics.iso.health": "Health",
|
|
255
|
+
"editor.record.form.topics.iso.imageryBaseMapsEarthCover": "Imagery / Base Maps / Earth Cover",
|
|
256
|
+
"editor.record.form.topics.iso.intelligenceMilitary": "Intelligence / Military",
|
|
257
|
+
"editor.record.form.topics.iso.location": "Location",
|
|
258
|
+
"editor.record.form.topics.iso.oceans": "Oceans",
|
|
259
|
+
"editor.record.form.topics.iso.planningCadastre": "Planning / Cadastre",
|
|
260
|
+
"editor.record.form.topics.iso.society": "Society",
|
|
261
|
+
"editor.record.form.topics.iso.structure": "Structure",
|
|
262
|
+
"editor.record.form.topics.iso.transportation": "Transportation",
|
|
263
|
+
"editor.record.form.topics.iso.utilitiesCommunication": "Utilities / Communication",
|
|
264
|
+
"editor.record.form.topics.iso.inlandWaters": "Inland Waters",
|
|
265
265
|
"editor.record.form.topics.placeholder": "Select one or several topics",
|
|
266
266
|
"editor.record.form.updateFrequency.planned": "This dataset is updated regularly",
|
|
267
267
|
"editor.record.importFromExternalFile.failure.body": "Failure",
|
package/translations/es.json
CHANGED
|
@@ -243,25 +243,25 @@
|
|
|
243
243
|
"editor.record.form.temporalExtents.addRange": "",
|
|
244
244
|
"editor.record.form.temporalExtents.date": "",
|
|
245
245
|
"editor.record.form.temporalExtents.range": "",
|
|
246
|
-
"editor.record.form.topics.
|
|
247
|
-
"editor.record.form.topics.
|
|
248
|
-
"editor.record.form.topics.
|
|
249
|
-
"editor.record.form.topics.
|
|
250
|
-
"editor.record.form.topics.
|
|
251
|
-
"editor.record.form.topics.
|
|
252
|
-
"editor.record.form.topics.
|
|
253
|
-
"editor.record.form.topics.
|
|
254
|
-
"editor.record.form.topics.
|
|
255
|
-
"editor.record.form.topics.
|
|
256
|
-
"editor.record.form.topics.
|
|
257
|
-
"editor.record.form.topics.
|
|
258
|
-
"editor.record.form.topics.
|
|
259
|
-
"editor.record.form.topics.
|
|
260
|
-
"editor.record.form.topics.
|
|
261
|
-
"editor.record.form.topics.
|
|
262
|
-
"editor.record.form.topics.
|
|
263
|
-
"editor.record.form.topics.
|
|
264
|
-
"editor.record.form.topics.
|
|
246
|
+
"editor.record.form.topics.iso.biota": "",
|
|
247
|
+
"editor.record.form.topics.iso.boundaries": "",
|
|
248
|
+
"editor.record.form.topics.iso.climatologyMeteorologyAtmosphere": "",
|
|
249
|
+
"editor.record.form.topics.iso.economy": "",
|
|
250
|
+
"editor.record.form.topics.iso.elevation": "",
|
|
251
|
+
"editor.record.form.topics.iso.environment": "",
|
|
252
|
+
"editor.record.form.topics.iso.farming": "",
|
|
253
|
+
"editor.record.form.topics.iso.geoscientificInformation": "",
|
|
254
|
+
"editor.record.form.topics.iso.health": "",
|
|
255
|
+
"editor.record.form.topics.iso.imageryBaseMapsEarthCover": "",
|
|
256
|
+
"editor.record.form.topics.iso.intelligenceMilitary": "",
|
|
257
|
+
"editor.record.form.topics.iso.location": "",
|
|
258
|
+
"editor.record.form.topics.iso.oceans": "",
|
|
259
|
+
"editor.record.form.topics.iso.planningCadastre": "",
|
|
260
|
+
"editor.record.form.topics.iso.society": "",
|
|
261
|
+
"editor.record.form.topics.iso.structure": "",
|
|
262
|
+
"editor.record.form.topics.iso.transportation": "",
|
|
263
|
+
"editor.record.form.topics.iso.utilitiesCommunication": "",
|
|
264
|
+
"editor.record.form.topics.iso.inlandWaters": "",
|
|
265
265
|
"editor.record.form.topics.placeholder": "",
|
|
266
266
|
"editor.record.form.updateFrequency.planned": "Este conjunto de datos se actualiza regularmente.",
|
|
267
267
|
"editor.record.importFromExternalFile.failure.body": "",
|
package/translations/fr.json
CHANGED
|
@@ -243,25 +243,25 @@
|
|
|
243
243
|
"editor.record.form.temporalExtents.addRange": "Période de temps",
|
|
244
244
|
"editor.record.form.temporalExtents.date": "Date concernée",
|
|
245
245
|
"editor.record.form.temporalExtents.range": "Période concernée",
|
|
246
|
-
"editor.record.form.topics.
|
|
247
|
-
"editor.record.form.topics.
|
|
248
|
-
"editor.record.form.topics.
|
|
249
|
-
"editor.record.form.topics.
|
|
250
|
-
"editor.record.form.topics.
|
|
251
|
-
"editor.record.form.topics.
|
|
252
|
-
"editor.record.form.topics.
|
|
253
|
-
"editor.record.form.topics.
|
|
254
|
-
"editor.record.form.topics.
|
|
255
|
-
"editor.record.form.topics.
|
|
256
|
-
"editor.record.form.topics.
|
|
257
|
-
"editor.record.form.topics.
|
|
258
|
-
"editor.record.form.topics.
|
|
259
|
-
"editor.record.form.topics.
|
|
260
|
-
"editor.record.form.topics.
|
|
261
|
-
"editor.record.form.topics.
|
|
262
|
-
"editor.record.form.topics.
|
|
263
|
-
"editor.record.form.topics.
|
|
264
|
-
"editor.record.form.topics.
|
|
246
|
+
"editor.record.form.topics.iso.biota": "Biote",
|
|
247
|
+
"editor.record.form.topics.iso.boundaries": "Limites",
|
|
248
|
+
"editor.record.form.topics.iso.climatologyMeteorologyAtmosphere": "Climatologie/Météorologie/Atmosphère",
|
|
249
|
+
"editor.record.form.topics.iso.economy": "Économie",
|
|
250
|
+
"editor.record.form.topics.iso.elevation": "Altitude",
|
|
251
|
+
"editor.record.form.topics.iso.environment": "Environnement",
|
|
252
|
+
"editor.record.form.topics.iso.farming": "Agriculture",
|
|
253
|
+
"editor.record.form.topics.iso.geoscientificInformation": "Informations géoscientifiques",
|
|
254
|
+
"editor.record.form.topics.iso.health": "Santé",
|
|
255
|
+
"editor.record.form.topics.iso.imageryBaseMapsEarthCover": "Imagerie/Cartes de base/Occupation des terres",
|
|
256
|
+
"editor.record.form.topics.iso.intelligenceMilitary": "Renseignement/Secteur militaire",
|
|
257
|
+
"editor.record.form.topics.iso.location": "Localisation",
|
|
258
|
+
"editor.record.form.topics.iso.oceans": "Océans",
|
|
259
|
+
"editor.record.form.topics.iso.planningCadastre": "Planification/Cadastre",
|
|
260
|
+
"editor.record.form.topics.iso.society": "Société",
|
|
261
|
+
"editor.record.form.topics.iso.structure": "Structure",
|
|
262
|
+
"editor.record.form.topics.iso.transportation": "Transport",
|
|
263
|
+
"editor.record.form.topics.iso.utilitiesCommunication": "Services d’utilité publique/Communication",
|
|
264
|
+
"editor.record.form.topics.iso.inlandWaters": "Eaux intérieures",
|
|
265
265
|
"editor.record.form.topics.placeholder": "Sélectionnez un ou plusieurs thèmes",
|
|
266
266
|
"editor.record.form.updateFrequency.planned": "Ce jeu de données est mis à jour régulièrement",
|
|
267
267
|
"editor.record.importFromExternalFile.failure.body": "Une erreur est survenue pendant l'import du jeu de données : ",
|