Skip to content

Commit

Permalink
Added external provider
Browse files Browse the repository at this point in the history
  • Loading branch information
rmathis committed Jun 24, 2022
1 parent cc4a9f1 commit 4f42657
Show file tree
Hide file tree
Showing 4 changed files with 143 additions and 5 deletions.
43 changes: 43 additions & 0 deletions ui/public/assets/schema/provider/external.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"type": "object",
"required": [
"name",
"@type",
"xmlId",
"description"
],
"properties": {
"name": {
"title": "label.metadata-provider-name-dashboard-display-only",
"description": "tooltip.metadata-provider-name-dashboard-display-only",
"type": "string",
"widget": {
"id": "string",
"help": "message.must-be-unique"
}
},
"@type": {
"title": "label.metadata-provider-type",
"description": "tooltip.metadata-provider-type",
"type": "string",
"const": "FilesystemMetadataResolver"
},
"xmlId": {
"title": "label.xml-id",
"description": "tooltip.xml-id",
"type": "string",
"minLength": 1
},
"enabled": {
"title": "label.enable-provider-upon-saving",
"description": "tooltip.enable-provider-upon-saving",
"type": "boolean",
"default": false
},
"description": {
"title": "label.description",
"description": "tooltip.description",
"type": "string"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
import defaultsDeep from 'lodash/defaultsDeep';
import API_BASE_PATH from "../../../../App.constant";
import { BaseProviderDefinition } from "./BaseProviderDefinition";

export const ExternalMetadataProviderWizard = {
...BaseProviderDefinition,
label: 'ExternalMetadataProvider',
type: 'ExternalMetadataResolver',
schema: 'assets/schema/provider/external.schema.json',
steps: [
...BaseProviderDefinition.steps,
{
id: 'common',
label: 'label.common-attributes',
index: 2,
initialValues: [],
fields: [
'xmlId',
'metadataFile',
'description'
]
},
{
id: 'summary',
label: 'label.summary',
index: 2,
initialValues: [],
fields: [
'enabled',
]
},
],
uiSchema: defaultsDeep({
layout: {
groups: [
{
size: 8,
classNames: 'bg-light border rounded px-4 pt-4 pb-3 mb-4',
fields: [
'name',
'@type'
]
},
{
size: 8,
fields: [
'xmlId',
'description',
]
}
]
},
description: {
'ui:widget': 'textarea'
}
}, BaseProviderDefinition.uiSchema)
};


export const ExternalMetadataProviderEditor = {
...ExternalMetadataProviderWizard,
steps: [
{
id: 'common',
label: 'label.common-attributes',
index: 1,
initialValues: [],
fields: [
'name',
'xmlId',
'@type',
'description',
'enabled'
],
override: {
'@type': {
type: 'string',
readOnly: true,
widget: 'string',
oneOf: [{ enum: ['ExternalMetadataResolver'],
description: 'value.file-system-metadata-provider' }]
}
}
}
],
uiSchema: defaultsDeep({
'@type': {
'ui:readonly': true
}
}, ExternalMetadataProviderWizard.uiSchema)
};
10 changes: 7 additions & 3 deletions ui/src/app/metadata/domain/provider/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,26 @@ import { FileBackedHttpMetadataProviderWizard, FileBackedHttpMetadataProviderEdi
import { DynamicHttpMetadataProviderWizard, DynamicHttpMetadataProviderEditor } from './definition/DynamicHttpMetadataProviderDefinition';
import { LocalDynamicMetadataProviderWizard, LocalDynamicMetadataProviderEditor } from './definition/LocalDynamicMetadataProviderDefinition';
import { FileSystemMetadataProviderWizard, FileSystemMetadataProviderEditor } from './definition/FileSystemMetadataProviderDefinition';
import { ExternalMetadataProviderWizard, ExternalMetadataProviderEditor } from './definition/ExternalMetadataProviderDefinition';

export const MetadataProviderWizardTypes = [
FileBackedHttpMetadataProviderWizard,
DynamicHttpMetadataProviderWizard,
FileSystemMetadataProviderWizard,
LocalDynamicMetadataProviderWizard
LocalDynamicMetadataProviderWizard,
ExternalMetadataProviderWizard,
];

export const MetadataProviderEditorTypes = [
FileBackedHttpMetadataProviderEditor,
DynamicHttpMetadataProviderEditor,
LocalDynamicMetadataProviderEditor,
FileSystemMetadataProviderEditor
FileSystemMetadataProviderEditor,
ExternalMetadataProviderEditor,
];

export const FilterableProviders = [
FileBackedHttpMetadataProviderEditor.type,
DynamicHttpMetadataProviderEditor.type
DynamicHttpMetadataProviderEditor.type,
ExternalMetadataProviderEditor.type,
];
4 changes: 2 additions & 2 deletions ui/src/app/metadata/new/NewProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { MetadataProviderTypeSelector } from '../wizard/MetadataProviderTypeSele

export function NewProvider() {

const { data } = useMetadataProviderTypes({}, []);
const { data = [] } = useMetadataProviderTypes({}, []);

return (
<div className="container-fluid p-3">
Expand All @@ -20,7 +20,7 @@ export function NewProvider() {
</div>
</div>
<div className="section-body p-4 border border-top-0 border-info">
<MetadataProviderTypeSelector type={'provider'} types={data}>
<MetadataProviderTypeSelector type={'provider'} types={[...data, 'ExternalMetadataResolver']}>
{(data, onRestart) =>
<MetadataSchema type={data.type} wizard={true}>
<MetadataWizard type="provider"
Expand Down

0 comments on commit 4f42657

Please sign in to comment.