diff --git a/ui/src/app/metadata/copy/CopySource.js b/ui/src/app/metadata/copy/CopySource.js
index 83a8591e8..f3ae6b142 100644
--- a/ui/src/app/metadata/copy/CopySource.js
+++ b/ui/src/app/metadata/copy/CopySource.js
@@ -9,18 +9,9 @@ import { Translate } from '../../i18n/components/translate';
import { EntityTypeahead } from './EntityTypeahead';
import kebabCase from 'lodash/kebabCase';
import { useMetadataSources } from '../hooks/api';
+import { useMetadataSourceSections } from '../domain/source/definition/SourceDefinition';
+
-const sections = [
- { i18nKey: 'organizationInformation', property: 'organization' },
- { i18nKey: 'contacts', property: 'contacts' },
- { i18nKey: 'uiMduiInfo', property: 'mdui' },
- { i18nKey: 'spSsoDescriptorInfo', property: 'serviceProviderSsoDescriptor' },
- { i18nKey: 'logoutEndpoints', property: 'logoutEndpoints' },
- { i18nKey: 'securityDescriptorInfo', property: 'securityInfo' },
- { i18nKey: 'assertionConsumerServices', property: 'assertionConsumerServices' },
- { i18nKey: 'relyingPartyOverrides', property: 'relyingPartyOverrides' },
- { i18nKey: 'attributeRelease', property: 'attributeRelease' }
-];
export function CopySource({ copy, onNext }) {
@@ -64,6 +55,8 @@ export function CopySource({ copy, onNext }) {
const sourceIds = data.map(p => p.entityId);
+ const sections = useMetadataSourceSections();
+
return (
<>
@@ -162,7 +155,7 @@ export function CopySource({ copy, onNext }) {
|
onSelect(item, checked)}
diff --git a/ui/src/app/metadata/domain/source/definition/SourceDefinition.js b/ui/src/app/metadata/domain/source/definition/SourceDefinition.js
index a448d2d03..41d409907 100644
--- a/ui/src/app/metadata/domain/source/definition/SourceDefinition.js
+++ b/ui/src/app/metadata/domain/source/definition/SourceDefinition.js
@@ -6,6 +6,7 @@ import API_BASE_PATH from '../../../../App.constant';
import {removeNull} from '../../../../core/utility/remove_null';
import { detailedDiff } from 'deep-object-diff';
import isNil from 'lodash/isNil';
+import { useMetadataSchemaContext } from '../../../hoc/MetadataSchema';
export const SourceBase = {
label: 'Metadata Source',
@@ -534,4 +535,35 @@ export const SourceWizard = {
fields: []
}
]
+}
+
+export const sections = [
+ { i18nKey: 'organizationInformation', property: 'organization' },
+ { i18nKey: 'contacts', property: 'contacts' },
+ { i18nKey: 'uiMduiInfo', property: 'mdui' },
+ { i18nKey: 'spSsoDescriptorInfo', property: 'serviceProviderSsoDescriptor' },
+ { i18nKey: 'logoutEndpoints', property: 'logoutEndpoints' },
+ { i18nKey: 'securityDescriptorInfo', property: 'securityInfo' },
+ { i18nKey: 'assertionConsumerServices', property: 'assertionConsumerServices' },
+ { i18nKey: 'relyingPartyOverrides', property: 'relyingPartyOverrides' },
+ { i18nKey: 'attributeRelease', property: 'attributeRelease' }
+];
+
+export function useMetadataSourceSections() {
+ const schema = useMetadataSchemaContext();
+
+ const keys = Object.keys(schema.properties);
+ const properties = sections.map((s) => s.property);
+
+ const reduced = keys.reduce(
+ (collection, key) => {
+ if (properties.indexOf(key) > -1) {
+ collection.push(sections.find(s => s.property === key));
+ }
+ return collection;
+ },
+ []
+ );
+
+ return reduced;
}
\ No newline at end of file
|