-
- Attributes
-
+
+
+ Attributes
+
+
+ {{attributes-table
+ data-test-attributes
+ attributes=model.attributes.attributesStructured
+ class="attributes-table"}}
+
+
+ Meta
+
+ {{#if model.meta.attributesStructured}}
{{attributes-table
- data-test-attributes
- attributes=model.attributes.attributesStructured
+ data-test-meta
+ attributes=model.meta.attributesStructured
class="attributes-table"}}
-
- Meta
-
- {{#if model.meta.attributesStructured}}
-
- {{attributes-table
- data-test-meta
- attributes=model.meta.attributesStructured
- class="attributes-table"}}
-
- {{else}}
-
-
-
No Meta Attributes
-
This client is configured with no meta attributes.
-
+ {{else}}
+
+
+
No Meta Attributes
+
This client is configured with no meta attributes.
- {{/if}}
-
-
-{{/gutter-menu}}
+
+ {{/if}}
+
+
diff --git a/ui/app/templates/clients/index.hbs b/ui/app/templates/clients/index.hbs
index 2f7d0894f1d6..528dc6e91a47 100644
--- a/ui/app/templates/clients/index.hbs
+++ b/ui/app/templates/clients/index.hbs
@@ -1,60 +1,58 @@
-{{#gutter-menu class="page-body"}}
-
- {{#if isForbidden}}
- {{partial "partials/forbidden-message"}}
+
+ {{#if isForbidden}}
+ {{partial "partials/forbidden-message"}}
+ {{else}}
+ {{#if nodes.length}}
+
+
{{search-box searchTerm=(mut searchTerm) placeholder="Search clients..."}}
+
+ {{/if}}
+ {{#list-pagination
+ source=sortedNodes
+ size=pageSize
+ page=currentPage as |p|}}
+ {{#list-table
+ source=p.list
+ sortProperty=sortProperty
+ sortDescending=sortDescending
+ class="with-foot" as |t|}}
+ {{#t.head}}
+ |
+ {{#t.sort-by prop="id"}}ID{{/t.sort-by}}
+ {{#t.sort-by class="is-200px is-truncatable" prop="name"}}Name{{/t.sort-by}}
+ {{#t.sort-by prop="status"}}Status{{/t.sort-by}}
+ {{#t.sort-by prop="isDraining"}}Drain{{/t.sort-by}}
+ {{#t.sort-by prop="schedulingEligibility"}}Eligibility{{/t.sort-by}}
+ Address |
+ {{#t.sort-by prop="datacenter"}}Datacenter{{/t.sort-by}}
+ # Allocs |
+ {{/t.head}}
+ {{#t.body as |row|}}
+ {{client-node-row data-test-client-node-row node=row.model onClick=(action "gotoNode" row.model)}}
+ {{/t.body}}
+ {{/list-table}}
+
{{else}}
- {{#if nodes.length}}
-
-
{{search-box searchTerm=(mut searchTerm) placeholder="Search clients..."}}
-
- {{/if}}
- {{#list-pagination
- source=sortedNodes
- size=pageSize
- page=currentPage as |p|}}
- {{#list-table
- source=p.list
- sortProperty=sortProperty
- sortDescending=sortDescending
- class="with-foot" as |t|}}
- {{#t.head}}
- |
- {{#t.sort-by prop="id"}}ID{{/t.sort-by}}
- {{#t.sort-by class="is-200px is-truncatable" prop="name"}}Name{{/t.sort-by}}
- {{#t.sort-by prop="status"}}Status{{/t.sort-by}}
- {{#t.sort-by prop="isDraining"}}Drain{{/t.sort-by}}
- {{#t.sort-by prop="schedulingEligibility"}}Eligibility{{/t.sort-by}}
- Address |
- {{#t.sort-by prop="datacenter"}}Datacenter{{/t.sort-by}}
- # Allocs |
- {{/t.head}}
- {{#t.body as |row|}}
- {{client-node-row data-test-client-node-row node=row.model onClick=(action "gotoNode" row.model)}}
- {{/t.body}}
- {{/list-table}}
-
- {{else}}
-
- {{#if (eq nodes.length 0)}}
-
No Clients
-
- The cluster currently has no client nodes.
-
- {{else if searchTerm}}
-
No Matches
-
No clients match the term {{searchTerm}}
- {{/if}}
-
+
+ {{#if (eq nodes.length 0)}}
+
No Clients
+
+ The cluster currently has no client nodes.
+
+ {{else if searchTerm}}
+
No Matches
+
No clients match the term {{searchTerm}}
+ {{/if}}
+
{{/list-pagination}}
- {{/if}}
-
-{{/gutter-menu}}
+ {{/if}}
+
diff --git a/ui/app/templates/clients/loading.hbs b/ui/app/templates/clients/loading.hbs
index 3298bc9c0745..ae06c3078ee9 100644
--- a/ui/app/templates/clients/loading.hbs
+++ b/ui/app/templates/clients/loading.hbs
@@ -1,3 +1 @@
-{{#gutter-menu class="page-body"}}
-
{{partial "partials/loading-spinner"}}
-{{/gutter-menu}}
+
{{partial "partials/loading-spinner"}}
diff --git a/ui/app/templates/components/gutter-menu.hbs b/ui/app/templates/components/gutter-menu.hbs
index 716a623fd8f6..90d9aa32e078 100644
--- a/ui/app/templates/components/gutter-menu.hbs
+++ b/ui/app/templates/components/gutter-menu.hbs
@@ -14,10 +14,7 @@
selected=system.activeNamespace
searchField="name"
searchEnabled=(gt sortedNamespaces.length 10)
- onchange=(action (queue
- (action (mut system.activeNamespace))
- (action onNamespaceChange)
- ))
+ onchange=(action gotoJobsForNamespace)
tagName="div"
class="namespace-switcher"
as |namespace|}}
diff --git a/ui/app/templates/components/job-page/batch.hbs b/ui/app/templates/components/job-page/batch.hbs
index d9f8a1fa6753..f11a778496c2 100644
--- a/ui/app/templates/components/job-page/batch.hbs
+++ b/ui/app/templates/components/job-page/batch.hbs
@@ -1,4 +1,4 @@
-{{#job-page/parts/body job=job onNamespaceChange=onNamespaceChange}}
+{{#job-page/parts/body job=job}}
{{job-page/parts/error errorMessage=errorMessage onDismiss=(action "clearErrorMessage")}}
{{job-page/parts/title job=job handleError=(action "handleError")}}
diff --git a/ui/app/templates/components/job-page/parameterized-child.hbs b/ui/app/templates/components/job-page/parameterized-child.hbs
index f0fcad10e250..a5cbfb84646b 100644
--- a/ui/app/templates/components/job-page/parameterized-child.hbs
+++ b/ui/app/templates/components/job-page/parameterized-child.hbs
@@ -1,4 +1,4 @@
-{{#job-page/parts/body job=job onNamespaceChange=onNamespaceChange}}
+{{#job-page/parts/body job=job}}
{{job-page/parts/error errorMessage=errorMessage onDismiss=(action "clearErrorMessage")}}
{{job-page/parts/title job=job title=job.trimmedName handleError=(action "handleError")}}
diff --git a/ui/app/templates/components/job-page/parameterized.hbs b/ui/app/templates/components/job-page/parameterized.hbs
index 8fca16924a41..b0b753c24bfb 100644
--- a/ui/app/templates/components/job-page/parameterized.hbs
+++ b/ui/app/templates/components/job-page/parameterized.hbs
@@ -1,4 +1,4 @@
-{{#job-page/parts/body job=job onNamespaceChange=onNamespaceChange}}
+{{#job-page/parts/body job=job}}
{{job-page/parts/error errorMessage=errorMessage onDismiss=(action "clearErrorMessage")}}
{{#job-page/parts/title job=job handleError=(action "handleError")}}
diff --git a/ui/app/templates/components/job-page/parts/body.hbs b/ui/app/templates/components/job-page/parts/body.hbs
index 12c339ce42d6..4a2b8f89f499 100644
--- a/ui/app/templates/components/job-page/parts/body.hbs
+++ b/ui/app/templates/components/job-page/parts/body.hbs
@@ -1,6 +1,4 @@
-{{#gutter-menu class="page-body" onNamespaceChange=onNamespaceChange}}
- {{partial "jobs/job/subnav"}}
-
-{{/gutter-menu}}
+{{partial "jobs/job/subnav"}}
+
diff --git a/ui/app/templates/components/job-page/periodic-child.hbs b/ui/app/templates/components/job-page/periodic-child.hbs
index 398cb9327048..2accceb84c1e 100644
--- a/ui/app/templates/components/job-page/periodic-child.hbs
+++ b/ui/app/templates/components/job-page/periodic-child.hbs
@@ -1,4 +1,4 @@
-{{#job-page/parts/body job=job onNamespaceChange=onNamespaceChange}}
+{{#job-page/parts/body job=job}}
{{job-page/parts/error errorMessage=errorMessage onDismiss=(action "clearErrorMessage")}}
{{job-page/parts/title job=job title=job.trimmedName handleError=(action "handleError")}}
diff --git a/ui/app/templates/components/job-page/periodic.hbs b/ui/app/templates/components/job-page/periodic.hbs
index bc70771dccb2..af9d6e989cbe 100644
--- a/ui/app/templates/components/job-page/periodic.hbs
+++ b/ui/app/templates/components/job-page/periodic.hbs
@@ -1,4 +1,4 @@
-{{#job-page/parts/body job=job onNamespaceChange=onNamespaceChange}}
+{{#job-page/parts/body job=job}}
{{job-page/parts/error errorMessage=errorMessage onDismiss=(action "clearErrorMessage")}}
{{#job-page/parts/title job=job title=job.trimmedName handleError=(action "handleError")}}
diff --git a/ui/app/templates/components/job-page/service.hbs b/ui/app/templates/components/job-page/service.hbs
index 4d36cbf12b91..da7af5d5d48a 100644
--- a/ui/app/templates/components/job-page/service.hbs
+++ b/ui/app/templates/components/job-page/service.hbs
@@ -1,4 +1,4 @@
-{{#job-page/parts/body job=job onNamespaceChange=onNamespaceChange}}
+{{#job-page/parts/body job=job}}
{{job-page/parts/error errorMessage=errorMessage onDismiss=(action "clearErrorMessage")}}
{{job-page/parts/title job=job handleError=(action "handleError")}}
diff --git a/ui/app/templates/components/job-page/system.hbs b/ui/app/templates/components/job-page/system.hbs
index d9f8a1fa6753..f11a778496c2 100644
--- a/ui/app/templates/components/job-page/system.hbs
+++ b/ui/app/templates/components/job-page/system.hbs
@@ -1,4 +1,4 @@
-{{#job-page/parts/body job=job onNamespaceChange=onNamespaceChange}}
+{{#job-page/parts/body job=job}}
{{job-page/parts/error errorMessage=errorMessage onDismiss=(action "clearErrorMessage")}}
{{job-page/parts/title job=job handleError=(action "handleError")}}
diff --git a/ui/app/templates/components/page-layout.hbs b/ui/app/templates/components/page-layout.hbs
new file mode 100644
index 000000000000..27a5f31337af
--- /dev/null
+++ b/ui/app/templates/components/page-layout.hbs
@@ -0,0 +1,6 @@
+{{#global-header class="page-header"}}
+ {{app-breadcrumbs}}
+{{/global-header}}
+{{#gutter-menu class="page-body"}}
+ {{yield}}
+{{/gutter-menu}}
diff --git a/ui/app/templates/jobs.hbs b/ui/app/templates/jobs.hbs
index a766b9ff647d..87dfce6a7603 100644
--- a/ui/app/templates/jobs.hbs
+++ b/ui/app/templates/jobs.hbs
@@ -1,6 +1,3 @@
-
- {{#global-header class="page-header"}}
- {{app-breadcrumbs}}
- {{/global-header}}
+{{#page-layout}}
{{outlet}}
-
+{{/page-layout}}
diff --git a/ui/app/templates/jobs/index.hbs b/ui/app/templates/jobs/index.hbs
index 7b409cadbba1..3985b9f00081 100644
--- a/ui/app/templates/jobs/index.hbs
+++ b/ui/app/templates/jobs/index.hbs
@@ -1,60 +1,58 @@
-{{#gutter-menu class="page-body" onNamespaceChange=(action "refresh")}}
-
- {{#if isForbidden}}
- {{partial "partials/forbidden-message"}}
- {{else}}
- {{#if filteredJobs.length}}
-
-
{{search-box data-test-jobs-search searchTerm=(mut searchTerm) placeholder="Search jobs..."}}
-
- {{/if}}
- {{#list-pagination
- source=sortedJobs
- size=pageSize
- page=currentPage as |p|}}
- {{#list-table
- source=p.list
- sortProperty=sortProperty
- sortDescending=sortDescending
- class="with-foot" as |t|}}
- {{#t.head}}
- {{#t.sort-by prop="name"}}Name{{/t.sort-by}}
- {{#t.sort-by prop="status"}}Status{{/t.sort-by}}
- {{#t.sort-by prop="type"}}Type{{/t.sort-by}}
- {{#t.sort-by prop="priority"}}Priority{{/t.sort-by}}
- Groups |
- Summary |
- {{/t.head}}
- {{#t.body key="model.id" as |row|}}
- {{job-row data-test-job-row job=row.model onClick=(action "gotoJob" row.model)}}
- {{/t.body}}
- {{/list-table}}
-
- {{else}}
-
- {{#if (eq filteredJobs.length 0)}}
-
No Jobs
-
- The cluster is currently empty.
-
- {{else if searchTerm}}
-
No Matches
-
No jobs match the term {{searchTerm}}
- {{/if}}
-
- {{/list-pagination}}
+
+ {{#if isForbidden}}
+ {{partial "partials/forbidden-message"}}
+ {{else}}
+ {{#if filteredJobs.length}}
+
+
{{search-box data-test-jobs-search searchTerm=(mut searchTerm) placeholder="Search jobs..."}}
+
{{/if}}
-
-{{/gutter-menu}}
+ {{#list-pagination
+ source=sortedJobs
+ size=pageSize
+ page=currentPage as |p|}}
+ {{#list-table
+ source=p.list
+ sortProperty=sortProperty
+ sortDescending=sortDescending
+ class="with-foot" as |t|}}
+ {{#t.head}}
+ {{#t.sort-by prop="name"}}Name{{/t.sort-by}}
+ {{#t.sort-by prop="status"}}Status{{/t.sort-by}}
+ {{#t.sort-by prop="type"}}Type{{/t.sort-by}}
+ {{#t.sort-by prop="priority"}}Priority{{/t.sort-by}}
+ Groups |
+ Summary |
+ {{/t.head}}
+ {{#t.body key="model.id" as |row|}}
+ {{job-row data-test-job-row job=row.model onClick=(action "gotoJob" row.model)}}
+ {{/t.body}}
+ {{/list-table}}
+
+ {{else}}
+
+ {{#if (eq filteredJobs.length 0)}}
+
No Jobs
+
+ The cluster is currently empty.
+
+ {{else if searchTerm}}
+
No Matches
+
No jobs match the term {{searchTerm}}
+ {{/if}}
+
+ {{/list-pagination}}
+ {{/if}}
+
diff --git a/ui/app/templates/jobs/job/definition.hbs b/ui/app/templates/jobs/job/definition.hbs
index 924d180002ea..2265ecdbe28c 100644
--- a/ui/app/templates/jobs/job/definition.hbs
+++ b/ui/app/templates/jobs/job/definition.hbs
@@ -1,10 +1,8 @@
-{{#gutter-menu class="page-body" onNamespaceChange=(action "gotoJobs")}}
- {{partial "jobs/job/subnav"}}
-
-
-
- {{json-viewer data-test-definition-view json=model.definition}}
-
+{{partial "jobs/job/subnav"}}
+
+
+
+ {{json-viewer data-test-definition-view json=model.definition}}
-
-{{/gutter-menu}}
+
+
diff --git a/ui/app/templates/jobs/job/deployments.hbs b/ui/app/templates/jobs/job/deployments.hbs
index 241a0d32d843..8bc4cb70790d 100644
--- a/ui/app/templates/jobs/job/deployments.hbs
+++ b/ui/app/templates/jobs/job/deployments.hbs
@@ -1,6 +1,4 @@
-{{#gutter-menu class="page-body" onNamespaceChange=(action "gotoJobs")}}
- {{partial "jobs/job/subnav"}}
-
- {{job-deployments-stream deployments=model.deployments}}
-
-{{/gutter-menu}}
+{{partial "jobs/job/subnav"}}
+
+ {{job-deployments-stream deployments=model.deployments}}
+
diff --git a/ui/app/templates/jobs/job/evaluations.hbs b/ui/app/templates/jobs/job/evaluations.hbs
index 4f5a9be8ba91..212b6ea426d2 100644
--- a/ui/app/templates/jobs/job/evaluations.hbs
+++ b/ui/app/templates/jobs/job/evaluations.hbs
@@ -1,49 +1,46 @@
-{{#gutter-menu class="page-body" onNamespaceChange=(action "gotoJobs")}}
- {{partial "jobs/job/subnav"}}
-
-
-
- Evaluations
-
-
- {{#if sortedEvaluations.length}}
- {{#list-table
- source=sortedEvaluations
- sortProperty=sortProperty
- sortDescending=sortDescending as |t|}}
- {{#t.head}}
-
ID |
- {{#t.sort-by prop="priority"}}Priority{{/t.sort-by}}
- {{#t.sort-by prop="triggeredBy"}}Triggered By{{/t.sort-by}}
- {{#t.sort-by prop="status"}}Status{{/t.sort-by}}
- {{#t.sort-by prop="hasPlacementFailures"}}Placement Failures{{/t.sort-by}}
- {{/t.head}}
- {{#t.body as |row|}}
-
- {{row.model.shortId}} |
- {{row.model.priority}} |
- {{row.model.triggeredBy}} |
- {{row.model.status}} |
-
- {{#if (eq row.model.status "blocked")}}
- N/A - In Progress
- {{else if row.model.hasPlacementFailures}}
- True
- {{else}}
- False
- {{/if}}
- |
-
- {{/t.body}}
- {{/list-table}}
- {{else}}
-
-
No Evaluations
-
This is most likely due to garbage collection.
-
- {{/if}}
+{{partial "jobs/job/subnav"}}
+
-{{/gutter-menu}}
-
+
+ {{#if sortedEvaluations.length}}
+ {{#list-table
+ source=sortedEvaluations
+ sortProperty=sortProperty
+ sortDescending=sortDescending as |t|}}
+ {{#t.head}}
+
ID |
+ {{#t.sort-by prop="priority"}}Priority{{/t.sort-by}}
+ {{#t.sort-by prop="triggeredBy"}}Triggered By{{/t.sort-by}}
+ {{#t.sort-by prop="status"}}Status{{/t.sort-by}}
+ {{#t.sort-by prop="hasPlacementFailures"}}Placement Failures{{/t.sort-by}}
+ {{/t.head}}
+ {{#t.body as |row|}}
+
+ {{row.model.shortId}} |
+ {{row.model.priority}} |
+ {{row.model.triggeredBy}} |
+ {{row.model.status}} |
+
+ {{#if (eq row.model.status "blocked")}}
+ N/A - In Progress
+ {{else if row.model.hasPlacementFailures}}
+ True
+ {{else}}
+ False
+ {{/if}}
+ |
+
+ {{/t.body}}
+ {{/list-table}}
+ {{else}}
+
+
No Evaluations
+
This is most likely due to garbage collection.
+
+ {{/if}}
+
+
+
diff --git a/ui/app/templates/jobs/job/index.hbs b/ui/app/templates/jobs/job/index.hbs
index 7d81851b2159..8cd4928e6e3e 100644
--- a/ui/app/templates/jobs/job/index.hbs
+++ b/ui/app/templates/jobs/job/index.hbs
@@ -3,6 +3,5 @@
sortProperty=sortProperty
sortDescending=sortDescending
currentPage=currentPage
- onNamespaceChange=(action "gotoJobs")
gotoJob=(action "gotoJob")
gotoTaskGroup=(action "gotoTaskGroup")}}
diff --git a/ui/app/templates/jobs/job/loading.hbs b/ui/app/templates/jobs/job/loading.hbs
index a90321c319a1..911d511739dc 100644
--- a/ui/app/templates/jobs/job/loading.hbs
+++ b/ui/app/templates/jobs/job/loading.hbs
@@ -1,4 +1,2 @@
-{{#gutter-menu class="page-body"}}
- {{partial "jobs/job/subnav"}}
-
{{partial "partials/loading-spinner"}}
-{{/gutter-menu}}
+{{partial "jobs/job/subnav"}}
+
{{partial "partials/loading-spinner"}}
diff --git a/ui/app/templates/jobs/job/task-group.hbs b/ui/app/templates/jobs/job/task-group.hbs
index b2b08c70162b..0bf01cb84ca9 100644
--- a/ui/app/templates/jobs/job/task-group.hbs
+++ b/ui/app/templates/jobs/job/task-group.hbs
@@ -1,109 +1,107 @@
-{{#gutter-menu class="page-body" onNamespaceChange=(action "gotoJobs")}}
-
-
- - {{#link-to "jobs.job.task-group" model.job model activeClass="is-active"}}Overview{{/link-to}}
-
-
-
-
- {{model.name}}
-
+
+
+ - {{#link-to "jobs.job.task-group" model.job model activeClass="is-active"}}Overview{{/link-to}}
+
+
+
+
+ {{model.name}}
+
-
-
-
Task Group Details
+
+
+ Task Group Details
- # Tasks {{model.tasks.length}}
- Reserved CPU {{model.reservedCPU}} MHz
- Reserved Memory {{model.reservedMemory}} MiB
- Reserved Disk {{model.reservedEphemeralDisk}} MiB
-
+
# Tasks {{model.tasks.length}}
+
Reserved CPU {{model.reservedCPU}} MHz
+
Reserved Memory {{model.reservedMemory}} MiB
+
Reserved Disk {{model.reservedEphemeralDisk}} MiB
+
-
-
-
Allocation Status {{allocations.length}}
-
-
- {{#allocation-status-bar allocationContainer=model.summary class="split-view" as |chart|}}
-
- {{#each chart.data as |datum index|}}
- -
-
- {{datum.value}}
-
- {{datum.label}}
-
-
- {{/each}}
-
- {{/allocation-status-bar}}
-
+
+
+
Allocation Status {{allocations.length}}
+
+
+ {{#allocation-status-bar allocationContainer=model.summary class="split-view" as |chart|}}
+
+ {{#each chart.data as |datum index|}}
+ -
+
+ {{datum.value}}
+
+ {{datum.label}}
+
+
+ {{/each}}
+
+ {{/allocation-status-bar}}
+
-
-
- Allocations
- {{search-box
- searchTerm=(mut searchTerm)
- placeholder="Search allocations..."
- class="is-inline pull-right"
- inputClass="is-compact"}}
-
-
- {{#list-pagination
- source=sortedAllocations
- size=pageSize
- page=currentPage
- class="allocations" as |p|}}
- {{#list-table
- source=p.list
- sortProperty=sortProperty
- sortDescending=sortDescending
- class="with-foot" as |t|}}
- {{#t.head}}
-
|
- {{#t.sort-by prop="shortId"}}ID{{/t.sort-by}}
- {{#t.sort-by prop="modifyIndex" title="Modify Index"}}Modified{{/t.sort-by}}
- {{#t.sort-by prop="name"}}Name{{/t.sort-by}}
- {{#t.sort-by prop="statusIndex"}}Status{{/t.sort-by}}
- {{#t.sort-by prop="jobVersion"}}Version{{/t.sort-by}}
- {{#t.sort-by prop="node.shortId"}}Client{{/t.sort-by}}
- CPU |
- Memory |
- {{/t.head}}
- {{#t.body as |row|}}
- {{allocation-row data-test-allocation=row.model.id allocation=row.model context="job" onClick=(action "gotoAllocation" row.model)}}
- {{/t.body}}
- {{/list-table}}
-