diff --git a/awx/ui/client/legacy-styles/lists.less b/awx/ui/client/legacy-styles/lists.less
index 0dd92dbdff..38d1945e9b 100644
--- a/awx/ui/client/legacy-styles/lists.less
+++ b/awx/ui/client/legacy-styles/lists.less
@@ -173,6 +173,12 @@ table, tbody {
justify-content: flex-end;
display: flex;
margin-top: -10px;
+ margin-left: 10px;
+}
+
+.List-auxAction {
+ justify-content: flex-end;
+ display: flex;
}
.List-buttonSubmit {
diff --git a/awx/ui/client/src/activity-stream/main.js b/awx/ui/client/src/activity-stream/main.js
index 80e0ed1e53..381c421c87 100644
--- a/awx/ui/client/src/activity-stream/main.js
+++ b/awx/ui/client/src/activity-stream/main.js
@@ -7,10 +7,13 @@
import activityStreamRoute from './activitystream.route';
import activityStreamController from './activitystream.controller';
+import streamDropdownNav from './streamDropdownNav/stream-dropdown-nav.directive';
+
import streamDetailModal from './streamDetailModal/main';
export default angular.module('activityStream', [streamDetailModal.name])
.controller('activityStreamController', activityStreamController)
+ .directive('streamDropdownNav', streamDropdownNav)
.run(['$stateExtender', function($stateExtender) {
$stateExtender.addState(activityStreamRoute);
}]);
diff --git a/awx/ui/client/src/activity-stream/streamDropdownNav/stream-dropdown-nav.directive.js b/awx/ui/client/src/activity-stream/streamDropdownNav/stream-dropdown-nav.directive.js
new file mode 100644
index 0000000000..1652ab6e64
--- /dev/null
+++ b/awx/ui/client/src/activity-stream/streamDropdownNav/stream-dropdown-nav.directive.js
@@ -0,0 +1,46 @@
+/*************************************************
+ * Copyright (c) 2016 Ansible, Inc.
+ *
+ * All Rights Reserved
+ *************************************************/
+
+export default [function() {
+ return {
+ restrict: 'E',
+ scope: true,
+ replace: true,
+ template: '',
+ controller: ['$scope', '$state', function($scope, $state) {
+
+ $scope.streamTarget = ($state.params && $state.params.target) ? $state.params.target : 'dashboard';
+
+ $scope.options = [
+ {label: 'Credentials', value: 'credential'},
+ {label: 'Dashboard', value: 'dashboard'},
+ {label: 'Hosts', value: 'host'},
+ {label: 'Inventories', value: 'inventory'},
+ {label: 'Inventory Scripts', value: 'inventory_script'},
+ {label: 'Job Templates', value: 'job_template'},
+ {label: 'Management Jobs', value: 'management_job'},
+ {label: 'Organizations', value: 'organization'},
+ {label: 'Projects', value: 'project'},
+ {label: 'Schedules', value: 'schedule'},
+ {label: 'Teams', value: 'team'},
+ {label: 'Users', value: 'user'}
+ ];
+
+ $scope.changeStreamTarget = function(){
+
+ if($scope.streamTarget && $scope.streamTarget == 'dashboard') {
+ // Just navigate to the base activity stream
+ $state.go('activityStream', {}, {inherit: false, reload: true});
+ }
+ else {
+ // Attach the taget to the query parameters
+ $state.go('activityStream', {target: $scope.streamTarget});
+ }
+
+ }
+ }],
+ };
+}];
diff --git a/awx/ui/client/src/lists/Streams.js b/awx/ui/client/src/lists/Streams.js
index 1cc99c4d7c..b3dc97af84 100644
--- a/awx/ui/client/src/lists/Streams.js
+++ b/awx/ui/client/src/lists/Streams.js
@@ -19,6 +19,7 @@ export default
hover: true,
"class": "table-condensed",
searchWidgets: 3,
+ toolbarAuxAction: "