geonetwork-ui 2.6.0-dev.502fa026d → 2.6.0-dev.76a84fb05
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/base.converter.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +8 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -10
- package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +7 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +5 -1
- package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +5 -1
- package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +2 -3
- package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +5 -5
- package/esm2022/libs/feature/record/src/index.mjs +1 -2
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +5 -9
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +7 -11
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +6 -1
- package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +1 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +8 -5
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -6
- package/esm2022/libs/feature/router/src/lib/default/constants.mjs +3 -1
- package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +10 -2
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +9 -3
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +8 -7
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -15
- package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -2
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +26 -10
- package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/index.mjs +3 -1
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +27 -6
- package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +22 -6
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +163 -0
- package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +29 -7
- package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +8 -5
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +3 -2
- package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +161 -0
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +16 -4
- package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
- package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +4 -3
- package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +43 -3
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +15 -3
- package/esm2022/libs/ui/map/src/index.mjs +2 -1
- package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +79 -0
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +5 -4
- package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/libs/util/app-config/src/lib/app-config.mjs +2 -1
- package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
- package/esm2022/libs/util/shared/src/index.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/gn-ui-version.mjs +6 -0
- package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +33 -24
- package/esm2022/translations/de.json +33 -3
- package/esm2022/translations/en.json +34 -4
- package/esm2022/translations/es.json +33 -3
- package/esm2022/translations/fr.json +35 -5
- package/esm2022/translations/it.json +33 -4
- package/esm2022/translations/nl.json +33 -3
- package/esm2022/translations/pt.json +33 -3
- package/fesm2022/geonetwork-ui.mjs +1266 -515
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -2
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +1 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +6 -6
- 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-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
- package/libs/feature/record/src/index.d.ts +0 -1
- package/libs/feature/record/src/index.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +9 -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-permalink/data-view-permalink.component.d.ts +2 -3
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +1 -2
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts +2 -2
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts +3 -1
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts +7 -7
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/constants.d.ts +2 -0
- package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.config.d.ts +2 -0
- package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts +5 -0
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
- package/libs/feature/search/src/lib/record-url.token.d.ts +3 -1
- package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +5 -3
- package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
- package/libs/ui/elements/src/index.d.ts +2 -0
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts +9 -1
- package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +8 -1
- package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +43 -0
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +10 -2
- package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +2 -2
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +30 -0
- package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +3 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +0 -1
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts +10 -3
- package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +2 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
- package/libs/ui/map/src/index.d.ts +1 -0
- package/libs/ui/map/src/index.d.ts.map +1 -1
- package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts +15 -0
- package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts.map +1 -0
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
- package/libs/util/shared/src/index.d.ts +1 -0
- package/libs/util/shared/src/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/gn-ui-version.d.ts +3 -0
- package/libs/util/shared/src/lib/gn-ui-version.d.ts.map +1 -0
- package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
- package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +30 -23
- 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/base.converter.ts +1 -4
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +8 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -3
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -9
- package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +6 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +6 -2
- package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +26 -26
- package/src/libs/common/fixtures/src/lib/link.fixtures.ts +2 -2
- package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +5 -5
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -0
- package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +4 -0
- package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +1 -2
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -2
- package/src/libs/feature/record/src/index.ts +0 -1
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +2 -3
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +4 -5
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +5 -0
- package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -2
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +5 -3
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +4 -7
- package/src/libs/feature/router/src/lib/default/constants.ts +2 -0
- package/src/libs/feature/router/src/lib/default/router.config.ts +2 -0
- package/src/libs/feature/router/src/lib/default/router.service.ts +10 -0
- package/src/libs/feature/router/src/lib/default/state/router.facade.ts +10 -1
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +1 -7
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +16 -8
- package/src/libs/feature/search/src/lib/feature-search.module.ts +0 -8
- package/src/libs/feature/search/src/lib/record-url.token.ts +10 -1
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.css +6 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +1 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +24 -5
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
- package/src/libs/ui/elements/src/index.ts +2 -0
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +64 -38
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +26 -2
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.html +17 -17
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +20 -2
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +7 -6
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +156 -0
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +190 -0
- package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +27 -29
- package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +33 -3
- package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.html +1 -1
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +1 -1
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +9 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +13 -4
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -4
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +4 -2
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -1
- package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.css +0 -0
- package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +96 -0
- package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +183 -0
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +6 -0
- package/src/libs/ui/inputs/src/index.ts +0 -1
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +5 -5
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +2 -1
- package/src/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.ts +46 -2
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -4
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +3 -7
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +13 -0
- package/src/libs/ui/map/src/index.ts +1 -0
- package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.css +0 -0
- package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.html +4 -0
- package/src/libs/{feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts → ui/map/src/lib/components/spatial-extent/spatial-extent.component.ts} +7 -8
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +7 -4
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +2 -1
- package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +3 -2
- package/src/libs/util/app-config/src/lib/app-config.ts +1 -0
- package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
- package/src/libs/util/shared/src/index.ts +1 -0
- package/src/libs/util/shared/src/lib/gn-ui-version.ts +8 -0
- package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +12 -3
- package/src/libs/util/shared/src/lib/links/link-utils.ts +50 -30
- package/tailwind.base.css +51 -13
- package/translations/de.json +33 -3
- package/translations/en.json +34 -4
- package/translations/es.json +33 -3
- package/translations/fr.json +35 -5
- package/translations/it.json +33 -4
- package/translations/nl.json +33 -3
- package/translations/pt.json +33 -3
- package/translations/sk.json +33 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +0 -79
- package/esm2022/libs/feature/record/src/lib/gn-ui-version.token.mjs +0 -3
- package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +0 -16
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +0 -15
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +0 -1
- package/libs/feature/record/src/lib/gn-ui-version.token.d.ts +0 -3
- package/libs/feature/record/src/lib/gn-ui-version.token.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts +0 -8
- package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts.map +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +0 -1
- package/src/libs/feature/record/src/lib/gn-ui-version.token.ts +0 -3
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +0 -3
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +0 -9
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.ts +0 -15
- /package/src/libs/{feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css → ui/elements/src/lib/internal-link-card/internal-link-card.component.css} +0 -0
|
@@ -460,6 +460,11 @@ export class Gn4FieldMapper {
|
|
|
460
460
|
),
|
|
461
461
|
selectField<string>(sourceLink, 'description')
|
|
462
462
|
)
|
|
463
|
+
const descriptionLink = selectField<object>(sourceLink, 'descriptionObject')
|
|
464
|
+
const accessRestricted =
|
|
465
|
+
descriptionLink &&
|
|
466
|
+
'link' in descriptionLink &&
|
|
467
|
+
descriptionLink.link.toString().includes('#MD_RestrictionCode_restricted')
|
|
463
468
|
// no url: fail early
|
|
464
469
|
if (url === null) {
|
|
465
470
|
// TODO: collect errors at the record level?
|
|
@@ -485,6 +490,7 @@ export class Gn4FieldMapper {
|
|
|
485
490
|
type,
|
|
486
491
|
url: url,
|
|
487
492
|
accessServiceProtocol,
|
|
493
|
+
accessRestricted: accessRestricted,
|
|
488
494
|
}
|
|
489
495
|
case 'link':
|
|
490
496
|
return {
|
|
@@ -503,8 +509,8 @@ export class Gn4FieldMapper {
|
|
|
503
509
|
return {
|
|
504
510
|
...distribution,
|
|
505
511
|
type,
|
|
506
|
-
|
|
507
|
-
|
|
512
|
+
url: url,
|
|
513
|
+
accessServiceProtocol: accessServiceProtocol,
|
|
508
514
|
}
|
|
509
515
|
}
|
|
510
516
|
}
|
|
@@ -965,8 +965,8 @@ export function extractServiceOnlineResources(): ChainableFunction<
|
|
|
965
965
|
} else {
|
|
966
966
|
return {
|
|
967
967
|
type: 'endpoint',
|
|
968
|
-
|
|
969
|
-
protocol,
|
|
968
|
+
url: url,
|
|
969
|
+
accessServiceProtocol: protocol,
|
|
970
970
|
...(description && { description }),
|
|
971
971
|
translations,
|
|
972
972
|
}
|
|
@@ -1227,7 +1227,7 @@ export function writeLineage(record: DatasetRecord, rootEl: XmlElement) {
|
|
|
1227
1227
|
}
|
|
1228
1228
|
|
|
1229
1229
|
export function getServiceEndpointProtocol(endpoint: ServiceEndpoint): string {
|
|
1230
|
-
switch (endpoint.
|
|
1230
|
+
switch (endpoint.accessServiceProtocol.toLowerCase()) {
|
|
1231
1231
|
case 'wfs':
|
|
1232
1232
|
return 'OGC:WFS'
|
|
1233
1233
|
case 'wms':
|
|
@@ -1235,14 +1235,14 @@ export function getServiceEndpointProtocol(endpoint: ServiceEndpoint): string {
|
|
|
1235
1235
|
case 'wps':
|
|
1236
1236
|
return 'OGC:WPS'
|
|
1237
1237
|
default:
|
|
1238
|
-
return endpoint.
|
|
1238
|
+
return endpoint.accessServiceProtocol
|
|
1239
1239
|
}
|
|
1240
1240
|
}
|
|
1241
1241
|
|
|
1242
1242
|
export function createOnlineResource(onlineResource: ServiceOnlineResource) {
|
|
1243
1243
|
let linkageUrl, functionCode, protocol
|
|
1244
1244
|
if (onlineResource.type === 'endpoint') {
|
|
1245
|
-
linkageUrl = onlineResource.
|
|
1245
|
+
linkageUrl = onlineResource.url.toString()
|
|
1246
1246
|
protocol = getServiceEndpointProtocol(onlineResource)
|
|
1247
1247
|
functionCode = 'download'
|
|
1248
1248
|
} else {
|
|
@@ -299,14 +299,6 @@ export class ElasticsearchService {
|
|
|
299
299
|
|
|
300
300
|
private mustNotFilters(): Record<string, unknown>[] {
|
|
301
301
|
return [
|
|
302
|
-
{
|
|
303
|
-
...this.queryFilterOnValues('resourceType', [
|
|
304
|
-
'service',
|
|
305
|
-
'map',
|
|
306
|
-
'map/static',
|
|
307
|
-
'mapDigital',
|
|
308
|
-
]),
|
|
309
|
-
},
|
|
310
302
|
{
|
|
311
303
|
query_string: {
|
|
312
304
|
query:
|
|
@@ -429,7 +421,7 @@ export class ElasticsearchService {
|
|
|
429
421
|
must_not: this.mustNotFilters(),
|
|
430
422
|
},
|
|
431
423
|
},
|
|
432
|
-
_source: ['resourceTitleObject', 'uuid'],
|
|
424
|
+
_source: ['resourceTitleObject', 'uuid', 'resourceType'],
|
|
433
425
|
from: 0,
|
|
434
426
|
size: 20,
|
|
435
427
|
}
|
|
@@ -2,6 +2,8 @@ import { Provider } from '@angular/core'
|
|
|
2
2
|
import { PlatformServiceInterface } from '../../../../../../libs/common/domain/src/lib/platform.service.interface'
|
|
3
3
|
import { Gn4PlatformService } from './platform/gn4-platform.service'
|
|
4
4
|
import { Gn4PlatformMapper } from './platform/gn4-platform.mapper'
|
|
5
|
+
import { RecordsRepositoryInterface } from '../../../../../../libs/common/domain/src/lib/repository/records-repository.interface'
|
|
6
|
+
import { Gn4Repository } from './gn4-repository'
|
|
5
7
|
|
|
6
8
|
export function provideGn4(): Provider[] {
|
|
7
9
|
return [
|
|
@@ -9,6 +11,10 @@ export function provideGn4(): Provider[] {
|
|
|
9
11
|
provide: PlatformServiceInterface,
|
|
10
12
|
useClass: Gn4PlatformService,
|
|
11
13
|
},
|
|
14
|
+
{
|
|
15
|
+
provide: RecordsRepositoryInterface,
|
|
16
|
+
useClass: Gn4Repository,
|
|
17
|
+
},
|
|
12
18
|
Gn4PlatformMapper,
|
|
13
19
|
]
|
|
14
20
|
}
|
|
@@ -164,6 +164,7 @@ export interface DatasetServiceDistribution {
|
|
|
164
164
|
name?: string
|
|
165
165
|
description?: string
|
|
166
166
|
translations?: OnlineResourceTranslations
|
|
167
|
+
accessRestricted?: boolean
|
|
167
168
|
}
|
|
168
169
|
|
|
169
170
|
export interface DatasetDownloadDistribution {
|
|
@@ -178,6 +179,7 @@ export interface DatasetDownloadDistribution {
|
|
|
178
179
|
description?: string
|
|
179
180
|
accessServiceProtocol?: ServiceProtocol
|
|
180
181
|
translations?: OnlineResourceTranslations
|
|
182
|
+
accessRestricted?: boolean
|
|
181
183
|
}
|
|
182
184
|
|
|
183
185
|
export interface OnlineLinkResource {
|
|
@@ -186,6 +188,8 @@ export interface OnlineLinkResource {
|
|
|
186
188
|
name?: string
|
|
187
189
|
description?: string
|
|
188
190
|
translations?: OnlineResourceTranslations
|
|
191
|
+
mimeType?: string
|
|
192
|
+
accessRestricted?: boolean
|
|
189
193
|
}
|
|
190
194
|
|
|
191
195
|
export type DatasetOnlineResource = (
|
|
@@ -236,8 +240,8 @@ export type DatasetFeatureCatalog = {
|
|
|
236
240
|
}
|
|
237
241
|
|
|
238
242
|
export interface ServiceEndpoint {
|
|
239
|
-
|
|
240
|
-
|
|
243
|
+
url: URL
|
|
244
|
+
accessServiceProtocol: ServiceProtocol
|
|
241
245
|
type: 'endpoint'
|
|
242
246
|
description?: string
|
|
243
247
|
translations?: OnlineResourceTranslations
|
|
@@ -1,146 +1,146 @@
|
|
|
1
1
|
export const elasticLinkFixture = (): Record<string, unknown> => ({
|
|
2
2
|
readmeLink: {
|
|
3
|
-
|
|
3
|
+
accessServiceProtocol: 'WWW:LINK',
|
|
4
4
|
description: 'Readme page',
|
|
5
5
|
url: 'http://envlit.ifremer.fr/resultats/quadrige',
|
|
6
6
|
},
|
|
7
7
|
doiLink: {
|
|
8
|
-
|
|
8
|
+
accessServiceProtocol: 'WWW:DOI',
|
|
9
9
|
description: 'DOI for the resource',
|
|
10
10
|
url: 'http://doi.org/123-456-678',
|
|
11
11
|
},
|
|
12
12
|
dataCsv: {
|
|
13
|
-
|
|
13
|
+
accessServiceProtocol: 'WWW:DOWNLOAD',
|
|
14
14
|
description: 'Data in CSV format',
|
|
15
15
|
name: 'abc.csv',
|
|
16
16
|
url: 'http://my.server/files/abc.csv',
|
|
17
17
|
},
|
|
18
18
|
dataPdf: {
|
|
19
|
-
|
|
19
|
+
accessServiceProtocol: 'WWW:DOWNLOAD',
|
|
20
20
|
description: 'Data in PDF format',
|
|
21
21
|
name: 'abc.pdf',
|
|
22
22
|
url: 'https://my.server/files/abc.pdf',
|
|
23
23
|
},
|
|
24
24
|
dataJpg: {
|
|
25
|
-
|
|
25
|
+
accessServiceProtocol: 'WWW:DOWNLOAD',
|
|
26
26
|
description: 'Data in JPG format',
|
|
27
27
|
name: 'abc.jpg',
|
|
28
28
|
url: 'https://my.server/files/abc.jpg',
|
|
29
29
|
},
|
|
30
30
|
dataZip: {
|
|
31
|
-
|
|
31
|
+
accessServiceProtocol: 'WWW:DOWNLOAD',
|
|
32
32
|
description: 'Data in ZIP format',
|
|
33
33
|
name: 'abc.zip',
|
|
34
34
|
url: 'https://my.server/files/abc.zip',
|
|
35
35
|
},
|
|
36
36
|
dataXls: {
|
|
37
|
-
|
|
37
|
+
accessServiceProtocol: 'WWW:DOWNLOAD',
|
|
38
38
|
description: 'Data in XLS format',
|
|
39
39
|
name: 'abc.xls',
|
|
40
40
|
url: 'https://my.server/files/abc.xls',
|
|
41
41
|
},
|
|
42
42
|
dataXlsx: {
|
|
43
|
-
|
|
43
|
+
accessServiceProtocol: 'WWW:DOWNLOAD',
|
|
44
44
|
description: 'Data in XLSX format',
|
|
45
45
|
name: 'abc.XLSX',
|
|
46
46
|
url: 'https://my.server/files/abc.XLSX',
|
|
47
47
|
},
|
|
48
48
|
dataJson: {
|
|
49
|
-
|
|
49
|
+
accessServiceProtocol: 'WWW:DOWNLOAD',
|
|
50
50
|
description: 'Data in JSON format',
|
|
51
51
|
name: 'abc.json',
|
|
52
52
|
url: 'https://my.server/files/abc.json',
|
|
53
53
|
},
|
|
54
54
|
geodataJson: {
|
|
55
|
-
|
|
55
|
+
accessServiceProtocol: 'WWW:DOWNLOAD',
|
|
56
56
|
description: 'Geographic data in GeoJSON format',
|
|
57
57
|
name: 'dataset.geojson',
|
|
58
58
|
url: 'http://my.server/files/geographic/dataset.geojson',
|
|
59
59
|
},
|
|
60
60
|
geodataJsonWithMimeType: {
|
|
61
|
-
|
|
61
|
+
accessServiceProtocol: 'WWW:DOWNLOAD:application/vnd.geo+json',
|
|
62
62
|
description: 'Geographic data in GeoJSON format',
|
|
63
63
|
name: 'dataset.geojson',
|
|
64
64
|
url: 'http://my.server/files/geographic/dataset',
|
|
65
65
|
mimeType: 'application/vnd.geo+json',
|
|
66
66
|
},
|
|
67
67
|
geodataKml: {
|
|
68
|
-
|
|
68
|
+
accessServiceProtocol: 'WWW:DOWNLOAD',
|
|
69
69
|
description: 'Geographic data in KML format',
|
|
70
70
|
name: 'dataset.kml',
|
|
71
71
|
url: 'http://my.server/files/geographic/dataset.kml',
|
|
72
72
|
},
|
|
73
73
|
geodataGpkg: {
|
|
74
|
-
|
|
74
|
+
accessServiceProtocol: 'WWW:DOWNLOAD',
|
|
75
75
|
description: 'Geographic data in geopackage format',
|
|
76
76
|
name: 'dataset.gpkg',
|
|
77
77
|
url: 'http://my.server/files/geographic/dataset.gpkg',
|
|
78
78
|
},
|
|
79
79
|
geodataShp: {
|
|
80
|
-
|
|
80
|
+
accessServiceProtocol: 'WWW:DOWNLOAD',
|
|
81
81
|
description: 'Geographic data in shapefile format',
|
|
82
82
|
name: 'dataset.shp',
|
|
83
83
|
url: 'http://my.server/files/geographic/dataset.zip',
|
|
84
84
|
},
|
|
85
85
|
geodataShpWithMimeType: {
|
|
86
|
-
|
|
86
|
+
accessServiceProtocol: 'WWW:DOWNLOAD:x-gis/x-shapefile',
|
|
87
87
|
description: 'Geographic data in shapefile format',
|
|
88
88
|
name: 'dataset',
|
|
89
89
|
url: 'http://my.server/files/geographic/dataset.zip',
|
|
90
90
|
mimeType: 'x-gis/x-shapefile',
|
|
91
91
|
},
|
|
92
92
|
geodataWms: {
|
|
93
|
-
|
|
93
|
+
accessServiceProtocol: 'OGC:WMS',
|
|
94
94
|
name: 'mylayer',
|
|
95
95
|
url: 'https://my.ogc.server/wms',
|
|
96
96
|
},
|
|
97
97
|
geodataWmts: {
|
|
98
|
-
|
|
98
|
+
accessServiceProtocol: 'OGC:WMTS',
|
|
99
99
|
name: 'mylayer',
|
|
100
100
|
url: 'https://my.ogc.server/wmts',
|
|
101
101
|
},
|
|
102
102
|
geodataWfs: {
|
|
103
|
-
|
|
103
|
+
accessServiceProtocol: 'OGC:WFS',
|
|
104
104
|
name: 'mylayer',
|
|
105
105
|
url: 'https://my.ogc.server/wfs',
|
|
106
106
|
},
|
|
107
107
|
geodataWms2: {
|
|
108
|
-
|
|
108
|
+
accessServiceProtocol: 'OGC:WMS',
|
|
109
109
|
name: 'myotherlayer',
|
|
110
110
|
url: 'https://my.ogc.server/wms',
|
|
111
111
|
},
|
|
112
112
|
geodataWfs2: {
|
|
113
|
-
|
|
113
|
+
accessServiceProtocol: 'OGC:WFS',
|
|
114
114
|
name: 'myotherlayer',
|
|
115
115
|
url: 'https://my.ogc.server/wfs',
|
|
116
116
|
},
|
|
117
117
|
geodataRest: {
|
|
118
|
-
|
|
118
|
+
accessServiceProtocol: 'ESRI:REST',
|
|
119
119
|
name: 'myrestlayer',
|
|
120
120
|
url: 'https://my.esri.server/FeatureServer',
|
|
121
121
|
},
|
|
122
122
|
geodataRestWfs: {
|
|
123
|
-
|
|
123
|
+
accessServiceProtocol: 'OGC:WFS',
|
|
124
124
|
name: 'mywfsrestlayer',
|
|
125
125
|
url: 'https://my.esri.server/WFSServer',
|
|
126
126
|
},
|
|
127
127
|
maplayerRest: {
|
|
128
|
-
|
|
128
|
+
accessServiceProtocol: 'ESRI:REST',
|
|
129
129
|
name: 'myotherrestlayer',
|
|
130
130
|
url: 'https://my.esri.server/MapServer',
|
|
131
131
|
},
|
|
132
132
|
landingPage: {
|
|
133
|
-
|
|
133
|
+
accessServiceProtocol: 'WWW:LINK:LANDING_PAGE',
|
|
134
134
|
name: 'landingpage link',
|
|
135
135
|
url: 'https://landing.page',
|
|
136
136
|
},
|
|
137
137
|
unknownFormat: {
|
|
138
|
-
|
|
138
|
+
accessServiceProtocol: 'WWW:DOWNLOAD-1.0-http--download',
|
|
139
139
|
name: 'Vue HTML des métadonnées sur internet',
|
|
140
140
|
url: 'http://catalogue.geo-ide.developpement-durable.gouv.fr/catalogue/srv/fre/catalog.search#/metadata/fr-120066022-jdd-199fd14c-2abb-4c14-b0f8-6c8d92e7b480',
|
|
141
141
|
},
|
|
142
142
|
geodataogcfeatures: {
|
|
143
|
-
|
|
143
|
+
accessServiceProtocol: 'OGC API - Features',
|
|
144
144
|
name: 'ogcapi features layer',
|
|
145
145
|
url: 'https://mel.integration.apps.gs-fr-prod.camptocamp.com/data/ogcapi/collections/comptages_velo/items?',
|
|
146
146
|
},
|
|
@@ -239,10 +239,10 @@ export const aSetOfLinksFixture = () => ({
|
|
|
239
239
|
({
|
|
240
240
|
description:
|
|
241
241
|
'https://services.geo.sg.ch/wss/service/SG00170_WMS/guest?request=GetCapabilities&service=WMS',
|
|
242
|
-
|
|
242
|
+
url: new URL(
|
|
243
243
|
'https://services.geo.sg.ch/wss/service/SG00170_WMS/guest?request=GetCapabilities&service=WMS'
|
|
244
244
|
),
|
|
245
|
-
|
|
245
|
+
accessServiceProtocol: 'wms',
|
|
246
246
|
type: 'endpoint',
|
|
247
247
|
}) as ServiceEndpoint,
|
|
248
248
|
})
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
export const wmsRecordLinkFixture = () => ({
|
|
2
2
|
description: 'Lieu de surveillance (point)',
|
|
3
3
|
name: 'surval_parametre_point',
|
|
4
|
-
|
|
4
|
+
accessServiceProtocol: 'OGC:WMS',
|
|
5
5
|
url: 'https://www.ifremer.fr/services/wms/surveillance_littorale',
|
|
6
6
|
})
|
|
7
7
|
|
|
8
8
|
export const wpsRecordLinkFixture = () => ({
|
|
9
9
|
description: "Extraction des données d'observation",
|
|
10
10
|
name: 'r:survalextraction',
|
|
11
|
-
|
|
11
|
+
accessServiceProtocol: 'OGC:WPS',
|
|
12
12
|
url: 'https://www.ifremer.fr/services/wps/surval',
|
|
13
13
|
})
|
|
14
14
|
|
|
15
15
|
export const wwwRecordLinkFixture = () => ({
|
|
16
16
|
description: '',
|
|
17
17
|
name: 'La base de données Quadrige',
|
|
18
|
-
|
|
18
|
+
praccessServiceProtocolotocol: 'WWW:LINK',
|
|
19
19
|
url: 'http://envlit.ifremer.fr/resultats/quadrige',
|
|
20
20
|
})
|
|
21
21
|
|
|
22
22
|
export const doiRecordLinkFixture = () => ({
|
|
23
|
-
|
|
23
|
+
accessServiceProtocol: 'WWW:DOI',
|
|
24
24
|
description: 'DOI for the resource',
|
|
25
25
|
url: 'http://doi.org/123-456-678',
|
|
26
26
|
})
|
|
@@ -28,6 +28,6 @@ export const doiRecordLinkFixture = () => ({
|
|
|
28
28
|
export const wfsRecordLinkFixture = () => ({
|
|
29
29
|
description: 'Lieu de surveillance (point)',
|
|
30
30
|
name: 'surval_parametre_point',
|
|
31
|
-
|
|
31
|
+
accessServiceProtocol: 'OGC:WFS',
|
|
32
32
|
url: 'https://www.ifremer.fr/services/wfs/surveillance_littorale',
|
|
33
33
|
})
|
|
@@ -137,6 +137,10 @@ export class ChartViewComponent {
|
|
|
137
137
|
switchMap((link) => {
|
|
138
138
|
this.error = null
|
|
139
139
|
this.loading = true
|
|
140
|
+
if (link.accessRestricted) {
|
|
141
|
+
this.handleError('dataset.error.restrictedAccess')
|
|
142
|
+
return EMPTY
|
|
143
|
+
}
|
|
140
144
|
return this.dataService.getDataset(link, this.cacheActive).pipe(
|
|
141
145
|
catchError((error) => {
|
|
142
146
|
this.handleError(error)
|
|
@@ -46,6 +46,10 @@ export class TableViewComponent {
|
|
|
46
46
|
switchMap((link) => {
|
|
47
47
|
this.error = null
|
|
48
48
|
if (!link) return of(undefined)
|
|
49
|
+
if (link.accessRestricted) {
|
|
50
|
+
this.handleError('dataset.error.restrictedAccess')
|
|
51
|
+
return of([])
|
|
52
|
+
}
|
|
49
53
|
this.loading = true
|
|
50
54
|
return this.getDatasetReader(link).pipe(
|
|
51
55
|
catchError((error) => {
|
|
@@ -66,9 +66,8 @@ export class OnlineResourceCardComponent {
|
|
|
66
66
|
get subtitle(): string {
|
|
67
67
|
switch (this.onlineResource.type) {
|
|
68
68
|
case 'service':
|
|
69
|
-
return `${this.onlineResource.accessServiceProtocol}`
|
|
70
69
|
case 'endpoint':
|
|
71
|
-
return `${this.onlineResource.
|
|
70
|
+
return `${this.onlineResource.accessServiceProtocol}`
|
|
72
71
|
case 'link':
|
|
73
72
|
case 'download':
|
|
74
73
|
return this.getFormat(this.onlineResource)
|
|
@@ -81,8 +81,8 @@ export class OnlineServiceResourceInputComponent {
|
|
|
81
81
|
errorMessage = false
|
|
82
82
|
resetUrlOnChange = Math.random()
|
|
83
83
|
|
|
84
|
-
layersSubject = new BehaviorSubject<{ name
|
|
85
|
-
layers$: Observable<{ name
|
|
84
|
+
layersSubject = new BehaviorSubject<{ name?: string; title?: string }[]>([])
|
|
85
|
+
layers$: Observable<{ name?: string; title?: string }[]> =
|
|
86
86
|
this.layersSubject.asObservable()
|
|
87
87
|
|
|
88
88
|
protocolOptions: {
|
|
@@ -9,9 +9,9 @@ import { PlatformServiceInterface } from '../../../../../../../../../libs/common
|
|
|
9
9
|
import { firstValueFrom, map, shareReplay } from 'rxjs'
|
|
10
10
|
import { EditorFacade } from '../../../../+state/editor.facade'
|
|
11
11
|
import { switchMap } from 'rxjs/operators'
|
|
12
|
-
import { FormFieldMapContainerComponent } from '../form-field-map-container/form-field-map-container.component'
|
|
13
12
|
import { TranslateModule, TranslateService } from '@ngx-translate/core'
|
|
14
13
|
import { SPATIAL_SCOPES } from '../../../../fields.config'
|
|
14
|
+
import { SpatialExtentComponent } from '../../../../../../../../../libs/ui/map/src'
|
|
15
15
|
|
|
16
16
|
// This intermediary type will let us keep track of which keyword is bound to
|
|
17
17
|
// which extent; these properties will not be persisted
|
|
@@ -35,8 +35,8 @@ type KeywordWithExtent = Keyword & {
|
|
|
35
35
|
imports: [
|
|
36
36
|
CommonModule,
|
|
37
37
|
GenericKeywordsComponent,
|
|
38
|
-
FormFieldMapContainerComponent,
|
|
39
38
|
TranslateModule,
|
|
39
|
+
SpatialExtentComponent,
|
|
40
40
|
],
|
|
41
41
|
})
|
|
42
42
|
export class FormFieldSpatialExtentComponent {
|
package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts
CHANGED
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
import { Configuration } from '../../../../../../libs/data-access/gn4/src'
|
|
10
10
|
import { BehaviorSubject, combineLatest, map } from 'rxjs'
|
|
11
11
|
import { MdViewFacade } from '../state'
|
|
12
|
-
import { GN_UI_VERSION } from '../gn-ui-version.token'
|
|
13
12
|
import { CopyTextButtonComponent } from '../../../../../../libs/ui/inputs/src'
|
|
14
13
|
import { CommonModule } from '@angular/common'
|
|
15
14
|
import { TranslateModule } from '@ngx-translate/core'
|
|
15
|
+
import { GEONETWORK_UI_TAG_NAME } from '../../../../../../libs/util/shared/src'
|
|
16
16
|
|
|
17
17
|
export const WEB_COMPONENT_EMBEDDER_URL = new InjectionToken<string>(
|
|
18
18
|
'webComponentEmbedderUrl'
|
|
@@ -40,7 +40,7 @@ export class DataViewPermalinkComponent {
|
|
|
40
40
|
]).pipe(
|
|
41
41
|
map(([viewType, config, metadata]) => {
|
|
42
42
|
const url = new URL(`${this.wcEmbedderBaseUrl}`, window.location.origin)
|
|
43
|
-
url.searchParams.set('v', `${
|
|
43
|
+
url.searchParams.set('v', `${GEONETWORK_UI_TAG_NAME}`)
|
|
44
44
|
if (viewType === 'chart') {
|
|
45
45
|
if (config) {
|
|
46
46
|
const { aggregation, xProperty, yProperty, chartType } = config
|
|
@@ -74,7 +74,6 @@ export class DataViewPermalinkComponent {
|
|
|
74
74
|
@Optional()
|
|
75
75
|
@Inject(WEB_COMPONENT_EMBEDDER_URL)
|
|
76
76
|
protected wcEmbedderBaseUrl: string,
|
|
77
|
-
@Inject(GN_UI_VERSION) private version: string,
|
|
78
77
|
private facade: MdViewFacade
|
|
79
78
|
) {}
|
|
80
79
|
}
|
package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts
CHANGED
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
import { Configuration } from '../../../../../../libs/data-access/gn4/src'
|
|
8
8
|
import { MdViewFacade } from '../state'
|
|
9
9
|
import { BehaviorSubject, combineLatest, map } from 'rxjs'
|
|
10
|
-
import { GN_UI_VERSION } from '../gn-ui-version.token'
|
|
11
10
|
import { CopyTextButtonComponent } from '../../../../../../libs/ui/inputs/src'
|
|
12
11
|
import { CommonModule } from '@angular/common'
|
|
13
12
|
import { TranslateModule } from '@ngx-translate/core'
|
|
13
|
+
import { GEONETWORK_UI_TAG_NAME } from '../../../../../../libs/util/shared/src'
|
|
14
14
|
|
|
15
15
|
@Component({
|
|
16
16
|
selector: 'gn-ui-data-view-web-component',
|
|
@@ -36,7 +36,7 @@ export class DataViewWebComponentComponent {
|
|
|
36
36
|
if (config) {
|
|
37
37
|
const { aggregation, xProperty, yProperty, chartType } = config
|
|
38
38
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${
|
|
39
|
-
|
|
39
|
+
GEONETWORK_UI_TAG_NAME
|
|
40
40
|
}/gn-wc.js"></script>
|
|
41
41
|
<gn-dataset-view-chart
|
|
42
42
|
api-url="${new URL(
|
|
@@ -59,7 +59,7 @@ export class DataViewWebComponentComponent {
|
|
|
59
59
|
return ''
|
|
60
60
|
} else if (viewType === 'table') {
|
|
61
61
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${
|
|
62
|
-
|
|
62
|
+
GEONETWORK_UI_TAG_NAME
|
|
63
63
|
}/gn-wc.js"></script>
|
|
64
64
|
<gn-dataset-view-table
|
|
65
65
|
api-url="${new URL(
|
|
@@ -76,7 +76,7 @@ export class DataViewWebComponentComponent {
|
|
|
76
76
|
></gn-dataset-view-table>`
|
|
77
77
|
} else {
|
|
78
78
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${
|
|
79
|
-
|
|
79
|
+
GEONETWORK_UI_TAG_NAME
|
|
80
80
|
}/gn-wc.js"></script>
|
|
81
81
|
<gn-dataset-view-map
|
|
82
82
|
api-url="${new URL(
|
|
@@ -97,7 +97,6 @@ export class DataViewWebComponentComponent {
|
|
|
97
97
|
|
|
98
98
|
constructor(
|
|
99
99
|
@Inject(Configuration) private config: Configuration,
|
|
100
|
-
@Inject(GN_UI_VERSION) private version: string,
|
|
101
100
|
private facade: MdViewFacade
|
|
102
101
|
) {}
|
|
103
102
|
}
|
|
@@ -61,6 +61,7 @@ import { FetchError } from '../../../../../../libs/util/data-fetcher/src'
|
|
|
61
61
|
|
|
62
62
|
marker('map.dropdown.placeholder')
|
|
63
63
|
marker('wfs.feature.limit')
|
|
64
|
+
marker('dataset.error.restrictedAccess')
|
|
64
65
|
|
|
65
66
|
@Component({
|
|
66
67
|
selector: 'gn-ui-map-view',
|
|
@@ -145,6 +146,10 @@ export class MapViewComponent implements AfterViewInit {
|
|
|
145
146
|
this.hidePreview = false
|
|
146
147
|
this.loading = true
|
|
147
148
|
this.error = null
|
|
149
|
+
if (link.accessRestricted) {
|
|
150
|
+
this.handleError('dataset.error.restrictedAccess')
|
|
151
|
+
return of([])
|
|
152
|
+
}
|
|
148
153
|
return this.getLayerFromLink(link).pipe(
|
|
149
154
|
map((layer) => [layer]),
|
|
150
155
|
catchError((e) => {
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
OnDestroy,
|
|
7
7
|
} from '@angular/core'
|
|
8
8
|
import { Meta } from '@angular/platform-browser'
|
|
9
|
-
import {
|
|
9
|
+
import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
|
|
10
10
|
|
|
11
11
|
@Component({
|
|
12
12
|
selector: 'gn-ui-record-meta',
|
|
@@ -15,7 +15,7 @@ import { DatasetRecord } from '../../../../../../libs/common/domain/src/lib/mode
|
|
|
15
15
|
standalone: true,
|
|
16
16
|
})
|
|
17
17
|
export class RecordMetaComponent implements OnDestroy, OnChanges {
|
|
18
|
-
@Input() metadata:
|
|
18
|
+
@Input() metadata: CatalogRecord
|
|
19
19
|
|
|
20
20
|
constructor(private meta: Meta) {}
|
|
21
21
|
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core'
|
|
2
2
|
import { Actions, createEffect, ofType } from '@ngrx/effects'
|
|
3
3
|
import { exhaustMap, mergeMap, of } from 'rxjs'
|
|
4
|
-
import { catchError, filter, map, switchMap
|
|
4
|
+
import { catchError, filter, map, switchMap } from 'rxjs/operators'
|
|
5
5
|
import * as MdViewActions from './mdview.actions'
|
|
6
6
|
import { RecordsRepositoryInterface } from '../../../../../../libs/common/domain/src/lib/repository/records-repository.interface'
|
|
7
7
|
import { PlatformServiceInterface } from '../../../../../../libs/common/domain/src/lib/platform.service.interface'
|
|
8
|
+
import { Router } from '@angular/router'
|
|
8
9
|
@Injectable()
|
|
9
10
|
export class MdViewEffects {
|
|
10
11
|
constructor(
|
|
11
12
|
private actions$: Actions,
|
|
12
13
|
private recordsRepository: RecordsRepositoryInterface,
|
|
13
|
-
private platformServiceInterface: PlatformServiceInterface
|
|
14
|
+
private platformServiceInterface: PlatformServiceInterface,
|
|
15
|
+
private router: Router
|
|
14
16
|
) {}
|
|
15
17
|
|
|
16
18
|
/*
|
|
@@ -21,7 +23,7 @@ export class MdViewEffects {
|
|
|
21
23
|
ofType(MdViewActions.loadFullMetadata),
|
|
22
24
|
switchMap(({ uuid }) => this.recordsRepository.getRecord(uuid)),
|
|
23
25
|
map((record) => {
|
|
24
|
-
if (record === null) {
|
|
26
|
+
if (record === null || !this.router.url.includes(record.kind)) {
|
|
25
27
|
return MdViewActions.loadFullMetadataFailure({ notFound: true })
|
|
26
28
|
}
|
|
27
29
|
return MdViewActions.loadFullMetadataSuccess({ full: record })
|
|
@@ -16,6 +16,7 @@ import { DatavizConfigurationModel } from '../../../../../../libs/common/domain/
|
|
|
16
16
|
import {
|
|
17
17
|
CatalogRecord,
|
|
18
18
|
DatasetServiceDistribution,
|
|
19
|
+
ServiceEndpoint,
|
|
19
20
|
UserFeedback,
|
|
20
21
|
} from '../../../../../../libs/common/domain/src/lib/model/record'
|
|
21
22
|
import { AvatarServiceInterface } from '../../../../../../libs/api/repository/src'
|
|
@@ -79,11 +80,7 @@ export class MdViewFacade {
|
|
|
79
80
|
chartConfig$ = this.store.pipe(select(MdViewSelectors.getChartConfig))
|
|
80
81
|
|
|
81
82
|
allLinks$ = this.metadata$.pipe(
|
|
82
|
-
map((record) =>
|
|
83
|
-
record.kind === 'dataset' && 'onlineResources' in record
|
|
84
|
-
? record.onlineResources
|
|
85
|
-
: []
|
|
86
|
-
)
|
|
83
|
+
map((record) => ('onlineResources' in record ? record.onlineResources : []))
|
|
87
84
|
)
|
|
88
85
|
|
|
89
86
|
apiLinks$ = this.allLinks$.pipe(
|
|
@@ -92,8 +89,8 @@ export class MdViewFacade {
|
|
|
92
89
|
.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.API))
|
|
93
90
|
// Put links to IGN Géoplateforme first
|
|
94
91
|
.sort((dd1, dd2) => {
|
|
95
|
-
return (dd2 as DatasetServiceDistribution)
|
|
96
|
-
'GPFDL'
|
|
92
|
+
return (dd2 as DatasetServiceDistribution | ServiceEndpoint)
|
|
93
|
+
.accessServiceProtocol === 'GPFDL'
|
|
97
94
|
? 1
|
|
98
95
|
: undefined // do not change the sorting otherwise
|
|
99
96
|
})
|
|
@@ -4,6 +4,8 @@ export const ROUTER_STATE_KEY = 'router'
|
|
|
4
4
|
|
|
5
5
|
export const ROUTER_ROUTE_SEARCH = 'search'
|
|
6
6
|
export const ROUTER_ROUTE_DATASET = 'dataset'
|
|
7
|
+
export const ROUTER_ROUTE_SERVICE = 'service'
|
|
8
|
+
export const ROUTER_ROUTE_REUSE = 'reuse'
|
|
7
9
|
export const ROUTER_ROUTE_ORGANIZATION = 'organization'
|
|
8
10
|
|
|
9
11
|
export enum ROUTE_PARAMS {
|