diff --git a/.changelog/10100.txt b/.changelog/10100.txt new file mode 100644 index 000000000..1bdedd287 --- /dev/null +++ b/.changelog/10100.txt @@ -0,0 +1,3 @@ +```release-note:improvement +ui: Added CRD popover 'informed action' for intentions managed by CRDs +``` diff --git a/ui/packages/consul-ui/app/components/aria-menu/index.js b/ui/packages/consul-ui/app/components/aria-menu/index.js index 2033b725c..4162a1995 100644 --- a/ui/packages/consul-ui/app/components/aria-menu/index.js +++ b/ui/packages/consul-ui/app/components/aria-menu/index.js @@ -129,6 +129,12 @@ export default Component.extend({ }, open: function(e) { set(this, 'expanded', true); + const $items = [...this.dom.elements(MENU_ITEMS, this.$menu)]; + if ($items.length === 0) { + this.dom + .element('input[type="checkbox"]', this.$menu.parentElement) + .dispatchEvent(new MouseEvent('click')); + } // Take the trigger out of the tabbing whilst the menu is open this.$trigger.setAttribute('tabindex', '-1'); this._listeners.add(this.dom.document(), { diff --git a/ui/packages/consul-ui/app/components/consul/intention/list/layout.scss b/ui/packages/consul-ui/app/components/consul/intention/list/layout.scss index e208890f7..7b7e3338a 100644 --- a/ui/packages/consul-ui/app/components/consul/intention/list/layout.scss +++ b/ui/packages/consul-ui/app/components/consul/intention/list/layout.scss @@ -20,6 +20,9 @@ tr > *:last-child { width: 60px; } + .menu-panel.confirmation { + width: 200px; + } } @media #{$--lt-horizontal-nav} { diff --git a/ui/packages/consul-ui/app/components/consul/intention/list/table/index.hbs b/ui/packages/consul-ui/app/components/consul/intention/list/table/index.hbs index d54b8b0cd..ad3faa2d5 100644 --- a/ui/packages/consul-ui/app/components/consul/intention/list/table/index.hbs +++ b/ui/packages/consul-ui/app/components/consul/intention/list/table/index.hbs @@ -54,7 +54,10 @@ as |item index|> - + More @@ -100,7 +103,38 @@ as |item index|> {{else}}
  • - View +
    + + <:header> + Managed by CRD + + <:body> +

    + This intention is being managed through an Intention Custom Resource in your Kubernetes cluster. It is view only in the UI. +

    + + <:actions as |Actions|> + + + View + + + + + Cancel + + + +
    +
  • {{/if}}
    diff --git a/ui/packages/consul-ui/app/components/informed-action/skin.scss b/ui/packages/consul-ui/app/components/informed-action/skin.scss index 0e1ab9c40..266eb5340 100644 --- a/ui/packages/consul-ui/app/components/informed-action/skin.scss +++ b/ui/packages/consul-ui/app/components/informed-action/skin.scss @@ -66,6 +66,13 @@ background-color: $yellow-050; } } + /* brands */ + &.kubernetes { + header::before { + @extend %with-logo-kubernetes-color-icon, %without-mask, %as-pseudo; + } + } + /**/ > ul > .action > * { color: $blue-500; } diff --git a/ui/packages/consul-ui/app/components/menu-panel/index.hbs b/ui/packages/consul-ui/app/components/menu-panel/index.hbs index a07a62866..b114d3876 100644 --- a/ui/packages/consul-ui/app/components/menu-panel/index.hbs +++ b/ui/packages/consul-ui/app/components/menu-panel/index.hbs @@ -2,7 +2,14 @@ {{#let (hash change=(action "change") ) as |api|}} -