diff --git a/.changelog/2606.txt b/.changelog/2606.txt
new file mode 100644
index 00000000000..2896c7786d5
--- /dev/null
+++ b/.changelog/2606.txt
@@ -0,0 +1,3 @@
+```release-note:feature
+ui: reformatted app overview page and header of artifact details page
+```
diff --git a/ui/app/components/git-commit.hbs b/ui/app/components/git-commit.hbs
index 51bf32aa814..bff5b234935 100644
--- a/ui/app/components/git-commit.hbs
+++ b/ui/app/components/git-commit.hbs
@@ -1,7 +1,9 @@
{{#if @commit}}
+
+ {{!-- TODO: add git profile picture of user whose commit it was when possible --}}
- {{truncate-commit @commit}}
+ {{truncate-commit @commit}}
{{/if}}
\ No newline at end of file
diff --git a/ui/app/components/panel-header.hbs b/ui/app/components/panel-header.hbs
new file mode 100644
index 00000000000..f8b6542cfd4
--- /dev/null
+++ b/ui/app/components/panel-header.hbs
@@ -0,0 +1,25 @@
+{{#let
+ (hash
+ title=(or
+ (and (eq @artifact "deployment") "page.deployment.title")
+ (and (eq @artifact "build") "page.build.title")
+ (and (eq @artifact "release") "page.release.title")
+ "page.unavailable.title"
+ )
+ )
+ as |vars|
+}}
+
+{{/let}}
diff --git a/ui/app/components/section.hbs b/ui/app/components/section.hbs
index 7f17d2ee81c..471892ece17 100644
--- a/ui/app/components/section.hbs
+++ b/ui/app/components/section.hbs
@@ -6,22 +6,26 @@
>
{{#if this.expanded}}
diff --git a/ui/app/components/section.ts b/ui/app/components/section.ts
index d55558a0df1..eb7b8e4a93e 100644
--- a/ui/app/components/section.ts
+++ b/ui/app/components/section.ts
@@ -4,11 +4,16 @@ import { action } from '@ember/object';
type Args = {
expanded?: boolean;
+ isExpandable?: boolean;
};
export default class extends Component {
@tracked expanded = this.args.expanded ?? true;
+ get isExpandable(): boolean {
+ return this.args.isExpandable ?? true;
+ }
+
@action
toggleExpanded(): void {
this.expanded = !this.expanded;
diff --git a/ui/app/components/status-report-meta-table/index.hbs b/ui/app/components/status-report-meta-table/index.hbs
index 2e3067e0ee0..33c0f6f9656 100644
--- a/ui/app/components/status-report-meta-table/index.hbs
+++ b/ui/app/components/status-report-meta-table/index.hbs
@@ -1,35 +1,60 @@
+{{#let
+ (hash
+ shouldRenderHealthAndTag=(and
+ (or
+ (eq @artifactType "Deployment")
+ (eq @artifactType "Release")
+ )
+ @model.statusReport
+ )
+ shouldRenderCommit=@model.preload.jobDataSourceRef.git.commit
+ )
+ as |vars|
+}}
- {{#if @model.statusReport}}
-
- {{t "page.deployment.overview.health-check"}} |
-
-
-
-
- {{t "page.deployment.overview.re-run-health-check"}}
-
-
- |
-
+ {{#if (or (has-block) vars.shouldRenderCommit vars.shouldRenderHealthAndTag)}}
+ {{yield}}
+ {{else}}
+ {{t "page.artifact.overview.unavailable"}}
+ {{/if}}
+ {{#if vars.shouldRenderHealthAndTag}}
+
+ {{t "page.artifact.overview.health-check"}} |
+
+
+
+
+ {{t "page.artifact.overview.re-run-health-check"}}
+
+
+ |
+
+
+
+ {{t "page.artifact.overview.image"}}
+ |
+
+
+ |
+
+ {{/if}}
+ {{#if vars.shouldRenderCommit}}
-
- {{t "page.deployment.overview.image"}}
- |
+ {{t "page.artifact.overview.commit"}} |
-
+
|
- {{else}}
- {{t "page.deployment.overview.unavailable"}}
{{/if}}
+{{/let}}
\ No newline at end of file
diff --git a/ui/app/routes/workspace/projects/project/app/index.ts b/ui/app/routes/workspace/projects/project/app/index.ts
index b607f2bee07..5b9ba3c7e83 100644
--- a/ui/app/routes/workspace/projects/project/app/index.ts
+++ b/ui/app/routes/workspace/projects/project/app/index.ts
@@ -3,6 +3,6 @@ import { Model as AppRouteModel } from '../app';
export default class AppIndex extends Route {
redirect(model: AppRouteModel): void {
- this.transitionTo('workspace.projects.project.app.logs', model.application.application);
+ this.transitionTo('workspace.projects.project.app.deployments', model.application.application);
}
}
diff --git a/ui/app/styles/_layout.scss b/ui/app/styles/_layout.scss
index 96c462dbcd7..6f14863cc12 100644
--- a/ui/app/styles/_layout.scss
+++ b/ui/app/styles/_layout.scss
@@ -74,13 +74,16 @@ ul.list {
border-bottom: none;
}
+.list-heading {
+ @include Typography.Heading(3);
+}
+
.status-row {
// status information on specific build/deployment/release page
display: flex;
align-items: center;
justify-content: space-between;
padding: scale.$base 0;
- border-top: 1px solid rgb(var(--border));
color: rgb(var(--text-muted));
@include Typography.Interface(M);
@@ -109,7 +112,7 @@ ul.list {
// Waypoint styles
code {
- font-family: ui-monospace, 'Menlo', monospace;
+ font-family: var(--monospace);
white-space: nowrap;
color: rgb(var(--text));
background: none;
diff --git a/ui/app/styles/_variables.scss b/ui/app/styles/_variables.scss
index 97266bb34df..34aefdf3675 100644
--- a/ui/app/styles/_variables.scss
+++ b/ui/app/styles/_variables.scss
@@ -12,6 +12,7 @@ $button-shadow: 0 3px 2px rgba(var(--shadow), 0.2);
}
:root {
+ --monospace: ui-monospace, 'Menlo', monospace;
--brand: #{dehex($brand-color)};
--background: #{dehex(color.$white)};
--text: #{dehex(color.$black)};
@@ -22,8 +23,8 @@ $button-shadow: 0 3px 2px rgba(var(--shadow), 0.2);
--outline: #{dehex(color.$ui-gray-300)};
--card: #{dehex(color.$white)};
--panel: #{dehex(color.$ui-cool-gray-050)};
- --badge: #{dehex(color.$blue-050)};
- --badge-text: #{dehex(color.$blue-500)};
+ --badge: #{dehex(color.$ui-gray-200)};
+ --badge-text: #{dehex(color.$ui-gray-800)};
--badge-neutral: #{dehex(color.$ui-cool-gray-100)};
--badge-neutral-text: #{dehex(color.$ui-cool-gray-700)};
--shadow: #{dehex(color.$ui-cool-gray-900)};
diff --git a/ui/app/styles/components/_index.scss b/ui/app/styles/components/_index.scss
index 2fb79c95834..f25d9557deb 100644
--- a/ui/app/styles/components/_index.scss
+++ b/ui/app/styles/components/_index.scss
@@ -1,5 +1,3 @@
-@import 'app-card';
-@import 'app-card-item';
@import 'app-item';
@import 'badge';
@import 'button';
@@ -20,6 +18,7 @@
@import 'navigation/header';
@import 'navigation/footer';
@import 'navigation/page-header';
+@import 'navigation/panel-header';
@import 'notifications';
@import 'operation-status-indicator';
@import 'output-pane';
diff --git a/ui/app/styles/components/badge.scss b/ui/app/styles/components/badge.scss
index 12f9c169592..396c45bcd07 100644
--- a/ui/app/styles/components/badge.scss
+++ b/ui/app/styles/components/badge.scss
@@ -9,6 +9,7 @@
&--version {
@include Typography.Interface(M);
+ font-family: var(--monospace);
border-radius: scale.$base;
}
diff --git a/ui/app/styles/components/git-commit.scss b/ui/app/styles/components/git-commit.scss
index 1502a9a6b8b..bfe94ad5505 100644
--- a/ui/app/styles/components/git-commit.scss
+++ b/ui/app/styles/components/git-commit.scss
@@ -1,13 +1,12 @@
.git-commit {
- display: flex;
- align-items: center;
@include Typography.Interface(S);
- background: rgb(var(--badge));
- color: rgb(var(--text-muted));
border-radius: 2px;
padding: scale.$sm-4 scale.$sm-4;
&__sha {
- padding: 0 scale.$sm-4;
+ color: rgb(var(--text-muted));
+ background: rgb(var(--badge));
+ padding: scale.$sm-4;
+ border-radius: scale.$sm-4;
}
.copy-btn {
@include button-reset;
diff --git a/ui/app/styles/components/navigation/artifact-overview.scss b/ui/app/styles/components/navigation/artifact-overview.scss
index 5179bc0aaf4..fe0290d5747 100644
--- a/ui/app/styles/components/navigation/artifact-overview.scss
+++ b/ui/app/styles/components/navigation/artifact-overview.scss
@@ -24,6 +24,7 @@
color: rgb(var(--text-muted));
padding-right: scale.$lg--10;
text-align: left;
+ width: 158px;
}
.status-indicator {
diff --git a/ui/app/styles/components/navigation/page-header.scss b/ui/app/styles/components/navigation/page-header.scss
index 6c09ef1162a..1a113636201 100644
--- a/ui/app/styles/components/navigation/page-header.scss
+++ b/ui/app/styles/components/navigation/page-header.scss
@@ -30,13 +30,6 @@
font-weight: 600;
margin: scale.$sm-2 0 scale.$sm-4;
}
-
- .badge {
- font-size: 1rem;
- position: relative;
- top: -2px;
- margin-right: scale.$sm-4;
- }
}
small {
@@ -57,57 +50,4 @@
&.projects-header {
margin-top: scale.$lg-4;
}
-
- .actions {
- position: relative;
- display: flex;
- align-items: center;
- flex-wrap: wrap;
- max-width: 100%;
- margin: scale.$sm-4 0;
-
- .button-group {
- display: flex;
- max-width: 100%;
-
- .button:first-child {
- flex-shrink: 1;
- overflow: hidden;
- }
- }
-
- .button {
- margin: scale.$sm-3 0;
-
- span {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- min-width: 0;
- }
-
- & + .button {
- margin-left: scale.$base;
- }
- }
-
- .first-run-hint {
- p {
- color: rgb(var(--text-muted));
- @include Typography.Interface(S);
- display: inline-block;
- margin-right: scale.$sm-2;
- }
-
- .copyable-code {
- margin: scale.$sm-2 0;
-
- code {
- display: inline-flex;
- font-size: 11px;
- flex-shrink: 0;
- }
- }
- }
- }
}
diff --git a/ui/app/styles/components/navigation/panel-header.scss b/ui/app/styles/components/navigation/panel-header.scss
new file mode 100644
index 00000000000..4fb386706fd
--- /dev/null
+++ b/ui/app/styles/components/navigation/panel-header.scss
@@ -0,0 +1,79 @@
+.panel-header {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ font-size: 0.9em;
+ font-weight: 400;
+ color: rgb(var(--text-muted));
+
+ h1 {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ @include Typography.Interface(M);
+
+ .badge {
+ font-size: 1rem;
+ position: relative;
+ top: -2px;
+ margin-left: scale.$sm-3;
+ }
+ }
+
+ .actions {
+ position: relative;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ max-width: 100%;
+ margin: scale.$sm-4 0;
+ margin-left: auto;
+
+ .button-group {
+ display: flex;
+ max-width: 100%;
+
+ .button:first-child {
+ flex-shrink: 1;
+ overflow: hidden;
+ }
+ }
+
+ .button {
+ margin: scale.$sm-3 0;
+
+ span {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ min-width: 0;
+ }
+
+ & + .button {
+ margin-left: scale.$base;
+ }
+ }
+
+ .first-run-hint {
+ p {
+ color: rgb(var(--text-muted));
+ @include Typography.Interface(S);
+ display: inline-block;
+ margin-right: scale.$sm-2;
+ }
+
+ .copyable-code {
+ margin: scale.$sm-2 0;
+
+ code {
+ display: inline-flex;
+ font-size: 11px;
+ flex-shrink: 0;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ui/app/styles/components/section.scss b/ui/app/styles/components/section.scss
index 3acc9395f48..3c73b924f42 100644
--- a/ui/app/styles/components/section.scss
+++ b/ui/app/styles/components/section.scss
@@ -2,11 +2,13 @@
position: relative;
margin-bottom: scale.$base;
+ padding-bottom: scale.$sm--1;
+ border-bottom: 1px solid rgb(var(--border));
+
&__header {
position: relative;
- border-bottom: 1px solid rgb(var(--border));
margin-bottom: scale.$sm--1;
}
diff --git a/ui/app/styles/components/structure/pds-tabnav.scss b/ui/app/styles/components/structure/pds-tabnav.scss
index 4bad4d765f1..0f2ea476cda 100644
--- a/ui/app/styles/components/structure/pds-tabnav.scss
+++ b/ui/app/styles/components/structure/pds-tabnav.scss
@@ -1,5 +1,4 @@
.pds-tabNav {
- padding-top: scale.$sm-2;
margin-bottom: scale.$lg-4;
:any-link:not(.pds-button) {
diff --git a/ui/app/templates/workspace/projects/project/app.hbs b/ui/app/templates/workspace/projects/project/app.hbs
index c9ab4cce931..4d3a239f629 100644
--- a/ui/app/templates/workspace/projects/project/app.hbs
+++ b/ui/app/templates/workspace/projects/project/app.hbs
@@ -10,17 +10,6 @@
{{@model.application.application}}
-
- {{#if @model.releases.length}}
- {{#if (eq @model.releases.[0].status.state 2)}}
- Last released {{date-format-distance-to-now @model.releases.[0].status.completeTime.seconds}}
- {{else}}
- Release in progress...
- {{/if}}
- {{else}}
- Not released yet
- {{/if}}
-
{{#if (and (project-is-remote-uppable @model.project) (not @model.releases.length))}}
@@ -47,38 +36,27 @@
-
-
-
-
-
- {{t "nav.logs"}}
+
+ {{t "nav.deployments"}}
{{t "nav.builds"}}
-
-
- {{t "nav.deployments"}}
-
{{t "nav.releases"}}
+
+
+ {{t "nav.logs"}}
+
diff --git a/ui/app/templates/workspace/projects/project/app/build.hbs b/ui/app/templates/workspace/projects/project/app/build.hbs
index 7f80f04e226..ac59258e220 100644
--- a/ui/app/templates/workspace/projects/project/app/build.hbs
+++ b/ui/app/templates/workspace/projects/project/app/build.hbs
@@ -1,44 +1,44 @@
{{page-title (concat "Build" " v" @model.sequence)}}
{{#let (or @model.pushedArtifact @model) as |operation|}}
-
-
-
- v{{@model.sequence}}
-
-
-
-
-
- {{t
- (concat
- "build_status"
- ".type-" operation.component.type
- ".state-" operation.status.state
- )
- }}
- {{component-name operation.component.name}}
-
-
- {{#if @model.preload.jobDataSourceRef.git.commit}}
-
-
-
- {{/if}}
-
-
-
+
+
-
+
+ <:heading>{{t "page.build.overview.heading"}}
+ <:body>
+
+
+ {{t "page.build.overview.status"}} |
+
+
+
+ {{t
+ (concat
+ "build_status"
+ ".type-" operation.component.type
+ ".state-" operation.status.state
+ )
+ }}
+ {{component-name operation.component.name}}
+
+
+ |
+
+
+
+
{{/let}}
-
+
+ <:heading>{{t "page.deployment.logs.heading"}}
+ <:body>
+
+
+
diff --git a/ui/app/templates/workspace/projects/project/app/builds.hbs b/ui/app/templates/workspace/projects/project/app/builds.hbs
index 1b619eb63cd..9a5fd5267e0 100644
--- a/ui/app/templates/workspace/projects/project/app/builds.hbs
+++ b/ui/app/templates/workspace/projects/project/app/builds.hbs
@@ -1,6 +1,6 @@
{{page-title (concat @model.application.application "Builds")}}
-{{t "page.builds.title"}}
+{{t "page.builds.title"}}
{{#each @model key="id" as |build|}}
diff --git a/ui/app/templates/workspace/projects/project/app/deployment.hbs b/ui/app/templates/workspace/projects/project/app/deployment.hbs
index 5738570d9f5..8551e6689cd 100644
--- a/ui/app/templates/workspace/projects/project/app/deployment.hbs
+++ b/ui/app/templates/workspace/projects/project/app/deployment.hbs
@@ -1,22 +1,8 @@
{{page-title (concat "Deployment" " v" @model.sequence)}}
{{#if (not-eq this.target.currentRouteName "workspace.projects.project.app.deployment.resource")}}
-
-
-
v{{@model.sequence}}
-
-
- Deployed by {{component-name @model.component.name}}
- {{date-format-distance-to-now @model.status.startTime.seconds }}
-
-
- {{#if @model.preload.jobDataSourceRef.git.commit}}
-
-
-
- {{/if}}
-
-
-
+
+
-
+
<:heading>{{t "page.deployment.overview.heading"}}
<:body>
-
+
+
+ {{t "page.deployment.overview.status"}} |
+
+
+ Deployed by {{component-name @model.component.name}}
+ {{date-format-distance-to-now @model.status.startTime.seconds }}
+
+ |
+
+
diff --git a/ui/app/templates/workspace/projects/project/app/deployments.hbs b/ui/app/templates/workspace/projects/project/app/deployments.hbs
index 45379885c2f..a5ef49efa3e 100644
--- a/ui/app/templates/workspace/projects/project/app/deployments.hbs
+++ b/ui/app/templates/workspace/projects/project/app/deployments.hbs
@@ -1,8 +1,6 @@
{{page-title (concat @model.application.application "Deployments")}}
-
- {{t "page.deployments.title"}}
-
+{{t "page.deployments.title"}}