From 909719e72bcecd5e0c024ba96ba69e9b4b718652 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Fri, 29 Jun 2018 11:08:00 -0700 Subject: [PATCH] Implemented Common Attributes form --- ui/src/app/schema-form/registry.ts | 54 +++++++++++++++++-- ui/src/app/schema-form/schema-form.module.ts | 8 ++- .../boolean-radio.component.html | 11 +++- .../widget/select/select.component.html | 22 ++++++++ .../widget/select/select.component.ts | 9 ++++ .../widget/text/string.component.html | 15 ++++-- .../widget/text/string.component.scss | 0 .../widget/text/string.component.ts | 3 +- .../schema-form/widget/widget.component.scss | 7 +++ ui/src/app/shared/shared.module.ts | 3 +- .../filebacked-http-common.schema.json | 16 +++--- 11 files changed, 129 insertions(+), 19 deletions(-) create mode 100644 ui/src/app/schema-form/widget/select/select.component.html create mode 100644 ui/src/app/schema-form/widget/select/select.component.ts create mode 100644 ui/src/app/schema-form/widget/text/string.component.scss create mode 100644 ui/src/app/schema-form/widget/widget.component.scss diff --git a/ui/src/app/schema-form/registry.ts b/ui/src/app/schema-form/registry.ts index 202e6d14e..a3bc92856 100644 --- a/ui/src/app/schema-form/registry.ts +++ b/ui/src/app/schema-form/registry.ts @@ -1,14 +1,62 @@ -import { DefaultWidgetRegistry } from 'ngx-schema-form'; import { BooleanRadioComponent } from './widget/boolean-radio/boolean-radio.component'; import { FieldsetComponent } from './widget/fieldset/fieldset.component'; import { CustomStringComponent } from './widget/text/string.component'; -export class CustomWidgetRegistry extends DefaultWidgetRegistry { +import { WidgetRegistry } from 'ngx-schema-form'; + +import { ArrayWidget } from 'ngx-schema-form'; +import { ButtonWidget } from 'ngx-schema-form'; +import { CheckboxWidget } from 'ngx-schema-form'; +import { FileWidget } from 'ngx-schema-form'; +import { IntegerWidget } from 'ngx-schema-form'; +import { ObjectWidget } from 'ngx-schema-form'; +import { RadioWidget } from 'ngx-schema-form'; +import { RangeWidget } from 'ngx-schema-form'; +import { SelectWidget } from 'ngx-schema-form'; +import { StringWidget } from 'ngx-schema-form'; +import { TextAreaWidget } from 'ngx-schema-form'; +import { CustomSelectComponent } from './widget/select/select.component'; + + + +export class CustomWidgetRegistry extends WidgetRegistry { constructor() { super(); + /* Custom */ + this.register('string', CustomStringComponent); + this.register('search', CustomStringComponent); + this.register('tel', CustomStringComponent); + this.register('url', CustomStringComponent); + this.register('email', CustomStringComponent); + this.register('password', CustomStringComponent); + this.register('color', CustomStringComponent); + this.register('date', CustomStringComponent); + this.register('date-time', CustomStringComponent); + this.register('time', CustomStringComponent); + this.register('boolean-radio', BooleanRadioComponent); this.register('fieldset', FieldsetComponent); - this.register('custom-string', CustomStringComponent); + + this.register('select', CustomSelectComponent); + + /* NGX-Form */ + this.register('array', ArrayWidget); + this.register('object', ObjectWidget); + + this.register('integer', IntegerWidget); + this.register('number', IntegerWidget); + this.register('range', RangeWidget); + + this.register('textarea', TextAreaWidget); + + this.register('file', FileWidget); + this.register('radio', RadioWidget); + this.register('boolean', CheckboxWidget); + this.register('checkbox', CheckboxWidget); + + this.register('button', ButtonWidget); + + this.setDefaultWidget(CustomStringComponent); } } diff --git a/ui/src/app/schema-form/schema-form.module.ts b/ui/src/app/schema-form/schema-form.module.ts index bc143a661..4ea92397d 100644 --- a/ui/src/app/schema-form/schema-form.module.ts +++ b/ui/src/app/schema-form/schema-form.module.ts @@ -7,17 +7,23 @@ import { BooleanRadioComponent } from './widget/boolean-radio/boolean-radio.comp import { SchemaService } from './service/schema.service'; import { FieldsetComponent } from './widget/fieldset/fieldset.component'; import { CustomStringComponent } from './widget/text/string.component'; +import { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap'; +import { SharedModule } from '../shared/shared.module'; +import { CustomSelectComponent } from './widget/select/select.component'; export const COMPONENTS = [ BooleanRadioComponent, FieldsetComponent, - CustomStringComponent + CustomStringComponent, + CustomSelectComponent ]; @NgModule({ imports: [ CommonModule, ReactiveFormsModule, + NgbPopoverModule, + SharedModule, SchemaFormModule.forRoot() ], declarations: COMPONENTS, diff --git a/ui/src/app/schema-form/widget/boolean-radio/boolean-radio.component.html b/ui/src/app/schema-form/widget/boolean-radio/boolean-radio.component.html index a1ae8dad7..3d6070d92 100644 --- a/ui/src/app/schema-form/widget/boolean-radio/boolean-radio.component.html +++ b/ui/src/app/schema-form/widget/boolean-radio/boolean-radio.component.html @@ -1,5 +1,14 @@
- + {{ schema.description }}