Skip to content

Commit 90f6293

Browse files
WIP
1 parent fa44888 commit 90f6293

File tree

17 files changed

+43
-72
lines changed

17 files changed

+43
-72
lines changed

libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -185,15 +185,15 @@ export function extractOrganizationIndividuals(
185185
els.length
186186
? els.map((el) => extractIndividual(role, org, orgContact)(el))
187187
: [
188-
{
189-
email: orgContact.email,
190-
...(orgContact.address && { address: orgContact.address }),
191-
...(orgContact.phone && { phone: orgContact.phone }),
192-
...(orgContact.position && { position: orgContact.position }),
193-
organization: org,
194-
role,
195-
},
196-
]
188+
{
189+
email: orgContact.email,
190+
...(orgContact.address && { address: orgContact.address }),
191+
...(orgContact.phone && { phone: orgContact.phone }),
192+
...(orgContact.position && { position: orgContact.position }),
193+
organization: org,
194+
role,
195+
},
196+
]
197197
)
198198
)
199199
}
@@ -394,13 +394,3 @@ export function readOtherLanguages(rootEl: XmlElement): LanguageCode[] {
394394
)
395395
)(rootEl)
396396
}
397-
398-
export function readRawLanguageCode(): ChainableFunction<
399-
XmlElement,
400-
string | null
401-
> {
402-
return pipe(
403-
findChildElement('lan:LanguageCode'),
404-
readAttribute('codeListValue')
405-
)
406-
}

libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,8 @@ import {
4949
} from '../iso19139/write-parts'
5050
import { findIdentification } from '../iso19139/read-parts'
5151
import { namePartsToFull } from '../iso19139/utils/individual-name'
52-
import {
53-
LANG_2_TO_3_MAPPER,
54-
LANG_3_TO_2_MAPPER,
55-
} from '@geonetwork-ui/util/i18n/language-codes'
52+
import { LANG_2_TO_3_MAPPER } from '@geonetwork-ui/util/i18n/language-codes'
5653
import { kindToCodeListValue } from '../common/resource-types'
57-
import { readOtherLanguages, readRawLanguageCode } from './read-parts'
5854

