geonetwork-ui 2.10.0-dev.b5836aad7 → 2.10.0-dev.b6696be21

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.
Files changed (98) hide show
  1. package/fesm2022/geonetwork-ui.mjs +1610 -1130
  2. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  3. package/index.d.ts +130 -36
  4. package/index.d.ts.map +1 -1
  5. package/package.json +3 -3
  6. package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +9 -0
  7. package/src/libs/api/metadata-converter/src/lib/fixtures/eu.dcat-ap.records.ts +2 -0
  8. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +1 -0
  9. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.reuse+ongules.ts +7 -0
  10. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.reuse+roilaye.ts +1 -0
  11. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +1 -0
  12. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -0
  13. package/src/libs/api/metadata-converter/src/lib/fixtures/georhena.records.ts +1 -0
  14. package/src/libs/api/metadata-converter/src/lib/fixtures/metadata-for-i18n.records.ts +2 -0
  15. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +1 -0
  16. package/src/libs/api/metadata-converter/src/lib/fixtures/opendataswiss.records.ts +1 -0
  17. package/src/libs/api/metadata-converter/src/lib/fixtures/sextant.records.ts +2 -0
  18. package/src/libs/api/metadata-converter/src/lib/fixtures/vlaanderen.dcat-ap.records.ts +1 -0
  19. package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.reuse.ts +8 -0
  20. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.converter.ts +1 -0
  21. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +7 -0
  22. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +8 -0
  23. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +8 -0
  24. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +11 -0
  25. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +33 -0
  26. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +33 -0
  27. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -0
  28. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +68 -34
  29. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +6 -1
  30. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +46 -0
  31. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +11 -5
  32. package/src/libs/common/domain/src/lib/model/user/group.model.ts +8 -0
  33. package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
  34. package/src/libs/common/domain/src/lib/platform.service.interface.ts +2 -0
  35. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +5 -0
  36. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +6 -0
  37. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +0 -1
  38. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +10 -1
  39. package/src/libs/feature/editor/src/lib/components/contact-details/contact-details-form.component.css +0 -0
  40. package/src/libs/feature/editor/src/lib/components/contact-details/contact-details-form.component.html +67 -0
  41. package/src/libs/feature/editor/src/lib/components/contact-details/contact-details-form.component.ts +39 -0
  42. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +18 -3
  43. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +33 -40
  44. package/src/libs/feature/editor/src/lib/components/record-form/form-field/field-focus.directive.ts +38 -0
  45. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.ts +33 -34
  46. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.html +13 -13
  47. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +18 -4
  48. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +8 -7
  49. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +6 -6
  50. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-single-link-resource/form-field-online-single-link-resource.component.css +0 -0
  51. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-single-link-resource/form-field-online-single-link-resource.component.html +5 -0
  52. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-single-link-resource/form-field-online-single-link-resource.component.ts +89 -0
  53. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-topics/form-field-topics.component.ts +2 -2
  54. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.css +37 -0
  55. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +1 -0
  56. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
  57. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  58. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +59 -3
  59. package/src/libs/feature/editor/src/lib/fields.config.ts +60 -47
  60. package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +4 -0
  61. package/src/libs/feature/editor/src/lib/services/editor.service.ts +1 -1
  62. package/src/libs/feature/notify-reuse/src/index.ts +1 -0
  63. package/src/libs/feature/notify-reuse/src/lib/notify-reuse-form/notify-reuse-form.component.css +0 -0
  64. package/src/libs/feature/notify-reuse/src/lib/notify-reuse-form/notify-reuse-form.component.html +1 -0
  65. package/src/libs/feature/notify-reuse/src/lib/notify-reuse-form/notify-reuse-form.component.ts +21 -0
  66. package/src/libs/ui/elements/src/index.ts +2 -0
  67. package/src/libs/ui/elements/src/lib/contact-details/contact-details.component.html +96 -0
  68. package/src/libs/ui/elements/src/lib/contact-details/contact-details.component.ts +45 -0
  69. package/src/libs/ui/elements/src/lib/contact-pill/contact-pill.component.html +41 -0
  70. package/src/libs/ui/elements/src/lib/contact-pill/contact-pill.component.ts +70 -0
  71. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -1
  72. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +0 -1
  73. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +2 -5
  74. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +0 -4
  75. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +28 -67
  76. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +30 -10
  77. package/src/libs/ui/inputs/src/lib/button/button.component.ts +8 -0
  78. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +2 -2
  79. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +2 -1
  80. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +2 -1
  81. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.ts +11 -10
  82. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +0 -1
  83. package/src/libs/util/app-config/src/lib/app-config.ts +49 -0
  84. package/src/libs/util/app-config/src/lib/model.ts +7 -0
  85. package/src/libs/util/app-config/src/lib/parse-utils.ts +50 -1
  86. package/src/libs/util/shared/src/lib/links/link-utils.ts +1 -1
  87. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +33 -18
  88. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  89. package/src/libs/util/shared/src/lib/utils/user-display.ts +32 -0
  90. package/tailwind.base.css +17 -2
  91. package/translations/de.json +29 -20
  92. package/translations/en.json +29 -20
  93. package/translations/es.json +29 -20
  94. package/translations/fr.json +29 -20
  95. package/translations/it.json +29 -20
  96. package/translations/nl.json +29 -20
  97. package/translations/pt.json +29 -20
  98. package/translations/sk.json +29 -20
