From 1f3cf5394b0077539e62fccf8e9c98d9bfdddc15 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Tue, 24 Sep 2019 08:57:15 -0700 Subject: [PATCH] SHIBUI-1478 Updating schema --- ...dynamic-http-metadata-provider.schema.json | 35 +++++++--- .../file-system-metadata-provider.schema.json | 11 ++-- ...ocal-dynamic-metadata-provider.schema.json | 9 +-- .../model/dynamic-http.provider.form.ts | 8 +-- ui/src/app/schema-form/registry.ts | 2 + ui/src/app/schema-form/schema-form.module.ts | 2 + .../widget/number/float.component.html | 25 ++++++++ .../widget/number/float.component.ts | 21 ++++++ .../provider/filebacked-http.schema.json | 64 +++++++++++-------- 9 files changed, 128 insertions(+), 49 deletions(-) create mode 100644 ui/src/app/schema-form/widget/number/float.component.html create mode 100644 ui/src/app/schema-form/widget/number/float.component.ts diff --git a/backend/src/main/resources/dynamic-http-metadata-provider.schema.json b/backend/src/main/resources/dynamic-http-metadata-provider.schema.json index cc0696e87..a5898dbdb 100644 --- a/backend/src/main/resources/dynamic-http-metadata-provider.schema.json +++ b/backend/src/main/resources/dynamic-http-metadata-provider.schema.json @@ -149,12 +149,13 @@ "description": "tooltip.refresh-delay-factor", "type": "number", "widget": { - "id": "string", - "help": "message.real-number" + "id": "float", + "help": "message.real-number", + "step": 0.01 }, "placeholder": "label.real-number", - "default": "", - "pattern": "^(?:([0]*(\\.[0-9]+)?|[0]*\\.[0-9]*[1-9][0-9]*)|)$" + "minimum": 0.01, + "maximum": 1 }, "minCacheDuration": { "title": "label.min-cache-duration", @@ -579,14 +580,20 @@ "title": "", "description": "", "type": "array", - "properties": { - "RequiredValidUntil": { + "additionalItems": true, + "items": [ + { "title": "label.required-valid-until", "type": "object", "widget": { "id": "fieldset" }, "properties": { + "@type": { + "type": "string", + "default": "RequiredValidUntil", + "widget": "hidden" + }, "maxValidityInterval": { "title": "label.max-validity-interval", "description": "tooltip.max-validity-interval", @@ -611,13 +618,18 @@ } } }, - "SignatureValidation": { + { "title": "label.signature-validation-filter", "type": "object", "widget": { "id": "fieldset" }, "properties": { + "@type": { + "type": "string", + "default": "SignatureValidation", + "widget": "hidden" + }, "requireSignedRoot": { "title": "label.require-signed-root", "description": "tooltip.require-signed-root", @@ -654,13 +666,18 @@ } ] }, - "EntityRoleWhiteList": { + { "title": "label.entity-role-whitelist", "type": "object", "widget": { "id": "fieldset" }, "properties": { + "@type": { + "type": "string", + "default": "EntityRoleWhiteList", + "widget": "hidden" + }, "retainedRoles": { "title": "label.retained-roles", "description": "tooltip.retained-roles", @@ -700,7 +717,7 @@ } } } - } + ] } } } diff --git a/backend/src/main/resources/file-system-metadata-provider.schema.json b/backend/src/main/resources/file-system-metadata-provider.schema.json index af2f8af0a..834e602f2 100644 --- a/backend/src/main/resources/file-system-metadata-provider.schema.json +++ b/backend/src/main/resources/file-system-metadata-provider.schema.json @@ -128,14 +128,15 @@ "refreshDelayFactor": { "title": "label.refresh-delay-factor", "description": "tooltip.refresh-delay-factor", - "type": "string", + "type": "number", "widget": { - "id": "string", - "help": "message.real-number" + "id": "float", + "help": "message.real-number", + "step": 0.01 }, "placeholder": "label.real-number", - "default": "", - "pattern": "^(?:([0]*(\\.[0-9]+)?|[0]*\\.[0-9]*[1-9][0-9]*)|)$" + "minimum": 0.01, + "maximum": 1 } } } diff --git a/backend/src/main/resources/local-dynamic-metadata-provider.schema.json b/backend/src/main/resources/local-dynamic-metadata-provider.schema.json index 72d846023..d2b8a89da 100644 --- a/backend/src/main/resources/local-dynamic-metadata-provider.schema.json +++ b/backend/src/main/resources/local-dynamic-metadata-provider.schema.json @@ -63,12 +63,13 @@ "description": "tooltip.refresh-delay-factor", "type": "number", "widget": { - "id": "string", - "help": "message.real-number" + "id": "float", + "help": "message.real-number", + "step": 0.01 }, "placeholder": "label.real-number", - "default": "", - "pattern": "^(?:([0]*(\\.[0-9]+)?|[0]*\\.[0-9]*[1-9][0-9]*)|)$" + "minimum": 0.01, + "maximum": 1 }, "minCacheDuration": { "title": "label.min-cache-duration", diff --git a/ui/src/app/metadata/provider/model/dynamic-http.provider.form.ts b/ui/src/app/metadata/provider/model/dynamic-http.provider.form.ts index 9ef3bf2bb..80de5ab17 100644 --- a/ui/src/app/metadata/provider/model/dynamic-http.provider.form.ts +++ b/ui/src/app/metadata/provider/model/dynamic-http.provider.form.ts @@ -97,9 +97,7 @@ export const DynamicHttpMetadataProviderWizard: Wizard + + {{schema.description}} + + diff --git a/ui/src/app/schema-form/widget/number/float.component.ts b/ui/src/app/schema-form/widget/number/float.component.ts new file mode 100644 index 000000000..3278829ba --- /dev/null +++ b/ui/src/app/schema-form/widget/number/float.component.ts @@ -0,0 +1,21 @@ +import { + Component, +} from '@angular/core'; +import { IntegerWidget } from 'ngx-schema-form'; +import { SchemaService } from '../../service/schema.service'; + +@Component({ + selector: 'float-component', + templateUrl: `./float.component.html` +}) +export class CustomFloatComponent extends IntegerWidget { + constructor( + private widgetService: SchemaService + ) { + super(); + } + + get required(): boolean { + return this.widgetService.isRequired(this.formProperty); + } +} diff --git a/ui/src/assets/schema/provider/filebacked-http.schema.json b/ui/src/assets/schema/provider/filebacked-http.schema.json index 0422ffbd2..b093095a9 100644 --- a/ui/src/assets/schema/provider/filebacked-http.schema.json +++ b/ui/src/assets/schema/provider/filebacked-http.schema.json @@ -498,31 +498,36 @@ "refreshDelayFactor": { "title": "label.refresh-delay-factor", "description": "tooltip.refresh-delay-factor", - "type": "string", + "type": "number", "widget": { - "id": "string", - "help": "message.real-number" + "id": "float", + "help": "message.real-number", + "step": 0.01 }, "placeholder": "label.real-number", - "minimum": 0, - "maximum": 1, - "default": "", - "pattern": "^(?:([0]*(\\.[0-9]+)?|[0]*\\.[0-9]*[1-9][0-9]*)|)$" + "minimum": 0.01, + "maximum": 1 } } }, "metadataFilters": { "title": "", "description": "", - "type": "object", - "properties": { - "RequiredValidUntil": { + "type": "array", + "additionalItems": true, + "items": [ + { "title": "label.required-valid-until", "type": "object", "widget": { "id": "fieldset" }, "properties": { + "@type": { + "type": "string", + "default": "RequiredValidUntil", + "widget": "hidden" + }, "maxValidityInterval": { "title": "label.max-validity-interval", "description": "tooltip.max-validity-interval", @@ -532,10 +537,14 @@ "id": "datalist", "data": [ "PT0S", - "P14D", - "P7D", - "P1D", - "PT12H" + "PT30S", + "PT1M", + "PT10M", + "PT30M", + "PT1H", + "PT4H", + "PT12H", + "PT24H" ] }, "default": null, @@ -543,13 +552,18 @@ } } }, - "SignatureValidation": { + { "title": "label.signature-validation-filter", "type": "object", "widget": { "id": "fieldset" }, "properties": { + "@type": { + "type": "string", + "default": "SignatureValidation", + "widget": "hidden" + }, "requireSignedRoot": { "title": "label.require-signed-root", "description": "tooltip.require-signed-root", @@ -559,8 +573,7 @@ "certificateFile": { "title": "label.certificate-file", "description": "tooltip.certificate-file", - "type": "string", - "widget": "textline" + "type": "string" } }, "anyOf": [ @@ -570,10 +583,6 @@ "enum": [ true ] - }, - "certificateFile": { - "minLength": 1, - "type": "string" } }, "required": [ @@ -591,13 +600,18 @@ } ] }, - "EntityRoleWhiteList": { + { "title": "label.entity-role-whitelist", "type": "object", "widget": { "id": "fieldset" }, "properties": { + "@type": { + "type": "string", + "default": "EntityRoleWhiteList", + "widget": "hidden" + }, "retainedRoles": { "title": "label.retained-roles", "description": "tooltip.retained-roles", @@ -610,13 +624,13 @@ "oneOf": [ { "enum": [ - "md:SPSSODescriptor" + "SPSSODescriptor" ], "description": "value.spdescriptor" }, { "enum": [ - "md:AttributeAuthorityDescriptor" + "AttributeAuthorityDescriptor" ], "description": "value.attr-auth-descriptor" } @@ -637,7 +651,7 @@ } } } - } + ] } } } \ No newline at end of file