From 8c20d2980619a556ccdfa43be89f082ffec1acbe Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Wed, 26 May 2021 15:28:41 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20add=20remove=20array=20i?= =?UTF-8?q?tem=20support=20to=20oidc=20form?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rose/addon/components/rose/form/index.hbs | 1 + .../rose/components/form/_fieldset.scss | 2 + .../app/components/form/auth-method/index.hbs | 1 + .../form/auth-method/oidc/index.hbs | 194 +++++++++++------- .../components/form/auth-method/oidc/index.js | 2 - .../app/routes/scopes/scope/auth-methods.js | 14 ++ ui/admin/app/styles/app.scss | 12 +- .../scope/auth-methods/auth-method/index.hbs | 1 + 8 files changed, 148 insertions(+), 79 deletions(-) diff --git a/addons/rose/addon/components/rose/form/index.hbs b/addons/rose/addon/components/rose/form/index.hbs index 80b027371..8c545ec22 100644 --- a/addons/rose/addon/components/rose/form/index.hbs +++ b/addons/rose/addon/components/rose/form/index.hbs @@ -30,5 +30,6 @@ cancel=this.handleCancel enableEdit=this.enableEdit ) + isEditable=this.isEditable )}} diff --git a/addons/rose/addon/styles/rose/components/form/_fieldset.scss b/addons/rose/addon/styles/rose/components/form/_fieldset.scss index 8696ad562..d0b35d2ea 100644 --- a/addons/rose/addon/styles/rose/components/form/_fieldset.scss +++ b/addons/rose/addon/styles/rose/components/form/_fieldset.scss @@ -2,6 +2,8 @@ @use '../../utilities/type'; .rose-form-fieldset { + margin-bottom: sizing.rems(m); + .rose-form-fieldset-title { @include type.type(l, bold); } diff --git a/ui/admin/app/components/form/auth-method/index.hbs b/ui/admin/app/components/form/auth-method/index.hbs index 478c2ea91..9ac27859f 100644 --- a/ui/admin/app/components/form/auth-method/index.hbs +++ b/ui/admin/app/components/form/auth-method/index.hbs @@ -4,5 +4,6 @@ model=@model submit=@submit cancel=@cancel + removeItemByIndex=@removeItemByIndex }} {{/if}} \ No newline at end of file diff --git a/ui/admin/app/components/form/auth-method/oidc/index.hbs b/ui/admin/app/components/form/auth-method/oidc/index.hbs index c7ac8ad4a..a0ababf3d 100644 --- a/ui/admin/app/components/form/auth-method/oidc/index.hbs +++ b/ui/admin/app/components/form/auth-method/oidc/index.hbs @@ -39,7 +39,6 @@ @label={{t 'form.description.label'}} @helperText={{t 'form.description.help'}} @error={{@model.errors.description}} - disabled={{@model.isSaving}} readonly={{false}} as |field| > @@ -124,7 +123,7 @@ <:title>{{t 'form.signing_algorithms.label'}} <:description>{{t 'form.signing_algorithms.help'}} <:body> - + {{t 'titles.value'}} @@ -140,16 +139,22 @@ @error={{@model.errors.attributes.signing_algorithms}} @contextual={{true}} @onChange={{fn (mut algorithm.value)}} - as |field|> + as |field| + > {{t 'form.algorithm.label'}} {{#each this.signingAlgorithms as |algorithm|}} - {{algorithm}} + {{algorithm}} {{/each}} {{#if @model.errors.attributes.signing_algorithms}} - {{#each @model.errors.attributes.signing_algorithms as |error|}} + {{#each + @model.errors.attributes.signing_algorithms + as |error| + }} {{error.message}} {{/each}} @@ -158,57 +163,14 @@ - {{t 'actions.remove'}} - - - - {{/each}} - - - - - - {{! Certificates }} - - <:title>{{t 'form.idp_ca_certs.label'}} - <:description>{{t 'form.idp_ca_certs.help'}} - <:body> - - - - {{t 'titles.value'}} - {{t 'titles.actions'}} - - - - {{#each @model.attributes.idp_ca_certs as |cert i|}} - - - - {{t 'form.certificate.label'}} - - {{#if @model.errors.attributes.idp_ca_certs}} - - {{#each @model.errors.attributes.idp_ca_certs as |error|}} - {{error.message}} - {{/each}} - - {{/if}} - - - - {{t 'actions.remove'}} @@ -225,7 +187,7 @@ <:title>{{t 'form.allowed_audiences.label'}} <:description>{{t 'form.allowed_audiences.help'}} <:body> - + {{t 'titles.value'}} @@ -241,12 +203,16 @@ @value={{audience.value}} @error={{@model.errors.attributes.allowed_audiences}} @contextual={{true}} - as |field|> + as |field| + > {{t 'form.claim.label'}} {{#if @model.errors.attributes.allowed_audiences}} - {{#each @model.errors.attributes.allowed_audiences as |error|}} + {{#each + @model.errors.attributes.allowed_audiences + as |error| + }} {{error.message}} {{/each}} @@ -255,9 +221,14 @@ {{t 'actions.remove'}} @@ -274,11 +245,11 @@ <:title>{{t 'form.claims_scopes.label'}} <:description>{{t 'form.claims_scopes.help'}} <:body> - + {{t 'titles.value'}} - + @@ -289,13 +260,17 @@ @type='text' @value={{claimsScope.value}} @error={{@model.errors.attributes.claims_scopes}} - - as |field|> + @contextual={{true}} + as |field| + > {{t 'form.claims_scope.label'}} {{#if @model.errors.attributes.claims_scopes}} - {{#each @model.errors.attributes.claims_scopes as |error|}} + {{#each + @model.errors.attributes.claims_scopes + as |error| + }} {{error.message}} {{/each}} @@ -304,9 +279,14 @@ {{t 'actions.remove'}} @@ -323,7 +303,7 @@ <:title>{{t 'form.account_claim_maps.label'}} <:description>{{t 'form.account_claim_maps.help'}} <:body> - + {{t 'form.from_claim.label'}} @@ -340,12 +320,16 @@ @value={{claimMap.from}} @error={{@model.errors.attributes.account_claim_maps}} @contextual={{true}} - as |field|> + as |field| + > {{t 'form.from_claim.label'}} {{#if @model.errors.attributes.account_claim_maps}} - {{#each @model.errors.attributes.account_claim_maps as |error|}} + {{#each + @model.errors.attributes.account_claim_maps + as |error| + }} {{error.message}} {{/each}} @@ -358,16 +342,22 @@ @error={{@model.errors.attributes.account_claim_maps}} @contextual={{true}} @onChange={{fn (mut claimMap.to)}} - as |field|> + as |field| + > {{t 'form.to_claim.label'}} {{#each this.toClaims as |toClaim|}} - {{toClaim}} + {{toClaim}} {{/each}} {{#if @model.errors.attributes.account_claim_maps}} - {{#each @model.errors.attributes.account_claim_maps as |error|}} + {{#each + @model.errors.attributes.account_claim_maps + as |error| + }} {{error.message}} {{/each}} @@ -376,9 +366,14 @@ {{t 'actions.remove'}} @@ -390,6 +385,61 @@ + {{! Certificates }} + + <:title>{{t 'form.idp_ca_certs.label'}} + <:description>{{t 'form.idp_ca_certs.help'}} + <:body> + + + + {{t 'titles.value'}} + {{t 'titles.actions'}} + + + + {{#each @model.attributes.idp_ca_certs as |cert i|}} + + + + {{t 'form.certificate.label'}} + + {{#if @model.errors.attributes.idp_ca_certs}} + + {{#each @model.errors.attributes.idp_ca_certs as |error|}} + {{error.message}} + {{/each}} + + {{/if}} + + + + + {{t 'actions.remove'}} + + + + {{/each}} + {{! Add field }} + + + + + - + \ No newline at end of file diff --git a/ui/admin/app/components/form/auth-method/oidc/index.js b/ui/admin/app/components/form/auth-method/oidc/index.js index 4e4ac6f8b..fd99fc353 100644 --- a/ui/admin/app/components/form/auth-method/oidc/index.js +++ b/ui/admin/app/components/form/auth-method/oidc/index.js @@ -2,7 +2,6 @@ import Component from '@glimmer/component'; import { options } from 'api/models/auth-method'; export default class FormAuthMethodOidcComponent extends Component { - // =attributes /** * @type {object} @@ -13,5 +12,4 @@ export default class FormAuthMethodOidcComponent extends Component { * @type {object} */ toClaims = options.oidc.account_claim_maps.to; - } diff --git a/ui/admin/app/routes/scopes/scope/auth-methods.js b/ui/admin/app/routes/scopes/scope/auth-methods.js index 291a9573d..d432f9b9d 100644 --- a/ui/admin/app/routes/scopes/scope/auth-methods.js +++ b/ui/admin/app/routes/scopes/scope/auth-methods.js @@ -134,4 +134,18 @@ export default class ScopesScopeAuthMethodsRoute extends Route { } await authMethod.reload(); } + + /** + * Removes an item from array `property` at `index` on the + * passed `authMethod`. This is used to manage entries in fragment array + * fields such as `signing_algorithms`. + * @param {AuthMethodModel} authMethod + * @param {string} property + * @param {number} index + */ + @action + async removeItemByIndex(authMethod, property, index) { + const array = authMethod.get(property); + array.removeAt(index); + } } diff --git a/ui/admin/app/styles/app.scss b/ui/admin/app/styles/app.scss index 420258319..9defaac7b 100644 --- a/ui/admin/app/styles/app.scss +++ b/ui/admin/app/styles/app.scss @@ -80,11 +80,13 @@ } } - fieldset { - margin-bottom: sizing.rems(m); - - legend { - @extend .rose-form-label; + .rose-form-fieldset { + .rose-table { + .rose-form-label { + position: absolute; + top: -9999px; + left: -9999px; + } } } } diff --git a/ui/admin/app/templates/scopes/scope/auth-methods/auth-method/index.hbs b/ui/admin/app/templates/scopes/scope/auth-methods/auth-method/index.hbs index b82869296..f610fc81e 100644 --- a/ui/admin/app/templates/scopes/scope/auth-methods/auth-method/index.hbs +++ b/ui/admin/app/templates/scopes/scope/auth-methods/auth-method/index.hbs @@ -2,4 +2,5 @@ @model={{@model}} @submit={{route-action 'save' @model}} @cancel={{route-action 'cancel' @model}} + @removeItemByIndex={{route-action 'removeItemByIndex' @model}} /> \ No newline at end of file