From 4cf79c36cb66029d4d88ada3264f868ef657d7fc Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Thu, 7 Jul 2022 08:29:04 -0700 Subject: [PATCH 1/9] Fixed cosmetic issues --- .../main/resources/i18n/messages.properties | 1 + ui/public/unsecured/error.html | 21 +++++++++++++----- ui/public/unsecured/favicon-96x96.png | Bin 0 -> 12383 bytes ui/public/unsecured/favicon.ico | Bin 0 -> 1150 bytes .../shibboleth_icon_color_130x130.png | Bin 0 -> 11665 bytes ui/src/app/metadata/new/NewProvider.js | 4 ++-- .../wizard/MetadataFilterTypeSelector.js | 8 +++---- .../wizard/MetadataProviderTypeSelector.js | 12 ++++++---- 8 files changed, 31 insertions(+), 15 deletions(-) create mode 100644 ui/public/unsecured/favicon-96x96.png create mode 100644 ui/public/unsecured/favicon.ico create mode 100644 ui/public/unsecured/shibboleth_icon_color_130x130.png diff --git a/backend/src/main/resources/i18n/messages.properties b/backend/src/main/resources/i18n/messages.properties index e25a7e5b9..88aea4835 100644 --- a/backend/src/main/resources/i18n/messages.properties +++ b/backend/src/main/resources/i18n/messages.properties @@ -409,6 +409,7 @@ label.remove-roleless-entity-descriptors=Remove Roleless Entity Descriptors? label.remove-empty-entities-descriptors=Remove Empty Entities Descriptors? label.select-metadata-provider-type=Select Metadata Provider Type +label.select-metadata-filter-type=Select Metadata Filter Type label.filter-list=Filter List label.common-attributes=Common Attributes label.reloading-attributes=Reloading Attributes diff --git a/ui/public/unsecured/error.html b/ui/public/unsecured/error.html index 4d200efa8..910a81b61 100644 --- a/ui/public/unsecured/error.html +++ b/ui/public/unsecured/error.html @@ -4,20 +4,31 @@ Shibboleth Metadata Management - - + +
-
- +
+
+ + + +
User request received

Your request has been received and is being reviewed. You will be notified with access status.

diff --git a/ui/public/unsecured/favicon-96x96.png b/ui/public/unsecured/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..e19516fff44f2ee7d0a432dc542424d98bf30aac GIT binary patch literal 12383 zcmZ{~1yEc~&^EfbyGw9)*97pQ8xYMu%gX@X|N9j6R;EJlptvaLxj}1%|0!}{2QdJEeL+!1Qrr92MZTB6 z(NcO`=x2U|%2 znb^E5-mww=a?`aP$Uk}dYJBp?ZRYn?A}f*7@6Vx@!+tG+{iXG8k9u4B4h_AYol?x@ zPimdO5~EARmv@eLlx?2LBMJ#V(u3pq($@BNlgo-1quWlTxrK!xJhhL5hts)DY-g^5 zN6s0upMtx(L?$K$@BXYioSd9=ZcIPt9=Ksp5ypPoAIEv=y&xAimUML7JaAgrVhe+% z!i~m`mqY5k+1%VbUu%g)KtmlL*FN9s51JcFN=vDzU=R@zAs(L!7=Te=X6EEPs;(?B z|M%wuA0Hofw9H$*pKPfHYzUx9_Z%QDb}5w6tM3v=O{+hsv6ono)A4z+d+qJ|v%} zNDHSf9mTpt){`|CHaFvEk1USoifw;YwlqDR0e73mC`#+=6S^8 zTwQtUzYFj*&o-OwQFL{)_x#p2RK+rOrooI1lc16iB8N`l@87?TY+>q5!Db_k>p!2u zSiML<@}Z|FiJkSEFPsi*as`U-B%KggTXuV@|3UI z0O&OIdVTrTKHjh

K)c3A>F?OpvMvV8kHdrLG60h|X6)*2y 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 CAw)L- literal 0 HcmV?d00001 diff --git a/ui/public/unsecured/shibboleth_icon_color_130x130.png b/ui/public/unsecured/shibboleth_icon_color_130x130.png new file mode 100644 index 0000000000000000000000000000000000000000..313df313ec23714f1b1724665d7b731864523f1b GIT binary patch literal 11665 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 be*p#nPjC|=r4$7j00000NkvXXu0mjfIC%Fk literal 0 HcmV?d00001 diff --git a/ui/src/app/metadata/new/NewProvider.js b/ui/src/app/metadata/new/NewProvider.js index 43a9ed715..13d0d1061 100644 --- a/ui/src/app/metadata/new/NewProvider.js +++ b/ui/src/app/metadata/new/NewProvider.js @@ -7,7 +7,7 @@ import { MetadataProviderTypeSelector } from '../wizard/MetadataProviderTypeSele export function NewProvider() { - const { data } = useMetadataProviderTypes({}, []); + const { data, loading } = useMetadataProviderTypes({}, []); return (

