geonetwork-ui 2.4.0-dev.e7ff1d25 → 2.4.0-dev.e97caaf2

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 (165) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.mjs +1 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +4 -2
  3. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +11 -1
  4. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +11 -1
  5. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  6. package/esm2022/libs/common/domain/src/lib/model/user/user.model.mjs +1 -1
  7. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  8. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
  9. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +6 -1
  10. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +4 -1
  11. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +3 -3
  12. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +78 -0
  13. package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +44 -79
  14. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +35 -41
  15. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +19 -41
  16. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +10 -8
  17. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +101 -0
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +22 -25
  19. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +14 -7
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +10 -6
  21. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +11 -11
  22. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +9 -8
  23. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +111 -5
  24. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +49 -53
  25. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +16 -14
  26. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +34 -64
  27. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +5 -3
  28. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +8 -2
  29. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +5 -1
  30. package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +3 -11
  31. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  32. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +26 -24
  33. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +32 -0
  34. package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +3 -3
  35. package/esm2022/translations/de.json +12 -0
  36. package/esm2022/translations/en.json +12 -0
  37. package/esm2022/translations/es.json +12 -0
  38. package/esm2022/translations/fr.json +14 -2
  39. package/esm2022/translations/it.json +12 -0
  40. package/esm2022/translations/nl.json +12 -0
  41. package/esm2022/translations/pt.json +12 -0
  42. package/fesm2022/geonetwork-ui.mjs +846 -521
  43. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  44. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts +2 -6
  45. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts.map +1 -1
  46. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  47. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  48. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +1 -0
  49. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  50. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +1 -0
  51. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  52. package/libs/common/domain/src/lib/model/user/user.model.d.ts +1 -1
  53. package/libs/common/domain/src/lib/model/user/user.model.d.ts.map +1 -1
  54. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -0
  55. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  56. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +1 -0
  57. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  58. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +5 -0
  59. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  60. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +1 -0
  61. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  62. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +32 -0
  63. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -0
  64. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +13 -13
  65. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +1 -1
  66. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +10 -13
  67. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
  68. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +8 -19
  69. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  70. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +6 -4
  71. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -1
  72. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +22 -0
  73. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +1 -0
  74. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +10 -12
  75. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +1 -1
  76. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +5 -3
  77. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  78. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +4 -3
  79. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts.map +1 -1
  80. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +4 -4
  81. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  82. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts +4 -3
  83. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts.map +1 -1
  84. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +23 -0
  85. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
  86. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +15 -17
  87. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts.map +1 -1
  88. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +5 -5
  89. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
  90. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +15 -27
  91. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  92. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +3 -2
  93. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
  94. package/libs/feature/editor/src/lib/fields.config.d.ts +1 -0
  95. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  96. package/libs/feature/editor/src/lib/services/editor.service.d.ts +1 -0
  97. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  98. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +1 -6
  99. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -1
  100. package/libs/ui/inputs/src/index.d.ts +1 -0
  101. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  102. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +5 -3
  103. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
  104. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +17 -0
  105. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -0
  106. package/package.json +1 -1
  107. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +6 -1
  108. package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +2 -6
  109. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +3 -1
  110. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +12 -1
  111. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +43 -12
  112. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +1 -0
  113. package/src/libs/common/domain/src/lib/model/user/user.model.ts +1 -1
  114. package/src/libs/common/domain/src/lib/platform.service.interface.ts +4 -0
  115. package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +10 -0
  116. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +2 -0
  117. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +15 -0
  118. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +4 -0
  119. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +4 -2
  120. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.css +0 -0
  121. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +26 -0
  122. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +89 -0
  123. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +1 -1
  124. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +46 -94
  125. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +63 -85
  126. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +7 -17
  127. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +18 -51
  128. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +13 -5
  129. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css +0 -0
  130. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +4 -0
  131. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +128 -0
  132. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.html +1 -1
  133. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +18 -29
  134. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +1 -1
  135. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +16 -5
  136. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +2 -2
  137. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +9 -3
  138. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +2 -2
  139. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +13 -7
  140. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.html +5 -3
  141. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.ts +11 -4
  142. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +15 -1
  143. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +156 -1
  144. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +9 -2
  145. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +59 -71
  146. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +17 -15
  147. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +99 -81
  148. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +37 -66
  149. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +1 -0
  150. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +7 -2
  151. package/src/libs/feature/editor/src/lib/fields.config.ts +8 -1
  152. package/src/libs/feature/editor/src/lib/services/editor.service.ts +7 -0
  153. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +0 -9
  154. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.ts +0 -4
  155. package/src/libs/ui/inputs/src/index.ts +1 -0
  156. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +40 -26
  157. package/src/libs/ui/map/src/lib/ui-map.module.ts +1 -1
  158. package/translations/de.json +12 -0
  159. package/translations/en.json +12 -0
  160. package/translations/es.json +12 -0
  161. package/translations/fr.json +14 -2
  162. package/translations/it.json +12 -0
  163. package/translations/nl.json +12 -0
  164. package/translations/pt.json +12 -0
  165. package/translations/sk.json +12 -0
