'));
$('#cla' + tabID + '-tab').tab('show');
break;
case "andCond":
condListLen++;
var LItext = condLIpart1 + condListLen + condLIpart2and + condListLen + condLIpart3and + condListLen + condLIpart4;
if ($("#H-cla0")[0]) {
$("#H-cla0")[0].remove();
};
$("#sortable0").append(LItext);
$("#sortable" + condListLen).sortable();
$("#sortable" + condListLen).sortable( "option", "appendTo", document.body );
$("#sortable" + condListLen).sortable({
items: "> li",
handle: ".handle",
opacity: 0.6,
cursor: 'move',
update: function() {refreshSortables();}
});
refreshConnectWith();
break;
case "orCond":
condListLen++;
var LItext = condLIpart1 + condListLen + condLIpart2or + condListLen + condLIpart3or + condListLen + condLIpart4;
if ($("#H-cla0")[0]) {
$("#H-cla0")[0].remove();
};
$("#sortable0").append(LItext);
$("#sortable" + condListLen).sortable();
$("#sortable" + condListLen).sortable( "option", "appendTo", document.body );
$("#sortable" + condListLen).sortable({
items: "> li",
handle: ".handle",
opacity: 0.6,
cursor: 'move',
update: function() {refreshSortables();}
});
refreshConnectWith();
break;
default:
};
});
// Evento: clausola spostata nella lista principale
$('#sortable0').sortable({
opacity: 0.6,
cursor: 'move',
update: function() {
refreshSortables();
}
});
// Evento: click sul checkbox di attivazione delle clausole
$('#cla-TabContent').on('click', '.claAct', function() {
var claListItemID = $(this).closest('li').attr('id');
var tabPanelId = "#" + claListItemID.substring(2);
if ($(this).prop('checked')) {
$(tabPanelId).attr("data-claActive", 1);
$(this).closest('li').find('.clatext').fadeTo( "slow", 1 );
} else {
$(tabPanelId).attr("data-claActive", 0);
$(this).closest('li').find('.clatext').fadeTo( "slow", 0.6 );
}
refreshSortables();
});
// Evento: click sull'icona di refresh dei radio button
$('#cla-TabContent').on('click', '.radioRefresh', function() {
fSet = $(this).siblings('fieldset');
if (fSet.find(":checked").length) {
radioChecked = fSet.find(":checked")[0];
radioChecked.checked = false;
};
});
// 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();
var tabPaneId = ($(this).closest('.tab-pane').attr("id"));
var dettagliBox = $(this).parent().parent().siblings(".dettaglifiltri");
dettagliBox.html("");
var containerid = 'dettaglio_' + $(this).parent().parent().parent().attr("id")
if (Object.keys(categorie).includes($(this).val())) {
var filtro = categorie[$(this).val()]
var keys = Object.keys(categorieJson[filtro])
for (var key in keys) {
var vals = categorieJson[filtro][keys[key]]
switch (vals.length) {
case 2:
var element = $('');
element.attr('class', ' d-flex flex-nowrap pr-2 mb-1 col-8 form-group form-control justify-content-between');
var rbfieldset = $('');
var flexdiv1 = $('');
var flexdiv2 = $('');
var input1 = $('');
var input2 = $('');
var label1 = $('');
var label2 = $('');
rbfieldset.attr('id', tabPaneId + keys[key]);
rbfieldset.attr('class', 'bn');
flexdiv1.attr('class', 'custom-control custom-radio custom-control-inline');
flexdiv2.attr('class', 'custom-control custom-radio custom-control-inline');
input1.attr('class', 'custom-control-input');
input2.attr('class', 'custom-control-input');
input1.attr('type', 'radio');
input2.attr('type', 'radio');
input1.attr('id', tabPaneId + vals[0]);
input2.attr('id', tabPaneId + vals[1]);
input1.attr('value', vals[0]);
input2.attr('value', vals[1]);
input1.attr('name', tabPaneId + keys[key]);
input2.attr('name', tabPaneId + keys[key]);
label1.attr('class', 'custom-control-label');
label2.attr('class', 'custom-control-label');
label1.attr('for', tabPaneId + vals[0]);
label2.attr('for', tabPaneId + vals[1]);
label1.append(vals[0]);
label2.append(vals[1]);
input1.appendTo(flexdiv1);
input2.appendTo(flexdiv2);
label1.appendTo(flexdiv1);
label2.appendTo(flexdiv2);
flexdiv1.appendTo(rbfieldset);
flexdiv2.appendTo(rbfieldset);
rbfieldset.appendTo(element);
var iconR = $(iconReset);
iconR.appendTo(element);
element.attr('style', 'display:block');
element.appendTo(dettagliBox);
break;
case 1:
var element = $('');
element.attr('class', ' d-flex flex-nowrap mb-1 col-4 form-group form-control');
var rbfieldset = $('');
flexdiv1 = $('');
input1 = $('');
label1 = $('');
rbfieldset.attr('id', tabPaneId + keys[key]);
rbfieldset.attr('class', 'bn');
flexdiv1.attr('class', 'custom-control custom-checkbox custom-control-inline');
input1.attr('class', 'custom-control-input');
input1.attr('type', 'checkbox');
input1.attr('id', tabPaneId + vals[0].replace(/\s/g, ''));
input1.attr('value', vals[0]);
input1.attr('name', keys[key]);
label1.attr('class', 'custom-control-label');
label1.attr('for', tabPaneId + vals[0].replace(/\s/g, ''));
label1.append(vals[0]);
input1.appendTo(flexdiv1);
label1.appendTo(flexdiv1);
flexdiv1.appendTo(rbfieldset);
rbfieldset.appendTo(element);
element.attr('style', 'display:block');
element.appendTo(dettagliBox);
break;
default:
var element = $('');
element.attr('class', ' col-8 form-group px-0 pb-1 m-0');
var select = $('');
select.attr('id', tabPaneId + keys[key]);
select.attr('title', keys[key]);
select.attr('name', keys[key]);
for (var val in vals) {
var seloption = $('');
seloption.attr('value', vals[val]);
seloption.append(vals[val]);
seloption.appendTo(select);
}
select.appendTo(element);
element.attr('style', 'display:block');
element.appendTo(dettagliBox);
}
}
}
if (element) {
element.attr('style', "display: block;");
element.appendTo(dettagliBox);
};
});
// Evento: Submit form
$("form").submit(function(e){
e.preventDefault();
var qText = $("form #queryText")[0].value;
if (qText == "" && logicExprString == "") {
alert("Inserire un termine di ricerca od una clausola attiva!");
return false;
}
//alert("Funzione non ancora implementata!");
//const SparqlParser = sparqljs.Parser;
const sparqlGenerator = sparqljs.Generator;
//var parser = new SparqlParser();
//myquery = gimmespq();
//jsonQuery = parser.parse(baseQuery);
//jsonQuery = parser.parse(sparqlQuery1);
//jsonQuery = form2filter(jsonQuery);
//jsonQuery = form2filter(myquery);
jsonQuery = buildSQ();
queryFields = [];
for (var i in jsonQuery.variables) {
if (jsonQuery.variables[i].value) {
queryFields.push(jsonQuery.variables[i].value);
} else {
queryFields.push(jsonQuery.variables[i].variable.value);
}
}
execQuery = new sparqlGenerator().stringify(jsonQuery);
executeQuery();
return false;
});
// Variabili JSON per i filtri
var verboJson = {
"filtriverbo": {
"Diatesi": ["Attivo", "Passivo"],
"Transitivita": ["Transitivo", "Intransitivo"],
"Genere": ["Femminile", "Maschile"],
"Numero": ["Singolare", "Plurale"],
"Pers": ["Impersonale"],
"Rifl": ["Riflessivo"],
"Coniugazione": ["Qualsiasi coniugazione", "Prima coniugazione", "Seconda coniugazione", "Terza coniugazione", "Essere coniugazione", "Avere coniugazione"],
"Tempi": ["Qualsiasi tempo verbale", "Indicativo presente", "Indicativo passato prossimo", "Indicativo imperfetto", "Indicativo passato remoto",
"Indicativo trapassato prossimo", "Indicativo trapassato remoto", "Indicativo futuro semplice", "Indicativo futuro anteriore", "Congiuntivo presente",
"Congiuntivo imperfetto", "Congiuntivo passato", "Congiuntivo trapassato", "Condizionale presente", "Condizionale passato", "Imperativo presente",
"Infinito presente", "Infinito passato", "Participio presente", "Participio passato", "Gerundio presente", "Gerundio passato"],
"Persona" : ["Qualsiasi persona", "1ª persona singolare", "2ª persona singolare", "3ª persona singolare", "1ª persona plurale", "2ª persona plurale", "3ª persona plurale"],
"Funzione": ["Tutte le funzioni", "Aggettivo", "Sostantivo maschile", "Sostantivo femminile"],
"Declinazione": ["Tutte le declinazioni", "Prima declinazione", "Seconda declinazione", "Terza declinazione"],
}
}
var sostantivoJson = {
"filtrisostantivo": {
"Numero": ["Singolare", "Plurale"],
"Genere lemma": ["Lemma femminile", "Lemma maschile"],
"Genere forma": ["Forma femminile", "Forma maschile"],
"riflpers": ["In locuzione"],
"Declinazione sostantivo": ["Tutte le declinazioni", "Prima declinazione", "Seconda declinazione", "Terza declinazione"],
}
}
var aggettivoJson = {
"filtriaggettivo": {
"Classe": ["1ª", "2ª"],
"Genere": ["Femminile", "Maschile"],
"Numero": ["Singolare", "Plurale"],
"Con oggetto indiretto": ["Con oggetto indiretto"],
"Tipo aggettivo": ["Qualsiasi tipo aggettivo", "Qualificativo", "Indefinito", "Interrogativo", "Esclamativo", "Numerale", "Dimostrativo", "Relativo", "Possessivo", "In locuzione"],
"Grado": ["Qualsiasi grado", "Comparativo di maggioranza", "Comparativo di minoranza", "Comparativo di uguaglianza", "Superlativo relativo", "Superlativo assoluto"],
"Tipo di Complemento": ["Qualsiasi tipo di Complemento", "Introdotto da A", "Introdotto da CON", "Introdotto da CONTRO", "Introdotto da DA", "Introdotto da DI", "Introdotto da IN",
"Introdotto da PER", "Introdotto da SU", "Introdotto da TRA", "Introdotto da VERSO", "Introdotto da SOPRA",
"Introdotto da SOTTO", "Introdotto da DINANZI", "Introdotto da prep.", "Oggetto ind.", "Ogg. indi. + compl. con DI", "Ogg. ind. pronom."],
"Tipo di frase": ["Qualsiasi tipo di frase", "Con infinito retto da A", "Con infinito retto da DA", "Con infinito retto da DI", "Con infinito retto da PER",
"Con infinito retto da SE", "Con subordinata all'indic.", "Con subordinata al cong.", "In locuzione imp.+infinito",
"In locuzione imp.+che+indic.", "In locuzione imp.+che+cong.", "In locuzione imp.+se+indic.", "In locuzione imp.+se+cong.",
"In locuzione imp.+come+indic.", "In locuzione imp.+quando+indic.", "In locuzione imp.+perché+cong.", "In locuzione imp.+a+infinito"]
}
}
var pronomeJson = {
"filtripronome": {
"Genere": ["Femminile", "Maschile"],
"Numero": ["Singolare", "Plurale"],
"Classe/Persona": ["1ª", "2ª", "3ª"],
"Tipo": ["Qualsiasi tipo", "Personale", "Riflessivo", "Interrogativo", "Esclamativo", "Dimostrativo", "Relativo", "Possessivo"],
"Forma (Personali/Riflessivi)": ["Qualsiasi forma (Personali/Riflessivi)", "Libero", "Libero in Composizione", "Proclitico", "Enclitico"],
"Funzione (Personali)": ["Qualsiasi funzione (Personali)", "Libero - soggetto", "Libero - soggetto impersonale", "Libero - complemento", "Libero - rafforzativo",
"Clitico - accusativo", "Clitico - dativo", "Clitico - partitivo"],
"Tipo (Riflessivi)": ["Qualsiasi tipo (Riflessivi)", "Proprio", "Lessicalizzato", "Impersonale", "Passivo", "Reciproco"]
}
}
var articoloJson = {
"filtriarticolo": {
"Genere": ["Femminile", "Maschile"],
"Numero": ["Singolare", "Plurale"],
"Tipo": ["Determinativo", "Indeterminativo"]
}
}
var avverbioJson = {
"filtriavverbio": {
"Tipo": ["Qualsiasi tipo", "Al comparativo di maggioranza", "Al comparativo di minoranza",
"Al superlativo assoluto", "Al superlativo relativo",
"In Locuzione", "In Locuzione separato", "Proclitico", "Enclitico"]
}
}
var preposizioneJson = {
"filtripreposizione": {
"Tipo I": ["Propria", "Impropria"],
"Tipo preposizione": ["Qualsiasi tipo preposizione", "Semplice", "Articolata", "In locuzione", "In locuzione separata"],
"Sintassi": ["Qualsiasi sintassi", "Soggettiva", "Oggettiva", "Dichiarativa", "Completiva obliqua", "Finale",
"Causale", "Concessiva", "Consecutiva", "Temporale", "Modale", "Eccettuativa", "Esclusiva",
"Limitativa", "Comparativa", "Avversativa"],
"Complemento (I)": ["Qualsiasi complemento (I)", "Di stato in luogo", "Di moto a luogo", "Di moto da luogo", "Di moto per luogo",
"Di luogo", "Predicativo del soggetto", "Predicativo dell'oggetto", "Di distanza",
"Di tempo determinato", "Di tempo continuato", "Di tempo", "Di termine", "Di vantaggio",
"Di svantaggio", "Di specificazione", "Di modo", "Di mezzo", "Di compagnia",
"Di unione", "Di allontanamento/separazione", "Di materia"],
"Complemento (II)": ["Qualsiasi complemento (II)", "Di limitazione", "Di qualità", "Di causa", "Di agente", "Di causa efficiente", "Di fine o scopo",
"Di paragone", "Di argomento", "Distributivo", "Di sostituzione", "Di estensione", "Di rapporto",
"Di esclusione", "Di peso", "Di quantità", "Di colpa", "Di denominazione", "partitivo",
"Di abbondanza-privazione", "Di origine-provenienza", "Concessivo", "Di effetto", "Di pena",
"Simmetrico", "Indiretto esperiente", "Indiretto dativo", "Indiretto oggetto", "Indiretto possessore",
"Indiretto benefattivo"]
}
}
var congiunzioneJson = {
"filtricongiunzione": {
"Coo./sub": ["Coordinativa", "Subordinativa"],
"Tipo": ["Qualsiasi tipo", "Semplice", "Composta", "Locuzione", "Locuzione separata"],
"Coord. tipo": ["Qualsiasi coord. tipo", "Copulativa", "Disgiuntiva", "Avversativa", "Esplicativa", "Conclusiva", "Correlativa"],
"Subord. tipo": ["Qualsiasi subord. tipo", "Soggettiva", "Oggettiva", "Dichiarativa", "Completiva obliqua", "Interrogativa",
"Finali", "Causali", "Concessiva", "Consecutiva", "Temporale", "Modale",
"Eccettuativa", "Comparativa", "Condizionale", "Esclusiva", "Limitativa"]
}
}
var onomasticacitazioneJson = {
"filtrionomastica": {
"Tipo": ["Qualsiasi tipo", "Nome proprio", "Nome proprio separato", "Titolo"]
},
"filtricitazione": {
"Tipo": ["Qualsiasi tipo", "Latina", "Provenzale", "Francese", "Spagnola", "Ebraica", "Greca"]
}
}
var categorie = {
"verbovolgare": "filtriverbo",
"sostantivovolgare": "filtrisostantivo",
"pronomevolgare": "filtripronome",
"aggettivovolgare": "filtriaggettivo",
"articolovolgare": "filtriarticolo",
"avverbiovolgare": "filtriavverbio",
"preposizionevolgare": "filtripreposizione",
"congiunzionevolgare": "filtricongiunzione",
"onomasticavolgare": "filtrionomastica",
"citazionevolgare": "filtricitazione"
}
var catGrammsenzaspec = ['all', 'interiezionevolgare']
var subordinazioneJson = {
"subordinazione": {
"livello": ["Qualsiasi livello di subordinazione", "principale", "coordinata a una principale", "subordinata di I grado",
"subordinata di II grado", "subordinata di III grado", "subordinata di IV grado", "subordinata di V grado",
"subordinata di VI grado", "subordinata di VII grado", "coordinata a una subordinata di I grado",
"coordinata a una subordinata di II grado", "coordinata a una subordinata di III grado",
"coordinata a una subordinata di IV grado", "coordinata a una subordinata di V grado", "pseudo-coordinata",
"parentetica", "coordinata a una parentetica"]
}
}
var categorieJson = $.extend({}, verboJson, sostantivoJson, pronomeJson, aggettivoJson, articoloJson, avverbioJson, preposizioneJson, congiunzioneJson, onomasticacitazioneJson);
// Variabili testuali per compattezza
var iconEdit = '';
var iconClose = '';
var iconCheck = '';
var iconFilter = '';
var iconReset = '
';
var iconCloseCond = '
' + iconClose + '
';
var iconCheckAndClose = '
' + iconCheck + '' + iconClose + '
';
var emptyClaList = '
Nessuna clausola aggiunta.
';
var claLIpart1 = '
\
';
var claLIpart3 = '
\
' + iconEdit + '
' + iconClose + '
\
\
';
var condLIplaceholderText1 = 'Trascina qui almeno 1 clausola o condizione';
var condLIplaceholderText2 = 'Trascina qui almeno 2 clausole o condizioni';
var condLIplaceholderText1d = 'Trascina qui almeno 1 clausola o condizione, oppure attiva le clausole inattive';
var condLIplaceholderText2d = 'Trascina qui almeno 2 clausole o condizioni, oppure attiva le clausole inattive';
var condLIplaceholderPart1 = '
';
$("#risultatitesto").append(binding.toString() + ",\n");
//console.log(binding.get('form').value);
//console.log(binding.get('form').termType);
//console.log(binding.get('pred').value);
//console.log(binding.get('obj').value);
});
bindingsStream.on('end', () => {
resultTable = resultTable + resultTablePart5;
$("#resultsId1").append(resultTable);
$("#risultatitesto").append("]");
$("#copiaTesto").prop("disabled", false);
$('#resultTable').DataTable( {
colReorder: true,
language: {
url: 'dataTables.it-IT.json'
},
//dom: 'Blfrtip',
dom: "<'row'<'col-sm-12 col-md-6'l><'col-sm-6 col-md-3'f><'col-sm-6 col-md-3 text-right'B>>" + "<'row'<'col-sm-12'tr>>" + "<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
buttons: [ 'copy', 'excel', 'print' ]
});
setTimeout(function(){
buttonDiv = $("#resultsId1").find(".buttons-copy");
$('').insertBefore(buttonDiv);
},300);
});
};
// Funzione di refresh della lista delle tab delle clausole
function refreshTabList(){
var tabs=$("#tab-list li:not(:first)");
var len=0;
var textClassType = "";
$(tabs).each(function(){
len++;
var claType = $(this).find('a').attr("data-claType");
switch (claType) {
case "Grammaticale":
textClassType = "text-lida8";
break;
case "Sintattico":
textClassType = "text-lida9";
break;
case "Metafore":
textClassType = "text-lida3";
break;
case "Dialoghi":
textClassType = "text-lida4";
break;
case "Struttura":
textClassType = "text-lida5";
break;
default:
textClassType = "text-lida8";
};
$(this).find('a').html('' + iconFilter + ' ' + len + ': ' + claType + ' ');
$(this).find('a').attr("data-claType", claType)
});
}
// 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]) {
$("#H-cla0")[0].remove();
};
len++;
var claText = '';
var checkInsert = '"';
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");
claText = len + ". Categoria grammaticale: " + graSelect[0].options[graSelect[0].selectedIndex].text + ' ';
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 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" && $(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 funcSelect = $(this).find("#syntfunc");
claText = len + ". Tipo sintattico: " + syntSelect[0].options[syntSelect[0].selectedIndex].text + '; 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();
checkInsert = '" disabled';
};
var LItext = claLIpart1 + claListItemID + claLIpart2 + claText + claLIpart3 + len + checkInsert + claLIpart4 + len + claLIpart5;
if ($("#" + claListItemID)[0]) {
$("#" + claListItemID).replaceWith(LItext);
} 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;
};
}
// Funzione di refresh dei placeholders e attivazione/disattivazione bottoni nelle liste sortable
function refreshSortables(){
$(".ui-sortable:not(:first)").each(function() {
var sortableID = $(this)[0].id;
var placeholderID = "#placeholderSort" + sortableID.slice(-1);
var iconSpan = $(this).find(".iconClClass")[0];
var iconDiv = $(iconSpan).parent()[0];
var activeUL = $(this).children("li").children("ul").length;
var activeLI = 0;
var inactiveLI = 0;
var condLIplaceholder = "";
$(this).children("li .claLI").each(function() {
if ($(this).find("input")[0].checked){
activeLI++;
$(this).find('.clatext').css({ opacity: 1 });
};
if ($(this).find("input")[0].checked == false){
inactiveLI++;
$(this).find('.clatext').css({ opacity: 0.6 });
};
});
switch (activeLI + activeUL) {
case 0:
if ($(placeholderID).length) {
if (inactiveLI > 0){
$(placeholderID).text(condLIplaceholderText2d);
} else {
$(placeholderID).text(condLIplaceholderText2);
};
} else {
if (inactiveLI > 0){
condLIplaceholder = condLIplaceholderPart1 + sortableID.slice(-1) + condLIplaceholderPart2 + condLIplaceholderText2d + '';
} else {
condLIplaceholder = condLIplaceholderPart1 + sortableID.slice(-1) + condLIplaceholderPart2 + condLIplaceholderText2 + '';
}
$("#" + sortableID).append(condLIplaceholder);
};
if (inactiveLI == 0){
$(iconSpan).attr("class","iconClClass removeCond");
$(iconDiv).attr("class","p-0 mr-1 text-right text-primary");
};
break;
case 1:
if ($(placeholderID).length) {
if (inactiveLI > 0){
$(placeholderID).text(condLIplaceholderText1d);
} else {
$(placeholderID).text(condLIplaceholderText1);
};
} else {
if (inactiveLI > 0){
condLIplaceholder = condLIplaceholderPart1 + sortableID.slice(-1) + condLIplaceholderPart2 + condLIplaceholderText1d + '';
} else {
condLIplaceholder = condLIplaceholderPart1 + sortableID.slice(-1) + condLIplaceholderPart2 + condLIplaceholderText1 + '';
}
$("#" + sortableID).append(condLIplaceholder);
};
$(iconSpan).attr("class","iconClClass NOremoveCond");
$(iconDiv).attr("class","p-0 mr-1 text-right text-muted");
break;
case 2:
if ($(placeholderID).length) {
$(placeholderID).remove();
};
break;
default:
if ($(placeholderID).length) {
$(placeholderID).remove();
};
};
});
var logicExprString = parseCond("#sortable0", "AND");
$("#sparqlquery").val(logicExprString);
queryJson.EsprLogica = logicExprString.split(' ');
//console.log(queryJson);
};
// Funzione di refresh dei collegamenti tra elementi sortable
function refreshConnectWith(){
for (var i=0; i <= condListLen; i++) {
var cw = "";
for (var j=0; j <= condListLen; j++) {
if (i != j) {
cw = cw + "#sortable" + j + ", ";
};
$( "#sortable" + i ).sortable( "option", "connectWith", cw.slice(0, -2) );
};
};
};
// Funzione di parsing delle clausole e delle condizioni logiche
function parseCond(sortableList, condType){
var condText = "";
var items = $(sortableList).children("li")
var itemsText = [];
$(items).each(function() {
if ($(this).hasClass("condLIand")) {
var andID = "#" + $(this).children("ul").attr("id");
var andText = parseCond(andID, "AND");
if (andText.length){
itemsText.push(andText);
};
};
if ($(this).hasClass("condLIor")) {
var orID = "#" + $(this).children("ul").attr("id");
var orText = parseCond(orID, "OR");
if (orText.length){
itemsText.push(orText);
};
};
if ($(this).hasClass("claLI")) {
if ($(this).find("input")[0].checked == true){
var claText = $(this).find(".clatext").text();
var claNum = "Clausola" + claText.substr(0,claText.indexOf('.'));
itemsText.push(claNum);
};
};
});
var len = itemsText.length;
switch (len) {
case 0:
break;
case 1:
condText += itemsText[0];
break;
default:
condText = "( ";
for (let i = 0; i < (len - 1); i++) {
condText += itemsText[i] + " " + condType + " ";
}
condText += itemsText[len - 1] + " )"
};
return condText;
};
function form2filter(jsonQuery){
data21 = getStatements();
qText = $("form #queryText");
if (qText.length) {
if (qText[0].value != '')
jsonQuery.where[1].expression.args[1].value= "^" + qText[0].value + "$";
}
selectGramm = $("form #grammtypes1");
if (selectGramm.length) {
if (selectGramm[0].value != 'all')
jsonQuery.where[0].triples.push(JSON.parse(data21)[selectGramm[0].value]);
}
/**
if (qText[0].value != "")
switch(form.tipo.value) {
case 'parola':
jsonQuery.where[1].expression.args[1].value = "^" + qText[0].value + "$";
break;
case 'sottostringa':
jsonQuery.where[1].expression.args[1].value = qText[0].value;
break;
case 'prefisso':
jsonQuery.where[1].expression.args[1].value = qText[0].value;
break;
case 'suffisso':
jsonQuery.where[1].expression.args[1].value = qText[0].value + "$";
break;
default:
jsonQuery.where[1].expression.args[1].value = "^" + qText[0].value + "$";
};
*/
return jsonQuery;
};
$.fn.copy2clipboard = function() {
$('div[id^="msgCopiata"]').remove();
this.select();
$(this).focus();
document.execCommand("copy");
document.getSelection().removeAllRanges();
$(this).after('
Copiata nella clipboard
');
};
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);
clone.setAttribute("id","tiposintattico" + tabID);
}
});