Skip to content

Commit

Permalink
Fixed issues
Browse files Browse the repository at this point in the history
  • Loading branch information
rmathis committed Jun 2, 2021
1 parent 4abfba6 commit cda97bb
Show file tree
Hide file tree
Showing 12 changed files with 57 additions and 43 deletions.
14 changes: 0 additions & 14 deletions ui/src/app/metadata/component/properties/ArrayProperty.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,6 @@ import { usePropertyWidth } from './hooks';
import { PropertyValue } from './PropertyValue';
import { FilterTargetPreview } from '../../hoc/FilterTargetPreview';


const isUri = (value) => {
try {
new URL(value);
} catch (err) {
return false;
}
return true;
}

const isUrl = (str) => {
return isUri(str);
}

export function ArrayProperty ({ property, columns, preview }) {

const width = usePropertyWidth(columns);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,11 @@ export const EntityAttributesFilterWizard = {
...changes,
relyingPartyOverrides: removeNull(changes)
};
}
},
formatter: (changes) => ({
...changes,
'@type': EntityAttributesFilterWizard.type
})
};


Expand Down
8 changes: 5 additions & 3 deletions ui/src/app/metadata/domain/filter/NameIdFilterDefinition.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ export const NameIDFilterWizard = {
steps: [],
validator: (data = [], current = { resourceId: null }) => {



const filters = current ? data.filter(s => s.resourceId !== current.resourceId) : data;
const names = filters.map(s => s.entityId);

Expand All @@ -37,7 +35,11 @@ export const NameIDFilterWizard = {
}
return errors;
}
}
},
formatter: (changes) => ({
...changes,
'@type': NameIDFilterWizard.type
})
};

export const NameIDFilterEditor = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ import { MetadataFiltersContext } from './MetadataFilters';

import { MetadataFilterConfigurationListItem } from './MetadataFilterConfigurationListItem';

