From 4dd7e34c967a5290c20c756725b626ec80e5729b Mon Sep 17 00:00:00 2001 From: John Cowen Date: Tue, 26 Oct 2021 19:26:04 +0100 Subject: [PATCH] ui: Ensure dc selector correctly shows the currently selected dc (#11380) * ui: Ensure dc selector correctly shows the currently selected dc * ui: Restrict access to non-default partitions in non-primaries (#11420) This PR restricts access via the UI to only the default partition when in a non-primary datacenter i.e. you can only have multiple (non-default) partitions in the primary datacenter. --- .changelog/11380.txt | 3 ++ .../consul/partition/selector/index.hbs | 9 +++- .../consul-ui/app/abilities/partition.js | 5 +- .../consul/intention/form/fieldsets/index.hbs | 4 +- .../consul/intention/form/index.hbs | 9 ++-- .../app/components/hashicorp-consul/index.hbs | 9 +++- .../components/hashicorp-consul/index.scss | 5 +- .../components/main-nav-vertical/index.scss | 11 ++++ .../components/main-nav-vertical/layout.scss | 8 ++- .../components/main-nav-vertical/skin.scss | 6 ++- .../consul-ui/app/components/outlet/index.hbs | 1 + .../consul-ui/app/components/outlet/index.js | 5 ++ .../consul-ui/app/helpers/cached-model.js | 8 ++- ui/packages/consul-ui/app/models/dc.js | 1 + ui/packages/consul-ui/app/serializers/dc.js | 53 +++++++++++-------- .../consul-ui/app/services/repository.js | 4 ++ .../services/repository/discovery-chain.js | 8 +-- ui/packages/consul-ui/app/services/routlet.js | 1 + .../consul-ui/app/templates/application.hbs | 32 ++++++----- .../app/templates/dc/intentions/edit.hbs | 2 +- .../app/templates/dc/services/show.hbs | 4 +- .../app/utils/create-fingerprinter.js | 7 +-- .../consul-ui/app/utils/http/consul.js | 1 + .../consul-ui/mock-api/v1/catalog/.config | 2 +- .../dc/services/instances/gateway.feature | 12 ++--- .../dc/services/show-routing.feature | 31 +++++------ .../tests/integration/serializers/dc-test.js | 35 +++++++++--- .../services/repository/dc-test.js | 10 ++-- .../unit/utils/create-fingerprinter-test.js | 2 +- 29 files changed, 190 insertions(+), 98 deletions(-) create mode 100644 .changelog/11380.txt diff --git a/.changelog/11380.txt b/.changelog/11380.txt new file mode 100644 index 000000000..7d18cb63e --- /dev/null +++ b/.changelog/11380.txt @@ -0,0 +1,3 @@ +```release-note:bug +ui: Ensure dc selector correctly shows the currently selected dc +``` diff --git a/ui/packages/consul-partitions/app/components/consul/partition/selector/index.hbs b/ui/packages/consul-partitions/app/components/consul/partition/selector/index.hbs index 078f36035..288e7af91 100644 --- a/ui/packages/consul-partitions/app/components/consul/partition/selector/index.hbs +++ b/ui/packages/consul-partitions/app/components/consul/partition/selector/index.hbs @@ -1,4 +1,4 @@ -{{#if (can "choose partitions")}} +{{#if (can "choose partitions" dc=@dc)}}
  • +{{else}} +
  • + {{@partition}} +
  • {{/if}} diff --git a/ui/packages/consul-ui/app/abilities/partition.js b/ui/packages/consul-ui/app/abilities/partition.js index 034907ab3..8756ba3b0 100644 --- a/ui/packages/consul-ui/app/abilities/partition.js +++ b/ui/packages/consul-ui/app/abilities/partition.js @@ -20,7 +20,10 @@ export default class PartitionAbility extends BaseAbility { } get canChoose() { - return this.canUse; + if(typeof this.dc === 'undefined') { + return false; + } + return this.canUse && this.dc.Primary; } get canUse() { diff --git a/ui/packages/consul-ui/app/components/consul/intention/form/fieldsets/index.hbs b/ui/packages/consul-ui/app/components/consul/intention/form/fieldsets/index.hbs index 4d9dd0306..815006832 100644 --- a/ui/packages/consul-ui/app/components/consul/intention/form/fieldsets/index.hbs +++ b/ui/packages/consul-ui/app/components/consul/intention/form/fieldsets/index.hbs @@ -51,7 +51,7 @@ {{/if}} {{/if}} - {{#if (can 'choose partitions')}} + {{#if (can 'choose partitions' dc=@dc)}}