@@ -8,32 +8,36 @@ import {
8
8
  Output,
9
9
  ViewChild,
10
10
  } from '@angular/core'
11
- import { FormControl, ReactiveFormsModule } from '@angular/forms'
12
11
  import { MatIconModule } from '@angular/material/icon'
13
12
  import { MatTooltipModule } from '@angular/material/tooltip'
13
+ import {
14
+ CatalogRecordKeys,
15
+ Constraint,
16
+ DatasetTemporalExtent,
17
+ GraphicOverview,
18
+ Individual,
19
+ Keyword,
20
+ UpdateFrequency,
21
+ } from '../../../../../../../../libs/common/domain/src/lib/model/record'
14
22
  import { EditableLabelDirective } from '../../../../../../../../libs/ui/inputs/src'
15
23
  import { FormFieldWrapperComponent } from '../../../../../../../../libs/ui/layout/src'
16
24
  import { TranslateModule } from '@ngx-translate/core'
17
- import { Observable } from 'rxjs'
18
25
  import {
19
26
  FormFieldLicenseComponent,
20
27
  FormFieldResourceUpdatedComponent,
21
28
  FormFieldTemporalExtentsComponent,
22
29
  } from '.'
30
+ import { FormFieldConfig } from '../../../models'
23
31
  import { FormFieldArrayComponent } from './form-field-array/form-field-array.component'
32
+ import { FormFieldContactsForResourceComponent } from './form-field-contacts-for-resource/form-field-contacts-for-resource.component'
24
33
  import { FormFieldFileComponent } from './form-field-file/form-field-file.component'
34
+ import { FormFieldKeywordsComponent } from './form-field-keywords/form-field-keywords.component'
25
35
  import { FormFieldObjectComponent } from './form-field-object/form-field-object.component'
36
+ import { FormFieldOverviewsComponent } from './form-field-overviews/form-field-overviews.component'
26
37
  import { FormFieldRichComponent } from './form-field-rich/form-field-rich.component'
27
38
  import { FormFieldSimpleComponent } from './form-field-simple/form-field-simple.component'
28
39
  import { FormFieldSpatialExtentComponent } from './form-field-spatial-extent/form-field-spatial-extent.component'
29
40
  import { FormFieldUpdateFrequencyComponent } from './form-field-update-frequency/form-field-update-frequency.component'
30
- import { CatalogRecordKeys } from '../../../../../../../../libs/common/domain/src/lib/model/record'
31
- import { FormFieldKeywordsComponent } from './form-field-keywords/form-field-keywords.component'
32
- import { FormFieldOverviewsComponent } from './form-field-overviews/form-field-overviews.component'
33
- import { map, take } from 'rxjs/operators'
34
- import { EditorFacade } from '../../../+state/editor.facade'
35
- import { FormFieldConfig } from '../../../models'
36
- import { FormFieldContactsForResourceComponent } from './form-field-contacts-for-resource/form-field-contacts-for-resource.component'
37
41
  import { FormFieldOpenDataComponent } from './form-field-open-data/form-field-open-data.component'
38
42
 
39
43
  @Component({
@@ -44,7 +48,7 @@ import { FormFieldOpenDataComponent } from './form-field-open-data/form-field-op
44
48
  standalone: true,
45
49
  imports: [
46
50
  CommonModule,
47
- ReactiveFormsModule,
51
+ TranslateModule,
48
52
  EditableLabelDirective,
49
53
  MatIconModule,
50
54
  MatTooltipModule,
@@ -60,87 +64,54 @@ import { FormFieldOpenDataComponent } from './form-field-open-data/form-field-op
60
64
  FormFieldFileComponent,
61
65
  FormFieldArrayComponent,
62
66
  FormFieldKeywordsComponent,
63
- TranslateModule,
64
67
  FormFieldOverviewsComponent,
65
68
  FormFieldContactsForResourceComponent,
66
69
  FormFieldOpenDataComponent,
67
70
  ],
68
71
  })
