Commit aa54d1c9 authored by J. Fernando Sánchez's avatar J. Fernando Sánchez

Fix bugs in Web UI parameters

* Fixes #49
* Slightly cleaner javascript code
parent 869c00f7
...@@ -28,74 +28,70 @@ function hashchanged(){ ...@@ -28,74 +28,70 @@ function hashchanged(){
$(document).ready(function() { $(document).ready(function() {
var response = JSON.parse($.ajax({type: "GET", url: "/api/plugins/" , async: false}).responseText); var response = JSON.parse($.ajax({type: "GET", url: "/api/plugins/" , async: false}).responseText);
var defaultPlugin= JSON.parse($.ajax({type: "GET", url: "/api/plugins/default" , async: false}).responseText); var defaultPlugin= JSON.parse($.ajax({type: "GET", url: "/api/plugins/default" , async: false}).responseText);
html=""; html="";
var availablePlugins = document.getElementById('availablePlugins'); var availablePlugins = document.getElementById('availablePlugins');
plugins = response.plugins; plugins = response.plugins;
gplugins = {}; gplugins = {};
for (r in plugins){ for (r in plugins){
ptype = plugins[r]['@type']; ptype = plugins[r]['@type'];
if(gplugins[ptype] == undefined){ if(gplugins[ptype] == undefined){
gplugins[ptype] = [r] gplugins[ptype] = [r]
}else{ }else{
gplugins[ptype].push(r) gplugins[ptype].push(r)
}
} }
} for (g in gplugins){
for (g in gplugins){ html += "<optgroup label=\""+g+"\">"
html += "<optgroup label=\""+g+"\">" for (r in gplugins[g]){
for (r in gplugins[g]){ plugin = plugins[gplugins[g][r]]
plugin = plugins[r] if (!plugin["name"]){
if (plugin["name"]){ console.log("No name for plugin ", plugin);
if (plugin["name"] == defaultPlugin["name"]){ continue;
if (plugin["is_activated"]){
html+= "<option value=\""+plugin["name"]+"\" selected=\"selected\">"+plugin["name"]+"</option>"
}else{
html+= "<option value=\""+plugin["name"]+"\" selected=\"selected\" disabled=\"disabled\">"+plugin["name"]+"</option>"
}
}
else{
if (plugin["is_activated"]){
html+= "<option value=\""+plugin["name"]+"\">"+plugin["name"]+"</option>"
}
else{
html+= "<option value=\""+plugin["name"]+"\" disabled=\"disabled\">"+plugin["name"]+"</option>"
}
}
}
if (plugin["extra_params"]){ }
plugins_params[plugin["name"]]={}; html+= "<option value=\""+plugin["name"]+"\" "
for (param in plugin["extra_params"]){ if (plugin["name"] == defaultPlugin["name"]){
if (typeof plugin["extra_params"][param] !="string"){ html+= " selected=\"selected\""
var params = new Array(); }
var alias = plugin["extra_params"][param]["aliases"][0]; if (!plugin["is_activated"]){
params[alias]=new Array(); html+= " disabled=\"disabled\" "
for (option in plugin["extra_params"][param]["options"]){ }
params[alias].push(plugin["extra_params"][param]["options"][option]) html+=">"+plugin["name"]+"</option>"
} }
plugins_params[plugin["name"]][alias] = (params[alias])
} if (plugin["extra_params"]){
} plugins_params[plugin["name"]]={};
} for (param in plugin["extra_params"]){
var pluginList = document.createElement('li'); if (typeof plugin["extra_params"][param] !="string"){
var params = new Array();
newHtml = "" var alias = plugin["extra_params"][param]["aliases"][0];
if(plugin.url) { params[alias]=new Array();
newHtml= "<a href="+plugin.url+">" + plugin.name + "</a>"; for (option in plugin["extra_params"][param]["options"]){
}else { params[alias].push(plugin["extra_params"][param]["options"][option])
newHtml= plugin["name"]; }
} plugins_params[plugin["name"]][alias] = (params[alias])
newHtml += ": " + replaceURLWithHTMLLinks(plugin.description); }
pluginList.innerHTML = newHtml; }
availablePlugins.appendChild(pluginList) }
} var pluginEntry = document.createElement('li');
html += "</optgroup>"
} newHtml = ""
if(plugin.url) {
newHtml= "<a href="+plugin.url+">" + plugin.name + "</a>";
}else {
newHtml= plugin["name"];
}
newHtml += ": " + replaceURLWithHTMLLinks(plugin.description);
pluginEntry.innerHTML = newHtml;
availablePlugins.appendChild(pluginEntry)
}
html += "</optgroup>"
document.getElementById('plugins').innerHTML = html; document.getElementById('plugins').innerHTML = html;
change_params(); change_params();
$(window).on('hashchange', hashchanged); $(window).on('hashchange', hashchanged);
hashchanged(); hashchanged();
$('.tooltip-form').tooltip(); $('.tooltip-form').tooltip();
}); });
...@@ -154,10 +150,11 @@ function load_JSON(){ ...@@ -154,10 +150,11 @@ function load_JSON(){
url += "?algo="+plugin+"&i="+input url += "?algo="+plugin+"&i="+input
for (param in plugins_params[plugin]){ for (param in plugins_params[plugin]){
if (param != null){ if (param != null){
if (plugins_params[plugin].length > 0){ field = document.getElementById(param);
var param_value = encodeURIComponent(document.getElementById(param).options[document.getElementById(param).selectedIndex].text); if (plugins_params[plugin][param].length > 0){
var param_value = encodeURIComponent(field.options[field.selectedIndex].text);
} else { } else {
var param_value = encodeURIComponent(document.getElementById(param).value); var param_value = encodeURIComponent(field.text);
} }
if (param_value !== "undefined" && param_value.length > 0){ if (param_value !== "undefined" && param_value.length > 0){
url+="&"+param+"="+param_value url+="&"+param+"="+param_value
...@@ -167,7 +164,7 @@ function load_JSON(){ ...@@ -167,7 +164,7 @@ function load_JSON(){
for (param in default_params){ for (param in default_params){
if ((param != null) && (default_params[param]['options']) && (['help','conversion'].indexOf(param) < 0)){ if ((param != null) && (default_params[param]['options']) && (['help','conversion'].indexOf(param) < 0)){
var param_value = encodeURIComponent(document.getElementById(param).options[document.getElementById(param).selectedIndex].text); var param_value = encodeURIComponent(document.getElementById(param).options[document.getElementById(param).selectedIndex].value);
if (param_value){ if (param_value){
url+="&"+param+"="+param_value url+="&"+param+"="+param_value
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment