Skip to content
Snippets Groups Projects

Draft: Add attributes when select a specific instance

Closed Fabien Amarger requested to merge topic/default/select_attributes into branch/default
1 file
+ 75
27
Compare changes
  • Side-by-side
  • Inline
+ 75
27
@@ -75,8 +75,8 @@
<div class="col-md-12">
<span style="font-size: 90%;">
Les requêtes sont envoyées à
<a id="endpoint" href="https://rcf.demo.logilab.fr/sparql"
>https://rcf.demo.logilab.fr/sparql</a
<a id="endpoint" href="http://localhost:3030/rcf"
>http://localhost:3030/rcf</a
>
</span>
</div>
@@ -89,8 +89,12 @@
</div>
</div>
<div class="row justify-content-center">
<button class="btn btn-primary" id="query-button" disabled>Exécuter la requête</button>
<button class="btn btn-secondary" id="csv-export-button" disabled>Télécharger en CSV</button>
<button class="btn btn-primary" id="query-button" disabled>
Exécuter la requête
</button>
<button class="btn btn-secondary" id="csv-export-button" disabled>
Télécharger en CSV
</button>
<div class="col-md-11">
<div id="yasr"></div>
</div>
@@ -159,13 +163,17 @@
};
rdfsLabelPostProcess = function (queryString, queryJson) {
if (queryString.indexOf("?this rdf:type <http://rcfexpense.logilab.fr/SingleField>") !== -1){
if (
queryString.indexOf(
"?this rdf:type <http://rcfexpense.logilab.fr/SingleField>"
) !== -1
) {
queryString = queryString.replace(
new RegExp("}$"),
" ?this <http://rcfexpense.logilab.fr/name> ?nom. \n}"
);
new RegExp("}$"),
" ?this <http://rcfexpense.logilab.fr/name> ?nom. \n}"
);
return queryString;
return queryString;
}
queryString = queryString.replace(
new RegExp("}$"),
@@ -175,10 +183,14 @@
};
orderByPostProcess = function (queryString, queryJson) {
if (queryString.indexOf("?this rdf:type <http://rcfexpense.logilab.fr/SingleField>") !== -1){
if (
queryString.indexOf(
"?this rdf:type <http://rcfexpense.logilab.fr/SingleField>"
) !== -1
) {
queryString = queryString.replace(
new RegExp("}$"),
" ?this ^<http://rcfexpense.logilab.fr/hasSingleField> ?page.\
new RegExp("}$"),
" ?this ^<http://rcfexpense.logilab.fr/hasSingleField> ?page.\
?page <http://rcfexpense.logilab.fr/pageNumber> ?numpage.\
?page ^<http://rcfexpense.logilab.fr/hasPage> ?registeruri.\
?registeruri rdfs:label ?registre.\
@@ -187,12 +199,48 @@
?V <http://rcfexpense.logilab.fr/sols> ?sols. \
?V <http://rcfexpense.logilab.fr/deniers> ?deniers.\
} LIMIT 5000"
);
queryString = queryString.replace(
"SELECT DISTINCT ?this",
"SELECT DISTINCT ?this ?registre ?numpage ?nom ?livres ?sols ?deniers"
);
return queryString;
);
queryString = queryString.replace(
"SELECT DISTINCT ?this",
"SELECT DISTINCT ?this ?registre ?numpage ?nom ?livres ?sols ?deniers"
);
return queryString;
} else if (
queryString.indexOf(
"?this rdf:type <http://rcfexpense.logilab.fr/Register>"
) !== -1
) {
queryString = queryString.replace(
new RegExp("}$"),
". ?this <http://rcfexpense.logilab.fr/season>/rdfs:label ?seasonTemp.\
?this <http://rcfexpense.logilab.fr/hasPage> ?page.\
?this <http://rcfexpense.logilab.fr/isInPeriod>/rdfs:label ?periodTemp.\
} GROUPBY ?this LIMIT 5000"
);
queryString = queryString.replace(
"SELECT DISTINCT ?this",
"SELECT DISTINCT ?this (GROUP_CONCAT(DISTINCT ?label) as ?nom) (GROUP_CONCAT(DISTINCT ?periodTemp) as ?period) (GROUP_CONCAT(DISTINCT ?seasonTemp) as ?season) (COUNT(?page) as ?nbPage)"
);
return queryString;
} else if (
queryString.indexOf(
"?this rdf:type <http://rcfexpense.logilab.fr/Page>"
) !== -1
) {
queryString = queryString.replace(
new RegExp("}$"),
". ?this <http://rcfexpense.logilab.fr/pageNumber> ?numeroPage.\
?this ^<http://rcfexpense.logilab.fr/hasPage>/rdfs:label ?registre.\
?this <http://rcfexpense.logilab.fr/representationDate> ?dateRepresentation.\
?this <http://rcfexpense.logilab.fr/annotation> ?annotation.\
?this <http://rcfexpense.logilab.fr/hasTotalValue>/rdfs:label ?total.\
} LIMIT 5000"
);
queryString = queryString.replace(
"SELECT DISTINCT ?this",
"SELECT DISTINCT ?this ?registre ?numeroPage ?dateRepresentation ?total ?annotation"
);
return queryString;
}
queryString = queryString.replace(
new RegExp("}$"),
@@ -241,7 +289,7 @@
backgroundBaseColor: "2,184,117",
autocomplete: null,
list: rangeBasedHandler,
defaultEndpoint: "https://rcf.demo.logilab.fr/sparql",
defaultEndpoint: "http://localhost:3030/rcf",
sparqlPrefixes: {},
onQueryUpdated: function (queryString, queryJson) {
queryString = semanticPostProcess(queryString, queryJson);
@@ -255,12 +303,12 @@
.replace(/>/g, "&gt;")
);
yasqe.setValue(queryString);
if(queryString.length === 0) {
$("#csv-export-button").prop("disabled", true);
$("#query-button").prop("disabled", true);
if (queryString.length === 0) {
$("#csv-export-button").prop("disabled", true);
$("#query-button").prop("disabled", true);
} else {
$("#csv-export-button").prop("disabled", false);
$("#query-button").prop("disabled", false);
$("#csv-export-button").prop("disabled", false);
$("#query-button").prop("disabled", false);
}
},
});
@@ -286,12 +334,12 @@
// link yasqe and yasr
yasqe.options.sparql.callbacks.complete = yasr.setResponse;
document.getElementById("csv-export-button").onclick = () => {
const query = yasqe.getValue().replace("LIMIT 5000", "");
const endpoint = $("#endpoint").text();
const url = endpoint + "?query=" + encodeURIComponent(query) + "&format=text/csv";
var win = window.open(url, '_blank');
const url =
endpoint + "?query=" + encodeURIComponent(query) + "&format=text/csv";
var win = window.open(url, "_blank");
win.focus();
};
document.getElementById("query-button").onclick = () => {
Loading