LiDa_Search/js/script_Luk.js

575 lines
28 KiB
JavaScript

/**
*
*/
$(document).ready(function() {
$( "#sortable1" ).sortable();
// Evento: click sull'area di anvigazione delle tab
$('#tab-list').on('click', refreshClaList);
// Evento: click sull'icona check dentro il tab della clausola
$('#cla-TabContent').on('click', '.return2Query', function() {
var tabFirst = $('#tab-list a:first');
refreshClaList();
tabFirst.tab('show');
});
// Evento: click sull'icona rimuovi dentro il tab della clausola
$('#cla-TabContent').on('click', '.removeClaInTab', function() {
var tabIDVal = "#" + $(this).parent('div').parent().attr('id');
removedTabOrder = $(tabIDVal).attr('data-claOrder');
var liID = tabIDVal +"-tab";
claListLen--;
$(liID).parent().remove();
$(tabIDVal).remove();
var tabFirst = $('#tab-list a:first');
refreshTabList();
refreshClaList();
tabFirst.tab('show');
});
// Evento: click sull'icona rimuovi dentro la lista delle clausole
$('#cla-TabContent').on('click', '.removeClaInList', function() {
var tabIDHandle = $(this).closest('li').attr('id');
var tabIDVal = "#" + tabIDHandle.substring(2);
removedTabOrder = $(tabIDVal).attr('data-claOrder');
var liID = tabIDVal + "-tab";
claListLen--;
$(liID).parent().remove();
$(tabIDVal).remove();
var tabFirst = $('#tab-list a:first');
refreshTabList();
refreshClaList();
tabFirst.tab('show');
});
// Evento: click sull'icona modifica dentro la lista delle clausole
$('#cla-TabContent').on('click', '.editCla', function() {
var tabIDHandle = $(this).closest('li').attr('id');
var liID = "#" + tabIDHandle.substring(2) + "-tab";
var tabTarget = $('#tab-list ' + liID);
tabTarget.tab('show');
});
// Evento: click sulla lista di clausole nel dropbox "Aggiungi clausola di tipo:"
$('.btn-group a').on('click', function() {
var addClaN = $(this).attr('id');
switch (addClaN) {
case "Grammaticale":
tabID++;
var clone = document.getElementById("tipogrammaticaleN").cloneNode(true);
clone.setAttribute("id","cla" + tabID);
clone.setAttribute("data-claOrder",claListLen);
clone.setAttribute("aria-labelledby","cla" + tabID + "-tab");
clone.removeAttribute("style");
$('#cla-TabContent').append(clone);
// se non cambio l'id della select react non rileva l'evento onchange:
$('#cla' + tabID + " #grammtypes").attr("id","grammtypes" + tabID);
claListLen++;
$('#tab-list').append($('<li class="nav-item" role="presentation"><a class="nav-link" id="cla' + tabID + '-tab" data-toggle="tab" href="#cla' + tabID + '" role="tab" aria-controls="cla' + tabID + '" aria-selected="false" data-claType="Grammaticale"><span class="small font-weight-bold text-lida8">' + iconFilter + '&nbsp;&nbsp;' + claListLen + '. Grammaticale</span></a></li>'));
$('#cla' + tabID + '-tab').tab('show');
break;
case "Sintattico":
tabID++;
var clone = document.getElementById("tiposintatticoN").cloneNode(true);
clone.setAttribute("id","cla" + tabID);
clone.setAttribute("data-claOrder",claListLen);
clone.setAttribute("aria-labelledby","cla" + tabID + "-tab");
clone.removeAttribute("style");
$('#cla-TabContent').append(clone);
claListLen++;
$('#tab-list').append($('<li class="nav-item" role="presentation"><a class="nav-link" id="cla' + tabID + '-tab" data-toggle="tab" href="#cla' + tabID + '" role="tab" aria-controls="cla' + tabID + '" aria-selected="false" data-claType="Sintattico"><span class="small font-weight-bold text-lida9">' + iconFilter + '&nbsp;&nbsp;' + claListLen + '. Sintattico</span></a></li>'));
$('#cla' + tabID + '-tab').tab('show');
break;
case "Metafore":
tabID++;
$('#cla-TabContent').append($('<div class="tab-pane fade p-2 bg-white" data-claOrder="' + claListLen + '" data-claActive="0" id="cla' + tabID + '" role="tabpanel" aria-labelledby="cla' + tabID + '-tab" data-claType="Metafore">' + iconCheckAndClose + '<div class="text-muted form-group px-1 pb-1">Clausola <span class="text-lida3">Metafore</span> - non ancora implementata</div></div>'));
claListLen++;
$('#tab-list').append($('<li class="nav-item" role="presentation"><a class="nav-link" id="cla' + tabID + '-tab" data-toggle="tab" href="#cla' + tabID + '" role="tab" aria-controls="cla' + tabID + '" aria-selected="false" data-claType="Metafore"><span class="small font-weight-bold text-lida3">' + iconFilter + '&nbsp;&nbsp;' + claListLen + '. Metafore</span></a></li>'));
$('#cla' + tabID + '-tab').tab('show');
break;
case "Dialoghi":
tabID++;
$('#cla-TabContent').append($('<div class="tab-pane fade p-2 bg-white" data-claOrder="' + claListLen + '" data-claActive="0" id="cla' + tabID + '" role="tabpanel" aria-labelledby="cla' + tabID + '-tab" data-claType="Dialoghi">' + iconCheckAndClose + '<div class="text-muted form-group px-1 pb-1">Clausola <span class="text-lida4">Dialoghi</span> - non ancora implementata</div></div>'));
claListLen++;
$('#tab-list').append($('<li class="nav-item" role="presentation"><a class="nav-link" id="cla' + tabID + '-tab" data-toggle="tab" href="#cla' + tabID + '" role="tab" aria-controls="cla' + tabID + '" aria-selected="false" data-claType="Dialoghi"><span class="small font-weight-bold text-lida4">' + iconFilter + '&nbsp;&nbsp;' + claListLen + '. Dialoghi</span></a></li>'));
$('#cla' + tabID + '-tab').tab('show');
break;
case "Struttura":
tabID++;
$('#cla-TabContent').append($('<div class="tab-pane fade p-2 bg-white" data-claOrder="' + claListLen + '" data-claActive="0" id="cla' + tabID + '" role="tabpanel" aria-labelledby="cla' + tabID + '-tab" data-claType="Struttura">' + iconCheckAndClose + '<div class="text-muted form-group px-1 pb-1">Clausola <span class="text-lida5">Struttura testo</span> - non ancora implementata</div></div>'));
claListLen++;
$('#tab-list').append($('<li class="nav-item" role="presentation"><a class="nav-link" id="cla' + tabID + '-tab" data-toggle="tab" href="#cla' + tabID + '" role="tab" aria-controls="cla' + tabID + '" aria-selected="false" data-claType="Struttura"><span class="small font-weight-bold text-lida5">' + iconFilter + '&nbsp;&nbsp;' + claListLen + '. Struttura</span></a></li>'));
$('#cla' + tabID + '-tab').tab('show');
break;
default:
};
});
// Evento: clausola spostata nella lista
$('#sortable1').sortable({
opacity: 0.6,
cursor: 'move',
update: function(event, ui) {
var orderLI = $(this).sortable('toArray');
$.each(orderLI, function(index, tabIDHandle){
tabIDSet = "#" + tabIDHandle.substring(2);
$(tabIDSet).attr("data-claOrder", index);
});
}
});
// Evento: click sul checkbox di attivazione delle clausole
$('#cla-TabContent').on('click', '.claAct', function() {
var tabIDHandle = $(this).closest('li').attr('id');
var tabIDVal = "#" + tabIDHandle.substring(2);
if ($(this).prop('checked')) {
$(tabIDVal).attr("data-claActive", 1);
$(this).closest('li').find('.clatext').fadeTo( "slow", 1 );
} else {
$(tabIDVal).attr("data-claActive", 0);
$(this).closest('li').find('.clatext').fadeTo( "slow", 0.6 );
}
});
// 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: 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("");
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 (key in keys) {
var vals = categorieJson[filtro][keys[key]]
switch (vals.length) {
case 2:
var element = $('<div />');
element.attr('class', ' d-flex flex-nowrap pr-2 mb-1 col-8 form-group form-control justify-content-between');
var rbfieldset = $('<fieldset />'),
flexdiv1 = $('<div />'),
flexdiv2 = $('<div />'),
input1 = $('<input />'),
input2 = $('<input />'),
label1 = $('<label />'),
label2 = $('<label />');
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 = $('<div />');
element.attr('class', ' d-flex flex-nowrap mb-1 col-4 form-group form-control');
var rbfieldset = $('<fieldset />');
flexdiv1 = $('<div />');
input1 = $('<input />');
label1 = $('<label />');
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 = $('<div />');
element.attr('class', ' col-8 form-group px-0 pb-1 m-0');
var select = $('<select class="form-control custom-select"/>');
select.attr('id', tabPaneId + keys[key]);
select.attr('title', keys[key]);
select.attr('name', keys[key]);
for (val in vals) {
var seloption = $('<option />');
seloption.attr('value', vals[val]);
seloption.append(vals[val]);
seloption.appendTo(select);
}
select.appendTo(element);
element.attr('style', 'display:block');
element.appendTo(dettagliBox);
}
}
}
element.attr('style', "display: block;");
element.appendTo(dettagliBox);
// ANCORA DA VEDERE:
var divdf = jQuery('#divdettaglifiltri >div'),
detelement = null,
detelement = divdf.clone();
detelement.attr('id', 'dettaglifiltri')
detelement.appendTo("#query")
});
// Variabili JSON
/*
var verboJson = {
"filtriverbo": {
"Diatesi": ["Attivo", "Passivo"],
"Transitivita": ["Transitivo", "Intransitivo"],
"Genere": ["Femminile", "Maschile"],
"Numero": ["Singolare", "Plurale"],
"Pers": ["Impersonale"],
"Rifl": ["Riflessivo"],
"Coniugazione": ["--_Qualsiasi coniugazione", "pc-_Prima coniugazione", "sc-_Seconda coniugazione", "tc-_Terza coniugazione", "ec-_Essere coniugazione", "ac-_Avere coniugazione"],
"Tempi": ["--_Qualsiasi tempo verbale", "ip-_Indicativo presente", "ib-_Indicativo passato prossimo", "ii-_Indicativo imperfetto", "ir-_Indicativo passato remoto",
"is-_Indicativo trapassato prossimo", "it-_Indicativo trapassato remoto", "if-_Indicativo futuro semplice", "ia-_Indicativo futuro anteriore", "cp-_Congiuntivo presente",
"ci-_Congiuntivo imperfetto", "cr-_Congiuntivo passato", "ct-_Congiuntivo trapassato", "dp-_Condizionale presente", "dr-_Condizionale passato", "mp-_Imperativo presente",
"fp-_Infinito presente", "fr-_Infinito passato", "pp-_Participio presente", "pr-_Participio passato", "gp-_Gerundio presente", "gr-_Gerundio passato"],
"Persona" : ["--_Qualsiasi persona", "s1-_1ª persona singolare", "s2-_2ª persona singolare", "s3-_3ª persona singolare", "p1-_1ª persona plurale", "p2-_2ª persona plurale", "p3-_3ª persona plurale"],
"Funzione": ["--_Tutte le funzioni", "ag-_Aggettivo", "sm-_Sostantivo maschile", "sf-_Sostantivo femminile"],
"Declinazione": ["--_Tutte le declinazioni", "ag-_Prima declinazione", "sm-_Seconda declinazione", "sf-_Terza declinazione"],
}
}
*/
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 = '<ion-icon name="pencil"></ion-icon>';
var iconClose = '<ion-icon name="close-circle"></ion-icon>';
var iconCheck = '<ion-icon name="checkmark-circle"></ion-icon>';
var iconFilter = '<ion-icon name="filter-circle"></ion-icon>';
var iconReset = '<div class="text-right text-primary radioRefresh"><ion-icon name="refresh-circle"></ion-icon></div>';
var iconCheckAndClose = '<div class="p-0 m-1 text-right text-primary"><span class="return2Query">' + iconCheck + '</span>&nbsp;&nbsp;<span class="removeClaInTab">' + iconClose + '</span></div>';
var emptyClaList = '<li class="list-group-item align-items-center ui-state-default ui-state-disabled border text-muted bg-white">Nessuna clausola aggiunta.</li>';
var LIpart1 = '<li id="'
var LIpart2 = '" class="p-1 list-group-item align-items-center border text-muted bg-white"><div class="container-fluid"><div class="row"><div class="col-md-11 px-0 pr-2"> \
<div class="bd-highlight text-primary"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span></div><div class="p-1 bd-highlight flex-grow-1 border-right clatext">';
var LIpart3 = '</div></div><div class="col-md-1 px-0 pl-4"><div class="row"><div class="col-md-12 px-0 float-right"><div class="d-flex px-3 flex-nowrap float-right"> \
<div class="p-1 align-top bd-highlight text-primary editCla">' + iconEdit + '</div><div class="p-1 align-top bd-highlight text-primary removeClaInList">' + iconClose + '</div> \
</div></div></div><div class="row"><div class="col-md-12 px-2 float-right"><div class="custom-control custom-switch p-1 text-right bd-highlight"> \
<input type="checkbox" class="custom-control-input claAct" name="cla-attiva" aria-label="attiva" id="actiClaSW';
var LIpart4 = '><label class="custom-control-label" for="actiClaSW';
var LIpart5 = '"></label></div></div></div></div></div></div></li>';
// Variabili funzionali
var tabID = 0;
var claListLen = 0;
var removedTabOrder = -1;
// Funzione di refresh della lista delle tab delle clausole
function refreshTabList(){
var tabs=$("#tab-list li:not(:first)");
var len=0;
$(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('<span class="small font-weight-bold ' + textClassType + '" >' + iconFilter + '&nbsp;&nbsp;' + len + ': ' + claType + '&nbsp;&nbsp;</span>');
$(this).find('a').attr("data-claType", claType)
});
}
// Funzione di refresh della lista clausole nella tab query
function refreshClaList(){
var tabsC=$("#cla-TabContent").find(".tab-pane:not(:first)");
var clausoleText = "";
var len=0;
if ($(tabsC).length) {
var LItextArray = new Array($(tabsC).length);
$(tabsC).each(function(){
len++;
checkInsert = '"';
tabIDHandle = "H-" + $(this).attr('id');
claType = $(this).attr('data-claType');
claOrder = $(this).attr('data-claOrder');
claActive = $(this).attr('data-claActive');
if (claActive > 0) {
checkInsert = '" checked="checked"';
};
// se una clausola è stata rimossa aggiorno il 'data-claOrder' di quelle successive nella lista,
// altrimenti l'array ha elementi undefined:
if (removedTabOrder > -1 && claOrder > removedTabOrder) {
claOrder--;
$(this).attr('data-claOrder',claOrder);
};
switch (claType) {
case "Grammaticale":
graSelect = $(this).find(".catgram");
graText = graSelect[0].options[graSelect[0].selectedIndex].text;
claText = len + ". Categoria grammaticale: " + graText + '<br><span class="small ml-3">';
claSubParList = $(this).children(".dettaglifiltri").find("select, fieldset");
claSubParList.each(function(){
claSubParType = $(this)[0].type;
if (claSubParType == "fieldset" && $(this).find(":checked").length) {
//claSubParValue = $(this).find(":checked")[0].value;
claSubParId = $(this).find(":checked")[0].id;
claSubParText = $(this).find("[for='" + claSubParId + "']")[0].innerText;
claText = claText + claSubParText + "; ";
};
if (claSubParType == "select-one") {
//claSubParValue = $(this)[0].value;
claSubParText = $(this)[0].options[$(this)[0].selectedIndex].text;
//claText = claText + $(this)[0].title + ": " + claSubParText + "; "
claText = claText + claSubParText + "; "
};
});
break;
case "Sintattico":
syntSelect = $(this).find("#synttypes");
syntText = syntSelect[0].options[syntSelect[0].selectedIndex].text;
funcSelect = $(this).find("#syntfunc");
funcText = funcSelect[0].options[funcSelect[0].selectedIndex].text;
claText = len + ". Tipo sintattico: " + syntText + '; <br><span class="ml-3"">Livello di subordinazione: ' + funcText
break;
default:
claText = len + ". " + $(this).text();
checkInsert = '" disabled';
};
LItextArray[claOrder] = LIpart1 + tabIDHandle + LIpart2 + claText + LIpart3 + len + checkInsert + LIpart4 + len + LIpart5;
});
$.each(LItextArray, function(index, LItext){
clausoleText = clausoleText + LItextArray[index];
});
} else {
clausoleText = emptyClaList;
tabID = 0;
claListLen = 0;
};
$('#sortable1').html(clausoleText);
$('#sortable1 li').each(function(){
if (! $(this).find(".claAct").prop('checked')) {
$(this).find('.clatext').css({ opacity: 0.6 });
};
});
removedTabOrder = -1;
}
function cloneClaSint(clone,tabID){
var original = document.getElementById("tiposintatticoX");
clone = original.cloneNode(true);
clone.setAttribute("id","tiposintattico" + tabID);
}
});