@@ -3,27 +3,41 @@ import {
3
3
  RecordKind,
4
4
  } from '../../../../../../libs/common/domain/src/lib/model/record'
5
5
 
6
+ type TValidatorEntry = {
7
+ validator: (metadata: Partial<CatalogRecord>) => boolean
8
+ alias?: string
9
+ }
10
+
6
11
  type TValidatorMapper = {
7
- [key: string]: (metadata: Partial<CatalogRecord>) => boolean
12
+ [key: string]: TValidatorEntry
8
13
  }
9
14
 
10
15
  const ValidatorMapper: TValidatorMapper = {
11
- title: (record) => !!record?.title,
12
- abstract: (record) => !!record?.abstract,
13
- keywords: (record) => (record?.keywords?.length ?? 0) > 0,
14
- legalConstraints: (record) =>
15
- !!(
16
- record?.legalConstraints?.length &&
17
- record.legalConstraints.some((c) => c?.text?.trim().length > 0)
18
- ),
19
- contacts: (record) =>
20
- !!record?.contacts?.[0]?.email &&
21
- record.contacts[0].email !== 'missing@missing.com',
22
- updateFrequency: (record) =>
23
- !!record?.updateFrequency && record.updateFrequency !== 'unknown',
24
- topics: (record) => (record?.topics?.length ?? 0) > 0,
25
- organisation: (record) => !!record?.contacts?.[0]?.organization?.name,
26
- source: (record) => !!record?.extras?.sourcesIdentifiers,
16
+ title: { validator: (record) => !!record?.title },
17
+ abstract: { validator: (record) => !!record?.abstract },
18
+ keywords: { validator: (record) => (record?.keywords?.length ?? 0) > 0 },
19
+ legalConstraints: {
20
+ validator: (record) =>
21
+ !!(
22
+ record?.legalConstraints?.length &&
23
+ record.legalConstraints.some((c) => c?.text?.trim().length > 0)
24
+ ),
25
+ },
26
+ contacts: {
27
+ validator: (record) =>
28
+ !!record?.contacts?.[0]?.email &&
29
+ record.contacts[0].email !== 'missing@missing.com',
30
+ },
31
+ updateFrequency: {
32
+ validator: (record) =>
33
+ !!record?.updateFrequency && record.updateFrequency !== 'unknown',
34
+ },
35
+ topics: { validator: (record) => (record?.topics?.length ?? 0) > 0 },
36
+ organisation: {
37
+ validator: (record) => !!record?.contacts?.[0]?.organization?.name,
38
+ alias: 'contacts',
39
+ },
40
+ source: { validator: (record) => !!record?.extras?.sourcesIdentifiers },
27
41
  } as const
28
42
 
29
43
  export type ValidatorMapperKeys = keyof typeof ValidatorMapper & string
@@ -67,6 +81,7 @@ export function getQualityValidators(
67
81
 
68
82
  return filteredProps.map((name) => ({
69
83
  name,
70
- validator: () => ValidatorMapper[name](record),
84
+ validator: () => ValidatorMapper[name].validator(record),
85
+ alias: ValidatorMapper[name].alias,
71
86
  }))
72
87
  }
@@ -13,3 +13,4 @@ export * from './sort-by'
13
13
  export * from './strip-html'
14
14
  export * from './temporal-extent-union'
15
15
  export * from './url'
