Skip to content

Commit

Permalink
SHIBUI Fixed issues to accomodate multiple types of providers
Browse files Browse the repository at this point in the history
  • Loading branch information
rmathis committed Nov 5, 2018
1 parent 8f3e0e8 commit 47d65b3
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 14 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Component, OnDestroy } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { withLatestFrom, map, distinctUntilChanged, skipWhile } from 'rxjs/operators';
import { withLatestFrom, map, distinctUntilChanged, skipWhile, filter } from 'rxjs/operators';
import { Store } from '@ngrx/store';

import * as fromProvider from '../reducer';
Expand Down Expand Up @@ -42,7 +42,9 @@ export class ProviderWizardStepComponent implements OnDestroy {
constructor(
private store: Store<fromProvider.ProviderState>,
) {
this.schema$ = this.store.select(fromWizard.getParsedSchema);
this.schema$ = this.store.select(fromWizard.getSchema).pipe(
filter(s => s && Object.keys(s.properties).length > 0)
);
this.definition$ = this.store.select(fromWizard.getWizardDefinition);
this.changes$ = this.store.select(fromProvider.getEntityChanges);

Expand Down
9 changes: 0 additions & 9 deletions ui/src/app/metadata/provider/model/base.provider.form.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Wizard } from '../../../wizard/model';
import { BaseMetadataProvider } from '../../domain/model/providers';
import { UriValidator } from '../../../shared/validation/uri.validator';

export const BaseMetadataProviderEditor: Wizard<BaseMetadataProvider> = {
label: 'BaseMetadataProvider',
Expand Down Expand Up @@ -30,14 +29,6 @@ export const BaseMetadataProviderEditor: Wizard<BaseMetadataProvider> = {
params: [value]
} : null;
return err;
},
'/metadataURL': (value, property, form) => {
return !UriValidator.isUri(value) ? {
code: 'INVALID_URI',
path: `#${property.path}`,
message: 'message.uri-valid-format',
params: [value]
} : null;
}
};
return validators;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ describe('FileBackedHttpMetadataProviderWizard', () => {
expect(Object.keys(getValidators([]))).toEqual([
'/',
'/name',
'/metadataURL',
'/xmlId'
'/xmlId',
'/metadataURL'
]);
});
});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Wizard } from '../../../wizard/model';
import { FileBackedHttpMetadataProvider } from '../../domain/model/providers/file-backed-http-metadata-provider';
import { BaseMetadataProviderEditor } from './base.provider.form';
import UriValidator from '../../../shared/validation/uri.validator';

export const FileBackedHttpMetadataProviderWizard: Wizard<FileBackedHttpMetadataProvider> = {
...BaseMetadataProviderEditor,
Expand All @@ -17,6 +18,15 @@ export const FileBackedHttpMetadataProviderWizard: Wizard<FileBackedHttpMetadata
} : null;
return err;
};
validators['/metadataURL'] = (value, property, form) => {
return !UriValidator.isUri(value) ? {
code : 'INVALID_URI',
path: `#${property.path}`,
message: 'message.uri-valid-format',
params: [value]
} : null;
};

return validators;
},
steps: [
Expand Down
10 changes: 10 additions & 0 deletions ui/src/app/metadata/provider/model/provider.form.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,16 @@ export const MetadataProviderWizard: Wizard<MetadataProvider> = {
fields: [
'name',
'@type'
],
fieldsets: [
{
type: 'section',
class: ['col-12'],
fields: [
'name',
'@type'
]
}
]
}
] as WizardStep[]
Expand Down
5 changes: 4 additions & 1 deletion ui/src/app/wizard/reducer/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,15 @@ export const getSplitSchema = (schema: any, step: WizardStep) => {
const required = (schema.required || []).filter(val => keys.indexOf(val) > -1);
let s: any = {
type: schema.type,
definitions: schema.definitions,
properties: {
...keys.reduce( (properties, key) => ({ ...properties, [key]: schema.properties[key] }) , {})
}
};

if (schema.definitions) {
s.definitions = schema.definitions;
}

if (required && required.length) {
s.required = required;
}
Expand Down

0 comments on commit 47d65b3

Please sign in to comment.