diff --git a/ui/src/app/admin/reducer/index.spec.ts b/ui/src/app/admin/reducer/index.spec.ts index f93b0557e..4b88e86e8 100644 --- a/ui/src/app/admin/reducer/index.spec.ts +++ b/ui/src/app/admin/reducer/index.spec.ts @@ -2,10 +2,6 @@ import * as fromIndex from './'; import { MetadataResolver } from '../../metadata/domain/model'; import { User } from '../../core/model/user'; -// export const totalUserFn = (users) => users.length; -// export const totalMetadataFn = (md) => md.filter(obj => !obj.serviceEnabled).length; -// export const totalActionsFn = (users, md) => md + users; - let resolvers: MetadataResolver[] = [ { id: '1', entityId: 'foo', serviceEnabled: true, serviceProviderName: 'bar', createdDate: 'Date' } as MetadataResolver, { id: '2', entityId: 'baz', serviceEnabled: false, serviceProviderName: 'fin', createdDate: 'Date' } as MetadataResolver @@ -14,17 +10,35 @@ let resolvers: MetadataResolver[] = [ let users: User[] = [ { username: 'foo', - role: 'admin', + role: 'ROLE_ADMIN', firstName: 'foo', lastName: 'bar', emailAddress: 'foo@bar.com' + }, + { + username: 'bar', + role: 'ROLE_NONE', + firstName: 'baz', + lastName: 'foo', + emailAddress: 'fooz@ball.com' } ]; describe('admin dashboard state selectors', () => { + describe('getConfiguredAdminsFn', () => { + it('should return all users without the `ROLE_NONE` role', () => { + expect(fromIndex.getConfiguredAdminsFn(users).length).toBe(1); + }); + }); + + describe('getNewUsersFn', () => { + it('should return all users with the `ROLE_NONE` role', () => { + expect(fromIndex.getNewUsersFn(users).length).toBe(1); + }); + }); describe('totalUserFn', () => { it('should get the length of the provided array', () => { - expect(fromIndex.totalUserFn(users)).toBe(1); + expect(fromIndex.totalUserFn(users)).toBe(2); }); }); describe('totalMetadataFn', () => { diff --git a/ui/src/app/admin/reducer/index.ts b/ui/src/app/admin/reducer/index.ts index 651870b76..76b7d5720 100644 --- a/ui/src/app/admin/reducer/index.ts +++ b/ui/src/app/admin/reducer/index.ts @@ -32,12 +32,15 @@ export const getCollectionSaving = createSelector(getAdminCollectionState, fromA export const getAdminEntities = createSelector(getAdminCollectionState, fromAdminCollection.selectAdminEntities); export const getSelectedAdminId = createSelector(getAdminCollectionState, fromAdminCollection.getSelectedAdminId); -export const getSelectedAdmin = createSelector(getAdminEntities, getSelectedAdminId, (entities, selectedId) => { - return selectedId && entities[selectedId]; -}); +export const getSelectedAdmin = createSelector(getAdminEntities, getSelectedAdminId, getInCollectionFn); export const getAdminIds = createSelector(getAdminCollectionState, fromAdminCollection.selectAdminIds); -export const getAllConfiguredAdmins = createSelector(getAllAdmins, (admins) => admins.filter(a => a.role !== 'ROLE_NONE')); -export const getAllNewUsers = createSelector(getAllAdmins, (admins) => admins.filter(a => a.role === 'ROLE_NONE')); + + +export const getConfiguredAdminsFn = (admins) => admins.filter(a => a.role !== 'ROLE_NONE'); +export const getAllConfiguredAdmins = createSelector(getAllAdmins, getConfiguredAdminsFn); + +export const getNewUsersFn = (admins) => admins.filter(a => a.role === 'ROLE_NONE'); +export const getAllNewUsers = createSelector(getAllAdmins, getNewUsersFn); /* * Select pieces of Metadata Collection diff --git a/ui/src/app/metadata/configuration/component/array-property.component.html b/ui/src/app/metadata/configuration/component/array-property.component.html index d51a8e0fb..baff50a8a 100644 --- a/ui/src/app/metadata/configuration/component/array-property.component.html +++ b/ui/src/app/metadata/configuration/component/array-property.component.html @@ -54,14 +54,16 @@
{{ property.name }} -

-

+

-

    -
  • +
  • {{ item }}
diff --git a/ui/src/app/metadata/configuration/component/object-property.component.html b/ui/src/app/metadata/configuration/component/object-property.component.html index e31da24ad..cf984071c 100644 --- a/ui/src/app/metadata/configuration/component/object-property.component.html +++ b/ui/src/app/metadata/configuration/component/object-property.component.html @@ -3,9 +3,10 @@ - + +
{{ prop.name | translate }}
+ +
{ +export const assignValueToProperties = (models, properties, definition: any): any[] => { return properties.map(prop => { switch (prop.type) { case 'object': return { ...prop, - properties: assignValueToProperties(models.map(model => model[prop.id] || {}), prop.properties) + properties: assignValueToProperties( + models.map(model => definition.formatter(model)[prop.id] || {}), + prop.properties, + definition + ) }; default: return { @@ -97,7 +101,7 @@ export const getConfigurationSectionsFn = (models, definition, schema): Metadata .map((section: any) => { return { ...section, - properties: assignValueToProperties(models, section.properties) + properties: assignValueToProperties(models, section.properties, definition) }; }) });