diff --git a/ui/app/controllers/servers.js b/ui/app/controllers/servers.js index b82e2bf58..aa0b590ba 100644 --- a/ui/app/controllers/servers.js +++ b/ui/app/controllers/servers.js @@ -1,31 +1,5 @@ -import { alias } from '@ember/object/computed'; import Controller from '@ember/controller'; -import Sortable from 'nomad-ui/mixins/sortable'; - -export default class ServersController extends Controller.extend(Sortable) { - @alias('model.nodes') nodes; - @alias('model.agents') agents; - - queryParams = [ - { - currentPage: 'page', - }, - { - sortProperty: 'sort', - }, - { - sortDescending: 'desc', - }, - ]; - - currentPage = 1; - pageSize = 8; - - sortProperty = 'isLeader'; - sortDescending = true; +export default class ServersController extends Controller { isForbidden = false; - - @alias('agents') listToSort; - @alias('listSorted') sortedAgents; } diff --git a/ui/app/controllers/servers/index.js b/ui/app/controllers/servers/index.js index 67d427df7..76661bdb0 100644 --- a/ui/app/controllers/servers/index.js +++ b/ui/app/controllers/servers/index.js @@ -1,7 +1,32 @@ import { alias } from '@ember/object/computed'; import Controller, { inject as controller } from '@ember/controller'; +import Sortable from 'nomad-ui/mixins/sortable'; -export default class IndexController extends Controller { +export default class IndexController extends Controller.extend(Sortable) { @controller('servers') serversController; @alias('serversController.isForbidden') isForbidden; + + @alias('model.nodes') nodes; + @alias('model.agents') agents; + + queryParams = [ + { + currentPage: 'page', + }, + { + sortProperty: 'sort', + }, + { + sortDescending: 'desc', + }, + ]; + + currentPage = 1; + pageSize = 8; + + sortProperty = 'isLeader'; + sortDescending = true; + + @alias('agents') listToSort; + @alias('listSorted') sortedAgents; } diff --git a/ui/app/routes/servers/server.js b/ui/app/routes/servers/server.js index ab399d639..9fbe06fb4 100644 --- a/ui/app/routes/servers/server.js +++ b/ui/app/routes/servers/server.js @@ -1,4 +1,14 @@ import Route from '@ember/routing/route'; import WithModelErrorHandling from 'nomad-ui/mixins/with-model-error-handling'; -export default class ServerRoute extends Route.extend(WithModelErrorHandling) {} +export default class ServerRoute extends Route.extend(WithModelErrorHandling) { + breadcrumbs(model) { + if (!model) return []; + return [ + { + label: model.name, + args: ['servers.server', model.id], + }, + ]; + } +} diff --git a/ui/app/templates/servers.hbs b/ui/app/templates/servers.hbs index b70edcd30..197c6c10d 100644 --- a/ui/app/templates/servers.hbs +++ b/ui/app/templates/servers.hbs @@ -1,41 +1,3 @@ -
- {{#if isForbidden}} - {{partial "partials/forbidden-message"}} - {{else}} - - - - Name - Status - Leader - Address - port - Datacenter - - - - - -
- -
-
- {{outlet}} - {{/if}} -
+ {{outlet}}
diff --git a/ui/app/templates/servers/index.hbs b/ui/app/templates/servers/index.hbs index e39562459..12211c8b0 100644 --- a/ui/app/templates/servers/index.hbs +++ b/ui/app/templates/servers/index.hbs @@ -1 +1,39 @@ -{{title "Servers"}} \ No newline at end of file +{{title "Servers"}} +
+ {{#if isForbidden}} + {{partial "partials/forbidden-message"}} + {{else}} + + + + Name + Status + Leader + Address + port + Datacenter + + + + + +
+ +
+
+ {{/if}} +
diff --git a/ui/app/templates/servers/server.hbs b/ui/app/templates/servers/server.hbs index bdc47a22b..a8d56bd7a 100644 --- a/ui/app/templates/servers/server.hbs +++ b/ui/app/templates/servers/server.hbs @@ -1,26 +1,28 @@ {{title "Server " model.name}} -
-
-
-
- Tags -
- - - - - - - - - {{#each sortedTags as |tag|}} - - - +
+
+
+
+
+ Tags +
+
NameValue
{{tag.name}}{{tag.value}}
+ + + + - {{/each}} - -
NameValue
+ + + {{#each sortedTags as |tag|}} + + {{tag.name}} + {{tag.value}} + + {{/each}} + + +
- + diff --git a/ui/tests/acceptance/server-detail-test.js b/ui/tests/acceptance/server-detail-test.js index c31f7cb1b..16e0a953f 100644 --- a/ui/tests/acceptance/server-detail-test.js +++ b/ui/tests/acceptance/server-detail-test.js @@ -34,17 +34,6 @@ module('Acceptance | server detail', function(hooks) { }); }); - test('the list of servers from /servers should still be present', async function(assert) { - assert.equal(ServerDetail.servers.length, server.db.agents.length, '# of servers'); - }); - - test('the active server should be denoted in the table', async function(assert) { - const activeServers = ServerDetail.servers.filter(server => server.isActive); - - assert.equal(activeServers.length, 1, 'Only one active server'); - assert.equal(ServerDetail.activeServer.name, agent.name, 'Active server matches current route'); - }); - test('when the server is not found, an error message is shown, but the URL persists', async function(assert) { await ServerDetail.visit({ name: 'not-a-real-server' }); diff --git a/ui/tests/pages/servers/detail.js b/ui/tests/pages/servers/detail.js index 3f9d0650c..6a5032d28 100644 --- a/ui/tests/pages/servers/detail.js +++ b/ui/tests/pages/servers/detail.js @@ -1,23 +1,13 @@ -import { create, collection, clickable, hasClass, text, visitable } from 'ember-cli-page-object'; -import { getter } from 'ember-cli-page-object/macros'; +import { create, collection, clickable, text, visitable } from 'ember-cli-page-object'; export default create({ visit: visitable('/servers/:name'), - servers: collection('[data-test-server-agent-row]', { - name: text('[data-test-server-name]'), - isActive: hasClass('is-active'), - }), - tags: collection('[data-test-server-tag]', { name: text('td', { at: 0 }), value: text('td', { at: 1 }), }), - activeServer: getter(function() { - return this.servers.toArray().find(server => server.isActive); - }), - error: { title: text('[data-test-error-title]'), message: text('[data-test-error-message]'),