From eea081e114ae5ea4b93610666d859f77f11e3b84 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Mon, 2 Jul 2018 17:31:46 +0000 Subject: [PATCH] Merged in feature/SHIBUI-581 (pull request #100) SHIBUI-581 Implemented reloading attributes form * SHIBUI-581 Adding autocomplete component * SHIBUI-581 Implemented reloading attributes form Approved-by: Shibui Jenkins --- ui/package-lock.json | 5 ++ ui/package.json | 1 + ui/src/app/schema-form/model/one-of.ts | 4 ++ ui/src/app/schema-form/registry.ts | 6 +-- ui/src/app/schema-form/schema-form.module.ts | 4 +- .../widget/datalist/datalist.component.html | 22 +++++++++ .../widget/datalist/datalist.component.ts | 10 ++++ .../widget/select/select.component.html | 3 +- .../autocomplete/autocomplete.component.html | 39 +++++++++------ .../autocomplete/autocomplete.component.scss | 9 ++++ .../autocomplete/autocomplete.component.ts | 5 +- .../filebacked-http-reloading.schema.json | 48 +++++++++++++++++-- ui/src/polyfills.ts | 2 + 13 files changed, 134 insertions(+), 24 deletions(-) create mode 100644 ui/src/app/schema-form/model/one-of.ts create mode 100644 ui/src/app/schema-form/widget/datalist/datalist.component.html create mode 100644 ui/src/app/schema-form/widget/datalist/datalist.component.ts diff --git a/ui/package-lock.json b/ui/package-lock.json index 0fd8aeb12..dfd4540e1 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -3398,6 +3398,11 @@ } } }, + "datalist-polyfill": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/datalist-polyfill/-/datalist-polyfill-1.16.1.tgz", + "integrity": "sha512-iBMIfb4UHq/lmxar//Lsavr0Kd6KUonZCl8VmcEFEAkIqButhi+ujPswxsw2Sd2ZKsey/MMFOX8ehQUKhks1fg==" + }, "date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", diff --git a/ui/package.json b/ui/package.json index c0199ee2d..6d2fe0bef 100644 --- a/ui/package.json +++ b/ui/package.json @@ -33,6 +33,7 @@ "@ngrx/store": "^5.2.0", "bootstrap": "4.1.1", "core-js": "^2.4.1", + "datalist-polyfill": "^1.16.1", "deep-object-diff": "^1.1.0", "file-saver": "^1.3.3", "font-awesome": "^4.7.0", diff --git a/ui/src/app/schema-form/model/one-of.ts b/ui/src/app/schema-form/model/one-of.ts new file mode 100644 index 000000000..7a33306e4 --- /dev/null +++ b/ui/src/app/schema-form/model/one-of.ts @@ -0,0 +1,4 @@ +export interface OneOf { + enum: string[]; + description: string; +} diff --git a/ui/src/app/schema-form/registry.ts b/ui/src/app/schema-form/registry.ts index a3bc92856..85e7d3a7d 100644 --- a/ui/src/app/schema-form/registry.ts +++ b/ui/src/app/schema-form/registry.ts @@ -12,11 +12,9 @@ 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'; - +import { DatalistComponent } from './widget/datalist/datalist.component'; export class CustomWidgetRegistry extends WidgetRegistry { @@ -40,6 +38,8 @@ export class CustomWidgetRegistry extends WidgetRegistry { this.register('select', CustomSelectComponent); + this.register('datalist', DatalistComponent); + /* NGX-Form */ this.register('array', ArrayWidget); this.register('object', ObjectWidget); diff --git a/ui/src/app/schema-form/schema-form.module.ts b/ui/src/app/schema-form/schema-form.module.ts index 4ea92397d..95549b7de 100644 --- a/ui/src/app/schema-form/schema-form.module.ts +++ b/ui/src/app/schema-form/schema-form.module.ts @@ -10,12 +10,14 @@ 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'; +import { DatalistComponent } from './widget/datalist/datalist.component'; export const COMPONENTS = [ BooleanRadioComponent, FieldsetComponent, CustomStringComponent, - CustomSelectComponent + CustomSelectComponent, + DatalistComponent ]; @NgModule({ diff --git a/ui/src/app/schema-form/widget/datalist/datalist.component.html b/ui/src/app/schema-form/widget/datalist/datalist.component.html new file mode 100644 index 000000000..9df975a27 --- /dev/null +++ b/ui/src/app/schema-form/widget/datalist/datalist.component.html @@ -0,0 +1,22 @@ +
+ + {{ schema.description }} + + +
\ No newline at end of file diff --git a/ui/src/app/schema-form/widget/datalist/datalist.component.ts b/ui/src/app/schema-form/widget/datalist/datalist.component.ts new file mode 100644 index 000000000..ca5d8ba58 --- /dev/null +++ b/ui/src/app/schema-form/widget/datalist/datalist.component.ts @@ -0,0 +1,10 @@ +import { Component, OnChanges } from '@angular/core'; + +import { ControlWidget } from 'ngx-schema-form'; +import { OneOf } from '../../model/one-of'; + +@Component({ + selector: 'datalist-component', + templateUrl: `./datalist.component.html` +}) +export class DatalistComponent extends ControlWidget {} diff --git a/ui/src/app/schema-form/widget/select/select.component.html b/ui/src/app/schema-form/widget/select/select.component.html index a29321e7a..831a7e852 100644 --- a/ui/src/app/schema-form/widget/select/select.component.html +++ b/ui/src/app/schema-form/widget/select/select.component.html @@ -12,7 +12,8 @@ {{ schema.description }} - + +
+ +
+ +
+