diff --git a/addons/core/translations/resources/en-us.yaml b/addons/core/translations/resources/en-us.yaml
index 91e85111e..551479737 100644
--- a/addons/core/translations/resources/en-us.yaml
+++ b/addons/core/translations/resources/en-us.yaml
@@ -273,6 +273,9 @@ target:
welcome:
title: Welcome to Credential Libraries
description: No credential libraries in this target.
+ none:
+ title: No Credential Libraries Available
+ description: No credential libraries available to add to this target.
add:
title: Add Credential Libraries
description: Select credential libraries to assign to this target.
diff --git a/ui/admin/app/components/form/target/add-credential-libraries/index.hbs b/ui/admin/app/components/form/target/add-credential-libraries/index.hbs
index 1c76a5bdb..eb51f5129 100644
--- a/ui/admin/app/components/form/target/add-credential-libraries/index.hbs
+++ b/ui/admin/app/components/form/target/add-credential-libraries/index.hbs
@@ -1,36 +1,55 @@
-
-
+{{#if this.hasAvailableCredentialLibraries}}
+
+
-
-
-
- {{t 'form.id.label'}}
- {{t 'form.name.label'}}
-
-
-
- {{#each this.filteredCredentialLibraries as |credentialLibrary|}}
-
-
-
-
- {{credentialLibrary.name}}
-
- {{/each}}
-
-
-
\ No newline at end of file
+
+
+
+ {{t 'form.id.label'}}
+ {{t 'form.name.label'}}
+
+
+
+ {{#each this.filteredCredentialLibraries as |credentialLibrary|}}
+
+
+
+
+ {{credentialLibrary.name}}
+
+ {{/each}}
+
+
+
+{{/if}}
+
+{{#unless this.hasAvailableCredentialLibraries}}
+
+
+
+ {{t 'resources.target.credential-library.messages.none.description'}}
+
+
+
+ {{t 'actions.back'}}
+
+
+
+{{/unless}}
\ No newline at end of file
diff --git a/ui/admin/app/components/form/target/add-credential-libraries/index.js b/ui/admin/app/components/form/target/add-credential-libraries/index.js
index b8177dab0..21ce6250a 100644
--- a/ui/admin/app/components/form/target/add-credential-libraries/index.js
+++ b/ui/admin/app/components/form/target/add-credential-libraries/index.js
@@ -11,6 +11,16 @@ export default class FormTargetAddCredentialLibrariesIndexComponent extends Comp
*/
selectedCredentialLibraryIDs = A();
+ /**
+ * Checks for unassigned credential libraries.
+ * @param {[CredentialLibraryModel]} filteredCredentialLibraries
+ * @type {boolean}
+ */
+ @computed('filteredCredentialLibraries.length')
+ get hasAvailableCredentialLibraries() {
+ return this.filteredCredentialLibraries.length > 0;
+ }
+
/**
* Filter out credential libraries not already added to the target.
* @type {[CredentialLibraryModel]}
diff --git a/ui/admin/tests/integration/components/form/target/add-credential-libraries/index-test.js b/ui/admin/tests/integration/components/form/target/add-credential-libraries/index-test.js
deleted file mode 100644
index 867478cc8..000000000
--- a/ui/admin/tests/integration/components/form/target/add-credential-libraries/index-test.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import { module, test } from 'qunit';
-import { setupRenderingTest } from 'ember-qunit';
-import { render } from '@ember/test-helpers';
-import { hbs } from 'ember-cli-htmlbars';
-
-module(
- 'Integration | Component | form/target/add-credential-libraries/index',
- function (hooks) {
- setupRenderingTest(hooks);
-
- test('it renders', async function (assert) {
- // Set any properties with this.set('myProperty', 'value');
- // Handle any actions with this.set('myAction', function(val) { ... });
-
- await render(hbs``);
-
- assert.equal(this.element.textContent.trim(), '');
-
- // Template block usage:
- await render(hbs`
-
- template block text
-
- `);
-
- assert.equal(this.element.textContent.trim(), 'template block text');
- });
- }
-);