feat: 🎸 Host list in targets shows just type static

This commit is contained in:
Carlos Alcaide Corvo committed 2021-12-14 08:08:15 -08:00
1 parent 6c2694999c
commit c8b49beba6
3 files changed
+50 -29

No files matched your search

+7
View File
@@ -7,4 +7,11 @@ export default class HostModel extends GeneratedHostModel {
* @type {FragmentHostAttributesModel}
*/
@fragment('fragment-host-attributes', { defaultValue: {} }) attributes;
/**
* @type {boolean}
*/
get isStatic() {
return this.type === 'static';
}
}
+12
View File
@@ -5,12 +5,14 @@ module('Unit | Model | host', function (hooks) {
setupTest(hooks);
test('it exists', function (assert) {
assert.expect(1);
let store = this.owner.lookup('service:store');
let model = store.createRecord('host', {});
assert.ok(model);
});
test('it contains attributes', function (assert) {
assert.expect(1);
let store = this.owner.lookup('service:store');
let model = store.createRecord('host', {
type: 'static',
@@ -20,4 +22,14 @@ module('Unit | Model | host', function (hooks) {
});
assert.equal(model.attributes.address, '127.0.0.1');
});
test('it has isStatic function and returns the expected values', async function (assert) {
assert.expect(3);
const store = this.owner.lookup('service:store');
const modelA = store.createRecord('host', { type: 'static' });
const modelB = store.createRecord('host', { type: 'plugin' });
assert.equal(typeof modelA.isStatic, 'boolean');
assert.true(modelA.isStatic);
assert.false(modelB.isStatic);
});
});
@@ -5,35 +5,37 @@
<Rose::Table as |table|>
<table.body as |body|>
{{#each @model.hosts as |host|}}
<body.row as |row|>
<row.cell>
{{host.displayName}}
<p>{{host.description}}</p>
</row.cell>
<row.cell>
<Copyable
@text={{host.id}}
@buttonText={{t 'actions.copy-to-clipboard'}}
@acknowledgeText={{t 'states.copied'}}
>
<code>{{host.id}}</code>
</Copyable>
</row.cell>
<row.cell>{{host.attributes.address}}</row.cell>
<row.cell>
<Rose::Badge>{{t
(concat 'resources.host.types.' host.type)
}}</Rose::Badge>
</row.cell>
<row.cell>
<Rose::Button
@style='secondary'
{{on 'click' (route-action 'connect' @model.target host)}}
>
{{t 'resources.session.actions.connect'}}
</Rose::Button>
</row.cell>
</body.row>
{{#if host.isStatic}}
<body.row as |row|>
<row.cell>
{{host.displayName}}
<p>{{host.description}}</p>
</row.cell>
<row.cell>
<Copyable
@text={{host.id}}
@buttonText={{t 'actions.copy-to-clipboard'}}
@acknowledgeText={{t 'states.copied'}}
>
<code>{{host.id}}</code>
</Copyable>
</row.cell>
<row.cell>{{host.attributes.address}}</row.cell>
<row.cell>
<Rose::Badge>{{t
(concat 'resources.host.types.' host.type)
}}</Rose::Badge>
</row.cell>
<row.cell>
<Rose::Button
@style='secondary'
{{on 'click' (route-action 'connect' @model.target host)}}
>
{{t 'resources.session.actions.connect'}}
</Rose::Button>
</row.cell>
</body.row>
{{/if}}
{{/each}}
</table.body>
</Rose::Table>