diff --git a/openstack_dashboard/static/dashboard/scss/components/_context_selection.scss b/openstack_dashboard/static/dashboard/scss/components/_context_selection.scss
deleted file mode 100644
index 1f52e7c0c..000000000
--- a/openstack_dashboard/static/dashboard/scss/components/_context_selection.scss
+++ /dev/null
@@ -1,51 +0,0 @@
-.context-selection {
- & > li > ul {
- padding: 0;
-
- & > li {
- white-space: nowrap;
-
- &.dropdown-header,
- & > a {
- padding: $dropdown-item-padding-vertical $dropdown-item-padding-horizontal $dropdown-item-padding-vertical $dropdown-item-padding-horizontal*1.5;
- }
-
- &.dropdown-header {
- color: $brand-primary;
- }
-
- &:not(.dropdown-header):hover {
- background-color: $dropdown-link-hover-bg;
- cursor: pointer;
- }
-
- & > a {
- position: relative;
- color: $dropdown-link-color;
- text-decoration: none;
- display: inline-block;
- width: 100%;
-
- & > .fa.fa-check {
- float: left;
- position: absolute;
- left: $dropdown-item-padding-horizontal/2;
- line-height: $line-height-computed;
- }
- }
- }
- }
-
- .disabled {
- cursor: not-allowed;
- color: $dropdown-link-disabled-color;
- }
-}
-
-.context-delimiter {
- font-size: $padding-small-vertical;
- vertical-align: middle;
- padding-right: $padding-small-vertical;
- padding-left: $padding-small-vertical;
-}
-
diff --git a/openstack_dashboard/static/dashboard/scss/components/_navbar.scss b/openstack_dashboard/static/dashboard/scss/components/_navbar.scss
index ee36b789b..c9c2e7ead 100644
--- a/openstack_dashboard/static/dashboard/scss/components/_navbar.scss
+++ b/openstack_dashboard/static/dashboard/scss/components/_navbar.scss
@@ -32,3 +32,9 @@
}
}
+.context-delimiter {
+ font-size: $padding-small-vertical;
+ vertical-align: middle;
+ padding-right: $padding-small-vertical;
+ padding-left: $padding-small-vertical;
+}
diff --git a/openstack_dashboard/static/dashboard/scss/components/_selection_menu.scss b/openstack_dashboard/static/dashboard/scss/components/_selection_menu.scss
new file mode 100644
index 000000000..43ef7ccbb
--- /dev/null
+++ b/openstack_dashboard/static/dashboard/scss/components/_selection_menu.scss
@@ -0,0 +1,52 @@
+// FYI Note (hurgleburgler)
+// The Selection Menu is not a normal drop down element
+// This menu can contain other dropdown menus, and will
+// treat them as a selection group element.
+// The context menu shows this functionality.
+// This drop down is composed of other
drop down lists.
+// Because of this fact, it is necessary to inherit
+// class="dropdown" for the children elements to obtain
+// their necessary styles, but we must remove the default
+// styles for .dropdown on the inner itself.
+
+.selection-menu {
+
+ // Pass along the style of a disabled anchor
+ .disabled {
+ cursor: not-allowed;
+ color: $dropdown-link-disabled-color;
+ }
+
+ // Remove all styles from an inside dropdown
+ .dropdown-menu {
+ border: medium none;
+ box-shadow: none;
+ display: block;
+ position: relative;
+ float: none;
+
+ // Remove any possible arrows on the dropdown box
+ &:before,
+ &:after {
+ border: none;
+ position: relative;
+ }
+
+ // Pad the icon with 2 * icon size
+ & > li > a {
+ padding-left: 2em;
+ }
+ }
+
+ // Hide the icon by default if its not selected
+ .dropdown-selected-icon {
+ display: none;
+ }
+
+ .dropdown-selected .dropdown-selected-icon {
+ display: inline;
+ position: absolute;
+ left: .5em;
+ line-height: $line-height-computed;
+ }
+}
diff --git a/openstack_dashboard/static/dashboard/scss/horizon.scss b/openstack_dashboard/static/dashboard/scss/horizon.scss
index 92b26483f..0766f4cb7 100644
--- a/openstack_dashboard/static/dashboard/scss/horizon.scss
+++ b/openstack_dashboard/static/dashboard/scss/horizon.scss
@@ -20,7 +20,6 @@
// Dashboard Components
@import "components/bar_charts";
@import "components/charts";
-@import "components/context_selection";
@import "components/datepicker";
@import "components/forms";
@import "components/inline_edit";
@@ -35,6 +34,7 @@
@import "components/quota";
@import "components/resource_browser";
@import "components/resource_topology";
+@import "components/selection_menu";
@import "components/sidebar";
@import "components/table_actions";
@import "components/tables";
diff --git a/openstack_dashboard/templates/context_selection/_domain_list.html b/openstack_dashboard/templates/context_selection/_domain_list.html
index 1e01e5ce0..e7576b0c2 100644
--- a/openstack_dashboard/templates/context_selection/_domain_list.html
+++ b/openstack_dashboard/templates/context_selection/_domain_list.html
@@ -1,11 +1,13 @@
{% load i18n %}
-
+
diff --git a/openstack_dashboard/templates/context_selection/_project_list.html b/openstack_dashboard/templates/context_selection/_project_list.html
index 1b5ed9a27..25c2eab19 100644
--- a/openstack_dashboard/templates/context_selection/_project_list.html
+++ b/openstack_dashboard/templates/context_selection/_project_list.html
@@ -1,15 +1,17 @@
{% load i18n %}
{% with dashboard_url=request.horizon.dashboard.get_absolute_url %}
-