diff --git a/src/server/common/components/entity-table/_entity-table.scss b/src/server/common/components/entity-table/_entity-table.scss index 90ebf16f..6610f3b4 100644 --- a/src/server/common/components/entity-table/_entity-table.scss +++ b/src/server/common/components/entity-table/_entity-table.scss @@ -29,7 +29,11 @@ $min-width: 200px; } .app-entity-table__row { - display: block; + display: grid; + grid-template-columns: repeat(3, minmax(100px, 1fr)); + gap: govuk-spacing(1); + grid-auto-rows: minmax(50px, auto); + margin-bottom: govuk-spacing(3); background-color: govuk-colour("white"); border-bottom: 2px solid $app-mid-grey; @@ -45,16 +49,12 @@ $min-width: 200px; .app-entity-table__cell { border-bottom: 1px solid $app-grey; - display: block; + display: inline-block; text-align: left; padding: govuk-spacing(2) govuk-spacing(1); vertical-align: middle; width: auto; - &:hover { - background-color: $app-grey; - } - .app-icon { width: 20px; min-width: 20px; @@ -62,9 +62,14 @@ $min-width: 200px; height: 20px; } + .app-entity { + margin: 0 + } + &::before { content: attr(data-label); display: inline-block; + min-width: $min-width; text-align: left; font-weight: bold; padding-bottom: govuk-spacing(1); diff --git a/src/server/common/components/entity-table/template.njk b/src/server/common/components/entity-table/template.njk index ac889811..7aea9873 100644 --- a/src/server/common/components/entity-table/template.njk +++ b/src/server/common/components/entity-table/template.njk @@ -45,6 +45,10 @@ data-label="{{ cell.headers | formatText }}"> {% if cell.entity %} {{ appEntity(cell.entity | assign({}, {index: loop.index}, cell.entity)) }} + {% elseif cell.html %} + {{ cell.html | safe }} + {% elseif cell.text %} + {{ cell.text }} {% endif %} {% endfor %} diff --git a/src/server/common/components/running-service-entity/_running-service-entity.scss b/src/server/common/components/running-service-entity/_running-service-entity.scss index 519b4652..319a8595 100644 --- a/src/server/common/components/running-service-entity/_running-service-entity.scss +++ b/src/server/common/components/running-service-entity/_running-service-entity.scss @@ -2,9 +2,19 @@ @use "variables/colours" as *; @use "variables/border-radius" as *; +$max-width: 300px; + @include govuk-media-query($until: desktop-wide) { .app-running-service-entity { - max-width: 200px; + max-width: $max-width; + } + + .app-running-service-entity--empty { + max-width: $max-width; + min-height: 45px; + padding: govuk-spacing(1) govuk-spacing(2); + background-color: $app-light-grey; + border-radius: $app-border-radius; } } @@ -47,4 +57,3 @@ color: govuk-colour("dark-grey"); } } - diff --git a/src/server/common/components/service-header/_service-header.scss b/src/server/common/components/service-header/_service-header.scss index c1433f7e..e98354ba 100644 --- a/src/server/common/components/service-header/_service-header.scss +++ b/src/server/common/components/service-header/_service-header.scss @@ -18,16 +18,6 @@ margin-bottom: govuk-spacing(-2); padding: govuk-spacing(3) govuk-spacing(6); border-bottom: govuk-spacing(2) solid $govuk-brand-colour; - display: flex; -} - -.app-service-header__content { - @include govuk-media-query($from: desktop-big) { - flex: 4; - display: flex; - align-items: center; - - } } .app-service-header__service-name { @@ -45,10 +35,8 @@ .app-service-header__actions { @include govuk-font(19); - display: flex; - align-items: center; - justify-content: center; + margin-top: govuk-spacing(2); & .app-user-icon { margin-right: govuk-spacing(2); @@ -86,3 +74,21 @@ @include govuk-focused-text; } } + +@include govuk-media-query($from: desktop-big) { + .app-service-header__container { + display: flex; + } + + .app-service-header__content { + flex: 4; + display: flex; + align-items: center; + } + + .app-service-header__actions { + align-items: center; + justify-content: center; + margin-top: 0; + } +} diff --git a/src/server/running-services/helpers/transformers/running-service-to-entity-row.js b/src/server/running-services/helpers/transformers/running-service-to-entity-row.js index 05f3ebe3..4f181692 100644 --- a/src/server/running-services/helpers/transformers/running-service-to-entity-row.js +++ b/src/server/running-services/helpers/transformers/running-service-to-entity-row.js @@ -43,7 +43,9 @@ function runningServiceToEntityRow(allEnvironments, isAuthenticated) { } return { - headers: environmentName + headers: environmentName, + isSlim: true, + html: '
' } }) diff --git a/src/server/running-services/helpers/transformers/running-service-to-entity-row.test.js b/src/server/running-services/helpers/transformers/running-service-to-entity-row.test.js index 2fcfeff7..a83ada13 100644 --- a/src/server/running-services/helpers/transformers/running-service-to-entity-row.test.js +++ b/src/server/running-services/helpers/transformers/running-service-to-entity-row.test.js @@ -69,24 +69,24 @@ describe('#runningServiceToEntityRow', () => { headers: 'infra-dev', isSlim: true }, - { + expect.objectContaining({ headers: 'management' - }, - { + }), + expect.objectContaining({ headers: 'dev' - }, - { + }), + expect.objectContaining({ headers: 'test' - }, - { + }), + expect.objectContaining({ headers: 'ext-test' - }, - { + }), + expect.objectContaining({ headers: 'perf-test' - }, - { + }), + expect.objectContaining({ headers: 'prod' - } + }) ] }) }) @@ -130,24 +130,24 @@ describe('#runningServiceToEntityRow', () => { headers: 'infra-dev', isSlim: true }, - { + expect.objectContaining({ headers: 'management' - }, - { + }), + expect.objectContaining({ headers: 'dev' - }, - { + }), + expect.objectContaining({ headers: 'test' - }, - { + }), + expect.objectContaining({ headers: 'ext-test' - }, - { + }), + expect.objectContaining({ headers: 'perf-test' - }, - { + }), + expect.objectContaining({ headers: 'prod' - } + }) ] }) }) @@ -194,27 +194,27 @@ describe('#runningServiceToEntityRow', () => { }, headers: 'team' }, - { + expect.objectContaining({ headers: 'infra-dev' - }, - { + }), + expect.objectContaining({ headers: 'management' - }, - { + }), + expect.objectContaining({ headers: 'dev' - }, - { + }), + expect.objectContaining({ headers: 'test' - }, - { + }), + expect.objectContaining({ headers: 'ext-test' - }, - { + }), + expect.objectContaining({ headers: 'perf-test' - }, - { + }), + expect.objectContaining({ headers: 'prod' - } + }) ] }) })