5955
export function writeUniqueIdentifier(
6056
record: CatalogRecord,
@@ -558,17 +554,6 @@ export function writeDefaultLanguage(
558554
}
559555

560556
export function writeOtherLanguages(record: DatasetRecord, rootEl: XmlElement) {
561-
// make sure to keep unsupported languages
562-
const existingLanguages = pipe(
563-
findChildrenElement('mdb:otherLocale', false),
564-
mapArray(readRawLanguageCode())
565-
)(rootEl)
566-
567-
const mergedLanguages = [
568-
...record.otherLanguages,
569-
...existingLanguages.filter((lang) => !LANG_3_TO_2_MAPPER[lang]),
570-
]
571-
572557
// clear existing
573558
removeChildrenByName('mdb:otherLocale')(rootEl)
574559

@@ -578,7 +563,7 @@ export function writeOtherLanguages(record: DatasetRecord, rootEl: XmlElement) {
578563
}
579564

580565
appendChildren(
581-
...mergedLanguages.map((lang: LanguageCode) =>
566+
...record.otherLanguages.map((lang: LanguageCode) =>
582567
pipe(createElement('mdb:otherLocale'), writeLocaleElement(lang))
583568
)
584569
)(rootEl)

libs/api/metadata-converter/src/lib/iso19139/read-parts.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1156,16 +1156,6 @@ export function readSpatialExtents(rootEl: XmlElement) {
11561156
)(rootEl)
11571157
}
11581158

1159-
export function readRawLanguageCode(): ChainableFunction<
1160-
XmlElement,
1161-
string | null
1162-
> {
1163-
return pipe(
1164-
findChildElement('lan:LanguageCode'),
1165-
readAttribute('codeListValue')
1166-
)
1167-
}
1168-
11691159
export function readOtherLanguages(rootEl: XmlElement): LanguageCode[] {
11701160
const defaultLanguage = readDefaultLanguage(rootEl)
11711161
return pipe(

libs/api/metadata-converter/src/lib/iso19139/write-parts.ts

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,10 @@ import {
5050
writeAttribute,
5151
XmlElement,
5252
} from '../xml-utils'
53-
import { readKind, readOtherLanguages, readRawLanguageCode } from './read-parts'
53+
import { readKind } from './read-parts'
5454
import { writeGeometry } from './utils/geometry'
5555
import { namePartsToFull } from './utils/individual-name'
56-
import {
57-
LANG_2_TO_3_MAPPER,
58-
LANG_3_TO_2_MAPPER,
59-
} from '@geonetwork-ui/util/i18n/language-codes'
56+
import { LANG_2_TO_3_MAPPER } from '@geonetwork-ui/util/i18n/language-codes'
6057
import { kindToCodeListValue } from '../common/resource-types'
6158

6259
function writeLocalizedElement(
@@ -1460,16 +1457,6 @@ export function writeSpatialExtents(record: DatasetRecord, rootEl: XmlElement) {
14601457
}
14611458

14621459
export function writeLanguages(record: DatasetRecord, rootEl: XmlElement) {
1463-
// make sure to keep unsupported languages
1464-
const existingLanguages = pipe(
1465-
findChildrenElement('gmd:locale', false),
1466-
mapArray(readRawLanguageCode())
1467-
)(rootEl)
1468-
1469-
const mergedLanguages = [
1470-
...record.otherLanguages,
1471-
...existingLanguages.filter((lang) => !LANG_3_TO_2_MAPPER[lang]),
1472-
]
14731460
// clear existing
14741461
removeChildrenByName('gmd:locale')(rootEl)
14751462

@@ -1493,7 +1480,7 @@ export function writeLanguages(record: DatasetRecord, rootEl: XmlElement) {
14931480
// add new languages (only if other than default one)
14941481
appendChildren(
14951482
createLanguageEl(record.defaultLanguage),
1496-
...mergedLanguages.map(createLanguageEl)
1483+
...record.otherLanguages.map(createLanguageEl)
14971484
)(rootEl)
14981485
}
14991486

libs/feature/editor/src/lib/+state/editor.actions.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,8 @@ export const canEditRecord = createAction(
6060
'[Editor] User can edit record',
6161
props<{ canEditRecord: boolean }>()
6262
)
63+
64+
export const currentLanguage = createAction(
65+
'[Editor] Current eidtion fields language changes',
66+
props<{ currentLanguage: string | null }>()
67+
)

libs/feature/editor/src/lib/+state/editor.facade.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ export class EditorFacade {
3434
)
3535
isPublished$ = this.store.pipe(select(EditorSelectors.selectIsPublished))
3636
canEditRecord$ = this.store.pipe(select(EditorSelectors.selectCanEditRecord))
37+
currentLanguage$ = this.store.pipe(
38+
select(EditorSelectors.selectCurrentLanguage)
39+
)
3740

3841
openRecord(record: CatalogRecord, recordSource: string) {
3942
this.store.dispatch(
@@ -76,4 +79,8 @@ export class EditorFacade {
7679
canEditRecord(canEditRecord: boolean) {
7780
this.store.dispatch(EditorActions.canEditRecord({ canEditRecord }))
7881
}
82+
83+
currentLanguage(currentLanguage: string) {
84+
this.store.dispatch(EditorActions.currentLanguage({ currentLanguage }))
85+
}
7986
}

libs/feature/editor/src/lib/+state/editor.reducer.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export interface EditorState {
2626
hasRecordChanged: { user: string; date: Date }
2727
isPublished: boolean
2828
canEditRecord: boolean
29+
currentLanguage: string | null
2930
}
3031

3132
export interface EditorPartialState {
@@ -43,6 +44,7 @@ export const initialEditorState: EditorState = {
4344
hasRecordChanged: null,
4445
isPublished: true,
4546
canEditRecord: true,
47+
currentLanguage: null,
4648
}
4749

4850
const reducer = createReducer(
@@ -52,6 +54,7 @@ const reducer = createReducer(
5254
changedSinceSave: false,
5355
recordSource: recordSource ?? null,
5456
record,
57+
currentLanguage: null,
5558
})),
5659
on(EditorActions.saveRecord, (state) => ({
5760
...state,

libs/feature/editor/src/lib/+state/editor.selectors.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,8 @@ export const selectCanEditRecord = createSelector(
7171
selectEditorState,
7272
(state: EditorState) => state.canEditRecord
7373
)
74+
75+
export const selectCurrentLanguage = createSelector(
76+
selectEditorState,
77+
(state: EditorState) => state.currentLanguage
78+
)

libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,13 @@ export class MultilingualPanelComponent implements OnDestroy {
7979
editTranslations: boolean
8080
selectedLanguages = []
8181
recordLanguages = []
82-
formLanguage = ''
8382
@Input() set record(value: CatalogRecord) {
8483
this._record = value
8584
this.isMultilingual = value.otherLanguages.length > 0
8685
this.editTranslations = false
8786
this.recordLanguages = [...value.otherLanguages, value.defaultLanguage]
8887
this.selectedLanguages = this.recordLanguages
89-
this.formLanguage = value.defaultLanguage
88+
this.setCurrentLanguage(value.defaultLanguage)
9089
}
9190
@ViewChildren('actionMenuButton', { read: ElementRef })
9291
actionMenuButtons!: QueryList<ElementRef>

translations/de.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -601,4 +601,4 @@
601601
"wfs.unreachable.cors": "Der Dienst konnte aufgrund von CORS-Beschränkungen nicht erreicht werden",
602602
"wfs.unreachable.http": "Der Dienst hat einen HTTP-Fehler zurückgegeben",
603603
"wfs.unreachable.unknown": "Der Dienst konnte nicht erreicht werden"
604-
}
604+
}

0 commit comments

Comments
 (0)