16
+ export * from './user-display'
@@ -0,0 +1,32 @@
1
+ import { UserModel } from '../../../../../../libs/common/domain/src/lib/model/user'
2
+ import { Individual } from '../../../../../../libs/common/domain/src/lib/model/record'
3
+
4
+ export function getIndividualDisplayName(individual: Individual): string {
5
+ const nameParts = [individual.firstName, individual.lastName]
6
+ .filter(Boolean)
7
+ .join(' ')
8
+ const orgPart = individual.organization?.name
9
+ ? ` (${individual.organization.name})`
10
+ : ''
11
+ if (nameParts) return `${nameParts}${orgPart}`
12
+ return individual.organization?.name ?? individual.email ?? ''
13
+ }
14
+
15
+ export function getAddressLines(address: string | undefined): string[] {
16
+ return address
17
+ ? address
18
+ .split(',')
19
+ .map((part) => part.trim())
20
+ .filter(Boolean)
21
+ : []
22
+ }
23
+
24
+ export function toIndividual(user: UserModel): Individual {
25
+ return {
26
+ firstName: user.name,
27
+ lastName: user.surname,
28
+ email: user.email,
29
+ role: 'unspecified',
30
+ organization: user.organisation ? { name: user.organisation } : undefined,
31
+ }
32
+ }
package/tailwind.base.css CHANGED
@@ -74,7 +74,10 @@
74
74
  --bg-hover: var(--gn-ui-button-bg-hover, var(--color-background));
75
75
  --font-size: var(--gn-ui-button-font-size, 1em);
76
76
  --color: var(--gn-ui-button-color, var(--color-main));
77
- @apply flex flex-row items-center justify-center
77
+ --disabled-opacity: var(--gn-ui-button-disabled-opacity, 0.5);
78
+ --justify: var(--gn-ui-button-justify, center);
79
+ justify-content: var(--justify);
80
+ @apply flex flex-row items-center
78
81
  text-[length:--font-size] leading-none
79
82
  text-[color:--color]
80
83
  p-[--padding] rounded-[--rounded] w-[--width] h-[--height] overflow-hidden
@@ -82,7 +85,7 @@
82
85
  hover:bg-[--bg-hover] focus:bg-[--bg-hover] active:bg-[--background]
83
86
  outline-none
84
87
  relative
85
- disabled:opacity-50 disabled:pointer-events-none
88
+ disabled:opacity-[--disabled-opacity] disabled:pointer-events-none
86
89
  focus:z-10 active:z-10 hover:z-10;
87
90
  }
88
91
  /* makes sure icons will not make the buttons grow vertically */
@@ -116,6 +119,12 @@
116
119
  border-gray-100 focus:ring-4 focus:ring-gray-50;
117
120
  }
118
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
+
119
128
  .gn-ui-btn-black {
120
129
  @apply gn-ui-btn text-white
121
130
  bg-black hover:bg-gray-950 focus:bg-gray-950 active:bg-gray-900
@@ -134,6 +143,12 @@
134
143
  bg-white border-white focus:ring-4 focus:ring-gray-300;
135
144
  }
136
145
 
146
+ .gn-ui-btn-primary-light {
147
+ @apply gn-ui-btn text-primary-darkest
148
+ bg-primary-white hover:bg-primary focus:bg-primary hover:text-white focus:text-white active:bg-primary-darker
149
+ border-transparent;
150
+ }
151
+
137
152
  .gn-ui-card-s {
138
153
  @apply min-h-[64px] w-full xs:min-w-[260px] xs:max-w-[280px] sm:min-w-[300px] sm:max-w-[500px] md:min-w-[230px];
139
154
  }
@@ -150,6 +150,14 @@
150
150
  "editor.record.form.draft.updateAlert": "Seit der Erstellung dieses Entwurfs wurde dieser Datensatz am { date } von { user } geändert. Durch das Veröffentlichen Ihrer Version können dessen Änderungen gelöscht werden. Um dies zu vermeiden, können Sie Ihre Änderungen rückgängig machen oder Ihre Version in voller Kenntnis der Sachlage veröffentlichen.",
151
151
  "editor.record.form.field.abstract": "Kurzbeschreibung",
152
152
  "editor.record.form.field.constraintsShortcuts": "",
153
+ "editor.record.form.field.contactDetails.email": "",
154
+ "editor.record.form.field.contactDetails.email.placeholder": "",
155
+ "editor.record.form.field.contactDetails.firstName": "",
156
+ "editor.record.form.field.contactDetails.firstName.placeholder": "",
157
+ "editor.record.form.field.contactDetails.lastName": "",
158
+ "editor.record.form.field.contactDetails.lastName.placeholder": "",
159
+ "editor.record.form.field.contactDetails.organization": "",
160
+ "editor.record.form.field.contactDetails.organization.placeholder": "",
153
161
  "editor.record.form.field.contacts": "Ansprechpartner - Email",
154
162
  "editor.record.form.field.contacts.noContact": "Bitte geben Sie mindestens einen Ansprechpartner an.",
155
163
  "editor.record.form.field.contacts.placeholder": "Kontakt auswählen",
@@ -159,6 +167,7 @@
159
167
  "editor.record.form.field.legalConstraints": "Rechtliche Einschränkung",
160
168
  "editor.record.form.field.license": "Lizenz",
161
169
  "editor.record.form.field.onlineLinkResources": "Beigefügte Ressourcen",
170
+ "editor.record.form.field.onlineLinkageResource.defaultName": "Link",
162
171
  "editor.record.form.field.onlineResource.cancel": "Abbrechen",
163
172
  "editor.record.form.field.onlineResource.confirm": "Bestätigen",
164
173
  "editor.record.form.field.onlineResource.dialogTitle": "Vorschau des Datensatzes bearbeiten",
@@ -234,25 +243,25 @@
234
243
  "editor.record.form.temporalExtents.addRange": "Zeitraum",
235
244
  "editor.record.form.temporalExtents.date": "Datum",
236
245
  "editor.record.form.temporalExtents.range": "Datumsbereich",
237
- "editor.record.form.topics.inspire.biota": "Biologie",
238
- "editor.record.form.topics.inspire.boundaries": "Grenzen",
239
- "editor.record.form.topics.inspire.climatology": "Klimatologie/Meteorologie/Atmosphäre",
240
- "editor.record.form.topics.inspire.economy": "Wirtschaft",
241
- "editor.record.form.topics.inspire.elevation": "Höhenangaben",
242
- "editor.record.form.topics.inspire.environnement": "Umwelt",
243
- "editor.record.form.topics.inspire.farming": "Landwirtschaft",
244
- "editor.record.form.topics.inspire.geoscientific": "Geowissenschaften",
245
- "editor.record.form.topics.inspire.health": "Gesundheitswesen",
246
- "editor.record.form.topics.inspire.imagery": "Bilddaten/Basiskarten/Landbedeckung",
247
- "editor.record.form.topics.inspire.intelligence": "Aufklärung/Militär",
248
- "editor.record.form.topics.inspire.location": "Ortsangaben",
249
- "editor.record.form.topics.inspire.oceans": "Meere",
250
- "editor.record.form.topics.inspire.planning": "Planungsunterlagen/Kataster",
251
- "editor.record.form.topics.inspire.society": "Gesellschaft",
252
- "editor.record.form.topics.inspire.structure": "Bauwerke",
253
- "editor.record.form.topics.inspire.transportation": "Verkehrswesen",
254
- "editor.record.form.topics.inspire.utilities": "Ver- und Entsorgung/Nachrichtenwesen",
255
- "editor.record.form.topics.inspire.waters": "Binnengewässer",
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",
256
265
  "editor.record.form.topics.placeholder": "Ein oder mehrere Themen auswählen",
257
266
  "editor.record.form.updateFrequency.planned": "Dieses Dataset wird regelmäßig aktualisiert.",
258
267
  "editor.record.importFromExternalFile.failure.body": "Beim Importieren des Datensatzes ist ein Fehler aufgetreten:",
@@ -494,7 +503,6 @@
494
503
  "record.metadata.preview.config.idle": "Standardvorschau festlegen",
495
504
  "record.metadata.preview.config.saved": "Gespeichert!",
496
505
  "record.metadata.preview.config.saving": "Speichern...",
497
- "record.metadata.producer": "Datenproduzent",
498
506
  "record.metadata.publication": "Veröffentlichungsdatum",
499
507
  "record.metadata.publications": "{count, plural, =0{Veröffentlichungsdatum} one{Veröffentlichungsdatum} other{Veröffentlichungen}}",
500
508
  "record.metadata.quality": "Metadatenqualität",
@@ -520,6 +528,7 @@
520
528
  "record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
521
529
  "record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
522
530
  "record.metadata.related": "Entdecken Sie den Katalog",
531
+ "record.metadata.resource.contacts": "Kontakte zur Ressource",
523
532
  "record.metadata.resourceCreated": "Erstellt",
524
533
  "record.metadata.resourcePublished": "Veröffentlicht",
525
534
  "record.metadata.resourceUpdated": "Zuletzt aktualisiert",
@@ -150,6 +150,14 @@
150
150
  "editor.record.form.draft.updateAlert": "Since you created this draft, the dataset has been updated on { date } by { user }. Publishing your draft might erase their edits. To avoid this, you need to either cancel your changes or knowingly publish your own version.",
151
151
  "editor.record.form.field.abstract": "Abstract",
152
152
  "editor.record.form.field.constraintsShortcuts": "",
153
+ "editor.record.form.field.contactDetails.email": "Contact email",
154
+ "editor.record.form.field.contactDetails.email.placeholder": "example@domainname.com",
155
+ "editor.record.form.field.contactDetails.firstName": "Contact first name",
156
+ "editor.record.form.field.contactDetails.firstName.placeholder": "First name",
157
+ "editor.record.form.field.contactDetails.lastName": "Contact last name",
158
+ "editor.record.form.field.contactDetails.lastName.placeholder": "Last name",
159
+ "editor.record.form.field.contactDetails.organization": "Contact organization",
160
+ "editor.record.form.field.contactDetails.organization.placeholder": "Company",
153
161
  "editor.record.form.field.contacts": "Point of contact - Email",
154
162
  "editor.record.form.field.contacts.noContact": "Please provide at least one point of contact.",
155
163
  "editor.record.form.field.contacts.placeholder": "Choose a contact",
@@ -159,6 +167,7 @@
159
167
  "editor.record.form.field.legalConstraints": "Legal constraint",
160
168
  "editor.record.form.field.license": "License",
161
169
  "editor.record.form.field.onlineLinkResources": "Attached resources",
170
+ "editor.record.form.field.onlineLinkageResource.defaultName": "Link",
162
171
  "editor.record.form.field.onlineResource.cancel": "Cancel",
163
172
  "editor.record.form.field.onlineResource.confirm": "Confirm",
164
173
  "editor.record.form.field.onlineResource.dialogTitle": "Modify the dataset preview",
@@ -234,25 +243,25 @@
234
243
  "editor.record.form.temporalExtents.addRange": "Time period",
235
244
  "editor.record.form.temporalExtents.date": "Date",
236
245
  "editor.record.form.temporalExtents.range": "Date range",
237
- "editor.record.form.topics.inspire.biota": "Biota",
238
- "editor.record.form.topics.inspire.boundaries": "Boundaries",
239
- "editor.record.form.topics.inspire.climatology": "Climatology / Meteorology / Atmosphere",
240
- "editor.record.form.topics.inspire.economy": "Economy",
241
- "editor.record.form.topics.inspire.elevation": "Elevation",
242
- "editor.record.form.topics.inspire.environnement": "Environnement",
243
- "editor.record.form.topics.inspire.farming": "Farming",
244
- "editor.record.form.topics.inspire.geoscientific": "Geoscientific Information",
245
- "editor.record.form.topics.inspire.health": "Health",
246
- "editor.record.form.topics.inspire.imagery": "Imagery / Base Maps / Earth Cover",
247
- "editor.record.form.topics.inspire.intelligence": "Intelligence / Military",
248
- "editor.record.form.topics.inspire.location": "Location",
249
- "editor.record.form.topics.inspire.oceans": "Oceans",
250
- "editor.record.form.topics.inspire.planning": "Planning / Cadastre",
251
- "editor.record.form.topics.inspire.society": "Society",
252
- "editor.record.form.topics.inspire.structure": "Structure",
253
- "editor.record.form.topics.inspire.transportation": "Transportation",
254
- "editor.record.form.topics.inspire.utilities": "Utilities / Communication",
255
- "editor.record.form.topics.inspire.waters": "Inland Waters",
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",
256
265
  "editor.record.form.topics.placeholder": "Select one or several topics",
257
266
  "editor.record.form.updateFrequency.planned": "This dataset is updated regularly",
258
267
  "editor.record.importFromExternalFile.failure.body": "Failure",
@@ -494,7 +503,6 @@
494
503
  "record.metadata.preview.config.idle": "Set as default preview",
495
504
  "record.metadata.preview.config.saved": "Saved !",
496
505
  "record.metadata.preview.config.saving": "Saving...",
497
- "record.metadata.producer": "Data producer",
498
506
  "record.metadata.publication": "Date of publication",
499
507
  "record.metadata.publications": "{count, plural, =0{publication} one{publication} other{publications}}",
500
508
  "record.metadata.quality": "Metadata Quality",
@@ -520,6 +528,7 @@
520
528
  "record.metadata.quality.updateFrequency.failed": "Update frequency is not specified",
521
529
  "record.metadata.quality.updateFrequency.success": "Update frequency is specified",
522
530
  "record.metadata.related": "Explore the catalog",
531
+ "record.metadata.resource.contacts": "Contacts for the resource",
523
532
  "record.metadata.resourceCreated": "Created",
524
533
  "record.metadata.resourcePublished": "Published",
525
534
  "record.metadata.resourceUpdated": "Last updated",
@@ -150,6 +150,14 @@
150
150
  "editor.record.form.draft.updateAlert": "",
151
151
  "editor.record.form.field.abstract": "",
152
152
  "editor.record.form.field.constraintsShortcuts": "",
