author | ymh <ymh.work@gmail.com> |
Mon, 31 Oct 2016 14:24:23 +0100 | |
changeset 386 | c731ab9b934d |
child 387 | 7fba86fa8604 |
permissions | -rw-r--r-- |
386
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
1 |
// sparql edit function |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
2 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
3 |
// ASK, null |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
4 |
const ASK_RESULT_FORMAT = [ |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
5 |
["HTML", "text/html"] |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
6 |
]; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
7 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
8 |
// SELECT |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
9 |
const SELECT_RESULT_FORMAT = [ |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
10 |
["HTML", "text/html"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
11 |
["SPARQL/CSV", "text/csv"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
12 |
["SPARQL/JSON", "application/sparql-results+json"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
13 |
["SPARQL/XML", "application/sparql-results+xml"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
14 |
["SPARQL/TSV", "text/tab-separated-values"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
15 |
["BINARY", "application/x-binary-rdf-results-table"] |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
16 |
]; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
17 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
18 |
// DESCRIBE,CONSTRUCT |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
19 |
const GRAPH_RESULT_FORMAT = [ |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
20 |
["HTML", "text/html"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
21 |
["N-Triples", "application/n-triples"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
22 |
["RDF/XML", "application/rdf+xml"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
23 |
["Turtle", "text/turtle"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
24 |
["N3", "text/n3"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
25 |
["RDF/JSON", "application/rdf+json"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
26 |
["TriG", "application/trig"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
27 |
["N-Quads", "application/n-quads"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
28 |
["BinaryRDF", "application/x-binary-rdf"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
29 |
["TriX", "application/trix"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
30 |
["JSON-LD", "application/ld+json"] |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
31 |
]; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
32 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
33 |
function setOutputFormatSelect(selectElt, optionsList) { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
34 |
var keys = $.map(optionsList, function(o) { return o[0];}); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
35 |
var selectedKey = $(":selected",selectElt).text(); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
36 |
if(!selectedKey || $.inArray(selectedKey, keys) === -1) { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
37 |
selectedKey = "HTML"; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
38 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
39 |
selectElt.empty(); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
40 |
var innerHtml = ""; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
41 |
$.each(optionsList, function(i, o) { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
42 |
innerHtml += "<option value=\""+o[1]+"\""+ ((o[0]==selectedKey)?" selected=\"selected\" ":"") +">"+o[0]+"<options>"; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
43 |
}); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
44 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
45 |
selectElt.append(innerHtml); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
46 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
47 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
48 |
var currentQueryType = null; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
49 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
50 |
function updateQueryType(queryType) { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
51 |
var resultFormats = ASK_RESULT_FORMAT; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
52 |
if(currentQueryType != queryType) { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
53 |
if(queryType == "SELECT") { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
54 |
resultFormats = SELECT_RESULT_FORMAT; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
55 |
} else if (queryType == "DESCRIBE" || queryType == "CONSTRUCT") { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
56 |
resultFormats = GRAPH_RESULT_FORMAT; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
57 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
58 |
setOutputFormatSelect($("#format"),resultFormats); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
59 |
currentQueryType = queryType; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
60 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
61 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
62 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
63 |
function getSubmitState(editor) { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
64 |
var parseErrors = $(".parseErrorIcon").length; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
65 |
return editor.getQueryMode() === 'query' && parseErrors == 0 && !/^\s*$/.test(editor.getValue()); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
66 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
67 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
68 |
function initSparqlEditor() { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
69 |
var yasqe = YASQE.fromTextArea($('#query').get(0), { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
70 |
sparql: { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
71 |
showQueryButton: false, |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
72 |
//endpoint: "{{ route('sparql_proxy') }}", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
73 |
//requestMethod: "GET", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
74 |
//acceptHeaderGraph: "application/rdf+json,/;q=0.9" |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
75 |
//acceptHeaderGraph: "text/turtle,/;q=0.9", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
76 |
//acceptHeaderSelect: "application/x-turtle,/;q=0.9", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
77 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
78 |
}); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
79 |
yasqe.on("update", function(instance) { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
80 |
var queryType = instance.getQueryType(); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
81 |
updateQueryType(queryType); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
82 |
var submitState = getSubmitState(instance); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
83 |
$("#submit-query-form").prop('disabled', !submitState ); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
84 |
$("#format").prop('disabled', !submitState ); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
85 |
$("#timeout").prop('disabled', !submitState ); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
86 |
}); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
87 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
88 |
$("#query-form").submit(function() { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
89 |
return getSubmitState(yasqe); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
90 |
}); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
91 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
92 |
$("#limits-choices a").click(function(e) { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
93 |
e.preventDefault(); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
94 |
$('#limit').val($(e.target).text()); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
95 |
}); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
96 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
97 |
// var yasr = YASR($('#results').get(0), { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
98 |
// getUsedPrefixes: yasqe.getPrefixesFromQuery, |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
99 |
// useGoogleCharts: false, |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
100 |
// outputPlugins: ["table", "error", "boolean", "rawResponse", "pivot"], |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
101 |
// }); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
102 |
// yasqe.options.sparql.callbacks.complete = yasr.setResponse; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
103 |
} |