diff --git a/backend/src/main/resources/nameid-filter.schema.json b/backend/src/main/resources/nameid-filter.schema.json
index d6d02c84f..0865d8f89 100644
--- a/backend/src/main/resources/nameid-filter.schema.json
+++ b/backend/src/main/resources/nameid-filter.schema.json
@@ -21,7 +21,7 @@
"type": "object",
"properties": {
"nameIdFormatFilterTargetType": {
- "title": "",
+ "title": "label.filter-target-type",
"type": "string",
"default": "ENTITY",
"enum": [
diff --git a/ui/src/app/metadata/component/properties/PrimitiveProperty.js b/ui/src/app/metadata/component/properties/PrimitiveProperty.js
index f86a798b7..96440749f 100644
--- a/ui/src/app/metadata/component/properties/PrimitiveProperty.js
+++ b/ui/src/app/metadata/component/properties/PrimitiveProperty.js
@@ -9,6 +9,10 @@ export function PrimitiveProperty ({ property, columns }) {
const width = usePropertyWidth(columns);
+ const getValue = (v) => {
+ return property.enum && property.enumNames ? property.enumNames[property.enum.indexOf(v)] : v;
+ }
+
return (
{property.differences &&
Changed: }
@@ -21,7 +25,7 @@ export function PrimitiveProperty ({ property, columns }) {
{ property.name }
{property.value.map((v, valIdx) =>
-
+
) }
diff --git a/ui/src/app/metadata/component/properties/PropertyValue.js b/ui/src/app/metadata/component/properties/PropertyValue.js
index 807c86e61..0476fdb01 100644
--- a/ui/src/app/metadata/component/properties/PropertyValue.js
+++ b/ui/src/app/metadata/component/properties/PropertyValue.js
@@ -3,6 +3,7 @@ import Popover from 'react-bootstrap/Popover';
import OverlayTrigger from 'react-bootstrap/OverlayTrigger';
import { usePropertyWidth } from './hooks';
+import Translate from '../../../i18n/components/translate';
export function PropertyValue ({ name, value, columns, className }) {
@@ -20,7 +21,9 @@ export function PropertyValue ({ name, value, columns, className }) {
className={`d-block text-truncate ${className}`}
role="definition"
style={columns ? { width } : {}}>
- {value !== undefined ? value.toString() : (value === false) ? value.toString() : '-'}
+
+ {value !== undefined ? value.toString() : (value === false) ? value.toString() : '-'}
+
: -}
diff --git a/ui/src/app/metadata/hooks/api.js b/ui/src/app/metadata/hooks/api.js
index d951b66a4..f5b64c25c 100644
--- a/ui/src/app/metadata/hooks/api.js
+++ b/ui/src/app/metadata/hooks/api.js
@@ -109,7 +109,11 @@ export function useMetadataUpdater (path, current) {
}));
});
}
- return Promise.resolve(req);
+ if (response.ok) {
+ return Promise.resolve(req);
+ } else {
+ return Promise.reject(req);
+ }
}
return {
diff --git a/ui/src/app/metadata/new/NewFilter.js b/ui/src/app/metadata/new/NewFilter.js
index 5fce5d31f..4aacb1574 100644
--- a/ui/src/app/metadata/new/NewFilter.js
+++ b/ui/src/app/metadata/new/NewFilter.js
@@ -9,12 +9,14 @@ import { MetadataForm } from '../hoc/MetadataFormContext';
import { MetadataSchema } from '../hoc/MetadataSchema';
import { useMetadataFilters, useMetadataFilterTypes } from '../hooks/api';
import { MetadataFilterTypeSelector } from '../wizard/MetadataFilterTypeSelector';
+import { createNotificationAction, NotificationTypes, useNotificationDispatcher } from '../../notifications/hoc/Notifications';
export function NewFilter() {
const { id, section } = useParams();
const history = useHistory();
const types = useMetadataFilterTypes();
+ const dispatch = useNotificationDispatcher();
const { post, response, loading } = useMetadataFilters(id, {});
@@ -22,9 +24,12 @@ export function NewFilter() {
async function save(metadata) {
- await post(``, metadata);
+ const resp = await post(``, metadata);
if (response.ok) {
+ dispatch(createNotificationAction('Filter saved'));
gotoDetail({ refresh: true });
+ } else {
+ dispatch(createNotificationAction(resp.cause, NotificationTypes.DANGER));
}
};
diff --git a/ui/src/app/metadata/view/EditFilter.js b/ui/src/app/metadata/view/EditFilter.js
index bae6fa78e..5ac69fb8c 100644
--- a/ui/src/app/metadata/view/EditFilter.js
+++ b/ui/src/app/metadata/view/EditFilter.js
@@ -11,9 +11,12 @@ import { MetadataSchema } from '../hoc/MetadataSchema';
import { getMetadataPath, useMetadataUpdater } from '../hooks/api';
import { useMetadataFilterObject } from '../hoc/MetadataFilterSelector';
import API_BASE_PATH from '../../App.constant';
+import { createNotificationAction, NotificationTypes, useNotificationDispatcher } from '../../notifications/hoc/Notifications';
export function EditFilter() {
+ const dispatch = useNotificationDispatcher();
+
const { id, filterId } = useParams();
const filter = useMetadataFilterObject();
const history = useHistory();
@@ -33,10 +36,11 @@ export function EditFilter() {
function save(metadata) {
setBlocking(false);
- update(``, metadata).then(() => {
+ update(``, metadata).then((resp) => {
+ dispatch(createNotificationAction('Filter saved'));
gotoDetail({ refresh: true });
- }).catch(() => {
- window.location.reload();
+ }).catch((error) => {
+ dispatch(createNotificationAction(error.cause, NotificationTypes.DANGER));
});
};
diff --git a/ui/src/app/metadata/view/MetadataUpload.js b/ui/src/app/metadata/view/MetadataUpload.js
index d00be91fe..76ab28c5a 100644
--- a/ui/src/app/metadata/view/MetadataUpload.js
+++ b/ui/src/app/metadata/view/MetadataUpload.js
@@ -22,8 +22,6 @@ export function MetadataUpload() {
async function save({serviceProviderName, file, url}) {
- console.log(serviceProviderName, file);
-
setSaving(true);
const f = file?.length > 0 ? file[0] : null;