153
+ "editor.record.form.field.contactDetails.email": "",
154
+ "editor.record.form.field.contactDetails.email.placeholder": "",
155
+ "editor.record.form.field.contactDetails.firstName": "",
156
+ "editor.record.form.field.contactDetails.firstName.placeholder": "",
157
+ "editor.record.form.field.contactDetails.lastName": "",
158
+ "editor.record.form.field.contactDetails.lastName.placeholder": "",
159
+ "editor.record.form.field.contactDetails.organization": "",
160
+ "editor.record.form.field.contactDetails.organization.placeholder": "",
153
161
  "editor.record.form.field.contacts": "Punto de contacto - Correo ",
154
162
  "editor.record.form.field.contacts.noContact": "",
155
163
  "editor.record.form.field.contacts.placeholder": "",
@@ -159,6 +167,7 @@
159
167
  "editor.record.form.field.legalConstraints": "",
160
168
  "editor.record.form.field.license": "",
161
169
  "editor.record.form.field.onlineLinkResources": "",
170
+ "editor.record.form.field.onlineLinkageResource.defaultName": "",
162
171
  "editor.record.form.field.onlineResource.cancel": "",
163
172
  "editor.record.form.field.onlineResource.confirm": "",
164
173
  "editor.record.form.field.onlineResource.dialogTitle": "",
@@ -234,25 +243,25 @@
234
243
  "editor.record.form.temporalExtents.addRange": "",
235
244
  "editor.record.form.temporalExtents.date": "",
236
245
  "editor.record.form.temporalExtents.range": "",
237
- "editor.record.form.topics.inspire.biota": "",
238
- "editor.record.form.topics.inspire.boundaries": "",
239
- "editor.record.form.topics.inspire.climatology": "",
240
- "editor.record.form.topics.inspire.economy": "",
241
- "editor.record.form.topics.inspire.elevation": "",
242
- "editor.record.form.topics.inspire.environnement": "",
243
- "editor.record.form.topics.inspire.farming": "",
244
- "editor.record.form.topics.inspire.geoscientific": "",
245
- "editor.record.form.topics.inspire.health": "",
246
- "editor.record.form.topics.inspire.imagery": "",
247
- "editor.record.form.topics.inspire.intelligence": "",
248
- "editor.record.form.topics.inspire.location": "",
249
- "editor.record.form.topics.inspire.oceans": "",
250
- "editor.record.form.topics.inspire.planning": "",
251
- "editor.record.form.topics.inspire.society": "",
252
- "editor.record.form.topics.inspire.structure": "",
253
- "editor.record.form.topics.inspire.transportation": "",
254
- "editor.record.form.topics.inspire.utilities": "",
255
- "editor.record.form.topics.inspire.waters": "",
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": "",
256
265
  "editor.record.form.topics.placeholder": "",
257
266
  "editor.record.form.updateFrequency.planned": "Este conjunto de datos se actualiza regularmente.",
258
267
  "editor.record.importFromExternalFile.failure.body": "",
@@ -494,7 +503,6 @@
494
503
  "record.metadata.preview.config.idle": "",
495
504
  "record.metadata.preview.config.saved": "",
496
505
  "record.metadata.preview.config.saving": "",
497
- "record.metadata.producer": "",
498
506
  "record.metadata.publication": "",
499
507
  "record.metadata.publications": "{count, plural, =0{} one{} other{}}",
500
508
  "record.metadata.quality": "",
@@ -520,6 +528,7 @@
520
528
  "record.metadata.quality.updateFrequency.failed": "",
521
529
  "record.metadata.quality.updateFrequency.success": "",
522
530
  "record.metadata.related": "",
531
+ "record.metadata.resource.contacts": "",
523
532
  "record.metadata.resourceCreated": "",
524
533
  "record.metadata.resourcePublished": "",
525
534
  "record.metadata.resourceUpdated": "",
@@ -150,6 +150,14 @@
150
150
  "editor.record.form.draft.updateAlert": "Depuis la création de ce brouillon, ce jeu de données a été modifié le { date } par { user }. Publier votre version peut supprimer ses modifications. Pour éviter cela, vous pouvez annuler vos changements, ou publier votre version en connaissance de cause.",
151
151
  "editor.record.form.field.abstract": "Description",
152
152
  "editor.record.form.field.constraintsShortcuts": "",
153
+ "editor.record.form.field.contactDetails.email": "Email du point de contact",
154
+ "editor.record.form.field.contactDetails.email.placeholder": "exemple@nomdedomaine.com",
155
+ "editor.record.form.field.contactDetails.firstName": "Prénom du point de contact",
156
+ "editor.record.form.field.contactDetails.firstName.placeholder": "Prénom",
157
+ "editor.record.form.field.contactDetails.lastName": "Nom du point de contact",
158
+ "editor.record.form.field.contactDetails.lastName.placeholder": "Nom",
159
+ "editor.record.form.field.contactDetails.organization": "Organisation du point de contact",
160
+ "editor.record.form.field.contactDetails.organization.placeholder": "Company",
153
161
  "editor.record.form.field.contacts": "Point de contact - Email",
