-
-
+
+
+
+
+
+
+
+
+
+ {{
+ selectedPage === 0
+ ? ('editor.record.form.bottomButtons.comeBackLater' | translate)
+ : ('editor.record.form.bottomButtons.previous' | translate)
+ }}
+
+ editor.record.form.bottomButtons.next
-
-
+
diff --git a/apps/metadata-editor/src/app/edit/edit-page.component.ts b/apps/metadata-editor/src/app/edit/edit-page.component.ts
index 7327286a2c..720fe63891 100644
--- a/apps/metadata-editor/src/app/edit/edit-page.component.ts
+++ b/apps/metadata-editor/src/app/edit/edit-page.component.ts
@@ -13,8 +13,14 @@ import {
NotificationsContainerComponent,
NotificationsService,
} from '@geonetwork-ui/feature/notifications'
-import { TranslateService } from '@ngx-translate/core'
+import { TranslateModule, TranslateService } from '@ngx-translate/core'
import { filter, Subscription, take } from 'rxjs'
+import { FindPipe } from '../pipes/filter.pipe'
+import { BreadcrumbsComponent } from './components/breadcrumbs/breadcrumbs.component'
+import { marker } from '@biesbjerg/ngx-translate-extract-marker'
+
+marker('editor.record.form.bottomButtons.comeBackLater')
+marker('editor.record.form.bottomButtons.previous')
@Component({
selector: 'md-editor-edit',
@@ -29,18 +35,31 @@ import { filter, Subscription, take } from 'rxjs'
PublishButtonComponent,
TopToolbarComponent,
NotificationsContainerComponent,
+ FindPipe,
+ BreadcrumbsComponent,
+ TranslateModule,
],
})
export class EditPageComponent implements OnInit, OnDestroy {
subscription = new Subscription()
+ fields$ = this.facade.recordFields$
+ totalPages = 0
+ selectedPage = 0
+
constructor(
private route: ActivatedRoute,
private facade: EditorFacade,
private notificationsService: NotificationsService,
private translateService: TranslateService,
private router: Router
- ) {}
+ ) {
+ this.subscription.add(
+ this.fields$.subscribe((fields) => {
+ this.totalPages = fields.pages.length
+ })
+ )
+ }
ngOnInit(): void {
const [currentRecord, currentRecordSource, currentRecordAlreadySaved] =
@@ -109,4 +128,23 @@ export class EditPageComponent implements OnInit, OnDestroy {
ngOnDestroy() {
this.subscription.unsubscribe()
}
+
+ previousPageButtonHandler() {
+ if (this.selectedPage === 0) {
+ this.router.navigate(['catalog', 'search'])
+ } else {
+ this.selectedPage--
+ }
+ }
+
+ nextPageButtonHandler() {
+ if (this.selectedPage === this.totalPages - 1) return
+ this.selectedPage++
+ }
+
+ selectedPageChange(index: number) {
+ this.selectedPage = index
+ }
+
+ protected readonly marker = marker
}
diff --git a/apps/metadata-editor/src/app/pipes/filter.pipe.ts b/apps/metadata-editor/src/app/pipes/filter.pipe.ts
index 4cbff21914..c8626d7ea0 100644
--- a/apps/metadata-editor/src/app/pipes/filter.pipe.ts
+++ b/apps/metadata-editor/src/app/pipes/filter.pipe.ts
@@ -1,10 +1,10 @@
import { Pipe, PipeTransform } from '@angular/core'
@Pipe({
- name: 'filter',
+ name: 'find',
standalone: true,
})
-export class FilterPipe implements PipeTransform {
+export class FindPipe implements PipeTransform {
transform(array: any[], index: number): any {
return array.find((item) => item.index === index)
}
diff --git a/apps/metadata-editor/tsconfig.json b/apps/metadata-editor/tsconfig.json
index d2c6daf3e1..54f2b40f0e 100644
--- a/apps/metadata-editor/tsconfig.json
+++ b/apps/metadata-editor/tsconfig.json
@@ -19,11 +19,7 @@
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"target": "es2020",
- "lib": [
- "dom",
- "es2020",
- "dom.iterable"
- ],
+ "lib": ["dom", "es2020", "dom.iterable"],
"downlevelIteration": true
},
"angularCompilerOptions": {
diff --git a/libs/feature/editor/src/lib/+state/editor.reducer.ts b/libs/feature/editor/src/lib/+state/editor.reducer.ts
index 425e3d0c41..7c9f322b16 100644
--- a/libs/feature/editor/src/lib/+state/editor.reducer.ts
+++ b/libs/feature/editor/src/lib/+state/editor.reducer.ts
@@ -2,7 +2,7 @@ import { Action, createReducer, on } from '@ngrx/store'
import * as EditorActions from './editor.actions'
import { CatalogRecord } from '@geonetwork-ui/common/domain/model/record'
import { SaveRecordError } from './editor.models'
-import { EditorFieldsConfig } from '../models/fields.model'
+import { EditorConfig } from '../models/fields.model'
import { DEFAULT_FIELDS } from '../fields.config'
export const EDITOR_FEATURE_KEY = 'editor'
@@ -22,7 +22,7 @@ export interface EditorState {
saving: boolean
saveError: SaveRecordError | null
changedSinceSave: boolean
- fieldsConfig: EditorFieldsConfig
+ fieldsConfig: EditorConfig
}
export interface EditorPartialState {
diff --git a/libs/feature/editor/src/lib/+state/editor.selectors.ts b/libs/feature/editor/src/lib/+state/editor.selectors.ts
index e9a601da80..e240f5c5e3 100644
--- a/libs/feature/editor/src/lib/+state/editor.selectors.ts
+++ b/libs/feature/editor/src/lib/+state/editor.selectors.ts
@@ -41,9 +41,17 @@ export const selectRecordFieldsConfig = createSelector(
export const selectRecordFields = createSelector(
selectEditorState,
- (state: EditorState) =>
- state.fieldsConfig.map((fieldConfig) => ({
- config: fieldConfig,
- value: state.record?.[fieldConfig.model] ?? null,
- }))
+ (state: EditorState) => {
+ const fieldsConfig = state.fieldsConfig
+ fieldsConfig.pages.forEach((page) => {
+ page.sections.forEach((section) => {
+ section.fields.forEach((field) => {
+ if (state.record) {
+ field.value = state.record[field.model]
+ }
+ })
+ })
+ })
+ return fieldsConfig
+ }
)
diff --git a/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html b/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html
index 98f8503d27..8d30de79be 100644
--- a/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html
+++ b/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html
@@ -5,7 +5,7 @@
@@ -15,14 +15,14 @@
-
{{ formControl.value }}
-
+
help
@@ -42,7 +42,7 @@
class="h-[8rem]"
[control]="formControl"
[label]="config.labelKey | translate"
- [hint]="config.hintKey | translate"
+ [hint]="config.hintKey! | translate"
>
diff --git a/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts b/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts
index 5077db478e..24f4e2a77a 100644
--- a/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts
+++ b/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts
@@ -25,10 +25,10 @@ import { FormFieldObjectComponent } from './form-field-object/form-field-object.
import { FormFieldRichComponent } from './form-field-rich/form-field-rich.component'
import { FormFieldSimpleComponent } from './form-field-simple/form-field-simple.component'
import { FormFieldSpatialExtentComponent } from './form-field-spatial-extent/form-field-spatial-extent.component'
-import { FormFieldConfig } from './form-field.model'
import { FormFieldUpdateFrequencyComponent } from './form-field-update-frequency/form-field-update-frequency.component'
import { CatalogRecordKeys } from '@geonetwork-ui/common/domain/model/record'
import { FormFieldKeywordsComponent } from './form-field-keywords/form-field-keywords.component'
+import { FormFieldConfig } from '../../../models/fields.model'
@Component({
selector: 'gn-ui-form-field',
@@ -65,6 +65,7 @@ export class FormFieldComponent {
emitEvent: false,
})
}
+
@Output() valueChange: Observable
@ViewChild('titleInput') titleInput: ElementRef
diff --git a/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts b/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts
deleted file mode 100644
index cbc9d543b3..0000000000
--- a/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-type BaseFormFieldType =
- | 'text'
- | 'number'
- | 'rich'
- | 'date'
- | 'list'
- | 'spatial_extent'
- | 'temporal_extent'
- | 'url'
- | 'file'
- | 'toggle'
-
-type AllFormFieldType = BaseFormFieldType | 'object' | 'array'
-
-interface FormFieldConfigBase {
- type: AllFormFieldType
- labelKey: string
- hintKey?: string
- tooltipKey?: string
- required?: boolean
- locked?: boolean
- invalid?: boolean
- invalidHintKey?: string
-}
-
-export interface FormFieldConfigSimple extends FormFieldConfigBase {
- type: BaseFormFieldType
-}
-
-export interface FormFieldConfigArray extends FormFieldConfigBase {
- type: 'array'
- items: FormFieldConfig
-}
-
-export interface FormFieldConfigObject extends FormFieldConfigBase {
- type: 'object'
- fields: Array
-}
-
-export type FormFieldConfig =
- | FormFieldConfigSimple
- | FormFieldConfigArray
- | FormFieldConfigObject
diff --git a/libs/feature/editor/src/lib/components/record-form/form-field/index.ts b/libs/feature/editor/src/lib/components/record-form/form-field/index.ts
index 053dede8e5..8555c39727 100644
--- a/libs/feature/editor/src/lib/components/record-form/form-field/index.ts
+++ b/libs/feature/editor/src/lib/components/record-form/form-field/index.ts
@@ -9,4 +9,3 @@ export * from './form-field-object/form-field-object.component'
export * from './form-field-array/form-field-array.component'
export * from './form-field-spatial-extent/form-field-spatial-extent.component'
export * from './form-field.component'
-export * from './form-field.model'
diff --git a/libs/feature/editor/src/lib/components/record-form/record-form.component.html b/libs/feature/editor/src/lib/components/record-form/record-form.component.html
index 7b07459330..9057230299 100644
--- a/libs/feature/editor/src/lib/components/record-form/record-form.component.html
+++ b/libs/feature/editor/src/lib/components/record-form/record-form.component.html
@@ -1,11 +1,43 @@
-
-
-
-
-
+
+
+
+
+
+
+
+ {{ section.label }}
+
+
+ {{ section.description }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libs/feature/editor/src/lib/components/record-form/record-form.component.ts b/libs/feature/editor/src/lib/components/record-form/record-form.component.ts
index 310fa77fea..33b619474f 100644
--- a/libs/feature/editor/src/lib/components/record-form/record-form.component.ts
+++ b/libs/feature/editor/src/lib/components/record-form/record-form.component.ts
@@ -1,8 +1,14 @@
import { CommonModule } from '@angular/common'
-import { ChangeDetectionStrategy, Component } from '@angular/core'
+import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
import { EditorFacade } from '../../+state/editor.facade'
-import { EditorFieldState, EditorFieldValue } from '../../models/fields.model'
+import {
+ EditorField,
+ EditorFieldPage,
+ EditorFieldValue,
+ EditorSection,
+} from '../../models/fields.model'
import { FormFieldComponent } from './form-field'
+import { TranslateModule } from '@ngx-translate/core'
@Component({
selector: 'gn-ui-record-form',
@@ -10,21 +16,25 @@ import { FormFieldComponent } from './form-field'
styleUrls: ['./record-form.component.css'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
- imports: [CommonModule, FormFieldComponent],
+ imports: [CommonModule, FormFieldComponent, TranslateModule],
})
export class RecordFormComponent {
- fields$ = this.facade.recordFields$
+ @Input() page: EditorFieldPage
constructor(public facade: EditorFacade) {}
- handleFieldValueChange(field: EditorFieldState, newValue: EditorFieldValue) {
- if (!field.config.model) {
+ handleFieldValueChange(model: string, newValue: EditorFieldValue) {
+ if (!model) {
return
}
- this.facade.updateRecordField(field.config.model, newValue)
+ this.facade.updateRecordField(model, newValue)
}
- fieldTracker(index: number, field: EditorFieldState) {
- return field.config.model
+ fieldTracker(index: number, field: EditorField): any {
+ return field.model
+ }
+
+ sectionTracker(index: number, section: EditorSection): any {
+ return section.label
}
}
diff --git a/libs/feature/editor/src/lib/expressions.spec.ts b/libs/feature/editor/src/lib/expressions.spec.ts
index 6de626a823..e36b9e7fc2 100644
--- a/libs/feature/editor/src/lib/expressions.spec.ts
+++ b/libs/feature/editor/src/lib/expressions.spec.ts
@@ -1,13 +1,4 @@
import { evaluate, ExpressionEvaluator } from './expressions'
-import { EditorFieldConfig } from './models/fields.model'
-
-const SAMPLE_CONFIG: EditorFieldConfig = {
- formFieldConfig: {
- labelKey: 'Metadata title',
- type: 'text',
- },
- model: 'myModel',
-}
const originalDate = window.Date
window.Date = function () {
@@ -22,7 +13,7 @@ describe('expressions', () => {
evaluator = evaluate('${dateNow()}')
})
it('returns the current time at evaluation', () => {
- expect(evaluator({ config: SAMPLE_CONFIG, value: 'bla' })).toEqual(
+ expect(evaluator({ model: 'keywords', value: 'bla' })).toEqual(
new Date()
)
})
diff --git a/libs/feature/editor/src/lib/fields.config.ts b/libs/feature/editor/src/lib/fields.config.ts
index cda10b5196..7626089523 100644
--- a/libs/feature/editor/src/lib/fields.config.ts
+++ b/libs/feature/editor/src/lib/fields.config.ts
@@ -1,71 +1,187 @@
import { marker } from '@biesbjerg/ngx-translate-extract-marker'
-import { EditorFieldsConfig } from './models/fields.model'
-
-export const DEFAULT_FIELDS: EditorFieldsConfig = [
- {
- model: 'title',
- formFieldConfig: {
- labelKey: 'Metadata title',
- type: 'text',
- },
+import { EditorConfig, EditorField, EditorSection } from './models/fields.model'
+
+/**
+ * This file contains the configuration of the fields that will be displayed in the editor.
+ * To add a new field, you need to create a new EditorField object in the fields part of this file.
+ * Then add it to the corresponding section in the sections part of this file.
+ * Finally, add the section to the corresponding page in the pages part of this file.
+ */
+
+/************************************************************
+ *************** FIELDS *****************
+ ************************************************************
+ */
+
+export const RECORD_LICENSE_FIELD: EditorField = {
+ model: 'licenses',
+ formFieldConfig: {
+ labelKey: marker('editor.record.form.field.license'),
},
- {
- model: 'abstract',
- formFieldConfig: {
- labelKey: 'Abstract',
- type: 'rich',
- },
+}
+
+export const RECORD_KEYWORDS_FIELD: EditorField = {
+ model: 'keywords',
+ formFieldConfig: {
+ labelKey: marker('editor.record.form.field.keywords'),
},
- {
- model: 'uniqueIdentifier',
- formFieldConfig: {
- labelKey: 'Unique identifier',
- type: 'text',
- locked: true,
- },
+}
+
+export const RECORD_UNIQUE_IDENTIFIER_FIELD: EditorField = {
+ model: 'uniqueIdentifier',
+ formFieldConfig: {
+ labelKey: marker('editor.record.form.field.uniqueIdentifier'),
+ locked: true,
},
- {
- model: 'recordUpdated',
- formFieldConfig: {
- labelKey: 'Record Updated',
- type: 'text',
- locked: true,
- },
- onSaveProcess: '${dateNow()}',
+}
+
+export const RECORD_RESOURCE_UPDATED_FIELD: EditorField = {
+ model: 'resourceUpdated',
+ formFieldConfig: {
+ labelKey: marker('editor.record.form.field.resourceUpdated'),
},
- {
- model: 'licenses',
- formFieldConfig: {
- labelKey: marker('editor.record.form.license'),
- type: 'list',
- },
+}
+
+export const RECORD_UPDATED_FIELD: EditorField = {
+ model: 'recordUpdated',
+ formFieldConfig: {
+ labelKey: marker('editor.record.form.field.recordUpdated'),
+ locked: true,
},
- {
- model: 'resourceUpdated',
- formFieldConfig: {
- labelKey: marker('editor.record.form.resourceUpdated'),
- type: 'date',
- },
+ onSaveProcess: '${dateNow()}',
+}
+
+export const RECORD_UPDATE_FREQUENCY_FIELD: EditorField = {
+ model: 'updateFrequency',
+ formFieldConfig: {
+ labelKey: marker('editor.record.form.field.updateFrequency'),
},
- {
- model: 'updateFrequency',
- formFieldConfig: {
- labelKey: marker('editor.record.form.updateFrequency'),
- type: 'text',
- },
+}
+
+export const RECORD_TEMPORAL_EXTENTS_FIELD: EditorField = {
+ model: 'temporalExtents',
+ formFieldConfig: {
+ labelKey: marker('editor.record.form.field.temporalExtents'),
},
- {
- model: 'temporalExtents',
- formFieldConfig: {
- labelKey: marker('editor.record.form.temporalExtents'),
- type: 'list',
- },
+}
+
+export const RECORD_TITLE_FIELD: EditorField = {
+ model: 'title',
+ formFieldConfig: {
+ labelKey: marker('editor.record.form.field.title'),
},
- {
- model: 'keywords',
- formFieldConfig: {
- labelKey: marker('editor.record.form.keywords'),
- type: 'list',
- },
+}
+
+export const RECORD_ABSTRACT_FIELD: EditorField = {
+ model: 'abstract',
+ formFieldConfig: {
+ labelKey: marker('editor.record.form.field.abstract'),
},
-]
+}
+
+/************************************************************
+ *************** SECTIONS *****************
+ ************************************************************
+ */
+
+export const TITLE_SECTION: EditorSection = {
+ label: '',
+ description: '',
+ hidden: false,
+ fields: [RECORD_TITLE_FIELD, RECORD_ABSTRACT_FIELD],
+}
+
+export const ABOUT_SECTION: EditorSection = {
+ label: marker('editor.record.form.section.about.label'),
+ description: marker('editor.record.form.section.about.description'),
+ hidden: false,
+ fields: [
+ RECORD_UNIQUE_IDENTIFIER_FIELD,
+ RECORD_RESOURCE_UPDATED_FIELD,
+ RECORD_UPDATED_FIELD,
+ RECORD_UPDATE_FREQUENCY_FIELD,
+ RECORD_TEMPORAL_EXTENTS_FIELD,
+ ],
+}
+
+export const GEOGRAPHICAL_COVERAGE_SECTION: EditorSection = {
+ label: marker('editor.record.form.section.geographicalCoverage.label'),
+ description: '',
+ hidden: false,
+ fields: [],
+}
+
+export const ASSOCIATED_RESOURCES_SECTION: EditorSection = {
+ label: marker('editor.record.form.section.associatedResources.label'),
+ description: marker(
+ 'editor.record.form.section.associatedResources.description'
+ ),
+ hidden: false,
+ fields: [],
+}
+
+export const ANNEXES_SECTION: EditorSection = {
+ label: marker('editor.record.form.section.annexes.label'),
+ description: '',
+ hidden: false,
+ fields: [],
+}
+
+export const CLASSIFICATION_SECTION: EditorSection = {
+ label: marker('editor.record.form.section.classification.label'),
+ description: marker('editor.record.form.section.classification.description'),
+ hidden: false,
+ fields: [RECORD_KEYWORDS_FIELD],
+}
+
+export const USE_AND_ACCESS_CONDITIONS_SECTION: EditorSection = {
+ label: marker('editor.record.form.section.useAndAccessConditions.label'),
+ description: '',
+ hidden: false,
+ fields: [RECORD_LICENSE_FIELD],
+}
+
+export const DATA_MANAGERS_SECTION: EditorSection = {
+ label: marker('editor.record.form.section.dataManagers.label'),
+ description: marker('editor.record.form.section.dataManagers.description'),
+ hidden: false,
+ fields: [],
+}
+
+export const DATA_POINT_OF_CONTACT_SECTION: EditorSection = {
+ label: marker('editor.record.form.section.dataPointOfContact.label'),
+ description: marker(
+ 'editor.record.form.section.dataPointOfContact.description'
+ ),
+ hidden: false,
+ fields: [],
+}
+
+/************************************************************
+ *************** PAGES *****************
+ ************************************************************
+ */
+export const DEFAULT_FIELDS: EditorConfig = {
+ pages: [
+ {
+ index: 0,
+ label: marker('editor.record.form.page.description'),
+ sections: [TITLE_SECTION, ABOUT_SECTION, GEOGRAPHICAL_COVERAGE_SECTION],
+ },
+ {
+ index: 1,
+ label: marker('editor.record.form.page.ressources'),
+ sections: [ASSOCIATED_RESOURCES_SECTION, ANNEXES_SECTION],
+ },
+ {
+ index: 2,
+ label: marker('editor.record.form.page.accessAndContact'),
+ sections: [
+ CLASSIFICATION_SECTION,
+ USE_AND_ACCESS_CONDITIONS_SECTION,
+ DATA_MANAGERS_SECTION,
+ DATA_POINT_OF_CONTACT_SECTION,
+ ],
+ },
+ ],
+}
diff --git a/libs/feature/editor/src/lib/models/fields.model.ts b/libs/feature/editor/src/lib/models/fields.model.ts
index 0dae06b007..ea51f9007b 100644
--- a/libs/feature/editor/src/lib/models/fields.model.ts
+++ b/libs/feature/editor/src/lib/models/fields.model.ts
@@ -1,15 +1,27 @@
-import { FormFieldConfig } from '../components/record-form/form-field'
+import { CatalogRecordKeys } from '@geonetwork-ui/common/domain/model/record'
// Expressions should be enclosed in `${}` to be recognized as such
// eg. ${dateNow()}
export type EditorFieldExpression = `$\{${string}}`
-export interface EditorFieldConfig {
+export type EditorFieldValue = string | number | boolean | unknown
+
+export interface FormFieldConfig {
+ labelKey: string
+ hintKey?: string
+ tooltipKey?: string
+ required?: boolean
+ locked?: boolean
+ invalid?: boolean
+ invalidHintKey?: string
+}
+
+export interface EditorField {
// configuration of the form field used as presentation; optional, nothing shown if not defined
- formFieldConfig?: FormFieldConfig
+ formFieldConfig: FormFieldConfig
// name of the target field in the record; will not change the record directly if not defined
- model?: string
+ model?: CatalogRecordKeys
// a hidden field won't show but can still be used to modify the record
// FIXME: currently this is redundant with an absence of formFieldConfig but necessary for clarity
@@ -17,13 +29,28 @@ export interface EditorFieldConfig {
// the result of this expression will replace the field value on save
onSaveProcess?: EditorFieldExpression
+
+ value?: EditorFieldValue
}
-export type EditorFieldsConfig = EditorFieldConfig[]
+export interface EditorSection {
+ label: string
+ description: string
+ hidden: boolean
+ fields: EditorField[]
+}
-export type EditorFieldValue = string | number | boolean | unknown
+export interface EditorFieldPage {
+ index: number
+ label: string
+ sections: EditorSection[]
+}
+
+export interface EditorConfig {
+ pages: EditorFieldPage[]
+}
export interface EditorFieldState {
- config: EditorFieldConfig
- value: string | number | boolean | unknown
+ model: string
+ value: EditorFieldValue
}
diff --git a/libs/feature/editor/src/lib/models/index.ts b/libs/feature/editor/src/lib/models/index.ts
index 65975121b2..e0262b5dfe 100644
--- a/libs/feature/editor/src/lib/models/index.ts
+++ b/libs/feature/editor/src/lib/models/index.ts
@@ -1,2 +1,3 @@
export * from './wizard-field.model'
export * from './wizard-field.type'
+export * from './fields.model'
diff --git a/libs/feature/editor/src/lib/services/editor.service.ts b/libs/feature/editor/src/lib/services/editor.service.ts
index 9b7c005438..3ac726e4cb 100644
--- a/libs/feature/editor/src/lib/services/editor.service.ts
+++ b/libs/feature/editor/src/lib/services/editor.service.ts
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'
import { Observable, switchMap } from 'rxjs'
import { map, tap } from 'rxjs/operators'
import { CatalogRecord } from '@geonetwork-ui/common/domain/model/record'
-import { EditorFieldsConfig } from '../models/fields.model'
+import { EditorConfig } from '../models/fields.model'
import { evaluate } from '../expressions'
import { RecordsRepositoryInterface } from '@geonetwork-ui/common/domain/repository/records-repository.interface'
@@ -15,17 +15,21 @@ export class EditorService {
// returns the record as it was when saved, alongside its source
saveRecord(
record: CatalogRecord,
- fieldsConfig: EditorFieldsConfig,
+ fieldsConfig: EditorConfig,
generateNewUniqueIdentifier = false
): Observable<[CatalogRecord, string]> {
const savedRecord = { ...record }
+ const fields = fieldsConfig.pages.flatMap((page) =>
+ page.sections.flatMap((section) => section.fields)
+ )
+
// run onSave processes
- for (const field of fieldsConfig) {
+ for (const field of fields) {
if (field.onSaveProcess && field.model) {
const evaluator = evaluate(field.onSaveProcess)
savedRecord[field.model] = evaluator({
- config: field,
+ model: field.model,
value: record[field.model],
})
}
diff --git a/libs/feature/editor/tsconfig.json b/libs/feature/editor/tsconfig.json
index cdea0bdb38..9e29358f76 100644
--- a/libs/feature/editor/tsconfig.json
+++ b/libs/feature/editor/tsconfig.json
@@ -16,11 +16,7 @@
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"target": "es2020",
- "lib": [
- "dom",
- "es2020",
- "dom.iterable"
- ],
+ "lib": ["dom", "es2020", "dom.iterable"],
"downlevelIteration": true
},
"angularCompilerOptions": {
diff --git a/libs/feature/editor/tsconfig.lib.json b/libs/feature/editor/tsconfig.lib.json
index 7ca4377996..2a4c9a5e36 100644
--- a/libs/feature/editor/tsconfig.lib.json
+++ b/libs/feature/editor/tsconfig.lib.json
@@ -7,11 +7,7 @@
"declarationMap": true,
"inlineSources": true,
"types": [],
- "lib": [
- "dom",
- "es2020",
- "dom.iterable"
- ],
+ "lib": ["dom", "es2020", "dom.iterable"],
"downlevelIteration": true
},
"exclude": [
@@ -20,7 +16,5 @@
"**/*.test.ts",
"jest.config.ts"
],
- "include": [
- "**/*.ts"
- ]
+ "include": ["**/*.ts"]
}
diff --git a/libs/util/shared/tsconfig.lib.json b/libs/util/shared/tsconfig.lib.json
index 9bb502669e..02d129fa3b 100644
--- a/libs/util/shared/tsconfig.lib.json
+++ b/libs/util/shared/tsconfig.lib.json
@@ -7,11 +7,7 @@
"declarationMap": true,
"inlineSources": true,
"types": [],
- "lib": [
- "dom",
- "es2020",
- "dom.iterable"
- ]
+ "lib": ["dom", "es2020", "dom.iterable"]
},
"exclude": [
"src/test-setup.ts",
diff --git a/translations/de.json b/translations/de.json
index 55feccb7c4..e42b867d3b 100644
--- a/translations/de.json
+++ b/translations/de.json
@@ -165,8 +165,18 @@
"downloads.format.unknown": "unbekannt",
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
"dropFile": "Datei ablegen",
- "editor.record.form.keywords": "Schlagwörter",
- "editor.record.form.license": "Lizenz",
+ "editor.record.form.bottomButtons.comeBackLater": "",
+ "editor.record.form.bottomButtons.next": "",
+ "editor.record.form.bottomButtons.previous": "",
+ "editor.record.form.field.abstract": "",
+ "editor.record.form.field.keywords": "Schlagwörter",
+ "editor.record.form.field.license": "Lizenz",
+ "editor.record.form.field.recordUpdated": "",
+ "editor.record.form.field.resourceUpdated": "",
+ "editor.record.form.field.temporalExtents": "",
+ "editor.record.form.field.title": "",
+ "editor.record.form.field.uniqueIdentifier": "",
+ "editor.record.form.field.updateFrequency": "",
"editor.record.form.license.cc-by": "",
"editor.record.form.license.cc-by-sa": "",
"editor.record.form.license.cc-zero": "",
@@ -176,13 +186,26 @@
"editor.record.form.license.odc-by": "",
"editor.record.form.license.pddl": "",
"editor.record.form.license.unknown": "Unbekannt oder nicht vorhanden",
- "editor.record.form.resourceUpdated": "",
- "editor.record.form.temporalExtents": "",
+ "editor.record.form.page.accessAndContact": "",
+ "editor.record.form.page.description": "",
+ "editor.record.form.page.ressources": "",
+ "editor.record.form.section.about.description": "",
+ "editor.record.form.section.about.label": "",
+ "editor.record.form.section.annexes.label": "",
+ "editor.record.form.section.associatedResources.description": "",
+ "editor.record.form.section.associatedResources.label": "",
+ "editor.record.form.section.classification.description": "",
+ "editor.record.form.section.classification.label": "",
+ "editor.record.form.section.dataManagers.description": "",
+ "editor.record.form.section.dataManagers.label": "",
+ "editor.record.form.section.dataPointOfContact.description": "",
+ "editor.record.form.section.dataPointOfContact.label": "",
+ "editor.record.form.section.geographicalCoverage.label": "",
+ "editor.record.form.section.useAndAccessConditions.label": "",
"editor.record.form.temporalExtents.addDate": "",
"editor.record.form.temporalExtents.addRange": "",
"editor.record.form.temporalExtents.date": "",
"editor.record.form.temporalExtents.range": "",
- "editor.record.form.updateFrequency": "",
"editor.record.form.updateFrequency.planned": "",
"editor.record.loadError.body": "",
"editor.record.loadError.closeMessage": "",
diff --git a/translations/en.json b/translations/en.json
index 1f3e28e966..dfbd0fda2d 100644
--- a/translations/en.json
+++ b/translations/en.json
@@ -165,8 +165,18 @@
"downloads.format.unknown": "unknown",
"downloads.wfs.featuretype.not.found": "The layer was not found",
"dropFile": "drop file",
- "editor.record.form.keywords": "Keywords",
- "editor.record.form.license": "License",
+ "editor.record.form.bottomButtons.comeBackLater": "Come back later",
+ "editor.record.form.bottomButtons.next": "Next",
+ "editor.record.form.bottomButtons.previous": "Previous",
+ "editor.record.form.field.abstract": "Abstract",
+ "editor.record.form.field.keywords": "Keywords",
+ "editor.record.form.field.license": "License",
+ "editor.record.form.field.recordUpdated": "Record Updated",
+ "editor.record.form.field.resourceUpdated": "Resource Updated",
+ "editor.record.form.field.temporalExtents": "Temporal extents",
+ "editor.record.form.field.title": "Metadata title",
+ "editor.record.form.field.uniqueIdentifier": "Unique identifier",
+ "editor.record.form.field.updateFrequency": "Update frequency",
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
"editor.record.form.license.cc-zero": "Creative Commons CC-0",
@@ -176,13 +186,26 @@
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
"editor.record.form.license.pddl": "Open Data Commons PDDL",
"editor.record.form.license.unknown": "Unknown or absent",
- "editor.record.form.resourceUpdated": "Last update date",
- "editor.record.form.temporalExtents": "Temporal extent",
+ "editor.record.form.page.accessAndContact": "Access and contact",
+ "editor.record.form.page.description": "Resource description",
+ "editor.record.form.page.ressources": "Resources",
+ "editor.record.form.section.about.description": "This section describes the resource.",
+ "editor.record.form.section.about.label": "About the resource",
+ "editor.record.form.section.annexes.label": "Annexes",
+ "editor.record.form.section.associatedResources.description": "Drop files here to associate them with the resource.",
+ "editor.record.form.section.associatedResources.label": "Associated resources",
+ "editor.record.form.section.classification.description": "The classification has an impact on the access to the data.",
+ "editor.record.form.section.classification.label": "Classification",
+ "editor.record.form.section.dataManagers.description": "The data managers are responsible for the data.",
+ "editor.record.form.section.dataManagers.label": "Data managers",
+ "editor.record.form.section.dataPointOfContact.description": "This information concerns the metadata.",
+ "editor.record.form.section.dataPointOfContact.label": "Data point of contact",
+ "editor.record.form.section.geographicalCoverage.label": "Geographical coverage",
+ "editor.record.form.section.useAndAccessConditions.label": "Use and access conditions",
"editor.record.form.temporalExtents.addDate": "Time instant",
"editor.record.form.temporalExtents.addRange": "Time period",
"editor.record.form.temporalExtents.date": "Date",
"editor.record.form.temporalExtents.range": "Date range",
- "editor.record.form.updateFrequency": "Update frequency",
"editor.record.form.updateFrequency.planned": "The data should be updated regularly.",
"editor.record.loadError.body": "The record could not be loaded:",
"editor.record.loadError.closeMessage": "Understood",
diff --git a/translations/es.json b/translations/es.json
index 8973368432..10b2371b9d 100644
--- a/translations/es.json
+++ b/translations/es.json
@@ -165,8 +165,18 @@
"downloads.format.unknown": "",
"downloads.wfs.featuretype.not.found": "",
"dropFile": "",
- "editor.record.form.keywords": "",
- "editor.record.form.license": "",
+ "editor.record.form.bottomButtons.comeBackLater": "",
+ "editor.record.form.bottomButtons.next": "",
+ "editor.record.form.bottomButtons.previous": "",
+ "editor.record.form.field.abstract": "",
+ "editor.record.form.field.keywords": "",
+ "editor.record.form.field.license": "",
+ "editor.record.form.field.recordUpdated": "",
+ "editor.record.form.field.resourceUpdated": "",
+ "editor.record.form.field.temporalExtents": "",
+ "editor.record.form.field.title": "",
+ "editor.record.form.field.uniqueIdentifier": "",
+ "editor.record.form.field.updateFrequency": "",
"editor.record.form.license.cc-by": "",
"editor.record.form.license.cc-by-sa": "",
"editor.record.form.license.cc-zero": "",
@@ -176,13 +186,26 @@
"editor.record.form.license.odc-by": "",
"editor.record.form.license.pddl": "",
"editor.record.form.license.unknown": "",
- "editor.record.form.resourceUpdated": "",
- "editor.record.form.temporalExtents": "",
+ "editor.record.form.page.accessAndContact": "",
+ "editor.record.form.page.description": "",
+ "editor.record.form.page.ressources": "",
+ "editor.record.form.section.about.description": "",
+ "editor.record.form.section.about.label": "",
+ "editor.record.form.section.annexes.label": "",
+ "editor.record.form.section.associatedResources.description": "",
+ "editor.record.form.section.associatedResources.label": "",
+ "editor.record.form.section.classification.description": "",
+ "editor.record.form.section.classification.label": "",
+ "editor.record.form.section.dataManagers.description": "",
+ "editor.record.form.section.dataManagers.label": "",
+ "editor.record.form.section.dataPointOfContact.description": "",
+ "editor.record.form.section.dataPointOfContact.label": "",
+ "editor.record.form.section.geographicalCoverage.label": "",
+ "editor.record.form.section.useAndAccessConditions.label": "",
"editor.record.form.temporalExtents.addDate": "",
"editor.record.form.temporalExtents.addRange": "",
"editor.record.form.temporalExtents.date": "",
"editor.record.form.temporalExtents.range": "",
- "editor.record.form.updateFrequency": "",
"editor.record.form.updateFrequency.planned": "",
"editor.record.loadError.body": "",
"editor.record.loadError.closeMessage": "",
diff --git a/translations/fr.json b/translations/fr.json
index fb4d6e7462..2d079de290 100644
--- a/translations/fr.json
+++ b/translations/fr.json
@@ -165,8 +165,18 @@
"downloads.format.unknown": "inconnu",
"downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
"dropFile": "Faites glisser votre fichier",
- "editor.record.form.keywords": "Mots-clés",
- "editor.record.form.license": "Licence",
+ "editor.record.form.bottomButtons.comeBackLater": "Revenir plus tard",
+ "editor.record.form.bottomButtons.next": "Suivant",
+ "editor.record.form.bottomButtons.previous": "Précédent",
+ "editor.record.form.field.abstract": "Résumé",
+ "editor.record.form.field.keywords": "Mots-clés",
+ "editor.record.form.field.license": "Licence",
+ "editor.record.form.field.recordUpdated": "Date de dernière révision",
+ "editor.record.form.field.resourceUpdated": "Date de dernière révision",
+ "editor.record.form.field.temporalExtents": "Étendue temporelle",
+ "editor.record.form.field.title": "Titre",
+ "editor.record.form.field.uniqueIdentifier": "Identifiant unique",
+ "editor.record.form.field.updateFrequency": "Fréquence de mise à jour",
"editor.record.form.license.cc-by": "",
"editor.record.form.license.cc-by-sa": "",
"editor.record.form.license.cc-zero": "",
@@ -176,13 +186,26 @@
"editor.record.form.license.odc-by": "",
"editor.record.form.license.pddl": "",
"editor.record.form.license.unknown": "Non-reconnue ou absente",
- "editor.record.form.resourceUpdated": "Date de dernière révision",
- "editor.record.form.temporalExtents": "Étendue temporelle",
+ "editor.record.form.page.accessAndContact": "Acces et contact",
+ "editor.record.form.page.description": "Description de la ressource",
+ "editor.record.form.page.ressources": "Ressources",
+ "editor.record.form.section.about.description": "Ces informations concernent la donnée.",
+ "editor.record.form.section.about.label": "A propos de la ressource",
+ "editor.record.form.section.annexes.label": "Annexes",
+ "editor.record.form.section.associatedResources.description": "Déposez les jeux de données associées à cette fiche de métadonnée.",
+ "editor.record.form.section.associatedResources.label": "Ressources associees",
+ "editor.record.form.section.classification.description": "La classification a un impact sur la recherche du jeux de données.",
+ "editor.record.form.section.classification.label": "Classification",
+ "editor.record.form.section.dataManagers.description": "Cette information concerne la donnée.",
+ "editor.record.form.section.dataManagers.label": "Responsables de la donnee",
+ "editor.record.form.section.dataPointOfContact.description": "Cette information concerne la fiche de métadonnée.",
+ "editor.record.form.section.dataPointOfContact.label": "Point de contact de la metadonee",
+ "editor.record.form.section.geographicalCoverage.label": "Couverture geographique",
+ "editor.record.form.section.useAndAccessConditions.label": "Conditions d'acces et usage",
"editor.record.form.temporalExtents.addDate": "Date déterminée",
"editor.record.form.temporalExtents.addRange": "Période de temps",
"editor.record.form.temporalExtents.date": "Date concernée",
"editor.record.form.temporalExtents.range": "Période concernée",
- "editor.record.form.updateFrequency": "Fréquence de mise à jour",
"editor.record.form.updateFrequency.planned": "Ces données doivent être mise à jour régulièrement.",
"editor.record.loadError.body": "",
"editor.record.loadError.closeMessage": "",
diff --git a/translations/it.json b/translations/it.json
index e7fff9fb95..672bef5dab 100644
--- a/translations/it.json
+++ b/translations/it.json
@@ -165,8 +165,18 @@
"downloads.format.unknown": "sconosciuto",
"downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
"dropFile": "Trascina il suo file",
- "editor.record.form.keywords": "",
- "editor.record.form.license": "Licenza",
+ "editor.record.form.bottomButtons.comeBackLater": "",
+ "editor.record.form.bottomButtons.next": "",
+ "editor.record.form.bottomButtons.previous": "",
+ "editor.record.form.field.abstract": "",
+ "editor.record.form.field.keywords": "",
+ "editor.record.form.field.license": "Licenza",
+ "editor.record.form.field.recordUpdated": "",
+ "editor.record.form.field.resourceUpdated": "",
+ "editor.record.form.field.temporalExtents": "",
+ "editor.record.form.field.title": "",
+ "editor.record.form.field.uniqueIdentifier": "",
+ "editor.record.form.field.updateFrequency": "",
"editor.record.form.license.cc-by": "",
"editor.record.form.license.cc-by-sa": "",
"editor.record.form.license.cc-zero": "",
@@ -176,13 +186,26 @@
"editor.record.form.license.odc-by": "",
"editor.record.form.license.pddl": "",
"editor.record.form.license.unknown": "Non riconosciuta o assente",
- "editor.record.form.resourceUpdated": "",
- "editor.record.form.temporalExtents": "",
+ "editor.record.form.page.accessAndContact": "",
+ "editor.record.form.page.description": "",
+ "editor.record.form.page.ressources": "",
+ "editor.record.form.section.about.description": "",
+ "editor.record.form.section.about.label": "",
+ "editor.record.form.section.annexes.label": "",
+ "editor.record.form.section.associatedResources.description": "",
+ "editor.record.form.section.associatedResources.label": "",
+ "editor.record.form.section.classification.description": "",
+ "editor.record.form.section.classification.label": "",
+ "editor.record.form.section.dataManagers.description": "",
+ "editor.record.form.section.dataManagers.label": "",
+ "editor.record.form.section.dataPointOfContact.description": "",
+ "editor.record.form.section.dataPointOfContact.label": "",
+ "editor.record.form.section.geographicalCoverage.label": "",
+ "editor.record.form.section.useAndAccessConditions.label": "",
"editor.record.form.temporalExtents.addDate": "",
"editor.record.form.temporalExtents.addRange": "",
"editor.record.form.temporalExtents.date": "",
"editor.record.form.temporalExtents.range": "",
- "editor.record.form.updateFrequency": "",
"editor.record.form.updateFrequency.planned": "",
"editor.record.loadError.body": "",
"editor.record.loadError.closeMessage": "",
diff --git a/translations/nl.json b/translations/nl.json
index 1086aa0994..c3d8ff278c 100644
--- a/translations/nl.json
+++ b/translations/nl.json
@@ -165,8 +165,18 @@
"downloads.format.unknown": "",
"downloads.wfs.featuretype.not.found": "",
"dropFile": "",
- "editor.record.form.keywords": "",
- "editor.record.form.license": "",
+ "editor.record.form.bottomButtons.comeBackLater": "",
+ "editor.record.form.bottomButtons.next": "",
+ "editor.record.form.bottomButtons.previous": "",
+ "editor.record.form.field.abstract": "",
+ "editor.record.form.field.keywords": "",
+ "editor.record.form.field.license": "",
+ "editor.record.form.field.recordUpdated": "",
+ "editor.record.form.field.resourceUpdated": "",
+ "editor.record.form.field.temporalExtents": "",
+ "editor.record.form.field.title": "",
+ "editor.record.form.field.uniqueIdentifier": "",
+ "editor.record.form.field.updateFrequency": "",
"editor.record.form.license.cc-by": "",
"editor.record.form.license.cc-by-sa": "",
"editor.record.form.license.cc-zero": "",
@@ -176,13 +186,26 @@
"editor.record.form.license.odc-by": "",
"editor.record.form.license.pddl": "",
"editor.record.form.license.unknown": "",
- "editor.record.form.resourceUpdated": "",
- "editor.record.form.temporalExtents": "",
+ "editor.record.form.page.accessAndContact": "",
+ "editor.record.form.page.description": "",
+ "editor.record.form.page.ressources": "",
+ "editor.record.form.section.about.description": "",
+ "editor.record.form.section.about.label": "",
+ "editor.record.form.section.annexes.label": "",
+ "editor.record.form.section.associatedResources.description": "",
+ "editor.record.form.section.associatedResources.label": "",
+ "editor.record.form.section.classification.description": "",
+ "editor.record.form.section.classification.label": "",
+ "editor.record.form.section.dataManagers.description": "",
+ "editor.record.form.section.dataManagers.label": "",
+ "editor.record.form.section.dataPointOfContact.description": "",
+ "editor.record.form.section.dataPointOfContact.label": "",
+ "editor.record.form.section.geographicalCoverage.label": "",
+ "editor.record.form.section.useAndAccessConditions.label": "",
"editor.record.form.temporalExtents.addDate": "",
"editor.record.form.temporalExtents.addRange": "",
"editor.record.form.temporalExtents.date": "",
"editor.record.form.temporalExtents.range": "",
- "editor.record.form.updateFrequency": "",
"editor.record.form.updateFrequency.planned": "",
"editor.record.loadError.body": "",
"editor.record.loadError.closeMessage": "",
diff --git a/translations/pt.json b/translations/pt.json
index 761e097ab1..477d75f32f 100644
--- a/translations/pt.json
+++ b/translations/pt.json
@@ -165,8 +165,18 @@
"downloads.format.unknown": "",
"downloads.wfs.featuretype.not.found": "",
"dropFile": "",
- "editor.record.form.keywords": "",
- "editor.record.form.license": "",
+ "editor.record.form.bottomButtons.comeBackLater": "",
+ "editor.record.form.bottomButtons.next": "",
+ "editor.record.form.bottomButtons.previous": "",
+ "editor.record.form.field.abstract": "",
+ "editor.record.form.field.keywords": "",
+ "editor.record.form.field.license": "",
+ "editor.record.form.field.recordUpdated": "",
+ "editor.record.form.field.resourceUpdated": "",
+ "editor.record.form.field.temporalExtents": "",
+ "editor.record.form.field.title": "",
+ "editor.record.form.field.uniqueIdentifier": "",
+ "editor.record.form.field.updateFrequency": "",
"editor.record.form.license.cc-by": "",
"editor.record.form.license.cc-by-sa": "",
"editor.record.form.license.cc-zero": "",
@@ -176,13 +186,26 @@
"editor.record.form.license.odc-by": "",
"editor.record.form.license.pddl": "",
"editor.record.form.license.unknown": "",
- "editor.record.form.resourceUpdated": "",
- "editor.record.form.temporalExtents": "",
+ "editor.record.form.page.accessAndContact": "",
+ "editor.record.form.page.description": "",
+ "editor.record.form.page.ressources": "",
+ "editor.record.form.section.about.description": "",
+ "editor.record.form.section.about.label": "",
+ "editor.record.form.section.annexes.label": "",
+ "editor.record.form.section.associatedResources.description": "",
+ "editor.record.form.section.associatedResources.label": "",
+ "editor.record.form.section.classification.description": "",
+ "editor.record.form.section.classification.label": "",
+ "editor.record.form.section.dataManagers.description": "",
+ "editor.record.form.section.dataManagers.label": "",
+ "editor.record.form.section.dataPointOfContact.description": "",
+ "editor.record.form.section.dataPointOfContact.label": "",
+ "editor.record.form.section.geographicalCoverage.label": "",
+ "editor.record.form.section.useAndAccessConditions.label": "",
"editor.record.form.temporalExtents.addDate": "",
"editor.record.form.temporalExtents.addRange": "",
"editor.record.form.temporalExtents.date": "",
"editor.record.form.temporalExtents.range": "",
- "editor.record.form.updateFrequency": "",
"editor.record.form.updateFrequency.planned": "",
"editor.record.loadError.body": "",
"editor.record.loadError.closeMessage": "",
diff --git a/translations/sk.json b/translations/sk.json
index aa56902b73..2e660902c1 100644
--- a/translations/sk.json
+++ b/translations/sk.json
@@ -165,8 +165,18 @@
"downloads.format.unknown": "neznámy",
"downloads.wfs.featuretype.not.found": "Vrstva nebola nájdená",
"dropFile": "nahrať súbor",
- "editor.record.form.keywords": "",
- "editor.record.form.license": "Licencia",
+ "editor.record.form.bottomButtons.comeBackLater": "",
+ "editor.record.form.bottomButtons.next": "",
+ "editor.record.form.bottomButtons.previous": "",
+ "editor.record.form.field.abstract": "",
+ "editor.record.form.field.keywords": "",
+ "editor.record.form.field.license": "Licencia",
+ "editor.record.form.field.recordUpdated": "",
+ "editor.record.form.field.resourceUpdated": "",
+ "editor.record.form.field.temporalExtents": "",
+ "editor.record.form.field.title": "",
+ "editor.record.form.field.uniqueIdentifier": "",
+ "editor.record.form.field.updateFrequency": "",
"editor.record.form.license.cc-by": "",
"editor.record.form.license.cc-by-sa": "",
"editor.record.form.license.cc-zero": "",
@@ -176,13 +186,26 @@
"editor.record.form.license.odc-by": "",
"editor.record.form.license.pddl": "",
"editor.record.form.license.unknown": "Neznáme alebo chýbajúce",
- "editor.record.form.resourceUpdated": "",
- "editor.record.form.temporalExtents": "",
+ "editor.record.form.page.accessAndContact": "",
+ "editor.record.form.page.description": "",
+ "editor.record.form.page.ressources": "",
+ "editor.record.form.section.about.description": "",
+ "editor.record.form.section.about.label": "",
+ "editor.record.form.section.annexes.label": "",
+ "editor.record.form.section.associatedResources.description": "",
+ "editor.record.form.section.associatedResources.label": "",
+ "editor.record.form.section.classification.description": "",
+ "editor.record.form.section.classification.label": "",
+ "editor.record.form.section.dataManagers.description": "",
+ "editor.record.form.section.dataManagers.label": "",
+ "editor.record.form.section.dataPointOfContact.description": "",
+ "editor.record.form.section.dataPointOfContact.label": "",
+ "editor.record.form.section.geographicalCoverage.label": "",
+ "editor.record.form.section.useAndAccessConditions.label": "",
"editor.record.form.temporalExtents.addDate": "",
"editor.record.form.temporalExtents.addRange": "",
"editor.record.form.temporalExtents.date": "",
"editor.record.form.temporalExtents.range": "",
- "editor.record.form.updateFrequency": "",
"editor.record.form.updateFrequency.planned": "",
"editor.record.loadError.body": "",
"editor.record.loadError.closeMessage": "",