diff --git a/ui/scripts/plugins.js b/ui/scripts/plugins.js index 50da509eaa8..afeae7c7eaf 100644 --- a/ui/scripts/plugins.js +++ b/ui/scripts/plugins.js @@ -51,7 +51,8 @@ }, addSection: function(section) { cloudStack.sections[section.id] = $.extend(section, { - customIcon: 'plugins/' + section.id + '/icon.png' + customIcon: 'plugins/' + section.id + '/icon.png', + isPlugin: true }); }, extend: function(obj) { diff --git a/ui/scripts/ui-custom/pluginListing.js b/ui/scripts/ui-custom/pluginListing.js index 1d4a090ff2b..e679c626526 100644 --- a/ui/scripts/ui-custom/pluginListing.js +++ b/ui/scripts/ui-custom/pluginListing.js @@ -52,6 +52,14 @@ var $browser = $('#browser .container'); $plugin.click(function() { + var $mainSection = $('#navigation ul li').filter('.' + plugin.id); + + if ($mainSection.size()) { + $mainSection.click(); + + return; + } + $browser.cloudBrowser('addPanel', { title: plugin.title, $parent: $('.panel:first'), diff --git a/ui/scripts/ui/core.js b/ui/scripts/ui/core.js index 2ae0b64a5d4..06be12b7b6b 100644 --- a/ui/scripts/ui/core.js +++ b/ui/scripts/ui/core.js @@ -61,6 +61,10 @@ ); } + if (args.isPlugin) { + $li.hide(); + } + $li.appendTo($navList); return true; @@ -84,18 +88,25 @@ return $(this).hasClass(sectionID); }); var data = args.sections[sectionID]; + var isPlugin = data.isPlugin; data.$browser = $browser; - $navItem.siblings().removeClass('active'); - $navItem.addClass('active'); // Reset browser panels - $browser.cloudBrowser('removeAllPanels'); + if (!isPlugin) { + $navItem.siblings().removeClass('active'); + $navItem.addClass('active'); + $browser.cloudBrowser('removeAllPanels'); + } + $browser.cloudBrowser('addPanel', { title: '' + _l(data.title) + '' + '', data: '', complete: function($panel, $breadcrumb) { - $breadcrumb.attr('title', _l(data.title)); + if(!isPlugin) { + $breadcrumb.attr('title', _l(data.title)); + } + data.$breadcrumb = $breadcrumb; // Hide breadcrumb if this is the home section