From 4de4a0f3dd8db48c2cd3f2367e9970b9ca5561b0 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Tue, 7 Jul 2015 15:01:12 +0530 Subject: [PATCH] CLOUDSTACK-8621: Allow UI plugins to be shown on navigation bar Introduces a boolean option in UI plugins setting it to 'true' would display the UI plugin on the left navigation bar. Signed-off-by: Rohit Yadav This closes #563 (cherry picked from commit 7c206c30a58471ecb8ffafc3627ad296d0b06538) Signed-off-by: Rohit Yadav --- ui/plugins/testPlugin/testPlugin.js | 1 + ui/scripts/cloudStack.js | 9 ++++++--- ui/scripts/ui/core.js | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ui/plugins/testPlugin/testPlugin.js b/ui/plugins/testPlugin/testPlugin.js index e340ae5b8ec..66ce56f8d3a 100644 --- a/ui/plugins/testPlugin/testPlugin.js +++ b/ui/plugins/testPlugin/testPlugin.js @@ -19,6 +19,7 @@ plugin.ui.addSection({ id: 'testPlugin', title: 'TestPlugin', + showOnNavigation: true, preFilter: function(args) { return isAdmin(); }, diff --git a/ui/scripts/cloudStack.js b/ui/scripts/cloudStack.js index a701c410306..feb6e26628e 100644 --- a/ui/scripts/cloudStack.js +++ b/ui/scripts/cloudStack.js @@ -31,9 +31,12 @@ sections = ["dashboard", "instances", "storage", "network", "templates", "accounts", "events", "regions", "affinityGroups"]; } - if (cloudStack.plugins.length) { - sections.push('plugins'); - } + $.each(cloudStack.plugins, function(idx, plugin) { + if (cloudStack.sections.hasOwnProperty(plugin) && !cloudStack.sections[plugin].showOnNavigation) { + sections.push('plugins'); + return false; + } + }); return sections; }, diff --git a/ui/scripts/ui/core.js b/ui/scripts/ui/core.js index 6912d1b32ef..e64f386b2c0 100644 --- a/ui/scripts/ui/core.js +++ b/ui/scripts/ui/core.js @@ -61,7 +61,7 @@ ); } - if (args.isPlugin) { + if (args.isPlugin && !args.showOnNavigation) { $li.hide(); } @@ -88,7 +88,7 @@ return $(this).hasClass(sectionID); }); var data = args.sections[sectionID]; - var isPlugin = data.isPlugin; + var isPlugin = data.isPlugin && !data.showOnNavigation; data.$browser = $browser;