diff --git a/dashboard-ui/scripts/plugincatalogpage.js b/dashboard-ui/scripts/plugincatalogpage.js
index ecc41ac715..1fa5fa4cf4 100644
--- a/dashboard-ui/scripts/plugincatalogpage.js
+++ b/dashboard-ui/scripts/plugincatalogpage.js
@@ -15,20 +15,39 @@
var promise2 = ApiClient.getInstalledPlugins();
$.when(promise1, promise2).done(function (response1, response2) {
- populateList(page, response1[0], response2[0]);
+ populateList({
+
+ catalogElement: $('#pluginTiles', page),
+ noItemsElement: $("#noPlugins", page),
+ availablePlugins: response1[0],
+ installedPlugins: response2[0]
+
+ });
});
}
- function populateList(page, availablePlugins, installedPlugins) {
+ function populateList(options) {
- Dashboard.showLoadingMsg();
+ var availablePlugins = options.availablePlugins;
+ var installedPlugins = options.installedPlugins;
availablePlugins = availablePlugins.filter(function (p) {
+
+ p.category = p.category || "General";
+ p.categoryDisplayName = Globalize.translate('PluginCategory' + p.category.replace(' ', ''));
+
+ if (options.categories) {
+ if (options.categories.indexOf(p.category) == -1) {
+ return false;
+ }
+ }
+
return p.type == "UserInstalled";
+
}).sort(function (a, b) {
- var aName = (a.category || "General") + " " + a.name;
- var bame = (b.category || "General") + " " + b.name;
+ var aName = (a.category) + " " + a.name;
+ var bame = (b.category) + " " + b.name;
return aName > bame ? 1 : -1;
});
@@ -41,17 +60,19 @@
var html = '';
var plugin = availablePlugins[i];
- var category = plugin.category || "General";
+ var category = plugin.categoryDisplayName;
if (category != currentCategory) {
- if (currentCategory) {
- html += '
';
- html += '
';
- html += '
';
- }
+ if (options.showCategory !== false) {
+ if (currentCategory) {
+ html += '
';
+ html += '
';
+ html += '
';
+ }
- html += '