diff --git a/awx/ui/static/img/PortalMode--exit.svg b/awx/ui/static/img/PortalMode--exit.svg
new file mode 100644
index 0000000000..747a7f741b
--- /dev/null
+++ b/awx/ui/static/img/PortalMode--exit.svg
@@ -0,0 +1,16 @@
+
+
\ No newline at end of file
diff --git a/awx/ui/static/js/main-menu/main-menu.directive.js b/awx/ui/static/js/main-menu/main-menu.directive.js
index 2272e4c102..a9c0e1e2d9 100644
--- a/awx/ui/static/js/main-menu/main-menu.directive.js
+++ b/awx/ui/static/js/main-menu/main-menu.directive.js
@@ -12,6 +12,7 @@ function link(scope, element, attrs) {
scope.$watch(function(scope) {
return scope.$eval(scope.style);
}, function(value) {
+ console.log('changed', scope.$eval(scope.style));
scope.menuStylePartialUrl = getMenuStylePartialUrl(value);
});
}
diff --git a/awx/ui/static/js/main-menu/main.js b/awx/ui/static/js/main-menu/main.js
index 722c6dd62d..c53ad3d653 100644
--- a/awx/ui/static/js/main-menu/main.js
+++ b/awx/ui/static/js/main-menu/main.js
@@ -1,7 +1,9 @@
import mainMenu from './main-menu.directive';
import menuItem from './menu-item.directive';
+import portalModeLink from './portal-mode-link.directive';
export default
angular.module('mainMenu', [])
+ .directive('portalModeLink', portalModeLink)
.directive('menuItem', menuItem)
.directive('mainMenu', mainMenu);
diff --git a/awx/ui/static/js/main-menu/menu-default.partial.html b/awx/ui/static/js/main-menu/menu-default.partial.html
index ad551cb1ed..1b63eaa40d 100644
--- a/awx/ui/static/js/main-menu/menu-default.partial.html
+++ b/awx/ui/static/js/main-menu/menu-default.partial.html
@@ -20,7 +20,7 @@
-
+
diff --git a/awx/ui/static/js/main-menu/menu-minimal.partial.html b/awx/ui/static/js/main-menu/menu-minimal.partial.html
index c79ad8a59e..f01c22f2d1 100644
--- a/awx/ui/static/js/main-menu/menu-minimal.partial.html
+++ b/awx/ui/static/js/main-menu/menu-minimal.partial.html
@@ -4,9 +4,6 @@
Portal
-
+
-
-
-
diff --git a/awx/ui/static/js/main-menu/portal-mode-link.directive.js b/awx/ui/static/js/main-menu/portal-mode-link.directive.js
new file mode 100644
index 0000000000..96079c8842
--- /dev/null
+++ b/awx/ui/static/js/main-menu/portal-mode-link.directive.js
@@ -0,0 +1,26 @@
+function wrapper(rootScope) {
+ return function compile(element, attrs) {
+ var href, title, icon;
+ if (rootScope.portalMode) {
+ href = '#';
+ title = 'Exit Portal Mode';
+ icon = 'PortalMode--exit.svg';
+ } else {
+ href = '#portal';
+ title = 'Portal Mode';
+ icon = 'PortalMode.svg';
+ }
+
+ element
+ .attr('href', href)
+ .attr('title', title)
+ .find('>img')
+ .attr('src', '/static/img/' + icon);
+ }
+}
+
+export default ['$rootScope', function($rootScope) {
+ return {
+ compile: wrapper($rootScope)
+ };
+}]
diff --git a/awx/ui/static/js/shared/include-partial/include-partial.directive.js b/awx/ui/static/js/shared/include-partial/include-partial.directive.js
new file mode 100644
index 0000000000..91e2f351f2
--- /dev/null
+++ b/awx/ui/static/js/shared/include-partial/include-partial.directive.js
@@ -0,0 +1,64 @@
+// Typically ng-include requires the use of an extra tag like:
+//
+//
Item 1
+//Item 2
+//Item 3
+// +// When theItem 1
+//Item 2
+//Item 3
+//