69
72
  export class FormFieldComponent {
73
+ @Input() uniqueIdentifier: string
70
74
  @Input() model: CatalogRecordKeys
71
75
  @Input() config: FormFieldConfig
72
- @Input() set value(v: unknown) {
73
- this.formControl.setValue(v, {
74
- emitEvent: false,
75
- })
76
- }
76
+ @Input() value: unknown
77
77
 
78
- @Output() valueChange: Observable<unknown>
79
- isHidden = false
78
+ @Output() valueChange: EventEmitter<unknown> = new EventEmitter()
80
79
 
81
80
  @ViewChild('titleInput') titleInput: ElementRef
82
81
 
83
- metadataUuid$ = this.facade.record$.pipe(
84
- take(1),
85
- map((record) => record.uniqueIdentifier)
86
- )
87
-
88
- formControl = new FormControl()
89
-
90
- constructor(private facade: EditorFacade) {
91
- this.valueChange = this.formControl.valueChanges
92
- }
82
+ isHidden = false
93
83
 
94
84
  focusTitleInput() {
95
85
  this.titleInput.nativeElement.children[0].focus()
96
86
  }
97
87
 
98
- onVisibilityChange(visibility: boolean) {
99
- this.isHidden = visibility
88
+ get withoutWrapper() {
89
+ return this.model === 'title' || this.model === 'abstract'
100
90
  }
101
91
 
102
- get isTitle() {
103
- return this.model === 'title'
104
- }
105
- get isAbstract() {
106
- return this.model === 'abstract'
107
- }
108
- get isLicenses() {
109
- return this.model === 'licenses'
110
- }
111
- get isResourceUpdated() {
112
- return this.model === 'resourceUpdated'
113
- }
114
- get isUpdateFrequency() {
115
- return this.model === 'updateFrequency'
92
+ get valueAsString() {
93
+ return this.value as string
116
94
  }
117
- get isTemporalExtents() {
118
- return this.model === 'temporalExtents'
95
+ get valueAsDate() {
96
+ return this.value as Date
119
97
  }
120
- get isSpatialExtentField() {
121
- return this.model === 'spatialExtents'
122
- }
123
- get isGraphicOverview() {
124
- return this.model === 'overviews'
98
+
99
+ get valueAsOverviews() {
100
+ return this.value as Array<GraphicOverview>
125
101
  }
126
- get isSimpleField() {
127
- return this.model === 'uniqueIdentifier' || this.model === 'recordUpdated'
102
+ get valueAsUpdateFrequency() {
103
+ return this.value as UpdateFrequency
128
104
  }
129
- get isReadOnly() {
130
- return this.model === 'uniqueIdentifier' || this.model === 'recordUpdated'
105
+ get valueAsTemporalExtents() {
106
+ return this.value as Array<DatasetTemporalExtent>
131
107
  }
132
- get isKeywords() {
133
- return this.model === 'keywords'
108
+ get valueAsKeywords() {
109
+ return this.value as Array<Keyword>
134
110
  }
135
- get isContactsForResource() {
136
- return this.model === 'contactsForResource'
111
+ get valueAsConstraints() {
112
+ return this.value as Array<Constraint>
137
113
  }
138
-
139
- get withoutWrapper() {
140
- return this.model === 'title' || this.model === 'abstract'
141
- }
142
-
143
- get isOpenData() {
144
- return this.model === 'licenses'
114
+ get valueAsIndividuals() {
115
+ return this.value as Array<Individual>
145
116
  }
146
117
  }
@@ -35,6 +35,7 @@
35
35
  >
36
36
  <ng-container *ngIf="!field.config.hidden">
37
37
  <gn-ui-form-field
38
+ [uniqueIdentifier]="recordUniqueIdentifier$ | async"
38
39
  [model]="field.config.model!"
39
40
  [config]="field.config.formFieldConfig"
40
41
  [value]="field.value"
@@ -8,6 +8,7 @@ import {
8
8
  EditorFieldWithValue,
9
9
  EditorSectionWithValues,
10
10
  } from '../../+state/editor.models'
11
+ import { map } from 'rxjs'
11
12
 
12
13
  @Component({
13
14
  selector: 'gn-ui-record-form',
@@ -18,6 +19,10 @@ import {
18
19
  imports: [CommonModule, FormFieldComponent, TranslateModule],
19
20
  })
20
21
  export class RecordFormComponent {
22
+ recordUniqueIdentifier$ = this.facade.record$.pipe(
23
+ map((record) => record.uniqueIdentifier)
24
+ )
25
+
21
26
  constructor(public facade: EditorFacade) {}
22
27
 
23
28
  handleFieldValueChange(model: string, newValue: EditorFieldValue) {
@@ -27,11 +32,11 @@ export class RecordFormComponent {
27
32
  this.facade.updateRecordField(model, newValue)
28
33
  }
29
34
 
30
- fieldTracker(index: number, field: EditorFieldWithValue): any {
35
+ fieldTracker(index: number, field: EditorFieldWithValue) {
31
36
  return field.config.model
32
37
  }
33
38
 
34
- sectionTracker(index: number, section: EditorSectionWithValues): any {
39
+ sectionTracker(index: number, section: EditorSectionWithValues) {
35
40
  return section.labelKey
36
41
  }
37
42
  }
@@ -97,6 +97,13 @@ export const RECORD_GRAPHICAL_OVERVIEW_FIELD: EditorField = {
97
97
  },
98
98
  }
99
99
 
100
+ export const RECORD_SPATIAL_EXTENTS_FIELD: EditorField = {
101
+ model: 'spatialExtents',
102
+ formFieldConfig: {
103
+ labelKey: marker('editor.record.form.field.spatialExtents'),
104
+ },
105
+ }
106
+
100
107
  /************************************************************
101
108
  *************** SECTIONS *****************
102
109
  ************************************************************
@@ -127,7 +134,7 @@ export const ABOUT_SECTION: EditorSection = {
127
134
  export const GEOGRAPHICAL_COVERAGE_SECTION: EditorSection = {
128
135
  labelKey: marker('editor.record.form.section.geographicalCoverage.label'),
129
136
  hidden: false,
130
- fields: [],
137
+ fields: [RECORD_SPATIAL_EXTENTS_FIELD],
131
138
  }
132
139
 
133
140
  export const ASSOCIATED_RESOURCES_SECTION: EditorSection = {
@@ -59,4 +59,11 @@ export class EditorService {
59
59
  .saveRecordAsDraft(record)
60
60
  .pipe(map(() => undefined))
61
61
  }
62
+
63
+ undoRecordDraft(
64
+ record: CatalogRecord
65
+ ): Observable<[CatalogRecord, string, boolean]> {
66
+ this.recordsRepository.clearRecordDraft(record.uniqueIdentifier)
67
+ return this.recordsRepository.openRecordForEdition(record.uniqueIdentifier)
68
+ }
62
69
  }
@@ -1,12 +1,3 @@
1
- <div class="flex gap-2 mb-2">
2
- <gn-ui-button
3
- *ngFor="let addOption of addOptions"
4
- (buttonClick)="add.emit(addOption.eventName)"
5
- >
6
- <span class="material-symbols-outlined gn-ui-icon-small"> add </span>
7
- &nbsp;{{ addOption.buttonLabel }}</gn-ui-button
8
- >
9
- </div>
10
1
  <div
11
2
  cdkDropList
12
3
  class="sortable-list flex flex-col gap-3 p-2"
@@ -15,7 +15,6 @@ import {
15
15
  Type,
16
16
  } from '@angular/core'
17
17
  import { MatIconModule } from '@angular/material/icon'
18
- import { ButtonComponent } from '../../../../../../libs/ui/inputs/src'
19
18
 
20
19
  export type DynamicElement = {
21
20
  component: Type<unknown>
@@ -35,14 +34,11 @@ export type DynamicElement = {
35
34
  CdkDrag,
36
35
  CdkDragHandle,
37
36
  MatIconModule,
38
- ButtonComponent,
39
37
  ],
40
38
  })
41
39
  export class SortableListComponent {
42
40
  @Input() elements: Array<DynamicElement>
43
- @Input() addOptions: Array<{ buttonLabel: string; eventName: string }> = []
44
41
  @Output() elementsChange = new EventEmitter<Array<DynamicElement>>()
45
- @Output() add = new EventEmitter<string>()
46
42
 
47
43
  drop(event: CdkDragDrop<string[]>) {
48
44
  moveItemInArray(this.elements, event.previousIndex, event.currentIndex)
@@ -21,3 +21,4 @@ export * from './lib/text-input/text-input.component'
21
21
  export * from './lib/ui-inputs.module'
22
22
  export * from './lib/viewport-intersector/viewport-intersector.component'
23
23
  export * from './lib/previous-next-buttons/previous-next-buttons.component'
24
+ export * from './lib/switch-toggle/switch-toggle.component'
@@ -1,48 +1,62 @@
1
1
  import {
2
+ AfterViewInit,
2
3
  Directive,
3
4
  ElementRef,
4
- Renderer2,
5
- AfterViewInit,
6
5
  EventEmitter,
7
- Output,
8
6
  Input,
7
+ OnChanges,
8
+ Output,
9
+ Renderer2,
9
10
  } from '@angular/core'
10
11
 
11
12
  @Directive({
12
13
  selector: '[gnUiEditableLabel]',
13
14
  standalone: true,
14
15
  })
15
- export class EditableLabelDirective implements AfterViewInit {
16
+ export class EditableLabelDirective implements OnChanges, AfterViewInit {
17
+ @Input() gnUiEditableLabel?: string
16
18
  @Output() editableLabelChanged = new EventEmitter<string>()
17
- @Input() gnUiEditableLabel?: boolean
19
+
20
+ appendedInput: HTMLInputElement
18
21
 
19
22
  constructor(private el: ElementRef, private renderer: Renderer2) {}
20
23
 
24
+ ngOnChanges() {
25
+ if (this.appendedInput) {
26
+ this.renderer.setProperty(
27
+ this.appendedInput,
28
+ 'value',
29
+ this.gnUiEditableLabel
30
+ )
31
+ }
32
+ }
33
+
21
34
  ngAfterViewInit() {
22
- if (this.gnUiEditableLabel !== false) {
23
- const appendedInput = this.renderer.createElement('input')
24
-
25
- this.renderer.setStyle(appendedInput, 'background', 'inherit')
26
- this.renderer.setStyle(appendedInput, 'color', 'inherit')
27
- this.renderer.setStyle(appendedInput, 'font', 'inherit')
28
- this.renderer.setStyle(appendedInput, 'border', 'inherit')
29
- this.renderer.setStyle(appendedInput, 'width', '100%')
30
- this.renderer.setStyle(appendedInput, 'padding', 'inherit')
31
- this.renderer.setStyle(appendedInput, 'margin', '0')
32
- this.renderer.setStyle(appendedInput, 'height', 'inherit')
33
- this.renderer.setStyle(appendedInput, 'line-height', 'inherit')
34
- this.renderer.setStyle(appendedInput, 'text-decoration', 'inherit')
35
-
36
- const hostContent = this.el.nativeElement.textContent || ''
37
- const formattedContent = hostContent.replace(/\s+/g, ' ').trim()
38
- this.renderer.setProperty(appendedInput, 'value', formattedContent)
39
- this.renderer.setProperty(this.el.nativeElement, 'innerHTML', '')
40
-
41
- this.renderer.listen(appendedInput, 'input', (event) => {
35
+ if (this.gnUiEditableLabel !== undefined) {
36
+ this.appendedInput = this.renderer.createElement('input')
37
+
38
+ this.renderer.setStyle(this.appendedInput, 'background', 'inherit')
39
+ this.renderer.setStyle(this.appendedInput, 'color', 'inherit')
40
+ this.renderer.setStyle(this.appendedInput, 'font', 'inherit')
41
+ this.renderer.setStyle(this.appendedInput, 'border', 'inherit')
42
+ this.renderer.setStyle(this.appendedInput, 'width', '100%')
43
+ this.renderer.setStyle(this.appendedInput, 'padding', 'inherit')
44
+ this.renderer.setStyle(this.appendedInput, 'margin', '0')
45
+ this.renderer.setStyle(this.appendedInput, 'height', 'inherit')
46
+ this.renderer.setStyle(this.appendedInput, 'line-height', 'inherit')
47
+ this.renderer.setStyle(this.appendedInput, 'text-decoration', 'inherit')
48
+
49
+ this.renderer.setProperty(
50
+ this.appendedInput,
51
+ 'value',
52
+ this.gnUiEditableLabel
53
+ )
54
+
55
+ this.renderer.listen(this.appendedInput, 'input', (event) => {
42
56
  this.editableLabelChanged.emit(event.target.value)
43
57
  })
44
58
 
45
- this.renderer.appendChild(this.el.nativeElement, appendedInput)
59
+ this.renderer.appendChild(this.el.nativeElement, this.appendedInput)
46
60
  }
47
61
  }
48
62
  }
@@ -12,7 +12,7 @@ import { MatIconModule } from '@angular/material/icon'
12
12
  CommonModule,
13
13
  HttpClientModule,
14
14
  MatIconModule,
15
- TranslateModule.forRoot(),
15
+ TranslateModule.forChild(),
16
16
  ],
17
17
  exports: [MapComponent, FeatureDetailComponent],
18
18
  })
@@ -186,6 +186,7 @@
186
186
  "downloads.format.unknown": "unbekannt",
187
187
  "downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
188
188
  "dropFile": "Datei ablegen",
189
+ "editor.form.placeKeywordWithoutExtent": "",
189
190
  "editor.record.delete.confirmation.cancelText": "Stornieren",
190
191
  "editor.record.delete.confirmation.confirmText": "Löschen",
191
192
  "editor.record.delete.confirmation.message": "Sind Sie sicher, dass Sie diesen Datensatz löschen möchten?",
@@ -206,6 +207,7 @@
206
207
  "editor.record.form.field.overviews": "",
207
208
  "editor.record.form.field.recordUpdated": "Datensatz zuletzt aktualisiert",
208
209
  "editor.record.form.field.resourceUpdated": "Letztes Aktualisierungsdatum",
210
+ "editor.record.form.field.spatialExtents": "",
209
211
  "editor.record.form.field.temporalExtents": "Zeitlicher Umfang",
210
212
  "editor.record.form.field.title": "Metadaten-Titel",
211
213
  "editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
@@ -243,15 +245,25 @@
243
245
  "editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
244
246
  "editor.record.loadError.closeMessage": "Verstanden",
245
247
  "editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
248
+ "editor.record.placeKeywordWithoutLabel": "",
246
249
  "editor.record.publish": "Diesen Datensatz veröffentlichen",
247
250
  "editor.record.publishError.body": "Der Datensatz konnte nicht veröffentlicht werden:",
248
251
  "editor.record.publishError.closeMessage": "Verstanden",
249
252
  "editor.record.publishError.title": "Fehler beim Veröffentlichen des Datensatzes",
250
253
  "editor.record.publishSuccess.body": "Der Datensatz wurde erfolgreich veröffentlicht!",
251
254
  "editor.record.publishSuccess.title": "Veröffentlichung erfolgreich",
255
+ "editor.record.resourceError.body": "",
256
+ "editor.record.resourceError.closeMessage": "",
257
+ "editor.record.resourceError.title": "",
252
258
  "editor.record.saveStatus.asDraftOnly": "Nur als Entwurf gespeichert - noch nicht veröffentlicht",
253
259
  "editor.record.saveStatus.draftWithChangesPending": "Als Entwurf gespeichert - Änderungen stehen aus",
254
260
  "editor.record.saveStatus.recordUpToDate": "Datensatz ist auf dem neuesten Stand",
261
+ "editor.record.undo.confirmation.cancelText": "",
262
+ "editor.record.undo.confirmation.confirmText": "",
263
+ "editor.record.undo.confirmation.message": "",
264
+ "editor.record.undo.confirmation.title": "",
265
+ "editor.record.undo.tooltip.disabled": "",
266
+ "editor.record.undo.tooltip.enabled": "",
255
267
  "editor.record.upToDate": "Dieser Datensatz ist auf dem neuesten Stand",
256
268
  "editor.sidebar.menu.editor": "",
257
269
  "externalviewer.dataset.unnamed": "Datensatz aus dem Datahub",
@@ -186,6 +186,7 @@
186
186
  "downloads.format.unknown": "unknown",
187
187
  "downloads.wfs.featuretype.not.found": "The layer was not found",
188
188
  "dropFile": "drop file",
189
+ "editor.form.placeKeywordWithoutExtent": "This keyword is not associated with a geographical extent",
189
190
  "editor.record.delete.confirmation.cancelText": "Cancel",
190
191
  "editor.record.delete.confirmation.confirmText": "Delete",
191
192
  "editor.record.delete.confirmation.message": "Are you sure you want to delete this record?",
@@ -206,6 +207,7 @@
206
207
  "editor.record.form.field.overviews": "Overviews",
207
208
  "editor.record.form.field.recordUpdated": "Record Updated",
208
209
  "editor.record.form.field.resourceUpdated": "Resource Updated",
210
+ "editor.record.form.field.spatialExtents": "Spatial extents",
209
211
  "editor.record.form.field.temporalExtents": "Temporal extents",
210
212
  "editor.record.form.field.title": "Metadata title",
211
213
  "editor.record.form.field.uniqueIdentifier": "Unique identifier",
@@ -243,15 +245,25 @@
243
245
  "editor.record.loadError.body": "The record could not be loaded:",
244
246
  "editor.record.loadError.closeMessage": "Understood",
245
247
  "editor.record.loadError.title": "Error loading record",
248
+ "editor.record.placeKeywordWithoutLabel": "Unnamed location",
246
249
  "editor.record.publish": "Publish this record",
247
250
  "editor.record.publishError.body": "The record could not be published:",
248
251
  "editor.record.publishError.closeMessage": "Understood",
249
252
  "editor.record.publishError.title": "Error publishing record",
250
253
  "editor.record.publishSuccess.body": "The record was successfully published!",
251
254
  "editor.record.publishSuccess.title": "Publish success",
255
+ "editor.record.resourceError.body": "There was an issue with the record attachments:",
256
+ "editor.record.resourceError.closeMessage": "Understood",
257
+ "editor.record.resourceError.title": "Error with the record attachments",
252
258
  "editor.record.saveStatus.asDraftOnly": "Saved as draft only - not published yet",
253
259
  "editor.record.saveStatus.draftWithChangesPending": "Saved as draft - changes are pending",
254
260
  "editor.record.saveStatus.recordUpToDate": "Record is up to date",
261
+ "editor.record.undo.confirmation.cancelText": "Keep the changes",
262
+ "editor.record.undo.confirmation.confirmText": "Discard the changes",
263
+ "editor.record.undo.confirmation.message": "Are you sure you want to cancel the pending changes on this record?",
264
+ "editor.record.undo.confirmation.title": "Cancel changes?",
265
+ "editor.record.undo.tooltip.disabled": "There is no pending changes on this record",
266
+ "editor.record.undo.tooltip.enabled": "Clicking this button will cancel the pending changes on this record.",
255
267
  "editor.record.upToDate": "This record is up to date",
256
268
  "editor.sidebar.menu.editor": "Editor",
257
269
  "externalviewer.dataset.unnamed": "Datahub layer",
@@ -186,6 +186,7 @@
186
186
  "downloads.format.unknown": "",
187
187
  "downloads.wfs.featuretype.not.found": "",
188
188
  "dropFile": "",
189
+ "editor.form.placeKeywordWithoutExtent": "",
189
190
  "editor.record.delete.confirmation.cancelText": "",
190
191
  "editor.record.delete.confirmation.confirmText": "",
191
192
  "editor.record.delete.confirmation.message": "",
@@ -206,6 +207,7 @@
206
207
  "editor.record.form.field.overviews": "",
207
208
  "editor.record.form.field.recordUpdated": "",
208
209
  "editor.record.form.field.resourceUpdated": "",
210
+ "editor.record.form.field.spatialExtents": "",
209
211
  "editor.record.form.field.temporalExtents": "",
210
212
  "editor.record.form.field.title": "",
211
213
  "editor.record.form.field.uniqueIdentifier": "",
@@ -243,15 +245,25 @@
243
245
  "editor.record.loadError.body": "",
244
246
  "editor.record.loadError.closeMessage": "",
245
247
  "editor.record.loadError.title": "",
248
+ "editor.record.placeKeywordWithoutLabel": "",
246
249
  "editor.record.publish": "",
247
250
  "editor.record.publishError.body": "",
248
251
  "editor.record.publishError.closeMessage": "",
249
252
  "editor.record.publishError.title": "",
250
253
  "editor.record.publishSuccess.body": "",
251
254
  "editor.record.publishSuccess.title": "",
255
+ "editor.record.resourceError.body": "",
256
+ "editor.record.resourceError.closeMessage": "",
257
+ "editor.record.resourceError.title": "",
252
258
  "editor.record.saveStatus.asDraftOnly": "",
253
259
  "editor.record.saveStatus.draftWithChangesPending": "",
254
260
  "editor.record.saveStatus.recordUpToDate": "",
261
+ "editor.record.undo.confirmation.cancelText": "",
262
+ "editor.record.undo.confirmation.confirmText": "",
263
+ "editor.record.undo.confirmation.message": "",
264
+ "editor.record.undo.confirmation.title": "",
265
+ "editor.record.undo.tooltip.disabled": "",
266
+ "editor.record.undo.tooltip.enabled": "",
255
267
  "editor.record.upToDate": "",
256
268
  "editor.sidebar.menu.editor": "",
257
269
  "externalviewer.dataset.unnamed": "",
@@ -186,10 +186,11 @@
186
186
  "downloads.format.unknown": "inconnu",
187
187
  "downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
188
188
  "dropFile": "Faites glisser votre fichier",
189
+ "editor.form.placeKeywordWithoutExtent": "Ce mot-clé n'a pas de localisation géographique associée",
189
190
  "editor.record.delete.confirmation.cancelText": "Annuler",
190
191
  "editor.record.delete.confirmation.confirmText": "Supprimer",
191
192
  "editor.record.delete.confirmation.message": "Etes-vous sûr de vouloir supprimer cette fiche ?",
192
- "editor.record.delete.confirmation.title": "Supprimer la fiche",
193
+ "editor.record.delete.confirmation.title": "Supprimer la fiche ?",
193
194
  "editor.record.deleteError.body": "La fiche n'a pas pu être supprimée :",
194
195
  "editor.record.deleteError.closeMessage": "Compris",
195
196
  "editor.record.deleteError.title": "Erreur lors de la suppression",
@@ -206,8 +207,9 @@
206
207
  "editor.record.form.field.overviews": "Aperçus",
207
208
  "editor.record.form.field.recordUpdated": "Date de dernière révision",
208
209
  "editor.record.form.field.resourceUpdated": "Date de dernière révision",
210
+ "editor.record.form.field.spatialExtents": "Étendue spatiale",
209
211
  "editor.record.form.field.temporalExtents": "Étendue temporelle",
210
- "editor.record.form.field.title": "",
212
+ "editor.record.form.field.title": "Titre",
211
213
  "editor.record.form.field.uniqueIdentifier": "Identifiant unique",
212
214
  "editor.record.form.field.updateFrequency": "Fréquence de mise à jour",
213
215
  "editor.record.form.license.cc-by": "",
@@ -243,15 +245,25 @@
243
245
  "editor.record.loadError.body": "La fiche n'a pas pu être chargée :",
244
246
  "editor.record.loadError.closeMessage": "Compris",
245
247
  "editor.record.loadError.title": "Erreur lors du chargement",
248
+ "editor.record.placeKeywordWithoutLabel": "Localisation sans nom",
246
249
  "editor.record.publish": "Publier cette fiche",
247
250
  "editor.record.publishError.body": "La fiche n'a pas pu être publiée :",
248
251
  "editor.record.publishError.closeMessage": "Compris",
249
252
  "editor.record.publishError.title": "Erreur lors de la publication",
250
253
  "editor.record.publishSuccess.body": "La fiche a bien été publiée !",
251
254
  "editor.record.publishSuccess.title": "Publication réussie",
255
+ "editor.record.resourceError.body": "Une erreur est survenue lors de la gestion des pièces jointes :",
256
+ "editor.record.resourceError.closeMessage": "Compris",
257
+ "editor.record.resourceError.title": "Erreur avec les pièces jointes",
252
258
  "editor.record.saveStatus.asDraftOnly": "Brouillon enregistré - fiche non publiée",
253
259
  "editor.record.saveStatus.draftWithChangesPending": "Brouillon enregistré - modifications en cours",
254
260
  "editor.record.saveStatus.recordUpToDate": "La fiche publiée est à jour",
261
+ "editor.record.undo.confirmation.cancelText": "Garder les modifications",
262
+ "editor.record.undo.confirmation.confirmText": "Retirer les modifications",
263
+ "editor.record.undo.confirmation.message": "Etes-vous sûr de vouloir annuler les modifications apportées à cette fiche ?",
264
+ "editor.record.undo.confirmation.title": "Annuler les modifications ?",
265
+ "editor.record.undo.tooltip.disabled": "Il n'y a pas de modifications en cours sur cette fiche",
266
+ "editor.record.undo.tooltip.enabled": "Cliquer sur ce bouton pour annuler les modifications apportées à cette fiche",
255
267
  "editor.record.upToDate": "",
256
268
  "editor.sidebar.menu.editor": "",
257
269
  "externalviewer.dataset.unnamed": "Couche du datahub",
@@ -186,6 +186,7 @@
186
186
  "downloads.format.unknown": "sconosciuto",
187
187
  "downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
188
188
  "dropFile": "Trascina il suo file",
189
+ "editor.form.placeKeywordWithoutExtent": "",
189
190
  "editor.record.delete.confirmation.cancelText": "",
190
191
  "editor.record.delete.confirmation.confirmText": "",
191
192
  "editor.record.delete.confirmation.message": "",
@@ -206,6 +207,7 @@
206
207
  "editor.record.form.field.overviews": "",
207
208
  "editor.record.form.field.recordUpdated": "",
208
209
  "editor.record.form.field.resourceUpdated": "",
210
+ "editor.record.form.field.spatialExtents": "",
209
211
  "editor.record.form.field.temporalExtents": "",
210
212
  "editor.record.form.field.title": "",
211
213
  "editor.record.form.field.uniqueIdentifier": "",
@@ -243,15 +245,25 @@
243
245
  "editor.record.loadError.body": "",
244
246
  "editor.record.loadError.closeMessage": "",
245
247
  "editor.record.loadError.title": "",
248
+ "editor.record.placeKeywordWithoutLabel": "",
246
249
  "editor.record.publish": "",
247
250
  "editor.record.publishError.body": "",
248
251
  "editor.record.publishError.closeMessage": "",
249
252
  "editor.record.publishError.title": "",
250
253
  "editor.record.publishSuccess.body": "",
251
254
  "editor.record.publishSuccess.title": "",
255
+ "editor.record.resourceError.body": "",
256
+ "editor.record.resourceError.closeMessage": "",
257
+ "editor.record.resourceError.title": "",
252
258
  "editor.record.saveStatus.asDraftOnly": "",
253
259
  "editor.record.saveStatus.draftWithChangesPending": "",
254
260
  "editor.record.saveStatus.recordUpToDate": "",
261
+ "editor.record.undo.confirmation.cancelText": "",
262
+ "editor.record.undo.confirmation.confirmText": "",
263
+ "editor.record.undo.confirmation.message": "",
264
+ "editor.record.undo.confirmation.title": "",
265
+ "editor.record.undo.tooltip.disabled": "",
266
+ "editor.record.undo.tooltip.enabled": "",
255
267
  "editor.record.upToDate": "",
256
268
  "editor.sidebar.menu.editor": "",
257
269
  "externalviewer.dataset.unnamed": "Layer del datahub",
@@ -186,6 +186,7 @@
186
186
  "downloads.format.unknown": "",
187
187
  "downloads.wfs.featuretype.not.found": "",
188
188
  "dropFile": "",
189
+ "editor.form.placeKeywordWithoutExtent": "",
189
190
  "editor.record.delete.confirmation.cancelText": "",
190
191
  "editor.record.delete.confirmation.confirmText": "",
191
192
  "editor.record.delete.confirmation.message": "",
@@ -206,6 +207,7 @@
206
207
  "editor.record.form.field.overviews": "",
207
208
  "editor.record.form.field.recordUpdated": "",
208
209
  "editor.record.form.field.resourceUpdated": "",
210
+ "editor.record.form.field.spatialExtents": "",
209
211
  "editor.record.form.field.temporalExtents": "",
210
212
  "editor.record.form.field.title": "",
211
213
  "editor.record.form.field.uniqueIdentifier": "",
@@ -243,15 +245,25 @@
243
245
  "editor.record.loadError.body": "",
244
246
  "editor.record.loadError.closeMessage": "",
245
247
  "editor.record.loadError.title": "",
248
+ "editor.record.placeKeywordWithoutLabel": "",
246
249
  "editor.record.publish": "",
247
250
  "editor.record.publishError.body": "",
248
251
  "editor.record.publishError.closeMessage": "",
249
252
  "editor.record.publishError.title": "",
250
253
  "editor.record.publishSuccess.body": "",
251
254
  "editor.record.publishSuccess.title": "",
255
+ "editor.record.resourceError.body": "",
256
+ "editor.record.resourceError.closeMessage": "",
257
+ "editor.record.resourceError.title": "",
252
258
  "editor.record.saveStatus.asDraftOnly": "",
253
259
  "editor.record.saveStatus.draftWithChangesPending": "",
254
260
  "editor.record.saveStatus.recordUpToDate": "",
261
+ "editor.record.undo.confirmation.cancelText": "",
262
+ "editor.record.undo.confirmation.confirmText": "",
263
+ "editor.record.undo.confirmation.message": "",
264
+ "editor.record.undo.confirmation.title": "",
265
+ "editor.record.undo.tooltip.disabled": "",
266
+ "editor.record.undo.tooltip.enabled": "",
255
267
  "editor.record.upToDate": "",
256
268
  "editor.sidebar.menu.editor": "",
257
269
  "externalviewer.dataset.unnamed": "",