geonetwork-ui 2.4.1-dev.e5315d8c8 → 2.4.2-dev.096cd6eb9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +2 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +4 -14
- package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +3 -4
- package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +64 -50
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +8 -9
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +5 -25
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +5 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +10 -2
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +6 -3
- package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +4 -6
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +6 -3
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +5 -3
- package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +7 -2
- package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +3 -1
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +6 -3
- package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -1
- package/esm2022/libs/util/data-fetcher/src/lib/headers.mjs +3 -2
- package/esm2022/libs/util/data-fetcher/src/lib/model.mjs +2 -1
- package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +79 -0
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +4 -7
- package/esm2022/translations/de.json +14 -5
- package/esm2022/translations/en.json +23 -14
- package/esm2022/translations/es.json +14 -5
- package/esm2022/translations/fr.json +24 -15
- package/esm2022/translations/it.json +33 -26
- package/esm2022/translations/nl.json +14 -5
- package/esm2022/translations/pt.json +14 -5
- package/fesm2022/geonetwork-ui.mjs +350 -205
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts +0 -1
- package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +38 -17
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts +2 -2
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +1 -6
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
- 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
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +2 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +1 -2
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +2 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +2 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +3 -2
- package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +2 -1
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +3 -2
- package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/headers.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/model.d.ts +1 -1
- package/libs/util/data-fetcher/src/lib/model.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +21 -0
- package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -0
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +1 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +1 -1
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +4 -14
- package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.html +4 -1
- package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +0 -4
- package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +20 -19
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +81 -57
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +3 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +6 -6
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +24 -17
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +2 -27
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +1 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +9 -1
- package/src/libs/feature/record/src/lib/data-view/data-view.component.html +1 -0
- package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +1 -0
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +1 -1
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +0 -1
- package/src/libs/feature/record/src/lib/map-view/map-view.component.html +1 -0
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +1 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +1 -0
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +9 -1
- package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.ts +3 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +5 -1
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -2
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +1 -0
- package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +9 -1
- package/src/libs/util/data-fetcher/src/lib/headers.ts +4 -3
- package/src/libs/util/data-fetcher/src/lib/model.ts +1 -0
- package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +112 -0
- package/src/libs/util/shared/src/lib/links/link-utils.ts +3 -6
- package/translations/de.json +14 -5
- package/translations/en.json +23 -14
- package/translations/es.json +14 -5
- package/translations/fr.json +24 -15
- package/translations/it.json +33 -26
- package/translations/nl.json +14 -5
- package/translations/pt.json +14 -5
- package/translations/sk.json +15 -6
|
@@ -85,6 +85,7 @@ export class MapViewComponent implements AfterViewInit {
|
|
|
85
85
|
@Input() set excludeWfs(value: boolean) {
|
|
86
86
|
this.excludeWfs$.next(value)
|
|
87
87
|
}
|
|
88
|
+
@Input() displaySource = true
|
|
88
89
|
@ViewChild('mapContainer') mapContainer: MapContainerComponent
|
|
89
90
|
|
|
90
91
|
excludeWfs$ = new BehaviorSubject(false)
|
package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
[sortOrder]="sortBy$ | async"
|
|
7
7
|
[canDelete]="canDelete"
|
|
8
8
|
[canDuplicate]="canDuplicate"
|
|
9
|
+
[isDuplicating]="isDuplicating"
|
|
9
10
|
(recordClick)="handleRecordClick($event)"
|
|
10
11
|
(duplicateRecord)="handleDuplicateRecord($event)"
|
|
11
12
|
(deleteRecord)="handleDeleteRecord($event)"
|
|
@@ -26,6 +26,7 @@ import { TranslateService } from '@ngx-translate/core'
|
|
|
26
26
|
export class ResultsTableContainerComponent implements OnDestroy {
|
|
27
27
|
@Input() canDuplicate: (record: CatalogRecord) => boolean = () => true
|
|
28
28
|
@Input() canDelete: (record: CatalogRecord) => boolean = () => true
|
|
29
|
+
@Input() isDuplicating: false
|
|
29
30
|
|
|
30
31
|
@Output() recordClick = new EventEmitter<CatalogRecord>()
|
|
31
32
|
@Output() duplicateRecord = new EventEmitter<CatalogRecord>()
|
|
@@ -4,7 +4,9 @@ import {
|
|
|
4
4
|
Component,
|
|
5
5
|
EventEmitter,
|
|
6
6
|
Input,
|
|
7
|
+
OnChanges,
|
|
7
8
|
Output,
|
|
9
|
+
SimpleChanges,
|
|
8
10
|
} from '@angular/core'
|
|
9
11
|
import { CommonModule } from '@angular/common'
|
|
10
12
|
import { ButtonComponent } from '../button/button.component'
|
|
@@ -29,7 +31,7 @@ import { iconoirArrowUp, iconoirLink } from '@ng-icons/iconoir'
|
|
|
29
31
|
],
|
|
30
32
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
31
33
|
})
|
|
32
|
-
export class UrlInputComponent {
|
|
34
|
+
export class UrlInputComponent implements OnChanges {
|
|
33
35
|
@Input() set value(v: string) {
|
|
34
36
|
// we're making sure to only update the input if the URL representation of it has changed; otherwise we keep it identical
|
|
35
37
|
// to avoid glitches when starting to write a URL and having some characters added/replaced automatically
|
|
@@ -57,6 +59,12 @@ export class UrlInputComponent {
|
|
|
57
59
|
|
|
58
60
|
constructor(private cd: ChangeDetectorRef) {}
|
|
59
61
|
|
|
62
|
+
ngOnChanges(changes: SimpleChanges) {
|
|
63
|
+
if (changes['value']) {
|
|
64
|
+
this.inputValue = changes['value'].currentValue
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
60
68
|
handleInput(event: Event) {
|
|
61
69
|
const value = (event.target as HTMLInputElement).value
|
|
62
70
|
this.inputValue = value
|
|
@@ -2,6 +2,9 @@ import { ChangeDetectionStrategy, Component, ElementRef } from '@angular/core'
|
|
|
2
2
|
import { RecordPreviewComponent } from '../record-preview/record-preview.component'
|
|
3
3
|
import { TranslateService } from '@ngx-translate/core'
|
|
4
4
|
import Duration from 'duration-relativetimeformat'
|
|
5
|
+
import { marker } from '@biesbjerg/ngx-translate-extract-marker'
|
|
6
|
+
|
|
7
|
+
marker('record.was.created.time')
|
|
5
8
|
|
|
6
9
|
@Component({
|
|
7
10
|
selector: 'gn-ui-record-preview-feed',
|
|
@@ -11,7 +11,11 @@
|
|
|
11
11
|
(buttonClick)="duplicate.emit()"
|
|
12
12
|
[disabled]="!canDuplicate"
|
|
13
13
|
data-test="record-menu-duplicate-button"
|
|
14
|
-
|
|
14
|
+
>
|
|
15
|
+
<span *ngIf="canDuplicate" translate>record.action.duplicate</span>
|
|
16
|
+
<span *ngIf="!canDuplicate" translate
|
|
17
|
+
>record.action.duplicating</span
|
|
18
|
+
></gn-ui-button
|
|
15
19
|
>
|
|
16
20
|
<gn-ui-button
|
|
17
21
|
type="light"
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
|
|
86
86
|
<!-- OWNER COLUMN -->
|
|
87
87
|
<gn-ui-interactive-table-column
|
|
88
|
-
[width]="'
|
|
88
|
+
[width]="'12rem'"
|
|
89
89
|
[sortable]="true"
|
|
90
90
|
[activeSort]="isSortedBy('recordOwner')"
|
|
91
91
|
(sortChange)="setSortBy('recordOwner', $event)"
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
</gn-ui-button>
|
|
161
161
|
<ng-template #template>
|
|
162
162
|
<gn-ui-action-menu
|
|
163
|
-
[canDuplicate]="canDuplicate(item)"
|
|
163
|
+
[canDuplicate]="canDuplicate(item) && !isDuplicating"
|
|
164
164
|
[canDelete]="canDelete(item)"
|
|
165
165
|
(duplicate)="handleDuplicate(item)"
|
|
166
166
|
(delete)="handleDelete(item)"
|
|
@@ -66,6 +66,7 @@ export class ResultsTableComponent {
|
|
|
66
66
|
@Input() canDuplicate: (record: CatalogRecord) => boolean = () => true
|
|
67
67
|
@Input() canDelete: (record: CatalogRecord) => boolean = () => true
|
|
68
68
|
@Input() isDraftPage = false
|
|
69
|
+
@Input() isDuplicating = false
|
|
69
70
|
|
|
70
71
|
// emits the column (field) as well as the order
|
|
71
72
|
@Output() sortByChange = new EventEmitter<[string, 'asc' | 'desc']>()
|
|
@@ -8,11 +8,16 @@ import { inferDatasetType } from './utils'
|
|
|
8
8
|
import { BaseReader } from './readers/base'
|
|
9
9
|
import { GmlReader } from './readers/gml'
|
|
10
10
|
import { WfsVersion } from '@camptocamp/ogc-client'
|
|
11
|
+
import { WfsReader } from './readers/wfs'
|
|
11
12
|
|
|
12
13
|
export async function openDataset(
|
|
13
14
|
url: string,
|
|
14
15
|
typeHint?: SupportedType,
|
|
15
|
-
options?: {
|
|
16
|
+
options?: {
|
|
17
|
+
namespace?: string
|
|
18
|
+
wfsVersion?: WfsVersion
|
|
19
|
+
wfsFeatureType?: string
|
|
20
|
+
}
|
|
16
21
|
): Promise<BaseReader> {
|
|
17
22
|
const fileType = await inferDatasetType(url, typeHint)
|
|
18
23
|
let reader: BaseReader
|
|
@@ -33,6 +38,9 @@ export async function openDataset(
|
|
|
33
38
|
case 'gml':
|
|
34
39
|
reader = new GmlReader(url, options.namespace, options.wfsVersion)
|
|
35
40
|
break
|
|
41
|
+
case 'wfs':
|
|
42
|
+
reader = await WfsReader.createReader(url, options.wfsFeatureType)
|
|
43
|
+
break
|
|
36
44
|
}
|
|
37
45
|
reader.load()
|
|
38
46
|
return reader
|
|
@@ -5,9 +5,10 @@ export function parseHeaders(httpHeaders: Headers): DatasetHeaders {
|
|
|
5
5
|
if (httpHeaders.has('Content-Type')) {
|
|
6
6
|
result.mimeType = httpHeaders.get('Content-Type').split(';')[0]
|
|
7
7
|
const supported =
|
|
8
|
-
SupportedTypes.filter(
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
SupportedTypes.filter((type) => type !== 'wfs') // Ignore wfs type as it is not a file type
|
|
9
|
+
.filter(
|
|
10
|
+
(type) => AllMimeTypes[type].indexOf(result.mimeType as never) > -1
|
|
11
|
+
)[0] || null
|
|
11
12
|
if (supported !== null) result.supportedType = supported
|
|
12
13
|
}
|
|
13
14
|
if (httpHeaders.has('Content-Length')) {
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { WfsEndpoint, WfsVersion } from '@camptocamp/ogc-client'
|
|
2
|
+
import { DataItem, DatasetInfo, PropertyInfo } from '../model'
|
|
3
|
+
import { fetchDataAsText } from '../utils'
|
|
4
|
+
import { BaseReader } from './base'
|
|
5
|
+
import { GmlReader, parseGml } from './gml'
|
|
6
|
+
import { GeojsonReader, parseGeojson } from './geojson'
|
|
7
|
+
|
|
8
|
+
export class WfsReader extends BaseReader {
|
|
9
|
+
endpoint: WfsEndpoint
|
|
10
|
+
featureTypeName: string
|
|
11
|
+
version: WfsVersion
|
|
12
|
+
|
|
13
|
+
constructor(url: string, wfsEndpoint: WfsEndpoint, featureTypeName: string) {
|
|
14
|
+
super(url)
|
|
15
|
+
this.endpoint = wfsEndpoint
|
|
16
|
+
this.featureTypeName = featureTypeName
|
|
17
|
+
this.version = this.endpoint.getVersion()
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
get properties(): Promise<PropertyInfo[]> {
|
|
21
|
+
return this.getData().then((result) => result.properties)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
get info(): Promise<DatasetInfo> {
|
|
25
|
+
return this.endpoint.getFeatureTypeFull(this.featureTypeName).then(
|
|
26
|
+
(result) =>
|
|
27
|
+
({
|
|
28
|
+
itemsCount: result.objectCount,
|
|
29
|
+
}) as DatasetInfo
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static async createReader(wfsUrlEndpoint: string, featureTypeName?: string) {
|
|
34
|
+
const wfsEndpoint = await new WfsEndpoint(wfsUrlEndpoint).isReady()
|
|
35
|
+
const featureTypes = wfsEndpoint.getFeatureTypes()
|
|
36
|
+
const featureType = wfsEndpoint.getFeatureTypeSummary(
|
|
37
|
+
featureTypes.length === 1 && !featureTypeName
|
|
38
|
+
? featureTypes[0].name
|
|
39
|
+
: featureTypeName
|
|
40
|
+
)
|
|
41
|
+
if (!featureType) {
|
|
42
|
+
throw new Error('wfs.featuretype.notfound')
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (wfsEndpoint.supportsStartIndex()) {
|
|
46
|
+
return new WfsReader(wfsUrlEndpoint, wfsEndpoint, featureType.name)
|
|
47
|
+
} else if (wfsEndpoint.supportsJson(featureType.name)) {
|
|
48
|
+
return new GeojsonReader(
|
|
49
|
+
wfsEndpoint.getFeatureUrl(featureType.name, {
|
|
50
|
+
asJson: true,
|
|
51
|
+
outputCrs: 'EPSG:4326',
|
|
52
|
+
})
|
|
53
|
+
)
|
|
54
|
+
} else {
|
|
55
|
+
if (
|
|
56
|
+
featureType.outputFormats.find((f) =>
|
|
57
|
+
f.toLowerCase().includes('gml')
|
|
58
|
+
) &&
|
|
59
|
+
(featureType.defaultCrs === 'EPSG:4326' ||
|
|
60
|
+
featureType.otherCrs?.includes('EPSG:4326'))
|
|
61
|
+
) {
|
|
62
|
+
return new GmlReader(
|
|
63
|
+
wfsEndpoint.getFeatureUrl(featureType.name, {
|
|
64
|
+
outputFormat: featureType.outputFormats.find((f) =>
|
|
65
|
+
f.toLowerCase().includes('gml')
|
|
66
|
+
),
|
|
67
|
+
outputCrs: 'EPSG:4326',
|
|
68
|
+
}),
|
|
69
|
+
featureType.name,
|
|
70
|
+
wfsEndpoint.getVersion()
|
|
71
|
+
)
|
|
72
|
+
}
|
|
73
|
+
throw new Error('wfs.geojsongml.notsupported')
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
protected getData() {
|
|
78
|
+
const asJson = this.endpoint.supportsJson(this.featureTypeName)
|
|
79
|
+
let url = this.endpoint.getFeatureUrl(this.featureTypeName, {
|
|
80
|
+
...(this.startIndex !== null && { startIndex: this.startIndex }),
|
|
81
|
+
...(this.count !== null && { maxFeatures: this.count }),
|
|
82
|
+
asJson,
|
|
83
|
+
outputCrs: 'EPSG:4326',
|
|
84
|
+
// sortBy: this.sort // TODO: no sort in ogc-client?
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
if (Array.isArray(this.sort) && this.sort.length > 0) {
|
|
88
|
+
const finalUrl = new URL(url)
|
|
89
|
+
const sorts = this.sort
|
|
90
|
+
.map(
|
|
91
|
+
(fieldSort) => `${fieldSort[1]}+${fieldSort[0] === 'asc' ? 'A' : 'D'}`
|
|
92
|
+
)
|
|
93
|
+
.join(',')
|
|
94
|
+
// Direct update on string url to prevent encoding of +A and +D
|
|
95
|
+
url = `${url}${finalUrl.search ? '&' : ''}SORTBY=${sorts}`
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return fetchDataAsText(url).then((text) =>
|
|
99
|
+
asJson
|
|
100
|
+
? parseGeojson(text)
|
|
101
|
+
: parseGml(text, this.featureTypeName, this.version)
|
|
102
|
+
)
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
load() {
|
|
106
|
+
// Nothing to load for Wfs
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async read(): Promise<DataItem[]> {
|
|
110
|
+
return (await this.getData()).items
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -258,21 +258,18 @@ export async function getLayers(url: string, serviceProtocol: ServiceProtocol) {
|
|
|
258
258
|
return layers
|
|
259
259
|
}
|
|
260
260
|
case 'wfs': {
|
|
261
|
-
const endpointWfs = new WfsEndpoint(url)
|
|
262
|
-
await endpointWfs.isReady()
|
|
261
|
+
const endpointWfs = await new WfsEndpoint(url).isReady()
|
|
263
262
|
return endpointWfs.getFeatureTypes()
|
|
264
263
|
}
|
|
265
264
|
case 'wms': {
|
|
266
|
-
const endpointWms = new WmsEndpoint(url)
|
|
267
|
-
await endpointWms.isReady()
|
|
265
|
+
const endpointWms = await new WmsEndpoint(url).isReady()
|
|
268
266
|
return endpointWms
|
|
269
267
|
.getLayers()
|
|
270
268
|
.flatMap(wmsLayerFlatten)
|
|
271
269
|
.filter((l) => l.name)
|
|
272
270
|
}
|
|
273
271
|
case 'wmts': {
|
|
274
|
-
const endpointWmts = new WmtsEndpoint(url)
|
|
275
|
-
await endpointWmts.isReady()
|
|
272
|
+
const endpointWmts = await new WmtsEndpoint(url).isReady()
|
|
276
273
|
return endpointWmts.getLayers()
|
|
277
274
|
}
|
|
278
275
|
default:
|
package/translations/de.json
CHANGED
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"dashboard.createRecord": "Neuer Eintrag",
|
|
26
26
|
"dashboard.importRecord": "",
|
|
27
27
|
"dashboard.importRecord.importExternal": "",
|
|
28
|
-
"dashboard.importRecord.
|
|
28
|
+
"dashboard.importRecord.importExternal.subtitle": "",
|
|
29
|
+
"dashboard.importRecord.importExternal.title": "",
|
|
29
30
|
"dashboard.labels.catalog": "Katalog",
|
|
30
31
|
"dashboard.labels.mySpace": "Mein Bereich",
|
|
31
32
|
"dashboard.records.all": "Metadatenkatalog",
|
|
@@ -194,8 +195,7 @@
|
|
|
194
195
|
"downloads.format.unknown": "unbekannt",
|
|
195
196
|
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
196
197
|
"dropFile": "Datei ablegen",
|
|
197
|
-
"editor.
|
|
198
|
-
"editor.form.placeKeywordWithoutExtent": "",
|
|
198
|
+
"editor.new.record.title": "",
|
|
199
199
|
"editor.record.delete.confirmation.cancelText": "Stornieren",
|
|
200
200
|
"editor.record.delete.confirmation.confirmText": "Löschen",
|
|
201
201
|
"editor.record.delete.confirmation.message": "Sind Sie sicher, dass Sie diesen Datensatz löschen möchten?",
|
|
@@ -228,7 +228,9 @@
|
|
|
228
228
|
"editor.record.form.field.abstract": "Kurzbeschreibung",
|
|
229
229
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
230
230
|
"editor.record.form.field.contacts.noContact": "",
|
|
231
|
+
"editor.record.form.field.contacts.placeholder": "",
|
|
231
232
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
233
|
+
"editor.record.form.field.contactsForResource.placeholder": "",
|
|
232
234
|
"editor.record.form.field.keywords": "Schlagwörter",
|
|
233
235
|
"editor.record.form.field.legalConstraints": "Rechtliche Einschränkung",
|
|
234
236
|
"editor.record.form.field.license": "Lizenz",
|
|
@@ -237,12 +239,12 @@
|
|
|
237
239
|
"editor.record.form.field.onlineResource.confirm": "",
|
|
238
240
|
"editor.record.form.field.onlineResource.dialogTitle": "",
|
|
239
241
|
"editor.record.form.field.onlineResource.edit.description": "",
|
|
240
|
-
"editor.record.form.field.onlineResource.edit.protocol": "",
|
|
241
242
|
"editor.record.form.field.onlineResource.edit.identifier.error": "Schichten konnten nicht vom Protokoll abgerufen werden",
|
|
242
243
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Ebenenname",
|
|
243
244
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Prozessname",
|
|
244
245
|
"editor.record.form.field.onlineResource.edit.identifier.select.label": "Wählen Sie eine Ebene",
|
|
245
246
|
"editor.record.form.field.onlineResource.edit.identifier.submit": "Link zum Dienst",
|
|
247
|
+
"editor.record.form.field.onlineResource.edit.protocol": "",
|
|
246
248
|
"editor.record.form.field.onlineResource.edit.title": "",
|
|
247
249
|
"editor.record.form.field.onlineResource.fileSize": "",
|
|
248
250
|
"editor.record.form.field.onlineResource.modify": "",
|
|
@@ -262,6 +264,9 @@
|
|
|
262
264
|
"editor.record.form.field.title.placeholder": "Geben Sie einen Titel ein",
|
|
263
265
|
"editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
|
|
264
266
|
"editor.record.form.field.updateFrequency": "Aktualisierungshäufigkeit",
|
|
267
|
+
"editor.record.form.keywords.place.placeholder": "",
|
|
268
|
+
"editor.record.form.keywords.place.withoutExtent": "",
|
|
269
|
+
"editor.record.form.keywords.placeholder": "",
|
|
265
270
|
"editor.record.form.license.cc-by": "",
|
|
266
271
|
"editor.record.form.license.cc-by-sa": "",
|
|
267
272
|
"editor.record.form.license.cc-zero": "",
|
|
@@ -273,7 +278,7 @@
|
|
|
273
278
|
"editor.record.form.license.unknown": "",
|
|
274
279
|
"editor.record.form.page.accessAndContact": "",
|
|
275
280
|
"editor.record.form.page.description": "",
|
|
276
|
-
"editor.record.form.page.
|
|
281
|
+
"editor.record.form.page.resources": "",
|
|
277
282
|
"editor.record.form.section.about.description": "",
|
|
278
283
|
"editor.record.form.section.about.label": "",
|
|
279
284
|
"editor.record.form.section.annexes.description": "",
|
|
@@ -419,6 +424,7 @@
|
|
|
419
424
|
"record.action.delete": "Löschen",
|
|
420
425
|
"record.action.download": "Herunterladen",
|
|
421
426
|
"record.action.duplicate": "",
|
|
427
|
+
"record.action.duplicating": "",
|
|
422
428
|
"record.action.view": "Anzeigen",
|
|
423
429
|
"record.externalViewer.open": "In externem Kartenviewer öffnen",
|
|
424
430
|
"record.feature.limit": "Die Ressource enthält mehr als {count} Features und kann hier nicht angezeigt werden.",
|
|
@@ -449,6 +455,8 @@
|
|
|
449
455
|
"record.metadata.api.form.productTooltip": "",
|
|
450
456
|
"record.metadata.api.form.reset": "Zurücksetzen",
|
|
451
457
|
"record.metadata.api.form.resetTooltip": "",
|
|
458
|
+
"record.metadata.api.form.title": "Benutzerdefinierte URL generieren",
|
|
459
|
+
"record.metadata.api.form.title.gpf": "",
|
|
452
460
|
"record.metadata.api.form.type": "Ausgabeformat",
|
|
453
461
|
"record.metadata.api.form.zoneTitle": "",
|
|
454
462
|
"record.metadata.api.form.zoneTooltip": "",
|
|
@@ -517,6 +525,7 @@
|
|
|
517
525
|
"record.tab.chart": "Diagramm",
|
|
518
526
|
"record.tab.data": "Tabelle",
|
|
519
527
|
"record.tab.map": "Karte",
|
|
528
|
+
"record.was.created.time": "erstellte diesen Datensatz {time}",
|
|
520
529
|
"records": "Datensätze",
|
|
521
530
|
"results.layout.selectOne": "Layout auswählen",
|
|
522
531
|
"results.records.hits.displayedOn": "{displayed, plural, =0{Kein Datensatz.} one{1 Datensatz} other{{displayed} Datensätze }} {hits, plural, other{angezeigt von {hits} insgesamt.}}",
|
package/translations/en.json
CHANGED
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"dashboard.createRecord": "New dataset",
|
|
26
26
|
"dashboard.importRecord": "Import",
|
|
27
27
|
"dashboard.importRecord.importExternal": "Import an external file",
|
|
28
|
-
"dashboard.importRecord.
|
|
28
|
+
"dashboard.importRecord.importExternal.subtitle": "(link to an XML file)",
|
|
29
|
+
"dashboard.importRecord.importExternal.title": "External file URL",
|
|
29
30
|
"dashboard.labels.catalog": "Catalog",
|
|
30
31
|
"dashboard.labels.mySpace": "My space",
|
|
31
32
|
"dashboard.records.all": "Datasets",
|
|
@@ -194,8 +195,7 @@
|
|
|
194
195
|
"downloads.format.unknown": "Unknown",
|
|
195
196
|
"downloads.wfs.featuretype.not.found": "The layer was not found",
|
|
196
197
|
"dropFile": "Drop file",
|
|
197
|
-
"editor.
|
|
198
|
-
"editor.form.placeKeywordWithoutExtent": "This keyword is not associated with any geographical extent",
|
|
198
|
+
"editor.new.record.title": "My dataset",
|
|
199
199
|
"editor.record.delete.confirmation.cancelText": "Cancel",
|
|
200
200
|
"editor.record.delete.confirmation.confirmText": "Delete",
|
|
201
201
|
"editor.record.delete.confirmation.message": "Are you sure you want to delete this dataset?",
|
|
@@ -220,15 +220,17 @@
|
|
|
220
220
|
"editor.record.form.constraint.header.securityConstraints": "Applicable security conditions",
|
|
221
221
|
"editor.record.form.constraint.legalConstraints": "Legal constraints",
|
|
222
222
|
"editor.record.form.constraint.markdown.placeholder": "Your text here",
|
|
223
|
-
"editor.record.form.constraint.not.applicable": "No conditions apply
|
|
224
|
-
"editor.record.form.constraint.not.known": "The conditions are unknown
|
|
223
|
+
"editor.record.form.constraint.not.applicable": "No conditions apply",
|
|
224
|
+
"editor.record.form.constraint.not.known": "The conditions are unknown",
|
|
225
225
|
"editor.record.form.constraint.otherConstraints": "Other constraints",
|
|
226
226
|
"editor.record.form.constraint.securityConstraints": "Security constraints",
|
|
227
227
|
"editor.record.form.draft.updateAlert": "Since you created this draft, the dataset has been updated on { date } by { user }. Publishing your draft might erase their edits. To avoid this, you need to either cancel your changes or knowingly publish your own version.",
|
|
228
228
|
"editor.record.form.field.abstract": "Abstract",
|
|
229
229
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
230
230
|
"editor.record.form.field.contacts.noContact": "Please provide at least one point of contact.",
|
|
231
|
+
"editor.record.form.field.contacts.placeholder": "Choose a contact",
|
|
231
232
|
"editor.record.form.field.contactsForResource.noContact": "Please provide at least one point of contact responsible for the data.",
|
|
233
|
+
"editor.record.form.field.contactsForResource.placeholder": "Choose a contact",
|
|
232
234
|
"editor.record.form.field.keywords": "Keywords",
|
|
233
235
|
"editor.record.form.field.legalConstraints": "Legal constraint",
|
|
234
236
|
"editor.record.form.field.license": "License",
|
|
@@ -237,12 +239,12 @@
|
|
|
237
239
|
"editor.record.form.field.onlineResource.confirm": "Confirm",
|
|
238
240
|
"editor.record.form.field.onlineResource.dialogTitle": "Modify the dataset preview",
|
|
239
241
|
"editor.record.form.field.onlineResource.edit.description": "Description",
|
|
240
|
-
"editor.record.form.field.onlineResource.edit.protocol": "Protocol",
|
|
241
242
|
"editor.record.form.field.onlineResource.edit.identifier.error": "Unable to retrieve layers from protocol",
|
|
242
243
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Layer name",
|
|
243
244
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Process name",
|
|
244
245
|
"editor.record.form.field.onlineResource.edit.identifier.select.label": "Select a layer",
|
|
245
246
|
"editor.record.form.field.onlineResource.edit.identifier.submit": "Link to the service",
|
|
247
|
+
"editor.record.form.field.onlineResource.edit.protocol": "Protocol",
|
|
246
248
|
"editor.record.form.field.onlineResource.edit.title": "Title",
|
|
247
249
|
"editor.record.form.field.onlineResource.fileSize": "{sizeMB}MB",
|
|
248
250
|
"editor.record.form.field.onlineResource.modify": "Modify",
|
|
@@ -250,7 +252,7 @@
|
|
|
250
252
|
"editor.record.form.field.onlineResource.toggle.service": "Link to a service",
|
|
251
253
|
"editor.record.form.field.onlineResources": "Distribution",
|
|
252
254
|
"editor.record.form.field.otherConstraints": "Other constraint",
|
|
253
|
-
"editor.record.form.field.overviews": "
|
|
255
|
+
"editor.record.form.field.overviews": "Overview",
|
|
254
256
|
"editor.record.form.field.recordUpdated": "Record updated",
|
|
255
257
|
"editor.record.form.field.resourceCreated": "Dataset created",
|
|
256
258
|
"editor.record.form.field.resourceIdentifier": "Identifier",
|
|
@@ -262,6 +264,9 @@
|
|
|
262
264
|
"editor.record.form.field.title.placeholder": "Enter a title",
|
|
263
265
|
"editor.record.form.field.uniqueIdentifier": "Unique identifier",
|
|
264
266
|
"editor.record.form.field.updateFrequency": "Update frequency",
|
|
267
|
+
"editor.record.form.keywords.place.placeholder": "Search for place keywords",
|
|
268
|
+
"editor.record.form.keywords.place.withoutExtent": "This keyword is not associated with any geographical extent",
|
|
269
|
+
"editor.record.form.keywords.placeholder": "Select a keyword",
|
|
265
270
|
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
266
271
|
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
267
272
|
"editor.record.form.license.cc-zero": "Creative Commons CC-0",
|
|
@@ -273,26 +278,26 @@
|
|
|
273
278
|
"editor.record.form.license.unknown": "Unknown or absent",
|
|
274
279
|
"editor.record.form.page.accessAndContact": "Information for use",
|
|
275
280
|
"editor.record.form.page.description": "Dataset description",
|
|
276
|
-
"editor.record.form.page.
|
|
277
|
-
"editor.record.form.section.about.description": "This section describes the dataset
|
|
281
|
+
"editor.record.form.page.resources": "Resources",
|
|
282
|
+
"editor.record.form.section.about.description": "This section describes the dataset",
|
|
278
283
|
"editor.record.form.section.about.label": "About the dataset",
|
|
279
284
|
"editor.record.form.section.annexes.description": "Annexes are optional resources. They are attached to the dataset, and help understand the data (manual, etc.).",
|
|
280
285
|
"editor.record.form.section.annexes.label": "Annexes",
|
|
281
|
-
"editor.record.form.section.associatedResources.description": "Point out where the data can be found
|
|
286
|
+
"editor.record.form.section.associatedResources.description": "Point out where the data can be found",
|
|
282
287
|
"editor.record.form.section.associatedResources.label": "Associated resources",
|
|
283
|
-
"editor.record.form.section.classification.description": "Appropriate keywords help users find the dataset
|
|
288
|
+
"editor.record.form.section.classification.description": "Appropriate keywords help users find the dataset",
|
|
284
289
|
"editor.record.form.section.classification.label": "Keywords",
|
|
285
|
-
"editor.record.form.section.dataManagers.description": "The data managers are responsible for the data
|
|
290
|
+
"editor.record.form.section.dataManagers.description": "The data managers are responsible for the data",
|
|
286
291
|
"editor.record.form.section.dataManagers.label": "Data managers",
|
|
287
292
|
"editor.record.form.section.geographicalCoverage.label": "Geographical coverage",
|
|
288
|
-
"editor.record.form.section.metadataPointOfContact.description": "This information concerns the metadata
|
|
293
|
+
"editor.record.form.section.metadataPointOfContact.description": "This information concerns the metadata",
|
|
289
294
|
"editor.record.form.section.metadataPointOfContact.label": "Metadata point of contact",
|
|
290
295
|
"editor.record.form.section.useAndAccessConditions.label": "Use and access conditions",
|
|
291
296
|
"editor.record.form.temporalExtents.addDate": "Time instant",
|
|
292
297
|
"editor.record.form.temporalExtents.addRange": "Time period",
|
|
293
298
|
"editor.record.form.temporalExtents.date": "Date",
|
|
294
299
|
"editor.record.form.temporalExtents.range": "Date range",
|
|
295
|
-
"editor.record.form.updateFrequency.planned": "This dataset is updated regularly
|
|
300
|
+
"editor.record.form.updateFrequency.planned": "This dataset is updated regularly",
|
|
296
301
|
"editor.record.importFromExternalFile.failure.body": "Failure",
|
|
297
302
|
"editor.record.importFromExternalFile.failure.title": "The dataset import failed: ",
|
|
298
303
|
"editor.record.importFromExternalFile.success.body": "Import successful",
|
|
@@ -419,6 +424,7 @@
|
|
|
419
424
|
"record.action.delete": "Delete",
|
|
420
425
|
"record.action.download": "Download",
|
|
421
426
|
"record.action.duplicate": "Duplicate",
|
|
427
|
+
"record.action.duplicating": "Duplicating...",
|
|
422
428
|
"record.action.view": "View",
|
|
423
429
|
"record.externalViewer.open": "Open in the external map viewer",
|
|
424
430
|
"record.feature.limit": "The resource contains more than {count} features and cannot be displayed here.",
|
|
@@ -449,6 +455,8 @@
|
|
|
449
455
|
"record.metadata.api.form.productTooltip": "",
|
|
450
456
|
"record.metadata.api.form.reset": "Reset",
|
|
451
457
|
"record.metadata.api.form.resetTooltip": "Reset all filters",
|
|
458
|
+
"record.metadata.api.form.title": "Generate a custom URL",
|
|
459
|
+
"record.metadata.api.form.title.gpf": "Download data",
|
|
452
460
|
"record.metadata.api.form.type": "Output format",
|
|
453
461
|
"record.metadata.api.form.zoneTitle": "Zone",
|
|
454
462
|
"record.metadata.api.form.zoneTooltip": "Dropdown for selecting a geographic zone",
|
|
@@ -517,6 +525,7 @@
|
|
|
517
525
|
"record.tab.chart": "Chart",
|
|
518
526
|
"record.tab.data": "Table",
|
|
519
527
|
"record.tab.map": "Map",
|
|
528
|
+
"record.was.created.time": "created this dataset {time}",
|
|
520
529
|
"records": "datasets",
|
|
521
530
|
"results.layout.selectOne": "Results layout",
|
|
522
531
|
"results.records.hits.displayedOn": "{displayed, plural, =0{No dataset.} one{1 } other{{displayed} }} {hits, plural, other{displayed on {hits} total.}}",
|
package/translations/es.json
CHANGED
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"dashboard.createRecord": "",
|
|
26
26
|
"dashboard.importRecord": "",
|
|
27
27
|
"dashboard.importRecord.importExternal": "",
|
|
28
|
-
"dashboard.importRecord.
|
|
28
|
+
"dashboard.importRecord.importExternal.subtitle": "",
|
|
29
|
+
"dashboard.importRecord.importExternal.title": "",
|
|
29
30
|
"dashboard.labels.catalog": "Catálogo",
|
|
30
31
|
"dashboard.labels.mySpace": "Mi espacio",
|
|
31
32
|
"dashboard.records.all": "Catálogo",
|
|
@@ -194,8 +195,7 @@
|
|
|
194
195
|
"downloads.format.unknown": "",
|
|
195
196
|
"downloads.wfs.featuretype.not.found": "",
|
|
196
197
|
"dropFile": "",
|
|
197
|
-
"editor.
|
|
198
|
-
"editor.form.placeKeywordWithoutExtent": "",
|
|
198
|
+
"editor.new.record.title": "",
|
|
199
199
|
"editor.record.delete.confirmation.cancelText": "",
|
|
200
200
|
"editor.record.delete.confirmation.confirmText": "",
|
|
201
201
|
"editor.record.delete.confirmation.message": "",
|
|
@@ -228,7 +228,9 @@
|
|
|
228
228
|
"editor.record.form.field.abstract": "",
|
|
229
229
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
230
230
|
"editor.record.form.field.contacts.noContact": "",
|
|
231
|
+
"editor.record.form.field.contacts.placeholder": "",
|
|
231
232
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
233
|
+
"editor.record.form.field.contactsForResource.placeholder": "",
|
|
232
234
|
"editor.record.form.field.keywords": "",
|
|
233
235
|
"editor.record.form.field.legalConstraints": "",
|
|
234
236
|
"editor.record.form.field.license": "",
|
|
@@ -237,12 +239,12 @@
|
|
|
237
239
|
"editor.record.form.field.onlineResource.confirm": "",
|
|
238
240
|
"editor.record.form.field.onlineResource.dialogTitle": "",
|
|
239
241
|
"editor.record.form.field.onlineResource.edit.description": "",
|
|
240
|
-
"editor.record.form.field.onlineResource.edit.protocol": "",
|
|
241
242
|
"editor.record.form.field.onlineResource.edit.identifier.error": "No se pueden recuperar las capas del protocolo",
|
|
242
243
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nombre de la capa",
|
|
243
244
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nombre del proceso",
|
|
244
245
|
"editor.record.form.field.onlineResource.edit.identifier.select.label": "Selecciona una capa",
|
|
245
246
|
"editor.record.form.field.onlineResource.edit.identifier.submit": "Enlace al servicio",
|
|
247
|
+
"editor.record.form.field.onlineResource.edit.protocol": "",
|
|
246
248
|
"editor.record.form.field.onlineResource.edit.title": "",
|
|
247
249
|
"editor.record.form.field.onlineResource.fileSize": "",
|
|
248
250
|
"editor.record.form.field.onlineResource.modify": "",
|
|
@@ -262,6 +264,9 @@
|
|
|
262
264
|
"editor.record.form.field.title.placeholder": "Introduzca un título",
|
|
263
265
|
"editor.record.form.field.uniqueIdentifier": "",
|
|
264
266
|
"editor.record.form.field.updateFrequency": "",
|
|
267
|
+
"editor.record.form.keywords.place.placeholder": "",
|
|
268
|
+
"editor.record.form.keywords.place.withoutExtent": "",
|
|
269
|
+
"editor.record.form.keywords.placeholder": "",
|
|
265
270
|
"editor.record.form.license.cc-by": "",
|
|
266
271
|
"editor.record.form.license.cc-by-sa": "",
|
|
267
272
|
"editor.record.form.license.cc-zero": "",
|
|
@@ -273,7 +278,7 @@
|
|
|
273
278
|
"editor.record.form.license.unknown": "",
|
|
274
279
|
"editor.record.form.page.accessAndContact": "",
|
|
275
280
|
"editor.record.form.page.description": "",
|
|
276
|
-
"editor.record.form.page.
|
|
281
|
+
"editor.record.form.page.resources": "",
|
|
277
282
|
"editor.record.form.section.about.description": "",
|
|
278
283
|
"editor.record.form.section.about.label": "",
|
|
279
284
|
"editor.record.form.section.annexes.description": "",
|
|
@@ -419,6 +424,7 @@
|
|
|
419
424
|
"record.action.delete": "",
|
|
420
425
|
"record.action.download": "",
|
|
421
426
|
"record.action.duplicate": "",
|
|
427
|
+
"record.action.duplicating": "",
|
|
422
428
|
"record.action.view": "",
|
|
423
429
|
"record.externalViewer.open": "",
|
|
424
430
|
"record.feature.limit": "",
|
|
@@ -449,6 +455,8 @@
|
|
|
449
455
|
"record.metadata.api.form.productTooltip": "",
|
|
450
456
|
"record.metadata.api.form.reset": "",
|
|
451
457
|
"record.metadata.api.form.resetTooltip": "",
|
|
458
|
+
"record.metadata.api.form.title": "",
|
|
459
|
+
"record.metadata.api.form.title.gpf": "",
|
|
452
460
|
"record.metadata.api.form.type": "",
|
|
453
461
|
"record.metadata.api.form.zoneTitle": "",
|
|
454
462
|
"record.metadata.api.form.zoneTooltip": "",
|
|
@@ -517,6 +525,7 @@
|
|
|
517
525
|
"record.tab.chart": "",
|
|
518
526
|
"record.tab.data": "",
|
|
519
527
|
"record.tab.map": "",
|
|
528
|
+
"record.was.created.time": "",
|
|
520
529
|
"records": "",
|
|
521
530
|
"results.layout.selectOne": "",
|
|
522
531
|
"results.records.hits.displayedOn": "",
|