diff --git a/assets/app/scripts/directives/nav.js b/assets/app/scripts/directives/nav.js index 3bdff43fcfd3..d2a21e7fa812 100644 --- a/assets/app/scripts/directives/nav.js +++ b/assets/app/scripts/directives/nav.js @@ -27,26 +27,44 @@ angular.module('openshiftConsole') }, templateUrl: 'views/_project-nav.html', link: function ($scope, element, attrs) { - // The double timeout is a hack to guarantee DOM is finished rendering - $timeout(function () { - $timeout(function () { - $('.selectpicker').selectpicker({ - iconBase: 'fa', - tickIcon: 'fa-check' - }).change(function() { - var newProject = $( this ).val(); - var currentURL = $location.url(); - var currProjRegex = /\/project\/[^\/]+/; - var currProjPrefix = currProjRegex.exec(currentURL); - var newURL = currentURL.replace(currProjPrefix, "/project/" + encodeURIComponent(newProject)); - $scope.$apply(function() { - $location.url(newURL); - }); - }); + var select = $('.selectpicker', element); - LabelFilter.setupFilterWidget($(".navbar-filter-widget", element), $(".active-filters", element)); - }, 0); - }, 0); + var updateOptions = function(projects) { + $each(projects, function(name, project) { + $(' + // + }; + + updateOptions($scope.projects); + + select.selectpicker({ + iconBase: 'fa', + tickIcon: 'fa-check' + }).change(function() { + var newProject = $( this ).val(); + var currentURL = $location.url(); + var currProjRegex = /\/project\/[^\/]+/; + var currProjPrefix = currProjRegex.exec(currentURL); + var newURL = currentURL.replace(currProjPrefix, "/project/" + encodeURIComponent(newProject)); + $scope.$apply(function() { + $location.url(newURL); + }); + }); + + LabelFilter.setupFilterWidget($(".navbar-filter-widget", element), $(".active-filters", element)); + + $scope.$watch("projects", function(projects) { + select.empty(); + updateOptions(projects); + select.selectpicker('refresh'); + }); } }; }) diff --git a/assets/app/views/_project-nav.html b/assets/app/views/_project-nav.html index f7259c08ee75..3bc54273eaa6 100644 --- a/assets/app/views/_project-nav.html +++ b/assets/app/views/_project-nav.html @@ -3,13 +3,7 @@
- +