feat: 🎸 Add first iteration for list credential store

First iteration adding credential store list crud operations
This commit is contained in:
Carlos Alcaide committed 2021-07-09 10:39:42 -07:00
1 parent cd10c30ca8
commit 986cde5941
10 files changed
+108

No files matched your search

+8
View File
@@ -456,6 +456,14 @@ export default function () {
return new Response(200);
});
// credential-stores
this.get(
'/credential-stores',
({ credentialStores }, { queryParams: { scope_id: scopeId } }) =>
credentialStores.where({ scopeId })
);
/* Uncomment the following line and the Response import above
* Then change the response code to simulate error responses.
* this.get('/scopes', () => new Response(505));
@@ -267,3 +267,7 @@ target:
add:
title: Add Host Sets
description: Select host sets to assign to this target.
credential-store:
title: Credential Store
title_plural: Credential Stores
description: A credential stores is a collection of credentials and credential libraries.
+1
View File
@@ -86,6 +86,7 @@ Router.map(function () {
});
});
});
this.route('credential-stores', function () {});
});
});
@@ -0,0 +1,12 @@
import Route from '@ember/routing/route';
export default class ScopesScopeCredentialStoresRoute extends Route {
/**
* Load all credential stores under current scope
* @returns {Promise[CredentialStoreModel]}
*/
async model() {
const { id: scope_id } = this.modelFor('scopes.scope');
return this.store.query('credential-store', { scope_id });
}
}
@@ -0,0 +1,3 @@
import Route from '@ember/routing/route';
export default class ScopesScopeCredentialStoresIndexRoute extends Route {}
+6
View File
@@ -83,6 +83,12 @@
<Rose::Icon @name='app-icons/host-catalogs' @size='medium' />
{{t 'resources.host-catalog.title_plural'}}
</nav.link>
{{#if (feature-flag 'credential-store')}}
<nav.link @route='scopes.scope.credential-stores'>
<Rose::Icon @name='app-icons/credential' @size='medium' />
{{t 'resources.credential-store.title_plural'}}
</nav.link>
{{/if}}
</Rose::Nav::Sidebar>
{{/if}}
@@ -0,0 +1,50 @@
<Rose::Layout::Page as |page|>
{{! <page.breadcrumbs>
<BreadCrumbs />
</page.breadcrumbs> }}
<page.header>
<h2>
{{t 'resources.credential-store.title_plural'}}
</h2>
{{t 'resources.credential-store.description'}}
</page.header>
{{!-- <page.actions>
{{#if @model}}
<Rose::LinkButton
@route='scopes.scope.credential-stores.new'
@style='primary'
>
{{t 'titles.new'}}
</Rose::LinkButton>
{{/if}}
</page.actions> --}}
<page.body>
{{#if @model}}
<Rose::Table as |table|>
<table.header as |header|>
<header.row as |row|>
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
</header.row>
</table.header>
<table.body as |body|>
{{#each @model as |credentialStore|}}
<body.row as |row|>
<row.headerCell>
{{credentialStore.displayName}}
<p>{{credentialStore.description}}</p>
</row.headerCell>
<row.cell>{{credentialStore.type}}</row.cell>
<row.cell>{{credentialStore.id}}</row.cell>
</body.row>
{{/each}}
</table.body>
</Rose::Table>
{{/if}}
</page.body>
</Rose::Layout::Page>
@@ -0,0 +1,2 @@
{{page-title 'Index'}}
{{outlet}}
@@ -0,0 +1,11 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Route | scopes/scope/credential-stores', function (hooks) {
setupTest(hooks);
test('it exists', function (assert) {
let route = this.owner.lookup('route:scopes/scope/credential-stores');
assert.ok(route);
});
});
@@ -0,0 +1,11 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Route | scopes/scope/credential-stores/index', function (hooks) {
setupTest(hooks);
test('it exists', function (assert) {
let route = this.owner.lookup('route:scopes/scope/credential-stores/index');
assert.ok(route);
});
});