diff --git a/senpy/static/js/main.js b/senpy/static/js/main.js index 0ced642..e676504 100644 --- a/senpy/static/js/main.js +++ b/senpy/static/js/main.js @@ -31,51 +31,65 @@ $(document).ready(function() { html=""; var availablePlugins = document.getElementById('availablePlugins'); plugins = response.plugins; - for (r in plugins){ - plugin = plugins[r] - if (plugin["name"]){ - if (plugin["name"] == defaultPlugin["name"]){ - if (plugin["is_activated"]){ - html+= "" - }else{ - html+= "" - } - } - else{ - if (plugin["is_activated"]){ - html+= "" - } - else{ - html+= "" - } - } - } - if (plugin["extra_params"]){ - plugins_params[plugin["name"]]={}; - for (param in plugin["extra_params"]){ - if (typeof plugin["extra_params"][param] !="string"){ - var params = new Array(); - var alias = plugin["extra_params"][param]["aliases"][0]; - params[alias]=new Array(); - for (option in plugin["extra_params"][param]["options"]){ - params[alias].push(plugin["extra_params"][param]["options"][option]) - } - plugins_params[plugin["name"]][alias] = (params[alias]) - } - } - } - var pluginList = document.createElement('li'); - - newHtml = "" - if(plugin.url) { - newHtml= "" + plugin.name + ""; - }else { - newHtml= plugin["name"]; - } - newHtml += ": " + replaceURLWithHTMLLinks(plugin.description); - pluginList.innerHTML = newHtml; - availablePlugins.appendChild(pluginList) - } + gplugins = {}; + for (r in plugins){ + ptype = plugins[r]['@type']; + if(gplugins[ptype] == undefined){ + gplugins[ptype] = [r] + }else{ + gplugins[ptype].push(r) + } + } + for (g in gplugins){ + html += "" + for (r in gplugins[g]){ + plugin = plugins[r] + if (plugin["name"]){ + if (plugin["name"] == defaultPlugin["name"]){ + if (plugin["is_activated"]){ + html+= "" + }else{ + html+= "" + } + } + else{ + if (plugin["is_activated"]){ + html+= "" + } + else{ + html+= "" + } + } + } + + if (plugin["extra_params"]){ + plugins_params[plugin["name"]]={}; + for (param in plugin["extra_params"]){ + if (typeof plugin["extra_params"][param] !="string"){ + var params = new Array(); + var alias = plugin["extra_params"][param]["aliases"][0]; + params[alias]=new Array(); + for (option in plugin["extra_params"][param]["options"]){ + params[alias].push(plugin["extra_params"][param]["options"][option]) + } + plugins_params[plugin["name"]][alias] = (params[alias]) + } + } + } + var pluginList = document.createElement('li'); + + newHtml = "" + if(plugin.url) { + newHtml= "" + plugin.name + ""; + }else { + newHtml= plugin["name"]; + } + newHtml += ": " + replaceURLWithHTMLLinks(plugin.description); + pluginList.innerHTML = newHtml; + availablePlugins.appendChild(pluginList) + } + html += "" + } document.getElementById('plugins').innerHTML = html; change_params();