diff --git a/dashboard-ui/scripts/plugincatalogpage.js b/dashboard-ui/scripts/plugincatalogpage.js index d786a2e2a6..73b6215611 100644 --- a/dashboard-ui/scripts/plugincatalogpage.js +++ b/dashboard-ui/scripts/plugincatalogpage.js @@ -45,7 +45,7 @@ var availablePlugins = options.availablePlugins; var installedPlugins = options.installedPlugins; - availablePlugins = availablePlugins.filter(function (p) { + var allPlugins = availablePlugins.filter(function (p) { p.category = p.category || "General"; p.categoryDisplayName = Globalize.translate('PluginCategory' + p.category.replace(' ', '')); @@ -64,21 +64,74 @@ return p.type == "UserInstalled"; - }).sort(function (a, b) { - - var aName = (a.category) + " " + a.name; - var bame = (b.category) + " " + b.name; - - return aName > bame ? 1 : -1; }); - var pluginhtml = ''; + availablePlugins = allPlugins.sort(function (a, b) { - var currentCategory; + var aName = (a.category); + var bName = (b.category); - for (var i = 0, length = availablePlugins.length; i < length; i++) { - var html = ''; - var plugin = availablePlugins[i]; + if (aName > bName) { + return 1; + } + if (bName > aName) { + return -1; + } + + aName = (a.name); + bName = (b.name); + + if (aName > bName) { + return 1; + } + if (bName > aName) { + return -1; + } + + if (a.installs > b.installs) { + return 1; + } + if (b.installs > a.installs) { + return -1; + } + + return 0; + }); + + var html = ''; + var i, length, plugin; + + var currentCategory = Globalize.translate('HeaderTopPlugins'); + html += '