From 1b981ad337dbcb9b42dadde597d4fbbd94a3454c Mon Sep 17 00:00:00 2001 From: Luca Trupiano Date: Wed, 1 Feb 2023 18:46:02 +0100 Subject: [PATCH] Nuova versione resizable e scrollable --- css/custom_4.css | 13 +- index_4.1.html | 1915 ++++++++++++++++++++++++++++++++++++++++++++ js/cesareBrowse.js | 2 +- js/script_4.1.js | 1227 ++++++++++++++++++++++++++++ 4 files changed, 3152 insertions(+), 5 deletions(-) create mode 100644 index_4.1.html create mode 100644 js/script_4.1.js diff --git a/css/custom_4.css b/css/custom_4.css index 5f475ab..65d4c34 100644 --- a/css/custom_4.css +++ b/css/custom_4.css @@ -3,9 +3,9 @@ html, body { height: 100%; } - -.menuRicerca { - width: 30%; + +body { + padding-top: 61px; } .menuNavigazione { @@ -13,7 +13,12 @@ body { } .minimap { - width: 9%; + width: 7%; +} + +.menuRicerca { + background-color: #999; + width: 30%; } .visCanto { diff --git a/index_4.1.html b/index_4.1.html new file mode 100644 index 0000000..4adee64 --- /dev/null +++ b/index_4.1.html @@ -0,0 +1,1915 @@ + + + + + + LiDa Dashboard + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ +
+ + + +
+
+
+
+
+
+
+
+
+
Visualizza info
+
+
+
+
+ +
+
 
+
+ + +
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/js/cesareBrowse.js b/js/cesareBrowse.js index ecc6655..be1a7a2 100644 --- a/js/cesareBrowse.js +++ b/js/cesareBrowse.js @@ -636,7 +636,7 @@ $(" .Ma, .Co, .Su, .Pa").hover(function(idx, element) { //divcanto.attr('style', 'display:none') divcanto.attr('id', (cantica + canto).replace(" ", "_")) titolocanto.appendTo(divcanto) - divcanto.appendTo(' .blog-main') + divcanto.appendTo('#displaycanto') } } } diff --git a/js/script_4.1.js b/js/script_4.1.js new file mode 100644 index 0000000..4b39b16 --- /dev/null +++ b/js/script_4.1.js @@ -0,0 +1,1227 @@ +/** + * + */ + +var getJsonQuery; + +$(document).ready(function() { + + // Funzioni di gestione del comportamento dei bottoni collapse + $('#collapseLogic').on('hidden.bs.collapse', function (e) { + if (e.target.id == "collapseLogic") { + $("#showLogic").html('Mostra'); + $("#collapseAdvanced").collapse('hide'); + }; + }) + + $('#collapseLogic').on('shown.bs.collapse', function () { + $("#showLogic").html('Nascondi'); + $("#collapseAdvanced").collapse('show'); + }) + + $('#collapseOptions').on('hidden.bs.collapse', function (e) { + if (e.target.id == "collapseOptions") { + $("#showOptions").html('Opzioni'); + }; + }) + + $('#collapseOptions').on('shown.bs.collapse', function () { + $("#showOptions").html('Opzioni'); + }) + + $('.collapse').on('hide.bs.collapse', function (e) { + if (e.target.id.substr(0,11) == "collapseCla") { + var claIdNum = e.target.id.substr(11); + $("#claCollapse" + claIdNum)[0].removeAttribute("style"); + $("#claCollapse" + claIdNum).removeClass( "border-bottom-0" ); + $("#claCollapse" + claIdNum).addClass( "border border-lida4" ); + e.stopPropagation(); + }; + }) + + $('.collapse').on('show.bs.collapse', function (e) { + if (e.target.id.substr(0,11) == "collapseCla") { + var claIdNum = e.target.id.substr(11); + $("#claCollapse" + claIdNum)[0].setAttribute("style", "background-color: #edf9f3 !important;border-bottom-left-radius: 0;border-bottom-right-radius: 0;"); + $("#claCollapse" + claIdNum).removeClass( "border border-lida4" ); + $("#claCollapse" + claIdNum).addClass( "border-bottom-0" ); + e.stopPropagation(); + }; + }) + + // Evento: click sullo switch di ricerca avanzata + $('#searchToggle').on('change', function() { + if ($(this).prop('checked')) { + queryJson.QueryAvanzata = "1"; + $("#simpleSearchDiv").removeClass( "d-flex" ) + $("#simpleSearchDiv").attr('style', "display: none;"); + $("#collapseOptions").collapse('hide'); + $("#advancedSearchDiv").addClass( "d-flex" ) + $("#advancedSearchDiv").attr('style', "display: flex;"); + $("#collapseAdvanced").collapse('show'); + $("#collapseLogic").collapse('show'); + } else { + queryJson.QueryAvanzata = "0"; + $("#collapseAdvanced").collapse('hide'); + $("#advancedSearchDiv").removeClass( "d-flex" ) + $("#advancedSearchDiv").attr('style', "display: none;"); + $("#simpleSearchDiv").addClass( "d-flex" ) + $("#simpleSearchDiv").attr('style', "display: flex;"); + }; + }); + + // Inizializza sortable + $( "#sortable0" ).sortable({ + items: "> li", + handle: ".handle" + }); + + // Inizializza selectable-xX0 e definisce le funzioni + $("#selectable-xX0").selectable({ + filter: ".sel-canto", + selected: function(event, ui) { + window.context0[ui.selected.id.substring(0,1)][ui.selected.id.substring(2)] = 1; + var tmpFocusBtn = "#plusBtn" + ui.selected.id.substring(0,1) + "-xX" + tabID; + $(tmpFocusBtn).focus(); + } + }); + + // Inizializza resizable + $(".menuNavigazione").resizable({ + handles: "e", + minWidth: 100, + maxWidth: 350, + stop: function(event, ui) { + setWidthInPercent(ui.element); + } + }); + + $(".menuRicerca").resizable({ + handles: "w", + minWidth: 350, + resize: function(event, ui) { + ui.position.left = 0; + $("#displaycanto").width("100%"); + }, + stop: function(event, ui) { + setWidthInPercent(ui.element); + } + }); + + $(".visCanto").resizable({ + handles: "s", + minHeight: 80, + maxHeight: 800, + alsoResize: "#displaycanto", + resize: function(event, ui) { + getDimDiv(); + }, + stop: function(event, ui) { + ui.element.width(""); + } + }); + + // Evento: modifica dell'unitaRicerca' + $("#unitaRicerca").on('change', function() { + queryJson.unitaRicerca = $("#unitaRicerca")[0].options[$("#unitaRicerca")[0].selectedIndex].value; + }); + + // 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(); + }); + + $('#cla-TabContent').on('change', '.monMe', function() { + refreshClaList(); + }); + + // Evento: click sull'icona rimuovi clausola + $('#cla-TabContent').on('click', '.removeCla', function() { + var claListItemId = $(this).closest('li').attr('id'); + var claIdNum = claListItemId.substr(6); + claListLen--; + $("#" + claListItemId)[0].remove(); + delete queryJson["Clausola" + claIdNum]; + delete window["context" + claIdNum]; + refreshClaList(); + refreshSortables(); + }); + + // Evento: click sull'icona rimuovi condizione + $('#sortable0').on('click', '.removeCond', function() { + $(this).closest('ul').parent().remove(); + condListLen--; + refreshClaList(); + refreshSortables(); + refreshConnectWith(); + if (claListLen == 0 && condListLen == 0) { + $('#sortable0').html(emptyClaList); + } + }); + + // Evento: click sulla lista di clausole nel dropbox "Aggiungi clausola di tipo:" o "aggiungi condizione logica:" + $('.addCCbtn').on('click', function() { + var addCC = $(this).attr('id'); + switch (addCC) { + case "btnAddCla1": + tabID++; + addGramCla("#sortable0",1,tabID,1); + break; + case "btnAddCla2": + tabID++; + addSyntCla("#sortable0",1,tabID,1); + break; + case "btnAddCla3": + tabID++; + addMetaCla("#sortable0",0,tabID,0); + break; + case "btnAddCond": + addLogicCond("#sortable0","OR"); + break; + default: + }; + refreshClaList(); + refreshSortables(); + }); + + // Evento: clausola spostata nella lista + $('#sortable0').sortable({ + opacity: 0.6, + cursor: 'move', + update: function() { + refreshClaList(); + refreshSortables(); + } + }); + + // Evento: cambiato il tipo della condizione logica + $('#cla-TabContent').on('change', '.condType', function() { + var condtype = $(this).val(); + var condId = $(this).attr('id').substring(12); + if (condtype == "AND") { + $("#cond" + condId).removeClass( "condLI-OR bg-lida11" ) + $("#cond" + condId).addClass( "condLI-AND bg-lida10g" ) + $(this).removeClass( "bg-lida11" ) + $(this).addClass( "bg-lida10g" ) + } else { + $("#cond" + condId).removeClass( "condLI-AND bg-lida10g" ) + $("#cond" + condId).addClass( "condLI-OR bg-lida11" ) + $(this).removeClass( "bg-lida10g" ) + $(this).addClass( "bg-lida11" ) + }; + refreshClaList(); + }); + + // Evento: click sul bottone di edit delle clausole + $('#cla-TabContent').on('click', '.claAct', function() { + var claListItemId = $(this).closest('li').attr('id'); + var tabPanelId = "#" + claListItemId.substring(3); + 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', '.radioReset', function() { + fSet = $(this).siblings('fieldset'); + if (fSet.find(":checked").length) { + radioChecked = fSet.find(":checked")[0]; + radioChecked.checked = false; + }; + refreshClaList(); + }); + + // Evento: click sull'icona di trash del contesto + $('#rigaRicerca').on('click', '.trashClaCont', function() { + var claIdNum = $(this)[0].id.substring(15); + resetContext(claIdNum); + refreshClaList(); + }); + + // Evento: click sull'icona di add del contesto + $('#rigaRicerca').on('click', '.addClaCont', function() { + var claIdNum = $(this).closest('.ui-selectable').attr('id').substr(13); + var selectedCanti = $(this).closest('.card').find('.ui-selected'); + if (selectedCanti.length == 0) { + $(this).closest('.card').find('.ui-selectee').each(function() { + $(this).addClass( "ui-selected" ); + window["context" + claIdNum][$(this).attr("id").substring(0,1)][$(this).attr("id").substring(2)] = 1; + }); + }; + parseContext(claIdNum); + hideContextCanti(claIdNum); + if ($(this).closest('.card').find('span:visible').length == 1) { + $(this).closest('.card').find('div .sel-canti-intro').text("Selezionati tutti i canti."); + }; + refreshClaList(); + }); + + // Evento: click sull'icona di save local + $('#advancedSearchDiv').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 + $('#advancedSearchDiv').on('click', 'ion-icon[name="folder-open-outline"]', function() { + $('#apriFile').click(); + }); + + $("#apriFile").on('change', function() { + var file = $(this).prop('files')[0]; + var reader = new FileReader(); + reader.onload = function(data){ + queryJson = JSON.parse(data.target.result) + makeUpGui(queryJson); + }; + 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 selectedValue = $(this).val(); + addCatgramSubcla(tabPaneId,selectedValue); + refreshClaList(); + }); + + // Evento: Submit form + $("form").submit(function(e){ + e.preventDefault(); + }); + + // Evento: click sul bottone di reset semplice + $('#cleanresult').on('click', function() { + resetResult(); + resetSimpleGui(); + refreshClaList(); + }); + + // Evento: click sul bottone di reset azanzata + $('#cleanresult2').on('click', function() { + resetResult(); + resetAdvGui(); + refreshClaList(); + }); + + // 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": ["Qualsiasi 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 + const iconReset = '
'; + const iconCloseCond = '
'; + const emptyClaList = '
  • Nessuna clausola aggiunta.
  • '; + const defaultCond = '
    Clausole e condizioni in AND di default
    '; + const canticheList = ["Inferno","Purgatorio","Paradiso"]; + const cla0JsonText = '{"queryText": "", "lemma_forma": "lemma", "opzioni_testo": "parola", "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'; + const condLIplaceholderText2d = 'Trascina qui almeno 2 clausole o condizioni, oppure attiva le clausole inattive'; + const condLIplaceholderPart1 = '
  • '; + + // Variabili e costanti funzionali + var tabID = 0; + var claListLen = 0; + var condListLen = 0; + var logicExprString = ``; + var guiLogicString = ``; + const cc0 = new Array(34).fill(0); + const cc1 = new Array(33).fill(0); + const cc2 = new Array(33).fill(0); + const contextEmpty = [cc0,cc1,cc2]; + var queryJson = JSON.parse('{"EsprLogica":"", "LogicaGui":"", "QueryAvanzata": "0"}'); + queryJson.LiDaVersion = "1.0"; + queryJson.unitaRicerca = "verso"; + queryJson.Clausola0 = JSON.parse(cla0JsonText); + queryJson.Clausola0.contesto = JSON.stringify(contextEmpty); + window.context0 = JSON.parse(JSON.stringify(contextEmpty)); + const jsonReplacer = (key, value) => + typeof value === 'undefined' ? 0 : value; + + // Fine variabili + + getJsonQuery = function(){ + return queryJson; + } + + // Funzione di creazione del tab delle clausole grammaticali + function addGramCla(sortableId,active,tabID,toExpand){ + if (active > 0) { + var checkInsert = ' checked="checked"'; + } else { + var checkInsert = ''; + }; + var claText = "Categoria grammaticale:
    "; + addLIitem(sortableId,tabID,claText,checkInsert,toExpand); + var claClone = document.getElementById("tipogrammaticaleN").cloneNode(true); + claClone.setAttribute("id","cla" + tabID); + claClone.setAttribute("data-claActive", active); + claClone.setAttribute("aria-labelledby","cla" + tabID + "-tab"); + claClone.setAttribute("style", "background-color: #edf9f3 !important;"); + $('#claBody' + tabID).append(claClone); + // se non cambio l'id della select react non rileva l'evento onchange: + $('#cla' + tabID + " #grammtypesN").attr("id","grammtypes" + tabID); + $('#cla' + tabID + " #lemma_formaN").attr("id","lemma_forma" + tabID); + $('#cla' + tabID + " #queryTextN").attr("id","queryText" + tabID); + $('#cla' + tabID + " #opzioni_testoN").attr("id","opzioni_testo" + tabID); + $('#cla' + tabID + " #contextDivN").attr("id","contextDiv" + tabID); + addClaContext(tabID); + } + + // Funzione di creazione delle subclausole grammaticali basate sul valore scelto + function addCatgramSubcla(tabPaneId,selectedValue){ + var dettagliBox = $("#" + tabPaneId + " .dettaglifiltri"); + dettagliBox.html(""); + if (Object.keys(categorie).includes(selectedValue)) { + var filtro = categorie[selectedValue] + 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-sm-nowrap pr-2 py-1 mb-1 form-group form-control justify-content-between bg-light'); + var rbfieldset = $('
    '); + var flexdiv1 = $('
    '); + var flexdiv2 = $('
    '); + var input1 = $(''); + var input2 = $(''); + var label1 = $('