154
162
  "editor.record.form.field.contacts.noContact": "Veuillez renseigner au moins un point de contact.",
155
163
  "editor.record.form.field.contacts.placeholder": "Choisissez un contact",
@@ -159,6 +167,7 @@
159
167
  "editor.record.form.field.legalConstraints": "Contrainte légale",
160
168
  "editor.record.form.field.license": "Licence",
161
169
  "editor.record.form.field.onlineLinkResources": "Ressources attachées",
170
+ "editor.record.form.field.onlineLinkageResource.defaultName": "Lien",
162
171
  "editor.record.form.field.onlineResource.cancel": "Annuler",
163
172
  "editor.record.form.field.onlineResource.confirm": "Valider",
164
173
  "editor.record.form.field.onlineResource.dialogTitle": "Modifier l'aperçu du jeu de données",
@@ -234,25 +243,25 @@
234
243
  "editor.record.form.temporalExtents.addRange": "Période de temps",
235
244
  "editor.record.form.temporalExtents.date": "Date concernée",
236
245
  "editor.record.form.temporalExtents.range": "Période concernée",
237
- "editor.record.form.topics.inspire.biota": "Biote",
238
- "editor.record.form.topics.inspire.boundaries": "Limites",
239
- "editor.record.form.topics.inspire.climatology": "Climatologie/Météorologie/Atmosphère",
240
- "editor.record.form.topics.inspire.economy": "Économie",
241
- "editor.record.form.topics.inspire.elevation": "Altitude",
242
- "editor.record.form.topics.inspire.environnement": "Environnement",
243
- "editor.record.form.topics.inspire.farming": "Agriculture",
244
- "editor.record.form.topics.inspire.geoscientific": "Informations géoscientifiques",
245
- "editor.record.form.topics.inspire.health": "Santé",
246
- "editor.record.form.topics.inspire.imagery": "Imagerie/Cartes de base/Occupation des terres",
247
- "editor.record.form.topics.inspire.intelligence": "Renseignement/Secteur militaire",
248
- "editor.record.form.topics.inspire.location": "Localisation",
249
- "editor.record.form.topics.inspire.oceans": "Océans",
250
- "editor.record.form.topics.inspire.planning": "Planification/Cadastre",
251
- "editor.record.form.topics.inspire.society": "Société",
252
- "editor.record.form.topics.inspire.structure": "Structure",
253
- "editor.record.form.topics.inspire.transportation": "Transport",
254
- "editor.record.form.topics.inspire.utilities": "Services d’utilité publique/Communication",
255
- "editor.record.form.topics.inspire.waters": "Eaux intérieures",
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",
256
265
  "editor.record.form.topics.placeholder": "Sélectionnez un ou plusieurs thèmes",
257
266
  "editor.record.form.updateFrequency.planned": "Ce jeu de données est mis à jour régulièrement",
258
267
  "editor.record.importFromExternalFile.failure.body": "Une erreur est survenue pendant l'import du jeu de données : ",
@@ -494,7 +503,6 @@
494
503
  "record.metadata.preview.config.idle": "Définir l'aperçu par défaut",
495
504
  "record.metadata.preview.config.saved": "Sauvegardé !",
496
505
  "record.metadata.preview.config.saving": "Sauvegarde...",
497
- "record.metadata.producer": "Producteur de la donnée",
498
506
  "record.metadata.publication": "Date de publication",
499
507
  "record.metadata.publications": "{count, plural, =0{ressource} one{ressource} other{ressources}}",
500
508
  "record.metadata.quality": "Description de la ressource",
@@ -520,6 +528,7 @@
520
528
  "record.metadata.quality.updateFrequency.failed": "La fréquence de mise à jour n'est pas renseignée",
521
529
  "record.metadata.quality.updateFrequency.success": "La fréquence de mise à jour est renseignée",
522
530
  "record.metadata.related": "Explorez le catalogue",
531
+ "record.metadata.resource.contacts": "Contacts liés à la donnée",
523
532
  "record.metadata.resourceCreated": "Créé",
524
533
  "record.metadata.resourcePublished": "Publié",
525
534
  "record.metadata.resourceUpdated": "Mis à jour",
@@ -150,6 +150,14 @@
150
150
  "editor.record.form.draft.updateAlert": "Da quando è stata creata questa bozza, questo dataset è stato modificato il { date } da { user }. La pubblicazione della sua versione potrebbe rimuovere le loro modifiche. Per evitarlo, puoi annullare le sue modifiche o pubblicare la sua versione consapevolmente.",
