diff --git a/CHANGELOG.md b/CHANGELOG.md index 84bf74521..3cdc38af8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ the detailed section referring to by linking pull requests or issues. #### Added +- Added viewing of parameterization options to asset details - Added custom 404 pages to connector and broker ui #### Changed diff --git a/fake-backend/json/contractAgreementPage.json b/fake-backend/json/contractAgreementPage.json index 5a2aeadfb..9aee5e065 100644 --- a/fake-backend/json/contractAgreementPage.json +++ b/fake-backend/json/contractAgreementPage.json @@ -127,9 +127,9 @@ "http://w3id.org/mds#dataModel": "my-data-model-001", "http://w3id.org/mds#geoReferenceMethod": "my-geo-reference-method", "http://w3id.org/mds#transportMode": "Rail", - "asset:prop:some-unsupported-property": "F10E2821BBBEA527EA02200352313BC059445190", + "asset:prop:some-unsupported-property": "test", "asset:prop:datasource:http:hints:proxyMethod": "true", - "asset:prop:datasource:http:hints:proxyPath": "true", + "asset:prop:datasource:http:hints:proxyPath": "false", "asset:prop:datasource:http:hints:proxyQueryParams": "true", "asset:prop:datasource:http:hints:proxyBody": "true" } diff --git a/src/app/component-library/catalog/asset-detail-dialog/asset-property-grid-group-builder.ts b/src/app/component-library/catalog/asset-detail-dialog/asset-property-grid-group-builder.ts index 633714608..183d0c1f2 100644 --- a/src/app/component-library/catalog/asset-detail-dialog/asset-property-grid-group-builder.ts +++ b/src/app/component-library/catalog/asset-detail-dialog/asset-property-grid-group-builder.ts @@ -6,7 +6,16 @@ import {Policy} from '../../../core/services/api/legacy-managent-api-client'; import {AssetProperties} from '../../../core/services/asset-properties'; import {Asset} from '../../../core/services/models/asset'; import {BrokerDataOffer} from '../../../routes/broker-ui/catalog-page/catalog-page/mapping/broker-data-offer'; -import {ContractAgreementCardMapped} from '../../../routes/connector-ui/contract-agreement-page/contract-agreement-cards/contract-agreement-card-mapped'; +import { + ParameterizationDetailDialogComponent +} from '../../../routes/connector-ui/asset-page/parameterization-detail-dialog/parameterization-detail-dialog.component'; +import { + ParameterizationDetailDialogData, + assetParameterizationDetail, +} from '../../../routes/connector-ui/asset-page/parameterization-detail-dialog/parameterization-detail-dialog.data'; +import { + ContractAgreementCardMapped +} from '../../../routes/connector-ui/contract-agreement-page/contract-agreement-cards/contract-agreement-card-mapped'; import {JsonDialogComponent} from '../../json-dialog/json-dialog/json-dialog.component'; import {JsonDialogData} from '../../json-dialog/json-dialog/json-dialog.data'; import {PropertyGridGroup} from '../../property-grid/property-grid-group/property-grid-group'; @@ -19,13 +28,15 @@ import { } from '../icon-with-online-status/online-status-utils'; import {getLegacyPolicy} from './policy-utils'; + @Injectable() export class AssetPropertyGridGroupBuilder { constructor( private matDialog: MatDialog, private activeFeatureSet: ActiveFeatureSet, private propertyGridUtils: PropertyGridFieldService, - ) {} + ) { + } buildAssetPropertiesGroup( asset: Asset, @@ -87,12 +98,45 @@ export class AssetPropertyGridGroupBuilder { fields.push(...this.buildMdsProperties(asset, true)); } + if ( + asset.httpProxyMethod != null || + asset.httpProxyBody != null || + asset.httpProxyPath != null || + asset.httpProxyQueryParams != null + ) { + this.addParametrizationFields(asset, fields); + } + return { groupLabel, properties: fields, }; } + private addParametrizationFields(asset: Asset, fields: PropertyGridField[]) { + let showDetailsObject = { + httpProxyMethod: asset.httpProxyMethod ? 'Enabled' : 'Disabled', + httpProxyBody: asset.httpProxyBody ? 'Enabled' : 'Disabled', + httpProxyPath: asset.httpProxyPath ? 'Enabled' : 'Disabled', + httpProxiedQueryParams: asset.httpProxyQueryParams + ? 'Enabled' + : 'Disabled', + }; + + fields.push({ + icon: 'list', + label: 'Parameterization Options', + text: 'Show Details', + onclick: () => + this.onShowDetailsClick( + `Parameterization Options`, + asset.name, + 'list', + showDetailsObject, + ), + }); + } + buildAdditionalPropertiesGroup(asset: Asset): PropertyGridGroup { const fields: PropertyGridField[] = []; @@ -176,6 +220,21 @@ export class AssetPropertyGridGroupBuilder { this.matDialog.open(JsonDialogComponent, {data}); } + onShowDetailsClick( + title: string, + subtitle: string, + icon: string, + details: assetParameterizationDetail, + ) { + const data: ParameterizationDetailDialogData = { + title, + subtitle, + icon, + objectForDetailDialog: details, + }; + this.matDialog.open(ParameterizationDetailDialogComponent, {data}); + } + buildContractOfferGroup( asset: Asset, contractOffer: CatalogContractOffer, diff --git a/src/app/routes/connector-ui/asset-page/asset-page.module.ts b/src/app/routes/connector-ui/asset-page/asset-page.module.ts index 90a4bfb63..65d5d7fcd 100644 --- a/src/app/routes/connector-ui/asset-page/asset-page.module.ts +++ b/src/app/routes/connector-ui/asset-page/asset-page.module.ts @@ -31,6 +31,7 @@ import {DataSubcategoryItemsPipe} from './data-subcategory-select/data-subcatego import {DataSubcategorySelectComponent} from './data-subcategory-select/data-subcategory-select.component'; import {KeywordSelectComponent} from './keyword-select/keyword-select.component'; import {LanguageSelectComponent} from './language-select/language-select.component'; +import {ParameterizationDetailDialogComponent} from './parameterization-detail-dialog/parameterization-detail-dialog.component'; import {TransportModeSelectComponent} from './transport-mode-select/transport-mode-select.component'; @NgModule({ @@ -71,10 +72,11 @@ import {TransportModeSelectComponent} from './transport-mode-select/transport-mo AssetCreateDialogComponent, AssetPageComponent, DataCategorySelectComponent, - DataSubcategorySelectComponent, DataSubcategoryItemsPipe, + DataSubcategorySelectComponent, KeywordSelectComponent, LanguageSelectComponent, + ParameterizationDetailDialogComponent, TransportModeSelectComponent, ], exports: [AssetPageComponent], diff --git a/src/app/routes/connector-ui/asset-page/parameterization-detail-dialog/parameterization-detail-dialog.component.html b/src/app/routes/connector-ui/asset-page/parameterization-detail-dialog/parameterization-detail-dialog.component.html new file mode 100644 index 000000000..def991875 --- /dev/null +++ b/src/app/routes/connector-ui/asset-page/parameterization-detail-dialog/parameterization-detail-dialog.component.html @@ -0,0 +1,19 @@ +