export function MetadataFilterConfigurationList ({provider, editable = true}) {
export function MetadataFilterConfigurationList ({provider, onDelete, editable = true}) {
const filters = React.useContext(MetadataFiltersContext);
const removeFilter = () => {}

return (
<Ordered path={`/MetadataResolvers/${provider.resourceId}/FiltersPositionOrder` } entities={filters}>
Expand All @@ -26,7 +25,7 @@ export function MetadataFilterConfigurationList ({provider, editable = true}) {
editable={ editable }
onOrderDown={onOrderDown}
onOrderUp={onOrderUp}
onRemove={removeFilter}
onRemove={() => onDelete(filter.resourceId)}
/>
</li>
)}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react';
import { useMetadataFilters } from '../../../hooks/api';
import { DeleteConfirmation } from '../../../component/DeleteConfirmation';

export const MetadataFiltersContext = React.createContext();

Expand Down Expand Up @@ -46,6 +47,12 @@ export function MetadataFilters ({ providerId, types = [], filters, children })


return (
<MetadataFiltersContext.Provider value={filterData}>{children(filterData, onUpdate, onDelete, loading)}</MetadataFiltersContext.Provider>
<DeleteConfirmation title={`message.delete-filter-title`} body={`message.delete-filter-body`}>
{(block) =>
<MetadataFiltersContext.Provider value={filterData}>
{children(filterData, onUpdate, (id) => block(() => onDelete(id)), loading)}
</MetadataFiltersContext.Provider>
}
</DeleteConfirmation>
);
}
7 changes: 5 additions & 2 deletions ui/src/app/metadata/domain/provider/BaseProviderDefinition.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { metadataFilterProcessor } from './utility/providerFilterProcessor';
import { DurationOptions } from '../data';
import { MetadataFilterTypes } from '../filter';

export const BaseProviderDefinition = {
schemaPreprocessor: metadataFilterProcessor,
Expand All @@ -19,13 +20,15 @@ export const BaseProviderDefinition = {
return errors;
}
},
parser: (changes) => {
parser: (changes, base) => {

const parsed = (changes.metadataFilters ? ({
...changes,
metadataFilters: [
...changes.metadataFilters.filter((filter, filterName) => (
Object.keys(filter).filter(k => k !== '@type').length > 0
))
)),
...base.metadataFilters.filter(f => MetadataFilterTypes.indexOf(f['@type']) > -1)
]
}) : changes);

Expand Down
4 changes: 3 additions & 1 deletion ui/src/app/metadata/editor/MetadataEditor.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { getMetadataPath, useMetadataEntities, useMetadataUpdater } from '../hoo
import { NavLink } from 'react-router-dom';
import { useTranslator } from '../../i18n/hooks';
import API_BASE_PATH from '../../App.constant';
import { MetadataObjectContext } from '../hoc/MetadataSelector';

export function MetadataEditor ({ current }) {

Expand All @@ -27,6 +28,7 @@ export function MetadataEditor ({ current }) {
const history = useHistory();
const definition = React.useContext(MetadataDefinitionContext);
const schema = React.useContext(MetadataSchemaContext);
const base = React.useContext(MetadataObjectContext);

const { state, dispatch } = React.useContext(MetadataFormContext);
const { metadata, errors } = state;
Expand All @@ -38,7 +40,7 @@ export function MetadataEditor ({ current }) {
};

function save(metadata) {
update(`/${id}`, definition.parser(metadata))
update(`/${id}`, definition.parser(metadata, base))
.then(() => {
gotoDetail({ refresh: true });
})
Expand Down
2 changes: 0 additions & 2 deletions ui/src/app/metadata/hoc/FilterTargetPreview.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ export function FilterTargetPreview ({ entityId, children }) {
responseType: 'text'
}, [entityId]);

console.log(data);

return (
<React.Fragment>
{children(preview, loading, data)}
Expand Down
25 changes: 13 additions & 12 deletions ui/src/app/metadata/hoc/MetadataFormContext.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@ export const setFormDataAction = (payload) => {
export const setFormErrorAction = (errors) => {
return {
type: MetadataFormActions.SET_FORM_ERROR,
payload: {
errors
}
payload: errors
}
}

Expand All @@ -42,7 +40,7 @@ function reducer(state, action) {
case MetadataFormActions.SET_FORM_ERROR:
return {
...state,
errors: action.payload.errors
errors: action.payload
};
case MetadataFormActions.SET_FORM_DATA:
return {
Expand All @@ -55,16 +53,19 @@ function reducer(state, action) {
}

/*eslint-disable react-hooks/exhaustive-deps*/
function MetadataForm({ children, initial = {}, onChange }) {
function MetadataForm({ children, initial = {} }) {

const [state, dispatch] = React.useReducer(
reducer,
initialState
);

const metadata = {
...useFormattedMetadata(initial)
};
const base = useFormattedMetadata(initial);

const [state, dispatch] = React.useReducer(reducer, {
...initialState,
metadata
});
React.useEffect(() => {
dispatch(setFormDataAction(base))
dispatch(setFormErrorAction(initialState.errors))
}, [initial])

const contextValue = React.useMemo(() => ({ state, dispatch }), [state, dispatch]);

Expand Down
4 changes: 2 additions & 2 deletions ui/src/app/metadata/new/NewFilter.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@ export function NewFilter() {
</div>
<div className="section-body p-4 border border-top-0 border-info">
<MetadataFilterTypeSelector types={types}>
{(type) =>
{(type, base) =>
<MetadataSchema type={type}>
<MetadataForm>
<MetadataForm initial={base}>
<MetadataFilterEditor>
{(filter, isInvalid) =>
<div className="d-flex justify-content-end">
Expand Down
6 changes: 5 additions & 1 deletion ui/src/app/metadata/view/MetadataOptions.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,11 @@ export function MetadataOptions () {
</div>
</div>
<MetadataFilters providerId={metadata.resourceId} types={MetadataFilterTypes}>
{(filters) => <MetadataFilterConfigurationList provider={metadata} filters={filters} />}
{(filters, onUpdate, onDelete, loading) =>
<MetadataFilterConfigurationList
provider={metadata}
filters={filters}
onDelete={onDelete} />}
</MetadataFilters>
</>
}
Expand Down
10 changes: 9 additions & 1 deletion ui/src/app/metadata/wizard/MetadataFilterTypeSelector.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,14 @@ export function MetadataFilterTypeSelector({ types = [], children, actions}) {

const type = watch('type');

const [base, setBase] = React.useState({});

React.useEffect(() => {
setBase({
'@type': type
})
}, [type])

return (
<div className="container-fluid">
<div className="row">
Expand All @@ -48,7 +56,7 @@ export function MetadataFilterTypeSelector({ types = [], children, actions}) {
</div>
<hr />
{type &&
children(type)
children(type, base)
}
</div>
);
Expand Down

0 comments on commit cda97bb

Please sign in to comment.