@ -4,6 +4,7 @@ var plugins_params = default_params = {};
var plugins = [ ] ;
var defaultPlugin = { } ;
var gplugins = { } ;
var pipeline = [ ] ;
function replaceURLWithHTMLLinks ( text ) {
console . log ( 'Text: ' + text ) ;
@ -30,7 +31,10 @@ function hashchanged(){
function get _plugins ( response ) {
plugins = response . plugins ;
for ( ix in response . plugins ) {
plug = response . plugins [ ix ] ;
plugins [ plug . name ] = plug ;
}
}
function get _datasets ( response ) {
@ -83,10 +87,32 @@ function draw_plugins_selection(){
html += "</optgroup>"
// Two elements with plugin class
// One from the evaluate tab and another one from the analyse tab
document . getElementsByClassName ( 'plugin' ) [ 0 ] . innerHTML = html ;
document . getElementsByClassName ( 'plugin' ) [ 1 ] . innerHTML = html ;
plugin _lists = document . getElementsByClassName ( 'plugin' )
for ( element in plugin _lists ) {
plugin _lists [ element ] . innerHTML = html ;
}
draw _plugin _pipeline ( ) ;
}
function draw _plugin _pipeline ( ) {
var pipeHTML = "" ;
console . log ( "Drawing pipeline: " , pipeline ) ;
for ( ix in pipeline ) {
plug = pipeline [ ix ] ;
pipeHTML += '<span onclick="remove_plugin_pipeline(\'' + plug + '\')" class="btn btn-primary"><span ><i class="fa fa-minus"></i></span> ' + plug + '</span> <i class="fa fa-arrow-right"></i> ' ;
}
console . log ( pipeHTML ) ;
$ ( "#pipeline" ) . html ( pipeHTML ) ;
}
function remove _plugin _pipeline ( name ) {
console . log ( "Removing plugin: " , name ) ;
var index = pipeline . indexOf ( name ) ;
pipeline . splice ( index , 1 ) ;
draw _plugin _pipeline ( ) ;
}
function draw _plugins _list ( ) {
var availablePlugins = document . getElementById ( 'availablePlugins' ) ;
@ -105,6 +131,13 @@ function draw_plugins_list(){
}
}
function add _plugin _pipeline ( ) {
var selected = get _selected _plugin ( ) ;
pipeline . push ( selected ) ;
console . log ( "Adding " , selected ) ;
draw _plugin _pipeline ( ) ;
}
function draw _datasets ( ) {
html = "" ;
repeated _html = "<input class=\"checks-datasets\" type=\"checkbox\" value=\"" ;
@ -118,16 +151,20 @@ function draw_datasets(){
$ ( 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 ) ;
var response2 = JSON . parse ( $ . ajax ( { type : "GET" , url : "/api/datasets/" , async : false } ) . responseText ) ;
get _plugins ( response ) ;
get _default _parameters ( ) ;
get _datasets ( response2 ) ;
draw _plugins _list ( ) ;
draw _plugins _selection ( ) ;
draw _parameters ( ) ;
draw _datasets ( ) ;
draw _plugin _description ( ) ;
if ( evaluation _enabled ) {
var response2 = JSON . parse ( $ . ajax ( { type : "GET" , url : "/api/datasets/" , async : false } ) . responseText ) ;
get _datasets ( response2 ) ;
draw _datasets ( ) ;
}
$ ( window ) . on ( 'hashchange' , hashchanged ) ;
hashchanged ( ) ;
@ -144,17 +181,34 @@ function get_default_parameters(){
}
function get _selected _plugin ( ) {
return document . getElementsByClassName ( 'plugin' ) [ 0 ] . options [ document . getElementsByClassName ( 'plugin' ) [ 0 ] . selectedIndex ] . value ;
}
function draw _default _parameters ( ) {
var basic _params = document . getElementById ( "basic_params" ) ;
basic _params . innerHTML = params _div ( default _params ) ;
}
function update _params ( params , plug ) {
ep = plugins _params [ plug ] ;
for ( k in ep ) {
params [ k ] = ep [ k ] ;
}
return params
}
function draw _extra _parameters ( ) {
var plugin = document . getElementsByClassName ( 'plugin' ) [ 0 ] . options [ document . getElementsByClassName ( 'plugin' ) [ 0 ] . selectedIndex ] . value ;
var plugin = get _selected _plugin ( ) ;
get _parameters ( ) ;
var extra _params = document . getElementById ( "extra_params" ) ;
extra _params . innerHTML = params _div ( plugins _params [ plugin ] ) ;
var params = { } ;
for ( sel in pipeline ) {
update _params ( params , pipeline [ sel ] ) ;
}
update _params ( params , plugin ) ;
extra _params . innerHTML = params _div ( params ) ;
}
function draw _parameters ( ) {
@ -261,6 +315,15 @@ function add_param(key, value){
return "&" + key + "=" + value ;
}
function get _pipeline _arg ( ) {
arg = "" ;
for ( ix in pipeline ) {
arg = arg + pipeline [ ix ] + "," ;
}
arg = arg + get _selected _plugin ( ) ;
return arg ;
}
function load _JSON ( ) {
url = "/api" ;
@ -269,7 +332,9 @@ function load_JSON(){
rawcontainer . innerHTML = '' ;
container . innerHTML = '' ;
var plugin = document . getElementsByClassName ( "plugin" ) [ 0 ] . options [ document . getElementsByClassName ( "plugin" ) [ 0 ] . selectedIndex ] . value ;
var plugin = get _pipeline _arg ( ) ;
$ ( ".loading" ) . addClass ( "loader" ) ;
$ ( "#preview" ) . hide ( ) ;
var input = encodeURIComponent ( document . getElementById ( "input" ) . value ) ;
url += "?algo=" + plugin + "&i=" + input
@ -280,27 +345,27 @@ function load_JSON(){
url += add _param ( key , params [ key ] ) ;
}
var response = $ . ajax ( { type : "GET" , url : url , async : false } ) . responseText ;
rawcontainer . innerHTML = replaceURLWithHTMLLinks ( response ) ;
document . getElementById ( "input_request" ) . innerHTML = "<a href='" + url + "'>" + url + "</a>"
document . getElementById ( "results-div" ) . style . display = 'block' ;
try {
response = JSON . parse ( response ) ;
var options = {
mode: 'view'
} ;
var editor = new JSONEditor ( container , options , response ) ;
editor . expandAll ( ) ;
// $('#results-div a[href="#viewer"]').tab('show');
$ ( '#results-div a[href="#viewer"]' ) . click ( ) ;
// location.hash = 'raw';
}
catch ( err ) {
console . log ( "Error decoding JSON (got turtle?)" ) ;
$ ( '#results-div a[href="#raw"]' ) . click ( ) ;
// location.hash = 'raw';
}
$ . ajax ( { type : "GET" , url : url } ) . always ( function ( response ) {
document . getElementById ( "results-div" ) . style . display = 'block' ;
if ( typeof response == "object" ) {
var options = {
mode : 'view'
} ;
var editor = new JSONEditor ( container , options , response ) ;
editor . expandAll ( ) ;
$( '#results-div a[href="#viewer"]' ) . click ( ) ;
response = JSON . stringify ( response , null , 4 ) ;
} else {
console . log ( "Got turtle?" ) ;
$ ( '#results-div a[href="#raw"]' ) . click ( ) ;
}
rawcontainer . innerHTML = replaceURLWithHTMLLinks ( response ) ;
document . getElementById ( "input_request" ) . innerHTML = "<a href='" + url + "'>" + url + "</a>"
$ ( ".loading" ) . removeClass ( "loader" ) ;
$ ( "#preview" ) . show ( ) ;
} ) ;
}
function get _datasets _from _checkbox ( ) {
@ -347,40 +412,53 @@ function evaluate_JSON(){
url += "?algo=" + plugin + "&dataset=" + datasets
var response = $ . ajax ( { type : "GET" , url : url , async : false , dataType : 'json' } ) . responseText ;
rawcontainer . innerHTML = replaceURLWithHTMLLinks ( response ) ;
document . getElementById ( "input_request_eval" ) . innerHTML = "<a href='" + url + "'>" + url + "</a>"
document . getElementById ( "evaluate-div" ) . style . display = 'block' ;
try {
response = JSON . parse ( response ) ;
var options = {
mode : 'view'
} ;
//Control the single response results
if ( ! ( Array . isArray ( response . evaluations ) ) ) {
response . evaluations = [ response . evaluations ]
}
$ ( '#doevaluate' ) . attr ( "disabled" , true ) ;
$ . ajax ( { type : "GET" , url : url , dataType : 'json' } ) . done ( function ( resp ) {
$ ( '#doevaluate' ) . attr ( "disabled" , false ) ;
response = resp . responseText ;
new _tbody = create _body _metrics ( response . evaluations )
table . replaceChild ( new _tbody , table . lastElementChild )
rawcontainer . innerHTML = replaceURLWithHTMLLinks ( response ) ;
var editor = new JSONEditor ( container , options , response ) ;
editor . expandAll ( ) ;
// $('#results-div a[href="#viewer"]').tab('show');
$ ( '#evaluate-div a[href="#evaluate-table"]' ) . click ( ) ;
// location.hash = 'raw';
}
catch ( err ) {
console . log ( "Error decoding JSON (got turtle?)" ) ;
$ ( '#evaluate-div a[href="#evaluate-raw"]' ) . click ( ) ;
// location.hash = 'raw';
}
document . getElementById ( "input_request_eval" ) . innerHTML = "<a href='" + url + "'>" + url + "</a>"
document . getElementById ( "evaluate-div" ) . style . display = 'block' ;
try {
response = JSON . parse ( response ) ;
var options = {
mode : 'view'
} ;
//Control the single response results
if ( ! ( Array . isArray ( response . evaluations ) ) ) {
response . evaluations = [ response . evaluations ]
}
}
new _tbody = create _body _metrics ( response . evaluations )
table . replaceChild ( new _tbody , table . lastElementChild )
var editor = new JSONEditor ( container , options , response ) ;
editor . expandAll ( ) ;
// $('#results-div a[href="#viewer"]').tab('show');
$ ( '#evaluate-div a[href="#evaluate-table"]' ) . click ( ) ;
// location.hash = 'raw';
}
catch ( err ) {
console . log ( "Error decoding JSON (got turtle?)" ) ;
$ ( '#evaluate-div a[href="#evaluate-raw"]' ) . click ( ) ;
// location.hash = 'raw';
}
} )
}
function draw _plugin _description ( ) {
var plugin = plugins [ get _selected _plugin ( ) ] ;
$ ( "#plugdescription" ) . text ( plugin . description ) ;
console . log ( plugin ) ;
}
function plugin _selected ( ) {
draw _extra _parameters ( ) ;
draw _plugin _description ( ) ;
}