From 060f995f940ff7b337857682684c19b70d78db13 Mon Sep 17 00:00:00 2001 From: Devon Anderson Date: Wed, 28 Feb 2024 12:21:37 -0500 Subject: [PATCH] =?UTF-8?q?chore:=20=F0=9F=A4=96=20Migrate=20`form.input`?= =?UTF-8?q?=20to=20`Hds::TextInput::Field`=20(#2143)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: 🤖 Migrate `form.input` to `Hds::TextInput::Field` Migrate `form/credential` forms for for `json`, `ssh_private_key`, `username_password`, and `form/credential-store` forms for `static` and `vault` to use `Hds::TextInput::Field` instead of `form.input`. ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12461 * refactor: 💡 fix broken test fix broken test ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12461 * refactor: 💡 fix broken test fix broken test ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12461 * refactor: 💡 added `@hasVisibilityToggle` back and clean up test Added `@hasVisibilityToggle` back and clean up test by use `data-test-*` attributes for error messaging ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12461 * refactor: 💡 set `@hasVisiblityToggle` to default set `@hasVisiblityToggle` to default ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12461 * refactor: 💡 field argument clean up field argument cleanup ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12461 * refactor: 💡 switch `disabled` argument to `readonly` switch `disabled` argument to `readonly` ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12461 * refactor: 💡 clean up attribute order clean up field attribute order ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12461 --- addons/core/translations/resources/en-us.yaml | 1 - .../form/credential-store/static/index.hbs | 31 +-- .../form/credential-store/vault/index.hbs | 217 ++++++++++-------- .../components/form/credential/json/index.hbs | 29 ++- .../form/credential/ssh_private_key/index.hbs | 88 ++++--- .../credential/username_password/index.hbs | 89 ++++--- .../credential-store/create-test.js | 2 +- .../credentials/create-test.js | 4 +- .../credentials/update-test.js | 6 +- .../credential-store/update-test.js | 4 +- 10 files changed, 266 insertions(+), 205 deletions(-) diff --git a/addons/core/translations/resources/en-us.yaml b/addons/core/translations/resources/en-us.yaml index f582e5af4..e8b0e2932 100644 --- a/addons/core/translations/resources/en-us.yaml +++ b/addons/core/translations/resources/en-us.yaml @@ -853,7 +853,6 @@ credential: help: The private key to use when connecting with this credential store. private_key_passphrase: label: Passphrase - help: Optional. json: label: JSON help: This is the JSON blob that provides credentials to the host. After this data is saved, you will not be able to edit it again without replacing it. diff --git a/ui/admin/app/components/form/credential-store/static/index.hbs b/ui/admin/app/components/form/credential-store/static/index.hbs index f583a8994..108bb6d3d 100644 --- a/ui/admin/app/components/form/credential-store/static/index.hbs +++ b/ui/admin/app/components/form/credential-store/static/index.hbs @@ -10,30 +10,33 @@ @showEditToggle={{if @model.isNew false true}} as |form| > - + {{t 'form.name.label'}} + {{t 'form.name.help'}} {{#if @model.errors.name}} - + {{#each @model.errors.name as |error|}} - {{error.message}} + + {{error.message}} + {{/each}} - + {{/if}} - + diff --git a/ui/admin/app/components/form/credential-store/vault/index.hbs b/ui/admin/app/components/form/credential-store/vault/index.hbs index dab9de53a..a436ce8a5 100644 --- a/ui/admin/app/components/form/credential-store/vault/index.hbs +++ b/ui/admin/app/components/form/credential-store/vault/index.hbs @@ -11,30 +11,33 @@ as |form| > - + {{t 'form.name.label'}} + {{t 'form.name.help'}} {{#if @model.errors.name}} - + {{#each @model.errors.name as |error|}} - {{error.message}} + + {{error.message}} + {{/each}} - + {{/if}} - + @@ -76,6 +79,7 @@ {{t 'form.type.label'}} @@ -85,119 +89,135 @@ {{/if}} {{/if}} - + {{t 'resources.credential-store.form.address.label'}} + + {{t 'resources.credential-store.form.address.help'}} + {{#if @model.errors.address}} - + {{#each @model.errors.address as |error|}} - {{error.message}} + {{error.message}} {{/each}} - + {{/if}} - + + {{#if (feature-flag 'vault-worker-filter')}} - + + {{t 'resources.credential-store.form.worker_filter.label'}} + + + {{t 'resources.credential-store.form.worker_filter.help'}} + + {{t 'actions.learn-more'}} + + {{#if @model.errors.worker_filter}} - + {{#each @model.errors.worker_filter as |error|}} - {{error.message}} + {{error.message}} {{/each}} - + {{/if}} - + {{/if}} {{#if (or @model.isNew form.isEditable)}} - + {{t 'resources.credential-store.form.token.label'}} + + {{t 'resources.credential-store.form.token.help'}} + {{#if @model.errors.token}} - + {{#each @model.errors.token as |error|}} - {{error.message}} + {{error.message}} {{/each}} - + {{/if}} - + {{/if}} {{#unless @model.isNew}} - + disabled={{true}} + as |F| + > + + {{t 'resources.credential-store.form.token_hmac.label'}} + + {{/unless}} - - + {{t 'resources.credential-store.form.namespace.label'}} + + {{t 'resources.credential-store.form.namespace.help'}} + {{#if @model.errors.namespace}} - + {{#each @model.errors.namespace as |error|}} - {{error.message}} + {{error.message}} {{/each}} - + {{/if}} - + - + + {{t 'resources.credential-store.form.tls_server_name.label'}} + + + {{t 'resources.credential-store.form.tls_server_name.help'}} + {{#if @model.errors.tls_server_name}} - + {{#each @model.errors.tls_server_name as |error|}} - {{error.message}} + {{error.message}} {{/each}} - + {{/if}} - + @@ -248,10 +268,10 @@ @@ -271,21 +291,24 @@ {{#unless @model.isNew}} - + disabled={{true}} + as |F| + > + + {{t + 'resources.credential-store.form.client_certificate_key_hmac.label' + }} + + {{/unless}} diff --git a/ui/admin/app/components/form/credential/json/index.hbs b/ui/admin/app/components/form/credential/json/index.hbs index 5e8389919..06b99f5fc 100644 --- a/ui/admin/app/components/form/credential/json/index.hbs +++ b/ui/admin/app/components/form/credential/json/index.hbs @@ -11,28 +11,33 @@ as |form| > - + {{t 'form.name.label'}} + {{t 'form.name.help'}} {{#if @model.errors.name}} - + {{#each @model.errors.name as |error|}} - {{error.message}} + + {{error.message}} + {{/each}} - + {{/if}} - + diff --git a/ui/admin/app/components/form/credential/ssh_private_key/index.hbs b/ui/admin/app/components/form/credential/ssh_private_key/index.hbs index 31fe07ab8..c4541d38a 100644 --- a/ui/admin/app/components/form/credential/ssh_private_key/index.hbs +++ b/ui/admin/app/components/form/credential/ssh_private_key/index.hbs @@ -11,28 +11,33 @@ as |form| > - + {{t 'form.name.label'}} + {{t 'form.name.help'}} {{#if @model.errors.name}} - + {{#each @model.errors.name as |error|}} - {{error.message}} + + {{error.message}} + {{/each}} - + {{/if}} - + @@ -71,6 +76,7 @@ {{else}} {{t 'form.type.label'}} @@ -79,29 +85,33 @@ {{/if}} - + {{t 'resources.credential.form.username.label'}} + {{t 'resources.credential.form.username.help'}} {{#if @model.errors.username}} - + {{#each @model.errors.username as |error|}} - {{error.message}} + + {{error.message}} + {{/each}} - + {{/if}} - + {{#if (or @model.isNew form.isEditable)}} @@ -112,30 +122,36 @@ {{#if @model.errors.private_key}} {{#each @model.errors.private_key as |error|}} - {{error.message}} + + {{error.message}} + {{/each}} {{/if}} - + + {{t 'resources.credential.form.private_key_passphrase.label'}} + {{#if @model.errors.private_key_passphrase}} - + {{#each @model.errors.private_key_passphrase as |error|}} - {{error.message}} + {{error.message}} {{/each}} - + {{/if}} - + {{/if}} {{#if (can 'save model' @model)}} diff --git a/ui/admin/app/components/form/credential/username_password/index.hbs b/ui/admin/app/components/form/credential/username_password/index.hbs index fd70790d9..30ee913f1 100644 --- a/ui/admin/app/components/form/credential/username_password/index.hbs +++ b/ui/admin/app/components/form/credential/username_password/index.hbs @@ -11,27 +11,33 @@ as |form| > - - {{#if @model.errors.name}} - - {{#each @model.errors.name as |error|}} - {{error.message}} - {{/each}} - - {{/if}} - - + {{t 'form.name.label'}} + {{t 'form.name.help'}} + {{#if @model.errors.name}} + + {{#each @model.errors.name as |error|}} + + {{error.message}} + + {{/each}} + + {{/if}} + + + @@ -70,6 +76,7 @@ {{else}} {{t 'form.type.label'}} @@ -78,42 +85,50 @@ {{/if}} - + {{t 'resources.credential.form.username.label'}} + {{t 'resources.credential.form.username.help'}} {{#if @model.errors.username}} - + {{#each @model.errors.username as |error|}} - {{error.message}} + {{error.message}} {{/each}} - + {{/if}} - + {{#if (or @model.isNew form.isEditable)}} - + {{t 'resources.credential.form.password.label'}} + {{t + 'resources.credential.form.password.help' + }} {{#if @model.errors.password}} - + {{#each @model.errors.password as |error|}} - {{error.message}} + + {{error.message}} + {{/each}} - + {{/if}} - + {{/if}} {{#if (can 'save model' @model)}} diff --git a/ui/admin/tests/acceptance/credential-store/create-test.js b/ui/admin/tests/acceptance/credential-store/create-test.js index af805a791..5fe0d7eb8 100644 --- a/ui/admin/tests/acceptance/credential-store/create-test.js +++ b/ui/admin/tests/acceptance/credential-store/create-test.js @@ -134,7 +134,7 @@ module('Acceptance | credential-stores | create', function (hooks) { 'The request was invalid.', ); assert.ok( - find('.rose-form-error-message').textContent.trim(), + find('[data-test-error-message-name]').textContent.trim(), 'Name is required.', ); }); diff --git a/ui/admin/tests/acceptance/credential-store/credentials/create-test.js b/ui/admin/tests/acceptance/credential-store/credentials/create-test.js index cf1e39453..d346db2bc 100644 --- a/ui/admin/tests/acceptance/credential-store/credentials/create-test.js +++ b/ui/admin/tests/acceptance/credential-store/credentials/create-test.js @@ -235,7 +235,7 @@ module( .dom('.rose-notification-body') .hasText('Error in provided request.'); assert - .dom('.rose-form-error-message') + .dom('[data-test-error-message-password]') .hasText('Field required for creating a username-password credential.'); }); @@ -270,7 +270,7 @@ module( .dom('.rose-notification-body') .hasText('Error in provided request.'); assert - .dom('.hds-form-error__message') + .dom('[data-test-error-message-private-key]') .hasText('Field required for creating a username-key-pair credential.'); }); diff --git a/ui/admin/tests/acceptance/credential-store/credentials/update-test.js b/ui/admin/tests/acceptance/credential-store/credentials/update-test.js index d09f59fec..d4869e4e3 100644 --- a/ui/admin/tests/acceptance/credential-store/credentials/update-test.js +++ b/ui/admin/tests/acceptance/credential-store/credentials/update-test.js @@ -232,7 +232,7 @@ module( 'Error in provided request.', ); assert.ok( - find('.rose-form-error-message').textContent.trim(), + find('[data-test-error-message-name]').textContent.trim(), 'Name is required.', ); }); @@ -267,7 +267,7 @@ module( 'Error in provided request.', ); assert.ok( - find('.rose-form-error-message').textContent.trim(), + find('[data-test-error-message-name]').textContent.trim(), 'Name is required.', ); }); @@ -302,7 +302,7 @@ module( 'Error in provided request.', ); assert.ok( - find('.rose-form-error-message').textContent.trim(), + find('[data-test-error-message-name]').textContent.trim(), 'Name is required.', ); }); diff --git a/ui/admin/tests/acceptance/credential-store/update-test.js b/ui/admin/tests/acceptance/credential-store/update-test.js index f6f8c7768..75200f169 100644 --- a/ui/admin/tests/acceptance/credential-store/update-test.js +++ b/ui/admin/tests/acceptance/credential-store/update-test.js @@ -159,7 +159,7 @@ module('Acceptance | credential-stores | update', function (hooks) { 'The request was invalid.', ); assert.ok( - find('.rose-form-error-message').textContent.trim(), + find('[data-test-error-message-name]').textContent.trim(), 'Name is required.', ); }); @@ -193,7 +193,7 @@ module('Acceptance | credential-stores | update', function (hooks) { 'The request was invalid.', ); assert.ok( - find('.rose-form-error-message').textContent.trim(), + find('[data-test-error-message-name]').textContent.trim(), 'Name is required.', ); });