Skip to content

Commit

Permalink
Merged in feature/SHIBUI-1335 (pull request #348)
Browse files Browse the repository at this point in the history
SHIBUI-1335 Implemented provider configuration page

Approved-by: Ryan Mathis <rmathis@unicon.net>
  • Loading branch information
rmathis committed Aug 1, 2019
2 parents 7260618 + 10df36d commit 8620d6e
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 20 deletions.
26 changes: 20 additions & 6 deletions ui/src/app/admin/reducer/index.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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', () => {
Expand Down
13 changes: 8 additions & 5 deletions ui/src/app/admin/reducer/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,16 @@
<div class="d-flex align-items-center border-bottom border-light">
<span class="py-2" role="term" [translate]="property.name" [ngStyle]="{'width': width}">{{ property.name }}</span>
<ng-container *ngFor="let v of property.value">
<p [ngStyle]="{'width': width}" class="text-secondary" *ngIf="!v || !v.length">-</p>
<p [ngStyle]="{'width': width}" class="text-secondary m-0" *ngIf="!v || !v.length">-</p>
<ul [ngStyle]="{'width': width}"
class="list-unstyled py-2 m-0"
[ngbPopover]="popContent"
triggers="mouseenter:mouseleave"
popoverClass="popover-lg popover-info"
*ngIf="v && v.length > 0">
<li *ngFor="let item of v; odd as isOdd" class="text-truncate" [ngClass]="{'bg-light': isOdd, 'py-2': v.length > 1}">
<li *ngFor="let item of v; odd as isOdd; last as isLast"
class="text-truncate border-bottom border-light"
[ngClass]="{'py-2': v.length > 1, 'border-0': isLast}">
<ng-container *ngIf="preview.observers.length > 0 && isUrl(item)">
<button class="btn btn-link" (click)="preview.emit(item)">
<i class="fa fa-eye fa-lg text-success"></i>
Expand All @@ -72,7 +74,7 @@
</ul>
<ng-template #popContent>
<ul class="list-unstyled">
<li *ngFor="let item of v; odd as isOdd" [ngClass]="{'bg-light': isOdd}" class="p-2">
<li *ngFor="let item of v;" class="p-2 border-bottom border-light">
{{ item }}
</li>
</ul>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
<primitive-property *ngSwitchDefault [property]="prop" [columns]="columns"></primitive-property>
<array-property *ngSwitchCase="'array'" [property]="prop" [columns]="columns"></array-property>
<ng-container *ngSwitchCase="'object'">
<object-property *ngIf="!prop.widget || !prop.widget.id || prop.widget.id !=='filter-target'"
[property]="prop"
[columns]="columns"></object-property>
<ng-container *ngIf="!prop.widget || !prop.widget.id || prop.widget.id !=='filter-target'">
<h5 class="border-bottom py-2 mb-0 mt-3" *ngIf="prop.name">{{ prop.name | translate }}</h5>
<object-property [property]="prop" [columns]="columns"></object-property>
</ng-container>
<filter-target-property *ngIf="prop.widget && prop.widget.id && prop.widget.id ==='filter-target'"
[property]="prop"
[parent]="property"
Expand Down
10 changes: 7 additions & 3 deletions ui/src/app/metadata/configuration/reducer/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,17 @@ export const getConfigurationDefinition = createSelector(getConfigurationState,
export const getConfigurationSchema = createSelector(getConfigurationState, fromConfiguration.getSchema);
export const getConfigurationXml = createSelector(getConfigurationState, fromConfiguration.getXml);

export const assignValueToProperties = (models, properties): any[] => {
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 {
Expand Down Expand Up @@ -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)
};
})
});
Expand Down

0 comments on commit 8620d6e

Please sign in to comment.