Aggiunta struttura dati Json x i filtri, salva e carica files json
This commit is contained in:
parent
b8d49960f7
commit
df305dfeaf
|
@ -61,8 +61,8 @@
|
|||
<label class="input-group-text"><ion-icon name="document-text"></ion-icon></label>
|
||||
</div>
|
||||
<select class="form-control custom-select" id="lemma_forma">
|
||||
<option>il lemma</option>
|
||||
<option>la forma</option>
|
||||
<option value="lemma">il lemma</option>
|
||||
<option value="forma">la forma</option>
|
||||
</select>
|
||||
<input type="text" class="form-control" id="queryText" placeholder="stelle" aria-describedby="name-desc" name="query">
|
||||
</div>
|
||||
|
@ -106,6 +106,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="col text-right px-3">
|
||||
<input style="display: none;" type="file" id="apriFile">
|
||||
<span class="border rounded p-1 pt-2"><ion-icon name="save-outline"></ion-icon> <ion-icon name="folder-open-outline"></ion-icon>
|
||||
<ion-icon name="cloud-upload-outline"></ion-icon> <ion-icon name="cloud-download-outline"></ion-icon></span>
|
||||
</div>
|
||||
|
|
|
@ -18,21 +18,30 @@ $(document).ready(function() {
|
|||
|
||||
$("#copiaQuery").prop("disabled", true);
|
||||
|
||||
$("#copiaQuery").on("click", function(){
|
||||
$('#sparqlquery').copy2clipboard();
|
||||
});
|
||||
|
||||
$( "#sortable0" ).sortable({
|
||||
items: "> li",
|
||||
handle: ".handle"
|
||||
});
|
||||
|
||||
|
||||
// Evento: click sul bottone di copia della query
|
||||
$("#copiaQuery").on("click", function(){
|
||||
$('#sparqlquery').copy2clipboard();
|
||||
});
|
||||
|
||||
// Evento: click sull'area di navigazione delle tab delle clausole
|
||||
$('#tab-list').on('click', function() {
|
||||
refreshClaList();
|
||||
refreshSortables();
|
||||
});
|
||||
|
||||
$("form #lemma_forma").on('change', function() {
|
||||
refreshClaList();
|
||||
});
|
||||
|
||||
$("form #queryText").on('change', function() {
|
||||
refreshClaList();
|
||||
});
|
||||
|
||||
// Evento: click sull'icona check dentro il tab della clausola
|
||||
$('#cla-TabContent').on('click', '.return2Query', function() {
|
||||
var tabFirst = $('#tab-list a:first');
|
||||
|
@ -214,6 +223,32 @@ $(document).ready(function() {
|
|||
};
|
||||
});
|
||||
|
||||
// Evento: click sull'icona di save local
|
||||
$('#cla-TabContent').on('click', 'ion-icon[name="save-outline"]', function() {
|
||||
var fileA = document.createElement("a");
|
||||
fileA.href = window.URL.createObjectURL(new Blob([JSON.stringify(queryJson)], {type: "text/plain;charset=utf-8"}));
|
||||
fileA.download = "LiDaQuery.txt";
|
||||
fileA.click();
|
||||
fileA.remove();
|
||||
});
|
||||
|
||||
// Evento: click sull'icona di load local
|
||||
$('#cla-TabContent').on('click', 'ion-icon[name="folder-open-outline"]', function() {
|
||||
$('#apriFile').click();
|
||||
});
|
||||
|
||||
$("#apriFile").on('change', function() {
|
||||
var file = $(this).prop('files')[0];
|
||||
//console.log(file);
|
||||
var reader = new FileReader();
|
||||
reader.onload = function(data){
|
||||
queryJson = JSON.parse(data.target.result)
|
||||
console.log(queryJson);
|
||||
$("#sparqlquery").val(data.target.result);
|
||||
};
|
||||
if (file) {reader.readAsText(file);}
|
||||
});
|
||||
|
||||
// Evento: SCELTA CATEGORIA GRAMMATICALE
|
||||
$('#cla-TabContent').on('change', 'select.catgram', function(e) {
|
||||
e.preventDefault();
|
||||
|
@ -537,7 +572,11 @@ $(document).ready(function() {
|
|||
var claListLen = 0;
|
||||
var condListLen = 0;
|
||||
var execQuery =``;
|
||||
var queryFields = [];
|
||||
var queryFields = []; // Contiene le intestazioni di colonna della tabella dei risultati
|
||||
var c0 = JSON.parse('{"queryText": "", "lemma_forma": "lemma", "Tipo": "0", "Attiva": "0"}');
|
||||
var queryJson = JSON.parse('{"EsprLogica":""}');
|
||||
queryJson.LiDaVersion = "1.0";
|
||||
queryJson.Clausola0 = c0;
|
||||
|
||||
const myEngine = new Comunica.QueryEngine();
|
||||
const sparqlEndpoint2 = "https://hdnlab1.isti.cnr.it/fuseki/commediaontosintgra/query";
|
||||
|
@ -732,11 +771,19 @@ WHERE {
|
|||
});
|
||||
}
|
||||
|
||||
// Funzione di refresh della lista clausole nella tab principale
|
||||
// Funzione di refresh della lista clausole nella tab principale e del json della query
|
||||
function refreshClaList(){
|
||||
var qText = $("form #queryText")[0].value;
|
||||
if (qText == "") { //disattivo clausola 0 se il testo e' vuoto
|
||||
var claActive = 0
|
||||
} else {
|
||||
var claActive = 1
|
||||
};
|
||||
var l_f = $("form #lemma_forma")[0].options[$("form #lemma_forma")[0].selectedIndex].value;
|
||||
var tabsC=$("#cla-TabContent").find(".tab-pane:not(:first)");
|
||||
var clausoleText = "";
|
||||
var len=0;
|
||||
queryJson.Clausola0 = JSON.parse('{"queryText": "' + qText + '", "lemma_forma": "' + l_f + '", "Tipo": "0", "Attiva": "' + claActive + '"}');
|
||||
if ($(tabsC).length) {
|
||||
$(tabsC).each(function(){
|
||||
if ($("#H-cla0")[0]) {
|
||||
|
@ -745,37 +792,41 @@ WHERE {
|
|||
len++;
|
||||
var claText = '';
|
||||
var checkInsert = '"';
|
||||
var claListItemID = "H-" + $(this).attr('id');
|
||||
var claId = $(this).attr('id');
|
||||
var claListItemID = "H-" + claId;
|
||||
var claType = $(this).attr('data-claType');
|
||||
var claActive = $(this).attr('data-claActive');
|
||||
if (claActive > 0) {
|
||||
checkInsert = '" checked="checked"';
|
||||
};
|
||||
var jsonTextToParse = '{"queryText": "' + qText + '", "lemma_forma": "' + l_f + '", "Tipo": "' + claType + '", "Attiva": "' + claActive + '"';
|
||||
switch (claType) {
|
||||
case "Grammaticale":
|
||||
var graSelect = $(this).find(".catgram");
|
||||
var graText = graSelect[0].options[graSelect[0].selectedIndex].text;
|
||||
claText = len + ". Categoria grammaticale: " + graText + '<br><span class="small ml-3">';
|
||||
claText = len + ". Categoria grammaticale: " + graSelect[0].options[graSelect[0].selectedIndex].text + '<br><span class="small ml-3">';
|
||||
jsonTextToParse = jsonTextToParse + ', "' + graSelect.attr('name') + '": "' + graSelect[0].options[graSelect[0].selectedIndex].value + '"';
|
||||
var claSubParList = $(this).children(".dettaglifiltri").find("select, fieldset");
|
||||
claSubParList.each(function(){
|
||||
var claSubParType = $(this)[0].type;
|
||||
if (claSubParType == "fieldset" && $(this).find(":checked").length) {
|
||||
var claSubParId = $(this).find(":checked")[0].id;
|
||||
var claSubParText = $(this).find("[for='" + claSubParId + "']")[0].innerText;
|
||||
claText = claText + claSubParText + "; ";
|
||||
var claSubParName = $(this).find(":checked")[0].name
|
||||
if (claSubParName.startsWith(claId)) {
|
||||
claSubParName = claSubParName.replace(claId,'');
|
||||
}
|
||||
claText = claText + $(this).find("[for='" + $(this).find(":checked")[0].id + "']")[0].innerText + "; ";
|
||||
jsonTextToParse = jsonTextToParse + ', "' + claSubParName + '": "' + $(this).find(":checked")[0].value + '"';
|
||||
};
|
||||
if (claSubParType == "select-one") {
|
||||
var claSubParText = $(this)[0].options[$(this)[0].selectedIndex].text;
|
||||
claText = claText + claSubParText + "; "
|
||||
if (claSubParType == "select-one" && $(this)[0].selectedIndex != 0) {
|
||||
claText = claText + $(this)[0].options[$(this)[0].selectedIndex].text + "; ";
|
||||
jsonTextToParse = jsonTextToParse + ', "' + $(this)[0].name + '": "' + $(this)[0].options[$(this)[0].selectedIndex].value + '"';
|
||||
};
|
||||
});
|
||||
break;
|
||||
case "Sintattico":
|
||||
var syntSelect = $(this).find("#synttypes");
|
||||
var syntText = syntSelect[0].options[syntSelect[0].selectedIndex].text;
|
||||
var funcSelect = $(this).find("#syntfunc");
|
||||
var funcText = funcSelect[0].options[funcSelect[0].selectedIndex].text;
|
||||
claText = len + ". Tipo sintattico: " + syntText + '; <br><span class="ml-3"">Livello di subordinazione: ' + funcText
|
||||
; var funcSelect = $(this).find("#syntfunc");
|
||||
claText = len + ". Tipo sintattico: " + syntSelect[0].options[syntSelect[0].selectedIndex].text + '; <br><span class="ml-3"">Livello di subordinazione: ' + funcSelect[0].options[funcSelect[0].selectedIndex].text;
|
||||
jsonTextToParse = jsonTextToParse + ', "' + syntSelect.attr('name') + '": "' + syntSelect[0].options[syntSelect[0].selectedIndex].value + '", "' + funcSelect.attr('name') + '": "' + funcSelect[0].options[funcSelect[0].selectedIndex].value + '"';
|
||||
break;
|
||||
default:
|
||||
claText = len + ". " + $(this).text();
|
||||
|
@ -787,10 +838,14 @@ WHERE {
|
|||
} else {
|
||||
$("#sortable0").append(LItext);
|
||||
};
|
||||
queryJson["Clausola" + len] = JSON.parse(jsonTextToParse + '}');
|
||||
});
|
||||
if (queryJson["Clausola" + (len + 1)]) //se vengo dalla rimozione di una clausola
|
||||
delete queryJson["Clausola" + (len + 1)];
|
||||
} else {
|
||||
if (claListLen == 0 && condListLen == 0) {
|
||||
$('#sortable0').html(emptyClaList);
|
||||
queryJson.EsprLogica = "";
|
||||
}
|
||||
tabID = 0;
|
||||
};
|
||||
|
@ -867,7 +922,10 @@ WHERE {
|
|||
};
|
||||
};
|
||||
});
|
||||
$("#sparqlquery").val(parseCond("#sortable0", "AND"));
|
||||
var logicExprString = parseCond("#sortable0", "AND");
|
||||
$("#sparqlquery").val(logicExprString);
|
||||
queryJson.EsprLogica = logicExprString.split(' ');
|
||||
//console.log(queryJson);
|
||||
};
|
||||
|
||||
// Funzione di refresh dei collegamenti tra elementi sortable
|
||||
|
@ -906,7 +964,7 @@ WHERE {
|
|||
if ($(this).hasClass("claLI")) {
|
||||
if ($(this).find("input")[0].checked == true){
|
||||
var claText = $(this).find(".clatext").text();
|
||||
var claNum = claText.substr(0,claText.indexOf('.'));
|
||||
var claNum = "Clausola" + claText.substr(0,claText.indexOf('.'));
|
||||
itemsText.push(claNum);
|
||||
};
|
||||
};
|
||||
|
@ -970,6 +1028,17 @@ WHERE {
|
|||
$(this).after('<div class="mt-2 text-lida3" id="msgCopiata">Copiata nella clipboard</div>');
|
||||
};
|
||||
|
||||
|
||||
function cambio(event) {
|
||||
var file = event.target.files[0];
|
||||
var reader = new FileReader();
|
||||
reader.onload = function(e) {
|
||||
// The file's text will be printed here
|
||||
console.log(e.target.result)
|
||||
};
|
||||
reader.readAsText(file);
|
||||
};
|
||||
|
||||
function cloneClaSint(clone,tabID){
|
||||
var original = document.getElementById("tiposintatticoX");
|
||||
clone = original.cloneNode(true);
|
||||
|
|
Loading…
Reference in New Issue