Skip to content
Snippets Groups Projects
Commit 92b76646 authored by alvaro's avatar alvaro
Browse files

From now, the GUI will run queries using LODSPeaKr internal mechanism rather than AJAX requests.

This decision was made based on the lack of CORS-enabled SPARQL endpoints, which difficults the use of client-base queries.
parent cf73a43d
No related branches found
No related tags found
No related merge requests found
......@@ -3,7 +3,7 @@ LODSPeaKr
author: Alvaro Graves (alvaro@graves.cl)
version: 20121107
version: 20121218
[LODSPeaKr](http://lodspeakr.org) is a framework for creating Linked Data applications in a simple and easy way. You can see [several applications](http://alangrafu.github.com/lodspeakr/applications.html) created using LODSPeaKr.
......
......@@ -559,7 +559,7 @@ class AdminModule extends abstractModule{
$selected = "";
if($k == "local")
$selected = 'selected';
$endpointOptions .= "<option $selected value='$v'>$k ($v)</option>";
$endpointOptions .= "<option $selected value='$k'>$k ($v)</option>";
}
$namespaces = "var ns = ".json_encode($conf['ns']);
$lastComponentType="";
......@@ -688,12 +688,41 @@ class AdminModule extends abstractModule{
}else{
HTTPStatus::send404($params[1]);
}
break;
break;
case "query":
$this->queryEndpoint($_POST);
break;
default:
HTTPStatus::send404($params[1]);
}
}
protected function queryEndpoint($data){
global $endpoints;
global $conf;
$query = $data['query'];
$endpoint = $data['endpoint'];
if(isset($endpoint) && isset($conf['endpoint'][$endpoint])){
if(!isset($endpoints[$endpoint])){
$e = new Endpoint($conf['endpoint'][$endpoint], $conf['endpoint']['config']);
}else{
$e = $endpoints[$endpoint];
}
$aux = $e->query($query, Utils::getResultsType($query));
header("Content-type: ".$data['format']);
$jaux = json_encode($aux);
if(isset($jaux)){
echo $jaux;
}else{
echo $aux;
HTTPStatus::send404($params[1]);
}
}else{
echo "no endpoint";
HTTPStatus::send404($params[1]);
}
}
protected function getComponentDetails($params){
$componentType = $params[0];
$componentName = $params[1];
......
<?php
$conf['version'] = '20121107';
$conf['version'] = '20121218';
$conf['output']['select'] = 'json';
$conf['output']['ask'] = 'json';
$conf['output']['describe'] = 'rdf';
......
......@@ -247,37 +247,43 @@ $(document).ready(function(){
function executeQuery(q, e){
return $.ajax({
type: 'POST',
data: {
query: q,
endpoint: e,
format: 'application/sparql-results+json'
},
url: e,
url: 'components/query',
success: function(d){
var data = d;
if($.isXMLDoc(d)){
alert("XML");
console.log(d);
data = d.sparql;//$.parseXML();
console.log(data);
if(data == undefined){
$("#results-msg").html("An error occurred when sending a query to the endpoint").show().delay(2000).fadeOut("slow");
}else{
if($.isXMLDoc(d)){
alert("XML");
console.log(d);
data = d.sparql;//$.parseXML();
console.log(data);
}
var variables = new Array();
var header = $("<tr></tr>");
$(data.head.vars).each(function(i, item){
variables.push(item);
header.append("<td><strong>"+item+"</strong></td>");
});
$("#results").append(header);
$(data.results.bindings).each(function(i, item){
var row = $("<tr></tr>");
$.each(variables, function(j, jtem){
var value = "";
if(item[jtem] != undefined){
value = item[jtem].value;
}
row.append("<td>"+value+"</td>");
});
$("#results").append(row);
});
}
var variables = new Array();
var header = $("<tr></tr>");
$(data.head.vars).each(function(i, item){
variables.push(item);
header.append("<td><strong>"+item+"</strong></td>");
});
$("#results").append(header);
$(data.results.bindings).each(function(i, item){
var row = $("<tr></tr>");
$.each(variables, function(j, jtem){
var value = "";
if(item[jtem] != undefined){
value = item[jtem].value;
}
row.append("<td>"+value+"</td>");
});
$("#results").append(row);
});
$("#query-test-button").addClass('btn-success').html('Test this query against');
},
error: function(e){
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment