diff --git a/ui/scripts/ui/core.js b/ui/scripts/ui/core.js index 40e337b4eb7..f35c27c7196 100644 --- a/ui/scripts/ui/core.js +++ b/ui/scripts/ui/core.js @@ -70,17 +70,20 @@ return $(this).hasClass(sectionID); }); var data = args.sections[sectionID]; + data.$browser = $browser; - $navItem.siblings().removeClass('active'); $navItem.addClass('active'); // Reset browser panels $browser.cloudBrowser('removeAllPanels'); $browser.cloudBrowser('addPanel', { - title: _l(data.title), + title: '' + _l(data.title) + '' + '', data: '', - complete: function($panel) { + complete: function($panel, $breadcrumb) { + $breadcrumb.attr('title', _l(data.title)); + data.$breadcrumb = $breadcrumb; + // Hide breadcrumb if this is the home section if (args.home === sectionID) { $('#breadcrumbs').find('li:first, div.end:last').hide(); diff --git a/ui/scripts/ui/widgets/cloudBrowser.js b/ui/scripts/ui/widgets/cloudBrowser.js index 2ec0a199690..0f2d8f380a6 100644 --- a/ui/scripts/ui/widgets/cloudBrowser.js +++ b/ui/scripts/ui/widgets/cloudBrowser.js @@ -17,41 +17,6 @@ * Breadcrumb-related functions */ var _breadcrumb = cloudStack.ui.widgets.browser.breadcrumb = { - fixSize: function($breadcrumbContainer) { - var width = 0; - var containerWidth = $breadcrumbContainer.width(); - var $elems = $breadcrumbContainer.find('ul li, div'); - - $elems.each(function() { - width += $(this).width(); - }); - - if (width > containerWidth) { - $elems.filter('li').each(function() { - var targetWidth = $(this).width() - ( - (width - containerWidth) / $elems.filter('li').size() - ) - 10; - - $(this).width(targetWidth); - - // Concatenate title - var $text = $(this).find('span'); - var text = $(this).attr('title'); - - $text.html( - text - .substring(0, text.length - targetWidth / 15) - .concat('...') - ); - }); - } else { - $elems.css({ width: '' }); - $elems.find('span').each(function() { - $(this).html($(this).closest('li').attr('title')); - }); - } - }, - /** * Generate new breadcrumb */ @@ -240,7 +205,6 @@ .removeClass('maximized') .addClass('reduced') ).removeClass('active maximized'); - _breadcrumb.fixSize($('#breadcrumbs')); $toRemove.animate( _panel.initialState($container), @@ -323,8 +287,6 @@ .addClass('active') .appendTo('#breadcrumbs ul'); - _breadcrumb.fixSize($('#breadcrumbs')); - // Reduced appearance for previous panels $panel.siblings().filter(function() { return $(this).index() < $panel.index(); @@ -345,7 +307,7 @@ $panel.css( { left: targetPosition } ); - if (args.complete) args.complete($panel); + if (args.complete) args.complete($panel, _breadcrumb.filter($panel)); } else { // Animate slide-in $panel.animate({ left: targetPosition }, { @@ -372,7 +334,6 @@ this.element.find('div.panel').remove(); $('#breadcrumbs').find('ul li').remove(); $('#breadcrumbs').find('ul div.end').remove(); - _breadcrumb.fixSize($('#breadcrumbs')); } }); diff --git a/ui/scripts/ui/widgets/listView.js b/ui/scripts/ui/widgets/listView.js index 3618c71320b..4ba43f47212 100644 --- a/ui/scripts/ui/widgets/listView.js +++ b/ui/scripts/ui/widgets/listView.js @@ -1115,6 +1115,18 @@ if (section) { listViewData = args.sections[section].listView; + + var sectionTitle = _l(args.title); + var subsectionTitle = _l(args.sections[section].title); + + // Show subsection in breadcrumb + if ((sectionTitle && subsectionTitle) && (sectionTitle != subsectionTitle)) { + args.$breadcrumb.find('span.subsection').html(' - ' + subsectionTitle); + args.$breadcrumb.attr('title', sectionTitle + ' - ' + subsectionTitle); + } else { + args.$breadcrumb.find('span.subsection').html(''); + args.$breadcrumb.attr('title', sectionTitle); + } } // Create table and other elems