- + {(data, onRestart) => - - + + - + {types.map(t => )} diff --git a/ui/src/app/metadata/wizard/MetadataProviderTypeSelector.js b/ui/src/app/metadata/wizard/MetadataProviderTypeSelector.js index fbc890fb9..e53f06b13 100644 --- a/ui/src/app/metadata/wizard/MetadataProviderTypeSelector.js +++ b/ui/src/app/metadata/wizard/MetadataProviderTypeSelector.js @@ -1,5 +1,5 @@ import React from 'react'; -import { faArrowCircleRight, faSpinner } from '@fortawesome/free-solid-svg-icons'; +import { faArrowCircleRight, faAsterisk, faSpinner } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useForm } from 'react-hook-form'; @@ -10,11 +10,11 @@ import { InfoIcon } from '../../form/component/InfoIcon'; import { useTranslator } from '../../i18n/hooks'; import { useMetadataProviders } from '../hooks/api'; -export function MetadataProviderTypeSelector({ type, types = [], children}) { +export function MetadataProviderTypeSelector({ type, types = [], loading, children}) { const translator = useTranslator(); - const { data = [], loading } = useMetadataProviders({cachePolicy: 'no-cache'}, []); + const { data = [] } = useMetadataProviders({cachePolicy: 'no-cache'}, []); const [showSelector, setShowSelector] = React.useState(true); @@ -81,7 +81,10 @@ export function MetadataProviderTypeSelector({ type, types = [], children}) {
- + + + + + {loading && } From b6ba7ef2a91adcc506429187503489fb90eaec2d Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Wed, 13 Jul 2022 15:19:10 -0700 Subject: [PATCH 2/9] SHIBUI-944 Base copy off of JSON Schema --- ui/src/app/metadata/copy/CopySource.js | 17 +++------- .../source/definition/SourceDefinition.js | 32 +++++++++++++++++++ 2 files changed, 37 insertions(+), 12 deletions(-) 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 From 4388dfa2a01054fb5be51f16dd5f70af970d3a5e Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Fri, 15 Jul 2022 09:48:16 -0700 Subject: [PATCH 3/9] Added spinner to dashboard pages --- ui/src/app/core/components/Spinner.js | 9 +++++++++ ui/src/app/dashboard/view/ActionsTab.js | 11 ++++++++--- ui/src/app/dashboard/view/AdminTab.js | 5 ++++- ui/src/app/dashboard/view/Dashboard.js | 14 ++++++++++---- ui/src/app/dashboard/view/ProvidersTab.js | 7 +++++-- ui/src/app/dashboard/view/SourcesTab.js | 8 ++++++-- .../domain/provider/component/ProviderList.js | 3 ++- .../metadata/domain/source/component/SourceList.js | 3 ++- 8 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 ui/src/app/core/components/Spinner.js diff --git a/ui/src/app/core/components/Spinner.js b/ui/src/app/core/components/Spinner.js new file mode 100644 index 000000000..880f53d2a --- /dev/null +++ b/ui/src/app/core/components/Spinner.js @@ -0,0 +1,9 @@ +import React from 'react'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { faSpinner } from '@fortawesome/free-solid-svg-icons'; + +export function Spinner ({ size, className }) { + return () +} + +export default Spinner; \ No newline at end of file diff --git a/ui/src/app/dashboard/view/ActionsTab.js b/ui/src/app/dashboard/view/ActionsTab.js index 30bc9e371..eda40b751 100644 --- a/ui/src/app/dashboard/view/ActionsTab.js +++ b/ui/src/app/dashboard/view/ActionsTab.js @@ -1,11 +1,12 @@ import React from 'react'; import { MetadataActions } from '../../admin/container/MetadataActions'; import UserActions from '../../admin/container/UserActions'; +import Spinner from '../../core/components/Spinner'; import Translate from '../../i18n/components/translate'; import SourceList from '../../metadata/domain/source/component/SourceList'; -export function ActionsTab({ sources, users, reloadSources, reloadUsers }) { +export function ActionsTab({ sources, users, reloadSources, reloadUsers, loadingSources, loadingUsers }) { return ( <> @@ -21,7 +22,9 @@ export function ActionsTab({ sources, users, reloadSources, reloadUsers }) {
{(enable) => - enable(s, e, reloadSources)} /> + enable(s, e, reloadSources)}> + {loadingSources &&
} +
}
@@ -36,7 +39,9 @@ export function ActionsTab({ sources, users, reloadSources, reloadUsers }) {
- + + {loadingUsers &&
} +
diff --git a/ui/src/app/dashboard/view/AdminTab.js b/ui/src/app/dashboard/view/AdminTab.js index 5c116c242..ba71e0685 100644 --- a/ui/src/app/dashboard/view/AdminTab.js +++ b/ui/src/app/dashboard/view/AdminTab.js @@ -5,12 +5,13 @@ import UserMaintenance from '../../admin/component/UserMaintenance'; import API_BASE_PATH from '../../App.constant'; import Translate from '../../i18n/components/translate'; +import Spinner from '../../core/components/Spinner'; export function AdminTab () { const [users, setUsers] = React.useState([]); - const { get, response } = useFetch(`${API_BASE_PATH}/admin/users`, { + const { get, response, loading } = useFetch(`${API_BASE_PATH}/admin/users`, { cachePolicy: 'no-cache' }, []); @@ -46,7 +47,9 @@ export function AdminTab () { onChangeUserRole={onChangeUserRole} onDeleteUser={onDeleteUser} onChangeUserGroup={onChangeUserGroup} />} + + {loading &&
}
diff --git a/ui/src/app/dashboard/view/Dashboard.js b/ui/src/app/dashboard/view/Dashboard.js index e5f145572..49cba4079 100644 --- a/ui/src/app/dashboard/view/Dashboard.js +++ b/ui/src/app/dashboard/view/Dashboard.js @@ -26,13 +26,13 @@ export function Dashboard () { const isAdmin = useIsAdmin(); - const loading = useCurrentUserLoading(); + const loadingUser = useCurrentUserLoading(); const [actions, setActions] = React.useState(0); const [users, setUsers] = React.useState([]); const [sources, setSources] = React.useState([]); - const { get, response } = useFetch(`${API_BASE_PATH}`, { + const { get, response, loading } = useFetch(`${API_BASE_PATH}`, { cachePolicy: 'no-cache' }); @@ -64,7 +64,7 @@ export function Dashboard () { return (
- {loading ? + {loadingUser ?
@@ -109,7 +109,13 @@ export function Dashboard () { } /> - + } /> diff --git a/ui/src/app/dashboard/view/ProvidersTab.js b/ui/src/app/dashboard/view/ProvidersTab.js index 023a7f78a..d986f3f68 100644 --- a/ui/src/app/dashboard/view/ProvidersTab.js +++ b/ui/src/app/dashboard/view/ProvidersTab.js @@ -8,13 +8,14 @@ import { Ordered } from '../component/Ordered'; import { useIsAdmin } from '../../core/user/UserContext'; import Alert from 'react-bootstrap/Alert'; import { MetadataActions } from '../../admin/container/MetadataActions'; +import Spinner from '../../core/components/Spinner'; const searchProps = ['name', '@type', 'createdBy']; export function ProvidersTab () { const [providers, setProviders] = React.useState([]); - const { get, response } = useMetadataEntities('provider', { + const { get, response, loading } = useMetadataEntities('provider', { cachePolicy: 'no-cache' }); @@ -54,7 +55,9 @@ export function ProvidersTab () { last={last} onEnable={(p, e) => enable(p, e, loadProviders)} onOrderUp={onOrderUp} - onOrderDown={onOrderDown}> + onOrderDown={onOrderDown}> + {loading &&
} + } } diff --git a/ui/src/app/dashboard/view/SourcesTab.js b/ui/src/app/dashboard/view/SourcesTab.js index b564a3872..40ff4dd4f 100644 --- a/ui/src/app/dashboard/view/SourcesTab.js +++ b/ui/src/app/dashboard/view/SourcesTab.js @@ -5,9 +5,11 @@ import Translate from '../../i18n/components/translate'; import SourceList from '../../metadata/domain/source/component/SourceList'; import { useMetadataEntities, useMetadataEntity } from '../../metadata/hooks/api'; import { Search } from '../component/Search'; +import { Spinner } from '../../core/components/Spinner'; import { NotificationContext, createNotificationAction, NotificationTypes } from '../../notifications/hoc/Notifications'; + const searchProps = ['serviceProviderName', 'entityId', 'createdBy']; export function SourcesTab () { @@ -16,7 +18,7 @@ export function SourcesTab () { const [sources, setSources] = React.useState([]); - const { get, response } = useMetadataEntities('source', { + const { get, response, loading } = useMetadataEntities('source', { cachePolicy: 'no-cache' }); @@ -68,7 +70,9 @@ export function SourcesTab () { entities={searched} onDelete={(id) => remove(id, loadSources)} onEnable={(s, e) => enable(s, e, loadSources) } - onChangeGroup={changeSourceGroup} /> + onChangeGroup={changeSourceGroup}> + {loading &&
} + } } diff --git a/ui/src/app/metadata/domain/provider/component/ProviderList.js b/ui/src/app/metadata/domain/provider/component/ProviderList.js index 3e559eb2a..1b367a69d 100644 --- a/ui/src/app/metadata/domain/provider/component/ProviderList.js +++ b/ui/src/app/metadata/domain/provider/component/ProviderList.js @@ -12,7 +12,7 @@ import { Scroller } from '../../../../dashboard/component/Scroller'; import { useIsAdmin } from '../../../../core/user/UserContext'; import { useTranslator } from '../../../../i18n/hooks'; -export function ProviderList({ entities, reorder = true, first, last, onEnable, onOrderUp, onOrderDown }) { +export function ProviderList({ children, entities, reorder = true, first, last, onEnable, onOrderUp, onOrderDown }) { const isAdmin = useIsAdmin(); const translator = useTranslator(); @@ -91,6 +91,7 @@ export function ProviderList({ entities, reorder = true, first, last, onEnable, )} + {children}
} diff --git a/ui/src/app/metadata/domain/source/component/SourceList.js b/ui/src/app/metadata/domain/source/component/SourceList.js index 109396c2c..42af027dd 100644 --- a/ui/src/app/metadata/domain/source/component/SourceList.js +++ b/ui/src/app/metadata/domain/source/component/SourceList.js @@ -16,7 +16,7 @@ import { useTranslator } from '../../../../i18n/hooks'; import { useCanEnable, useIsAdmin } from '../../../../core/user/UserContext'; import { GroupsProvider } from '../../../../admin/hoc/GroupsProvider'; -export default function SourceList({ entities, onDelete, onEnable, onChangeGroup }) { +export default function SourceList({ entities, onDelete, onEnable, onChangeGroup, children }) { const translator = useTranslator(); const isAdmin = useIsAdmin(); @@ -122,6 +122,7 @@ export default function SourceList({ entities, onDelete, onEnable, onChangeGroup + {children} } From 6694ec4a7c12992228708752e920d004dc7698c7 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Fri, 15 Jul 2022 10:27:04 -0700 Subject: [PATCH 4/9] Added spinner to history pages --- .../app/metadata/hoc/MetadataVersionsLoader.js | 16 +++++++++++++--- ui/src/app/metadata/view/MetadataHistory.js | 6 ++---- ui/src/app/metadata/view/MetadataWizard.js | 2 ++ 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/ui/src/app/metadata/hoc/MetadataVersionsLoader.js b/ui/src/app/metadata/hoc/MetadataVersionsLoader.js index 025cea743..f552db8c4 100644 --- a/ui/src/app/metadata/hoc/MetadataVersionsLoader.js +++ b/ui/src/app/metadata/hoc/MetadataVersionsLoader.js @@ -4,12 +4,15 @@ import { getMetadataPath } from '../hooks/api'; import API_BASE_PATH from '../../App.constant'; import useFetch from 'use-http'; import { last } from 'lodash'; +import Spinner from '../../core/components/Spinner'; export function MetadataVersionsLoader ({versions, children}) { const ref = React.useRef({}); const [list, setList] = React.useState({}); + const [loading, setLoading] = React.useState(false); + const { type, id } = useParams(); const { get, response } = useFetch(`/${API_BASE_PATH}${getMetadataPath(type)}/${id}/Versions`, { @@ -22,6 +25,8 @@ export function MetadataVersionsLoader ({versions, children}) { addToList(v, l); if (last(versions) !== v) { loadNext(versions[versions.indexOf(v) + 1]); + } else { + setLoading(false); } } } @@ -36,14 +41,19 @@ export function MetadataVersionsLoader ({versions, children}) { function loadNext (v) { loadVersion(v); + } /*eslint-disable react-hooks/exhaustive-deps*/ React.useEffect(() => { loadNext(versions[0]); + setLoading(true); }, [versions]); - return ( - {children(versions.map(v => list[v]).filter(v => !!v))} - ); + return ( + + {children(versions.map(v => list[v]).filter(v => !!v))} + {loading &&
} +
+ ); } \ No newline at end of file diff --git a/ui/src/app/metadata/view/MetadataHistory.js b/ui/src/app/metadata/view/MetadataHistory.js index 719ce8dc3..6df6a7c2e 100644 --- a/ui/src/app/metadata/view/MetadataHistory.js +++ b/ui/src/app/metadata/view/MetadataHistory.js @@ -9,6 +9,7 @@ import Translate from '../../i18n/components/translate'; import { useMetadataHistory } from '../hooks/api'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faUndo } from '@fortawesome/free-solid-svg-icons'; +import Spinner from '../../core/components/Spinner'; const sortVersionsByDate = (versions) => { return versions.sort((a, b) => { @@ -107,16 +108,13 @@ export function MetadataHistory () { )} + {loading &&
} } - {loading &&
- - Loading... -
} ); } \ No newline at end of file diff --git a/ui/src/app/metadata/view/MetadataWizard.js b/ui/src/app/metadata/view/MetadataWizard.js index a95ca777c..8dc5a9d51 100644 --- a/ui/src/app/metadata/view/MetadataWizard.js +++ b/ui/src/app/metadata/view/MetadataWizard.js @@ -8,6 +8,7 @@ import { useMetadataEntity } from '../hooks/api'; import { createNotificationAction, NotificationTypes, useNotificationDispatcher } from '../../notifications/hoc/Notifications'; import { Prompt, useHistory } from 'react-router-dom'; import { useTranslator } from '../../i18n/hooks'; +import Spinner from '../../core/components/Spinner'; export function MetadataWizard ({type, data, onCallback}) { @@ -61,6 +62,7 @@ export function MetadataWizard ({type, data, onCallback}) { : } + {loading &&
} ); From e0f0074f8ccfc66f469b1d0c6f7ecf8982eebff5 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Wed, 27 Jul 2022 15:01:09 -0700 Subject: [PATCH 5/9] Updated spinners Former-commit-id: 0b6d9d6dd551433b898a514754ee9408a3eb2968 --- ui/src/app/metadata/hoc/MetadataSchema.js | 13 +++++++++++-- ui/src/app/metadata/hoc/MetadataVersionsLoader.js | 2 +- ui/src/app/metadata/view/MetadataWizard.js | 6 ++++-- .../app/metadata/wizard/MetadataProviderWizard.js | 6 +++++- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/ui/src/app/metadata/hoc/MetadataSchema.js b/ui/src/app/metadata/hoc/MetadataSchema.js index 025e7a415..d2d257623 100644 --- a/ui/src/app/metadata/hoc/MetadataSchema.js +++ b/ui/src/app/metadata/hoc/MetadataSchema.js @@ -9,6 +9,7 @@ export const MetadataDefinitionContext = React.createContext(); export function MetadataSchema({ type, children, wizard = false }) { const definition = React.useMemo(() => wizard ? getWizard(type) : getDefinition(type), [type, wizard]); + const [loading, setLoading] = React.useState(false); const { get, response } = useFetch(``, { cachePolicy: 'no-cache' @@ -21,18 +22,20 @@ export function MetadataSchema({ type, children, wizard = false }) { if (response.ok) { setSchema(source); } + setLoading(false); } /*eslint-disable react-hooks/exhaustive-deps*/ React.useEffect(() => { setSchema(null); loadSchema(definition); + setLoading(true); }, [definition]); return ( {type && definition && schema && - + {children} } @@ -41,7 +44,13 @@ export function MetadataSchema({ type, children, wizard = false }) { } export function useMetadataSchemaContext () { - return React.useContext(MetadataSchemaContext); + const {schema} = React.useContext(MetadataSchemaContext); + return schema; +} + +export function useMetadataSchemaLoading () { + const {loading} = React.useContext(MetadataSchemaContext); + return loading; } export function useMetadataDefinitionContext() { diff --git a/ui/src/app/metadata/hoc/MetadataVersionsLoader.js b/ui/src/app/metadata/hoc/MetadataVersionsLoader.js index f552db8c4..d957903d9 100644 --- a/ui/src/app/metadata/hoc/MetadataVersionsLoader.js +++ b/ui/src/app/metadata/hoc/MetadataVersionsLoader.js @@ -52,8 +52,8 @@ export function MetadataVersionsLoader ({versions, children}) { return ( - {children(versions.map(v => list[v]).filter(v => !!v))} {loading &&
} + {children(versions.map(v => list[v]).filter(v => !!v))}
); } \ No newline at end of file diff --git a/ui/src/app/metadata/view/MetadataWizard.js b/ui/src/app/metadata/view/MetadataWizard.js index 8dc5a9d51..d48cc4330 100644 --- a/ui/src/app/metadata/view/MetadataWizard.js +++ b/ui/src/app/metadata/view/MetadataWizard.js @@ -58,11 +58,13 @@ export function MetadataWizard ({type, data, onCallback}) { /> {type === 'source' ? - + + + {loading &&
} +
: } - {loading &&
}
); diff --git a/ui/src/app/metadata/wizard/MetadataProviderWizard.js b/ui/src/app/metadata/wizard/MetadataProviderWizard.js index 7193c0573..72df681fd 100644 --- a/ui/src/app/metadata/wizard/MetadataProviderWizard.js +++ b/ui/src/app/metadata/wizard/MetadataProviderWizard.js @@ -2,7 +2,7 @@ import React from 'react'; import { WizardNav } from './WizardNav'; import { MetadataWizardForm } from './MetadataWizardForm'; import { setWizardIndexAction, useCurrentIndex, useIsLastPage, useWizardDispatcher } from './Wizard'; -import { useMetadataDefinitionContext, useMetadataDefinitionValidator, useMetadataSchemaContext } from '../hoc/MetadataSchema'; +import { useMetadataDefinitionContext, useMetadataDefinitionValidator, useMetadataSchemaContext, useMetadataSchemaLoading } from '../hoc/MetadataSchema'; import { checkChanges, useMetadataSchema } from '../hooks/schema'; import { useMetadataFormDispatcher, setFormDataAction, setFormErrorAction, useMetadataFormData, useMetadataFormErrors } from '../hoc/MetadataFormContext'; import { MetadataConfiguration } from '../component/MetadataConfiguration'; @@ -12,6 +12,7 @@ import { useMetadataProviders } from '../hooks/api'; import { removeNull } from '../../core/utility/remove_null'; import { useUserGroup } from '../../core/user/UserContext'; +import Spinner from '../../core/components/Spinner'; export function MetadataProviderWizard({onSave, loading, block}) { @@ -20,6 +21,7 @@ export function MetadataProviderWizard({onSave, loading, block}) { const definition = useMetadataDefinitionContext(); const schema = useMetadataSchemaContext(); + const schemaLoading = useMetadataSchemaLoading(); const processed = useMetadataSchema(definition, schema); @@ -49,6 +51,7 @@ export function MetadataProviderWizard({onSave, loading, block}) { return ( <> +

+ {schemaLoading &&
}
Date: Thu, 28 Jul 2022 07:57:21 -0700 Subject: [PATCH 6/9] Fixed issue with configuration loading Former-commit-id: b2ab61a5066a7ce64a94e5619fc93bf4c74a6b3c --- ui/src/app/metadata/hoc/MetadataSchema.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/ui/src/app/metadata/hoc/MetadataSchema.js b/ui/src/app/metadata/hoc/MetadataSchema.js index d2d257623..ea14361d9 100644 --- a/ui/src/app/metadata/hoc/MetadataSchema.js +++ b/ui/src/app/metadata/hoc/MetadataSchema.js @@ -5,6 +5,7 @@ import { useTranslator } from '../../i18n/hooks'; export const MetadataSchemaContext = React.createContext(); export const MetadataDefinitionContext = React.createContext(); +export const MetadataSchemaLoading = React.createContext(); export function MetadataSchema({ type, children, wizard = false }) { @@ -35,8 +36,10 @@ export function MetadataSchema({ type, children, wizard = false }) { return ( {type && definition && schema && - - {children} + + + {children} + } @@ -44,13 +47,11 @@ export function MetadataSchema({ type, children, wizard = false }) { } export function useMetadataSchemaContext () { - const {schema} = React.useContext(MetadataSchemaContext); - return schema; + return React.useContext(MetadataSchemaContext); } export function useMetadataSchemaLoading () { - const {loading} = React.useContext(MetadataSchemaContext); - return loading; + return React.useContext(MetadataSchemaLoading); } export function useMetadataDefinitionContext() { From 34b46b7854c483d5c438f322e5e66caebdf05abd Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Thu, 28 Jul 2022 09:50:01 -0700 Subject: [PATCH 7/9] Fixed loading spinner Former-commit-id: 81760a5d89c563c4cbb2b979cbeaf6251fd77d80 --- ui/src/app/metadata/view/MetadataWizard.js | 6 +----- ui/src/app/metadata/wizard/MetadataSourceWizard.js | 5 ++++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/ui/src/app/metadata/view/MetadataWizard.js b/ui/src/app/metadata/view/MetadataWizard.js index d48cc4330..a95ca777c 100644 --- a/ui/src/app/metadata/view/MetadataWizard.js +++ b/ui/src/app/metadata/view/MetadataWizard.js @@ -8,7 +8,6 @@ import { useMetadataEntity } from '../hooks/api'; import { createNotificationAction, NotificationTypes, useNotificationDispatcher } from '../../notifications/hoc/Notifications'; import { Prompt, useHistory } from 'react-router-dom'; import { useTranslator } from '../../i18n/hooks'; -import Spinner from '../../core/components/Spinner'; export function MetadataWizard ({type, data, onCallback}) { @@ -58,10 +57,7 @@ export function MetadataWizard ({type, data, onCallback}) { /> {type === 'source' ? - - - {loading &&
} -
+ : } diff --git a/ui/src/app/metadata/wizard/MetadataSourceWizard.js b/ui/src/app/metadata/wizard/MetadataSourceWizard.js index 5dae8319a..b14c5c6d4 100644 --- a/ui/src/app/metadata/wizard/MetadataSourceWizard.js +++ b/ui/src/app/metadata/wizard/MetadataSourceWizard.js @@ -8,7 +8,7 @@ import Col from 'react-bootstrap/Col'; import { WizardNav } from './WizardNav'; import { MetadataWizardForm } from './MetadataWizardForm'; import { setWizardIndexAction, useCurrentIndex, useIsFirstPage, useIsLastPage, useWizardDispatcher } from './Wizard'; -import { useMetadataDefinitionContext, useMetadataSchemaContext, useMetadataDefinitionValidator } from '../hoc/MetadataSchema'; +import { useMetadataDefinitionContext, useMetadataSchemaContext, useMetadataDefinitionValidator, useMetadataSchemaLoading } from '../hoc/MetadataSchema'; import { useMetadataFormDispatcher, setFormDataAction, setFormErrorAction, useMetadataFormData, useMetadataFormErrors } from '../hoc/MetadataFormContext'; import { MetadataConfiguration } from '../component/MetadataConfiguration'; import { Configuration } from '../hoc/Configuration'; @@ -17,6 +17,7 @@ import { useMetadataSources } from '../hooks/api'; import Translate from '../../i18n/components/translate'; import { checkChanges } from '../hooks/utility'; import { useCurrentUserLoader, useUserGroup } from '../../core/user/UserContext'; +import Spinner from '../../core/components/Spinner'; export function MetadataSourceWizard ({ onShowNav, onSave, block, loading }) { @@ -24,6 +25,7 @@ export function MetadataSourceWizard ({ onShowNav, onSave, block, loading }) { const group = useUserGroup(); const userLoader = useCurrentUserLoader(); + const schemaLoading = useMetadataSchemaLoading(); /*eslint-disable react-hooks/exhaustive-deps*/ React.useEffect(() => { @@ -75,6 +77,7 @@ export function MetadataSourceWizard ({ onShowNav, onSave, block, loading }) {

+ {schemaLoading &&
} {warnings && warnings.hasOwnProperty(current) && From e9f1bd5ab8684c25d5c64a77ab08783503bb26c2 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Tue, 2 Aug 2022 14:59:52 -0700 Subject: [PATCH 8/9] Fixed issue with scrollbar on dashboard Former-commit-id: 8c5c29392d932da493211d12ba7ab96a2fed0182 --- .../domain/provider/component/ProviderList.js | 151 +++++++++--------- .../domain/source/component/SourceList.js | 9 +- 2 files changed, 83 insertions(+), 77 deletions(-) diff --git a/ui/src/app/metadata/domain/provider/component/ProviderList.js b/ui/src/app/metadata/domain/provider/component/ProviderList.js index 1b367a69d..9a9ac90d4 100644 --- a/ui/src/app/metadata/domain/provider/component/ProviderList.js +++ b/ui/src/app/metadata/domain/provider/component/ProviderList.js @@ -18,83 +18,86 @@ export function ProviderList({ children, entities, reorder = true, first, last, const translator = useTranslator(); return ( - - {(limited) =>
- - - - - - - - - - - - - {limited.map((provider, idx) => - - + + )} + +
OrderTitleProvider TypeAuthorCreated DateEnabled
-
- {reorder ? -
{idx + 1}
+ + + {(limited) =>
+ + + + + + + + + + + + + {limited.map((provider, idx) => + + + + + + + - - - - - - - )} - -
OrderTitleProvider TypeAuthorCreated DateEnabled
+
+ {reorder ? +
{idx + 1}
+ : +
+ } +   + + +
+
+ {provider.name} + { provider['@type'] }{ provider.createdBy } + + {onEnable && isAdmin ? + onEnable(provider, checked)} + checked={provider.enabled} + > + : -
+ + + } -   - - - -
- {provider.name} - { provider['@type'] }{ provider.createdBy } - - {onEnable && isAdmin ? - onEnable(provider, checked)} - checked={provider.enabled} - > - - : - - - - } - -
+ +
+
+ } +
{children} -
- } - + + ); } diff --git a/ui/src/app/metadata/domain/source/component/SourceList.js b/ui/src/app/metadata/domain/source/component/SourceList.js index 42af027dd..8e8a10825 100644 --- a/ui/src/app/metadata/domain/source/component/SourceList.js +++ b/ui/src/app/metadata/domain/source/component/SourceList.js @@ -23,7 +23,8 @@ export default function SourceList({ entities, onDelete, onEnable, onChangeGroup const canEnable = useCanEnable(); return ( - + + {(limited) =>
@@ -122,9 +123,11 @@ export default function SourceList({ entities, onDelete, onEnable, onChangeGroup
- {children}
} -
+
+ {children} + + ); } From 3c2cde47054ba06f2940cebd76af0f138b447d1c Mon Sep 17 00:00:00 2001 From: Bill Smith Date: Tue, 2 Aug 2022 19:15:09 -0400 Subject: [PATCH 9/9] SHIBUI-1978 Small test tweak for stability. Former-commit-id: 9f3792a8374ecd91862bdc12d97907adcb350f16 --- .../integration/resources/SHIBUI-1732-4.side | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/backend/src/integration/resources/SHIBUI-1732-4.side b/backend/src/integration/resources/SHIBUI-1732-4.side index 6aab66e67..214a49cbd 100644 --- a/backend/src/integration/resources/SHIBUI-1732-4.side +++ b/backend/src/integration/resources/SHIBUI-1732-4.side @@ -992,6 +992,13 @@ ["xpath=//div[3]/div/div/div[3]/button", "xpath:position"] ], "value": "" + }, { + "id": "14c486b1-bdff-4474-94e3-b4286303a8fd", + "comment": "", + "command": "pause", + "target": "5000", + "targets": [], + "value": "" }, { "id": "e3892564-1a1b-4ee6-bbab-49d3cb3079d7", "comment": "", @@ -999,21 +1006,21 @@ "target": "css=table > tbody > tr", "targets": [], "value": "" - },{ - "id": "4ec2c493-85e4-403b-9b09-031c5728f498", - "comment": "", - "command": "open", - "target": "/api/heheheheheheheWipeout", - "targets": [], - "value": "" - }, { - "id": "e074980a-8f21-4c22-8412-c4b6fcdcd1a4", - "comment": "", - "command": "assertText", - "target": "css=body", - "targets": [], - "value": "yes, you did it" - }] + }, { + "id": "4ec2c493-85e4-403b-9b09-031c5728f498", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "e074980a-8f21-4c22-8412-c4b6fcdcd1a4", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }] }], "suites": [{ "id": "575d414c-556d-45f7-b2f2-c9971ad51348",