151
151
  "editor.record.form.field.abstract": "Riassunto",
152
152
  "editor.record.form.field.constraintsShortcuts": "",
153
+ "editor.record.form.field.contactDetails.email": "",
154
+ "editor.record.form.field.contactDetails.email.placeholder": "",
155
+ "editor.record.form.field.contactDetails.firstName": "",
156
+ "editor.record.form.field.contactDetails.firstName.placeholder": "",
157
+ "editor.record.form.field.contactDetails.lastName": "",
158
+ "editor.record.form.field.contactDetails.lastName.placeholder": "",
159
+ "editor.record.form.field.contactDetails.organization": "",
160
+ "editor.record.form.field.contactDetails.organization.placeholder": "",
153
161
  "editor.record.form.field.contacts": "",
154
162
  "editor.record.form.field.contacts.noContact": "Inserisci almeno un punto di contatto.",
155
163
  "editor.record.form.field.contacts.placeholder": "Scegli un contatto",
@@ -159,6 +167,7 @@
159
167
  "editor.record.form.field.legalConstraints": "Vincolo legale",
160
168
  "editor.record.form.field.license": "Licenza",
161
169
  "editor.record.form.field.onlineLinkResources": "Risorse allegate",
170
+ "editor.record.form.field.onlineLinkageResource.defaultName": "Link",
162
171
  "editor.record.form.field.onlineResource.cancel": "Annulla",
163
172
  "editor.record.form.field.onlineResource.confirm": "Convalida",
164
173
  "editor.record.form.field.onlineResource.dialogTitle": "Modifica anteprima dataset",
@@ -234,25 +243,25 @@
234
243
  "editor.record.form.temporalExtents.addRange": "Periodo di tempo",
235
244
  "editor.record.form.temporalExtents.date": "Data rilevante",
236
245
  "editor.record.form.temporalExtents.range": "Periodo interessato",
237
- "editor.record.form.topics.inspire.biota": "",
238
- "editor.record.form.topics.inspire.boundaries": "",
239
- "editor.record.form.topics.inspire.climatology": "",
240
- "editor.record.form.topics.inspire.economy": "",
241
- "editor.record.form.topics.inspire.elevation": "",
242
- "editor.record.form.topics.inspire.environnement": "",
243
- "editor.record.form.topics.inspire.farming": "",
244
- "editor.record.form.topics.inspire.geoscientific": "",
245
- "editor.record.form.topics.inspire.health": "",
246
- "editor.record.form.topics.inspire.imagery": "",
247
- "editor.record.form.topics.inspire.intelligence": "",
248
- "editor.record.form.topics.inspire.location": "",
249
- "editor.record.form.topics.inspire.oceans": "",
250
- "editor.record.form.topics.inspire.planning": "",
251
- "editor.record.form.topics.inspire.society": "",
252
- "editor.record.form.topics.inspire.structure": "",
253
- "editor.record.form.topics.inspire.transportation": "",
254
- "editor.record.form.topics.inspire.utilities": "",
255
- "editor.record.form.topics.inspire.waters": "",
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": "",
256
265
  "editor.record.form.topics.placeholder": "",
257
266
  "editor.record.form.updateFrequency.planned": "Questi dati dovrebbero essere aggiornati regolarmente",
258
267
  "editor.record.importFromExternalFile.failure.body": "Ha successo un'errore durante l'importazione del dataset: ",
@@ -494,7 +503,6 @@
494
503
  "record.metadata.preview.config.idle": "",
495
504
  "record.metadata.preview.config.saved": "",
496
505
  "record.metadata.preview.config.saving": "",
497
- "record.metadata.producer": "Produttore dei dati",
498
506
  "record.metadata.publication": "Data di pubblicazione",
499
507
  "record.metadata.publications": "{count, plural, =0{pubblicazione} one{pubblicazione} other{pubblicazioni}}",
500
508
  "record.metadata.quality": "Qualità dei metadati",
@@ -520,6 +528,7 @@
520
528
  "record.metadata.quality.updateFrequency.failed": "La frequenza di aggiornamento non è specificata",
521
529
  "record.metadata.quality.updateFrequency.success": "La frequenza di aggiornamento è specificata",
522
530
  "record.metadata.related": "Vedi anche",
531
+ "record.metadata.resource.contacts": "Contatti per la risorsa",
523
532
  "record.metadata.resourceCreated": "Creato",
524
533
  "record.metadata.resourcePublished": "Pubblicato",
525
534
  "record.metadata.resourceUpdated": "Ultimo aggiornamento",