Ripristinato il "save" e "load" delle query su disco

This commit is contained in:
Luca Trupiano 2025-02-25 12:42:35 +01:00
parent 4bbd451b9c
commit 73657243e0
1 changed files with 107 additions and 110 deletions

View File

@ -153,10 +153,12 @@ $(document).ready(function() {
if (claListLen == 0){
tabID++;
addClausola("#sortable0",1,tabID,1);
refreshClaList();
};
if (rifListLen == 0){
rifID++;
addRiferimento("#sortableRif0",1,rifID,1);
refreshClaList();
};
});
});
@ -294,10 +296,8 @@ $(document).ready(function() {
// Evento: modifica di un campo clausole
$("form #lemma_forma,#queryText,#opzioni_testo").on('change', function() {
if ($(this)[0].id == "queryText"){
//var orgSelection = $('#lemma_forma option:selected')[0].value
var qText = $(this)[0].value;
if (qText !== null && qText !== '') {qText = ' "' + qText + '"';}
//setLemmaForma(qText,orgSelection);
};
refreshClaList();
});
@ -337,7 +337,7 @@ $(document).ready(function() {
if (queryJson.unitaRicerca == "riferimento") {
condListRifLen--;
if (rifListLen == 0 && condListRifLen == 0) {
$('#sortableRif0').html(emptyClaList);
$('#sortableRif0').html(emptyRifList);
};
} else {
condListLen--;
@ -494,7 +494,7 @@ $(document).ready(function() {
// Evento: click sul bottone di reset semplice
$('#cleanresult').on('click', function() {
resetResult();
resetSimpleGui();
$('#queryText').val("");
refreshClaList();
});
@ -502,7 +502,6 @@ $(document).ready(function() {
$('#cleanresult2').on('click', function() {
resetResult();
resetAdvGui();
refreshClaList();
if (claListLen == 0){
tabID++;
addClausola("#sortable0",1,tabID,1);
@ -511,6 +510,7 @@ $(document).ready(function() {
rifID++;
addRiferimento("#sortableRif0",1,rifID,1);
};
refreshClaList();
});
// Evento: click sull'icona rimuovi nota
@ -687,13 +687,13 @@ $(document).ready(function() {
<ion-icon name="refresh-circle"></ion-icon></button></div>';
const iconCloseCond = '<div class="p-0 mr-3 mt-0 text-right text-success"><span class="iconClClass removeCond"><ion-icon name="close-circle"></ion-icon></span></div>';
const emptyClaList = '<li id="li-cla0" class="list-group-item align-items-center my-1 ui-state-default ui-state-disabled border text-muted bg-white ui-state-disabled-opacity-06 small">Nessuna clausola aggiunta.</li>';
const emptyRifList = '<li id="li-rif0" class="list-group-item align-items-center my-1 ui-state-default ui-state-disabled border text-muted bg-white ui-state-disabled-opacity-06 small">Nessuna clausola aggiunta.</li>';
const defaultCond = '<div id="cla-defaultCond" class="col-12 p-1 small font-weight-bold text-muted"> Clausole e condizioni in AND di default</div>';
const defaultRifCond = '<div id="cla-defaultRifCond" class="col-12 p-1 small font-weight-bold text-muted"> Clausole e condizioni in AND di default</div>';
const emptyNoteList = '<div class="card card-body well well-sm m-1 mt-2 p-0" id="noteCard0"><span class="p-3 text-muted bg-lida-vis small" style="opacity: 0.6;">Nessun commento visualizzato</span></div>';
//const emptyInfo = '<div class="card card-body well well-sm m-1 mt-2 p-0" id="infoCard0"><span class="p-3 text-muted bg-lida-vis small" style="opacity: 0.6;">Nessuna struttura visualizzata</span></div>';
const canticheList = ["Inferno","Purgatorio","Paradiso"];
const cla0JsonText = '{"queryText": "", "lemma_forma": "lemma", "opzioni_testo": "parola", "TipoClausola": "0", "Attiva": "0"}';
const cla0JsonText = '{"queryText": "", "TipoClausola": "0", "Attiva": "0"}';
const condLIplaceholderText1 = 'Trascina qui almeno 1 clausola o condizione';
const condLIplaceholderText2 = 'Trascina qui almeno 2 clausole o condizioni';
const condLIplaceholderText1d = 'Trascina qui almeno 1 clausola o condizione, oppure attiva le clausole inattive';
@ -731,7 +731,6 @@ $(document).ready(function() {
};
// Funzioni di gestione del tab Periodo, usate da synthgraph.js
fillStructCard = function(lisid){
var cantiche=["Inferno", "Purgatorio","Paradiso"];
var romani = ["I","II","III","IV","V","VI","VII","VIII","IX","X",
@ -772,7 +771,7 @@ $(document).ready(function() {
$('#cla' + tabID + " #opzioni_testoN").attr("id","opzioni_testo" + tabID);
$('#cla' + tabID + " #contextDivN").attr("id","contextDiv" + tabID);
addClaContext(tabID);
refreshClaList();
// refreshClaList();
refreshSortables();
}
@ -788,7 +787,7 @@ $(document).ready(function() {
$("#rif" + rifID).attr("data-claActive", active);
$("#rif" + rifID).attr("style", "");
addClaContext(rifID);
refreshClaList();
// refreshClaList();
refreshSortables();
}
@ -923,7 +922,7 @@ $(document).ready(function() {
// Funzione di creazione del LI delle condizioni logiche
function addLogicCond(sortableId,condtype){
if (queryJson.unitaRicerca == "riferimento") {
if (~sortableId.indexOf("Rif")) {
condListRifLen++;
var sortableIdNum = "Rif" + condListRifLen;
} else {
@ -1003,8 +1002,7 @@ $(document).ready(function() {
} else {
var claActive = 1
};
queryJson.Clausola0 = JSON.parse('{"queryText": "' + qText + '", "lemma_forma": "", "opzioni_testo": "", "TipoClausola": "0", "Attiva": "' + claActive + '"}');
queryJson.Clausola0.contesto = JSON.stringify(window.context0);
queryJson.Clausola0 = JSON.parse('{"queryText": "' + qText + '", "TipoClausola": "0", "Attiva": "' + claActive + '"}');
queryJson.unitaRicerca = $("#unitaRicerca")[0].options[$("#unitaRicerca")[0].selectedIndex].value;
var claLiArray = $("#sortable0").find(".claLI");
var countActCla = 0;
@ -1076,7 +1074,7 @@ $(document).ready(function() {
};
} else {
if (rifLiArray == 0 && condListRifLen == 0) {
$('#sortableRif0').html(emptyClaList);
$('#sortableRif0').html(emptyRifList);
queryJson.EsprLogicaRif = "";
queryJson.LogicaGuiRif = "";
}
@ -1108,6 +1106,7 @@ $(document).ready(function() {
var rifListItemId = "li-rif" + rifIdNum;
var rifSubParList = $("#li-rif" + rifIdNum).find("select, input");
var contextText = $("#contextText-xX" + rifIdNum).text();
var claType = $("#" + rifId).attr('data-claType');
var claActive = $("#" + rifId).attr('data-claActive');
if (claActive > 0) {
checkInsert = ' checked="checked"';
@ -1127,7 +1126,7 @@ $(document).ready(function() {
if (!($(this).prop("disabled"))) {
rifText = rifText + $(this)[0].title + ': <span class="font-italic">' + $(this)[0].options[$(this)[0].selectedIndex].text + '</span>; ';
};
jsonTextToParse = jsonTextToParse + ', "' + $(this)[0].id.replace(rifIdNum, "") + '": "' + $(this)[0].options[$(this)[0].selectedIndex].value + '"';
jsonTextToParse = jsonTextToParse + ', "' + $(this)[0].id.replace(rifIdNum, "") + '": "' + $(this)[0].options[$(this)[0].selectedIndex].value + '", "TipoClausola": "' + claType + '", "Attiva": "' + claActive + '"';
if ($(this)[0].id.startsWith("Tipo_Riferimento")) {
if ($(this)[0][3].selected) {
$('#Tipo_Citazione' + rifIdNum)[0].removeAttribute("style");
@ -1226,6 +1225,7 @@ $(document).ready(function() {
};
queryJson["Clausola" + claIdNum] = JSON.parse(jsonTextToParse + '}');
queryJson["Clausola" + claIdNum].contesto = JSON.stringify(window["context" + claIdNum]);
console.log(queryJson);
};
// Funzione di refresh dei placeholders e attivazione/disattivazione bottoni nelle liste sortable
@ -1436,6 +1436,7 @@ $(document).ready(function() {
};
function makeUpGui(queryJson) {
var domElementsNames = [["#sortable","Clausola",queryJson.LogicaGui],["#sortableRif","Riferimento",queryJson.LogicaGuiRif]]
// 1. verifica json legit --> TO DO
// -------------------
// Pulizia ricerca avanzata:
@ -1451,21 +1452,91 @@ $(document).ready(function() {
// Rigenerazione Clausola0:
if (queryJson["Clausola0"].Attiva) {
$("#queryText").val(queryJson["Clausola0"].queryText);
$("#opzioni_testo").val(queryJson["Clausola0"].opzioni_testo);
var qText = queryJson["Clausola0"].queryText;
if (qText !== null && qText !== '') {qText = ' "' + qText + '"';}
setLemmaForma(qText,queryJson["Clausola0"].lemma_forma);
resetContext(0);
window.context0 = JSON.parse(queryJson.Clausola0.contesto);
parseContext(0);
};
$("#unitaRicerca").val(queryJson.unitaRicerca);
// Generazione lista clausole e condizioni con elementi padre:
guiLogicString = queryJson.LogicaGui;
var clau2Make = "";
var claParent = []; // array di coppie [elemento, elemento padre]
var treeLevel = []; // pila di elementi padre
if (queryJson.unitaRicerca == "riferimento") {
$("#collapseLogicRif").collapse('show');
} else {
$("#collapseLogicCla").collapse('show');
};
// Generazione lista clausole e condizioni con elementi padre, per clausole e riferimenti:
for (var i = 0; i <= 1; i++) {
var clau2Make = "";
var claParent = []; // array di coppie [elemento, elemento padre]
var treeLevel = []; // pila di elementi padre
fillStructureArrays(treeLevel, claParent, domElementsNames[i])
$(claParent).each(function() {
var itm = $(this)[0]
if ($(this)[0] == "OR" || $(this)[0] == "AND") {
addLogicCond($(this)[1], $(this)[0]);
} else {
clau2Make = queryJson[domElementsNames[i][1] + itm].TipoClausola;
var active = queryJson[domElementsNames[i][1] + itm].Attiva
switch (clau2Make) {
case "Clausola":
tabID++;
addClausola($(this)[1], active, tabID, 0);
$("#lemma_forma" + tabID).val(queryJson["Clausola" + itm].lemma_forma);
$("#queryText" + tabID).val(queryJson["Clausola" + itm].queryText);
$("#opzioni_testo" + tabID).val(queryJson["Clausola" + itm].opzioni_testo);
var selectedValue = queryJson["Clausola" + itm].typeGramm0;
if (selectedValue != "all") {
$("#grammtypes" + tabID).val(selectedValue);
addCatgramSubcla("cla" + tabID, selectedValue);
var ks = Object.keys(queryJson["Clausola" + itm]);
for (var j = 6; j < ks.length - 1; j++) {
var melID = "cla" + tabID + ks[j];
var melement = document.getElementById(melID);
if (melement) {
switch (melement.type) {
case "fieldset":
var sval = queryJson["Clausola" + itm][ks[j]]
$("#cla" + tabID + sval.replace(/\s/g, '')).attr("checked", true);
break;
case "select-one":
melement.value = ([queryJson["Clausola" + itm][ks[j]]])
break;
default:
};
};
};
};
if (queryJson["Clausola" + itm].typeSyntax0 != "all") {
$("#cla" + tabID + " #synttypes").val(queryJson["Clausola" + itm].typeSyntax0);
}
if (queryJson["Clausola" + itm].functionSyntax != "all") {
$("#cla" + tabID + " #syntfunc").val(queryJson["Clausola" + itm].functionSyntax);
}
window["context" + tabID] = JSON.parse(queryJson["Clausola" + itm].contesto);
parseContext(tabID);
break;
case "Riferimento":
rifID++;
addRiferimento($(this)[1], active, rifID, 0);
var ks = Object.keys(queryJson["Riferimento" + itm]);
for (var j = 0; j < ks.length - 1; j++) {
var melID = ks[j] + rifID;
var melement = document.getElementById(melID);
if (melement) {
melement.value = ([queryJson["Riferimento" + itm][ks[j]]])
}
};
window["context" + rifID] = JSON.parse(queryJson["Riferimento" + itm].contesto);
parseContext(rifID);
break;
default:
};
};
});
};
refreshClaList();
refreshSortables();
};
function fillStructureArrays(treeLevel,claParent,domElementsNamesArray) {
var condNum = 0;
var guiLogicString = domElementsNamesArray[2];
for (var i=0; i < guiLogicString.length; i++) {
switch (guiLogicString[i]) {
case "(":
@ -1475,99 +1546,23 @@ $(document).ready(function() {
break;
case "OR":
claParent.push([guiLogicString[i], treeLevel[treeLevel.length - 1]]);
treeLevel.push("#sortable" + ++condNum);
treeLevel.push(domElementsNamesArray[0] + ++condNum);
break;
case "AND":
if (i > 1) {
claParent.push([guiLogicString[i], treeLevel[treeLevel.length - 1]]);
treeLevel.push("#sortable" + ++condNum);
treeLevel.push(domElementsNamesArray[0] + ++condNum);
} else {
treeLevel.push("#sortable0");
treeLevel.push(domElementsNamesArray[0]+"0");
};
break;
default:
claParent.push([guiLogicString[i].replace("Clausola", ""), treeLevel[treeLevel.length - 1]]);
claParent.push([guiLogicString[i].replace(domElementsNamesArray[1], ""), treeLevel[treeLevel.length - 1]]);
};
};
$(claParent).each(function(){
var itm = $(this)[0]
if ($(this)[0] == "OR" || $(this)[0] == "AND") {
addLogicCond($(this)[1],$(this)[0]);
}
if (itm != "OR" && itm != "AND") {
clau2Make = queryJson["Clausola" + itm].TipoClausola;
active = queryJson["Clausola" + itm].Attiva
tabID++;
switch (clau2Make) {
case "Grammaticale":
selectedValue = queryJson["Clausola" + itm].typeGramm0;
addGramCla($(this)[1],active,tabID,0);
$("#lemma_forma" + tabID).val(queryJson["Clausola" + itm].lemma_forma);
$("#queryText" + tabID).val(queryJson["Clausola" + itm].queryText);
$("#opzioni_testo" + tabID).val(queryJson["Clausola" + itm].opzioni_testo);
if (selectedValue != "all") {
$("#grammtypes" + tabID).val(selectedValue);
addCatgramSubcla("cla" + tabID, selectedValue);
var ks = Object.keys(queryJson["Clausola" + itm]);
for (var j = 6; j < ks.length - 1; j++) {
var melID = "cla" + tabID + ks[j];
var melement = document.getElementById(melID);
switch (melement.type) {
case "fieldset":
var sval = queryJson["Clausola" + itm][ks[j]]
$("#cla" + tabID + sval.replace(/\s/g, '')).attr("checked", true);
break;
case "select-one":
melement.value = ([queryJson["Clausola" + itm][ks[j]]])
break;
default:
};
};
};
window["context" + tabID] = JSON.parse(queryJson["Clausola" + itm].contesto);
parseContext(tabID);
break;
case "Sintattico":
addSyntCla($(this)[1],active,tabID,0);
$("#lemma_forma" + tabID).val(queryJson["Clausola" + itm].lemma_forma);
$("#queryText" + tabID).val(queryJson["Clausola" + itm].queryText);
$("#opzioni_testo" + tabID).val(queryJson["Clausola" + itm].opzioni_testo);
if (queryJson["Clausola" + itm].typeSyntax0 != ".+") {
$("#cla" + tabID + " #synttypes").val(queryJson["Clausola" + itm].typeSyntax0);
}
if (queryJson["Clausola" + itm].functionSyntax != ".+") {
$("#cla" + tabID + " #syntfunc").val(queryJson["Clausola" + itm].functionSyntax);
}
window["context" + tabID] = JSON.parse(queryJson["Clausola" + itm].contesto);
parseContext(tabID);
break;
// case "Metafora":
// addMetaCla($(this)[1],active,tabID,0);
// break;
default:
};
};
});
refreshClaList();
refreshSortables();
};
function resetSimpleGui() {
$('#queryText').val("");
setLemmaForma("","forma");
$('#opzioni_testo').val("parola");
resetContext(0);
};
function setLemmaForma(qText,newSelection) {
var newOptions = {['La forma' + qText]: 'forma', ['Il lemma' + qText]: 'lemma', ['Il testo' + qText]: 'testo'};
$("#lemma_forma").empty();
$.each(newOptions, function(key,value) {
$("#lemma_forma").append($("<option></option>").attr("value", value).text(key));
});
$("#lemma_forma").val(newSelection);
};
function resetContext(claIdNum) {
$('#selectable-xX' + claIdNum + " .ui-selectee").each(function() {
$(this).attr('style', "line-height: 1.2em");
@ -1583,6 +1578,7 @@ $(document).ready(function() {
function resetAdvGui() {
for (var i in ["#cla-TabContent","#rif-TabContent"]) {
$("#unitaRicerca").val("verso");
var tabsContent=$(i).find(".tab-pane:not(:first)");
if ($(tabsContent).length) {
var claIdNum = '';
@ -1599,7 +1595,8 @@ $(document).ready(function() {
tabID = 0;
rifID = 100;
$('#sortable0').html(emptyClaList);
$('#sortableRif0').html(emptyClaList);
$('#sortableRif0').html(emptyRifList);
$("#collapseLogicCla").collapse('show');
};
};