var ONYX = "http://www.gsi.dit.upm.es/ontologies/onyx/ns#"; var RDF_TYPE = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"; var plugins_params = default_params = {}; var plugins = []; var defaultPlugin = {}; var gplugins = {}; function replaceURLWithHTMLLinks(text) { console.log('Text: ' + text); var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; return text.replace(exp,'$1'); } function encodeHTML(text) { return text.replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); }; function hashchanged(){ var hash = location.hash , hashPieces = hash.split('?'); if( hashPieces[0].length > 0 ){ activeTab = $('[href=' + hashPieces[0] + ']'); activeTab && activeTab.tab('show'); } } function get_plugins(response){ plugins = response.plugins; } function group_plugins(){ for (r in plugins){ ptype = plugins[r]['@type']; if(gplugins[ptype] == undefined){ gplugins[ptype] = [r]; }else{ gplugins[ptype].push(r); } } } function get_parameters(){ for (p in plugins){ plugin = plugins[p]; if (plugin["extra_params"]){ plugins_params[plugin["name"]] = plugin["extra_params"]; } } } function draw_plugins_selection(){ html=""; group_plugins(); for (g in gplugins){ html += "" for (r in gplugins[g]){ plugin = plugins[gplugins[g][r]] if (!plugin["name"]){ console.log("No name for plugin ", plugin); continue; } html+= "" document.getElementById('plugins').innerHTML = html; } function draw_plugins_list(){ var availablePlugins = document.getElementById('availablePlugins'); for(p in plugins){ var pluginEntry = document.createElement('li'); plugin = plugins[p]; newHtml = "" if(plugin.url) { newHtml= "" + plugin.name + ""; }else { newHtml= plugin["name"]; } newHtml += ": " + replaceURLWithHTMLLinks(plugin.description); pluginEntry.innerHTML = newHtml; availablePlugins.appendChild(pluginEntry) } } $(document).ready(function() { var response = JSON.parse($.ajax({type: "GET", url: "/api/plugins/" , async: false}).responseText); defaultPlugin= JSON.parse($.ajax({type: "GET", url: "/api/plugins/default" , async: false}).responseText); get_plugins(response); get_default_parameters(); draw_plugins_list(); draw_plugins_selection(); draw_parameters(); $(window).on('hashchange', hashchanged); hashchanged(); $('.tooltip-form').tooltip(); }); function get_default_parameters(){ default_params = JSON.parse($.ajax({type: "GET", url: "/api?help=true" , async: false}).responseText).valid_parameters; // Remove the parameters that are always added delete default_params["input"]; delete default_params["algorithm"]; delete default_params["help"]; } function draw_default_parameters(){ var basic_params = document.getElementById("basic_params"); basic_params.innerHTML = params_div(default_params); } function draw_extra_parameters(){ var plugin = document.getElementById("plugins").options[document.getElementById("plugins").selectedIndex].value; get_parameters(); var extra_params = document.getElementById("extra_params"); extra_params.innerHTML = params_div(plugins_params[plugin]); } function draw_parameters(){ draw_default_parameters(); draw_extra_parameters(); } function add_default_params(){ var html = ""; // html += 'Basic API parameters'; html += ''; html += '