aggiunta filtri (in progress)

This commit is contained in:
cesare 2022-02-05 11:53:02 +01:00
parent 1c21f92d4b
commit 829c80eaa1
2 changed files with 292 additions and 119 deletions

View File

@ -804,7 +804,7 @@
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="singolare" value="singolare" <input class="mr2 f6" type="radio" id="singolare" value="singolare"
name="tra"> <label for="" singolare"" class="lh-copy">Singolare</label> name="tra"> <label for=" singolare" class="lh-copy">Singolare</label>
</div> </div>
<div class="flex items-center mb2"> <div class="flex items-center mb2">
<input class="mr2 f6" type="radio" id="plurale" value="plurale" <input class="mr2 f6" type="radio" id="plurale" value="plurale"

View File

@ -1,123 +1,296 @@
/** /**
* *
*/ */
$(document).ready(function() {
grammarconditions = 0
var aggettivoJson = {
"filtriaggettivo": {
"Classe": ["1ª", "2ª"],
"Genere": ["Femminile", "Maschile"],
"Numero": ["Singolare", "Plurale"],
"Con oggetto indiretto": ["Con ogg.Indiretto"],
"Tipo": ["Qualificativo", "Indefinito", "Interrogativo", "Esclamativo", "Numerale", "Dimostrativo", "Relativo", "Possessivo", "In locuzione"],
"Grado": ["Comparativo di maggioranza", "Comparativo di minoranza", "Comparativo di uguaglianza", "Superlativo relativo", "Superlativo assoluto"],
"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": ["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": {
"Classe/Persona": ["1ª", "2ª", "3ª"],
"Genere": ["Femminile", "Maschile"],
"Numero": ["Singolare", "Plurale"],
"Tipo": ["Personale", "Riflessivo", "Interrogativo", "Esclamativo", "Dimostrativo", "Relativo", "Possessivo"],
"Forma (Personali/Riflessivi)": ["Libero", "Libero in Composizione", "Proclitico", "Enclitico"],
"Funzione (Personali)": ["Libero - soggetto", "Libero - soggetto impersonale", "Libero - complemento", "Libero - rafforzativo",
"Clitico - accusativo", "Clitico - dativo", "Clitico - partitivo"],
"Tipo (Riflessivi)": ["Proprio", "Lessicalizzato", "Impersonale", "Passivo", "Reciproco"]
}
}
var articoloJson = {
"filtriarticolo": {
"Genere": ["Femminile", "Maschile"],
"Numero": ["Singolare", "Plurale"],
"Tipo": ["Determinativo", "Indeterminativo"]
}
}
var avverbioJson = {
"filtriavverbio": {
"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 II":["Semplice", "Articolata", "In locuzione", "In locuzione separata"],
"Sintassi":["Soggettiva", "Oggettiva", "Dichiarativa", "Completiva obliqua", "Finale",
"Causale", "Concessiva", "Consecutiva", "Temporale", "Modale","Eccettuativa", "Esclusiva",
"Limitativa", "Comparativa", "Avversativa"],
"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)":["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"]
}
}
$(document).ready(function(){
grammarconditions=0 var congiunzioneJson={
var aggettivoJson=null "filtricongiunzione":{
$.getJSON("aggettivo.json", function(aggettivo){
"Tipo":["Semplice", "Composta", "Locuzione", "Locuzione separata"],
"Coo./sub":["coordinativa","subordinativa"],
"Coord. tipo": ["copulativa", "disgiuntiva", "avversativa", "esplicativa", "conclusiva", "correlativa"],
"Subord. tipo":["soggettiva", "oggettiva", "dichiarativa", "completiva obliqua", "interrogativa",
"finali", "causali", "concessiva", "consecutiva", "temporale", "modale",
"eccettuativa", "comparativa", "condizionale", "esclusiva", "limitativa"]
}
}
var categorie = {
"pronomevolgare": "filtripronome",
"aggettivovolgare": "filtriaggettivo",
"articolovolgare": "filtriarticolo",
"avverbiovolgare": "filtriavverbio",
"preposizionevolgare":"filtripreposizione",
"congiunzionevolgare":"filtricongiunzione"
}
/*$.getJSON("aggettivo.json", function(aggettivo){
//var keys = Object.values(aggettivo.filtri["Con oggetto indiretto"]); //var keys = Object.values(aggettivo.filtri["Con oggetto indiretto"]);
//alert(keys); //alert(keys);
aggettivoJson=aggettivo aggettivoJson=aggettivo
}).fail(function(){ }).fail(function(){
console.log("An error has occurred."); console.log("An error has occurred.");
}); });*/
var categorieJson = $.extend({}, pronomeJson, aggettivoJson, articoloJson, avverbioJson, preposizioneJson, congiunzioneJson);
$('.tabs__menu-item').on('click', function() { $('.tabs__menu-item').on('click', function() {
$(this).addClass('bg-white').addClass('red'); $(this).addClass('bg-white').addClass('red');
$(this).siblings().removeClass('bg-white').removeClass('red'); $(this).siblings().removeClass('bg-white').removeClass('red');
}); });
jQuery(document).delegate('a.add-record', 'click', function(e) { jQuery(document).delegate('a.add-record', 'click', function(e) {
e.preventDefault(); e.preventDefault();
var content = jQuery('#categoriagrammaticale div'), var content = jQuery('#categoriagrammaticale div'),
size = jQuery('#condizioni >div').length + 1, size = jQuery('#condizioni >div').length + 1,
element = null, element = null,
element = content.clone(); element = content.clone();
//alert(size); //alert(size);
element.attr('id', 'cg-'+size); element.attr('id', 'cg-' + size);
//element.attr('class', "stripe-dark") //element.attr('class', "stripe-dark")
//element.find('.delete-record').attr('data-id', size); //element.find('.delete-record').attr('data-id', size);
element.appendTo('#condizioni'); element.appendTo('#condizioni');
element.find('.sn').html(size); element.find('.sn').html(size);
grammarconditions=grammarconditions+1 grammarconditions = grammarconditions + 1
if (size==1) if (size == 1)
jQuery('#grammarbutton').attr('style', "display:block;") jQuery('#grammarbutton').attr('style', "display:block;")
}); });
jQuery(document).delegate('a.add-record-sint', 'click', function(e) { jQuery(document).delegate('a.add-record-sint', 'click', function(e) {
e.preventDefault(); e.preventDefault();
var content = jQuery('#tiposintattico div'), var content = jQuery('#tiposintattico div'),
size = jQuery('#condizioni >div').length + 1, size = jQuery('#condizioni >div').length + 1,
element = null, element = null,
element = content.clone(); element = content.clone();
element.attr('id', 'ts-'+size); element.attr('id', 'ts-' + size);
//element.attr('class', "stripe-dark") //element.attr('class', "stripe-dark")
//element.find('.delete-record').attr('data-id', size); //element.find('.delete-record').attr('data-id', size);
element.appendTo('#condizioni'); element.appendTo('#condizioni');
element.find('.sn').html(size); element.find('.sn').html(size);
if (size==1) if (size == 1)
jQuery('#grammarbutton').attr('style', "display:block;") jQuery('#grammarbutton').attr('style', "display:block;")
}); });
jQuery(document).delegate('select.catgram', 'change', function(e) { jQuery(document).delegate('select.catgram', 'change', function(e) {
e.preventDefault(); e.preventDefault();
//alert ($('#types').find(":selected").val()) //alert ($('#types').find(":selected").val())
alert ($(this).closest('div').attr('id')) alert($(this).closest('div').attr('id'))
containerid='dettaglio_'+$(this).closest('div').attr('id') containerid = 'dettaglio_' + $(this).closest('div').attr('id')
//if ($('#types').find(":selected").val()=='verbovolgare'){ //if ($('#types').find(":selected").val()=='verbovolgare'){
if ($(this).val()=='verbovolgare'){ if ($(this).val() == 'verbovolgare') {
//alert($('#types').find(":selected").val()); //alert($('#types').find(":selected").val());
var content = jQuery('#categoriaverbo >div'), var content = jQuery('#categoriaverbo >div'),
size = jQuery('#dettaglifiltri').length + 1, size = jQuery('#dettaglifiltri').length + 1,
element = null, element = null,
element = content.clone(); element = content.clone();
} }
if ($(this).val()=='sostantivovolgare'){ if ($(this).val() == 'sostantivovolgare') {
//alert($('#types').find(":selected").val()); //alert($('#types').find(":selected").val());
var content = jQuery('#categoriasostantivo >div'), var content = jQuery('#categoriasostantivo >div'),
size = jQuery('#dettaglifiltri').length + 1, size = jQuery('#dettaglifiltri').length + 1,
element = null, element = null,
element = content.clone(); element = content.clone();
} }
if ($(this).val()=='aggettivovolgare'){
var keys = Object.keys(aggettivoJson.filtri); //alert($(this).val())
alert(keys)
} if (Object.keys(categorie).includes($(this).val())) {
element.attr('style',"display: block;") //alert(categorie[$(this).val()])
//element.appendTo('#dettaglifiltri'); var filtro = categorie[$(this).val()]
//var keys = Object.keys(aggettivoJson.filtri);
var test=jQuery('#'+containerid) var keys = Object.keys(categorieJson[filtro])
test.remove() for (key in keys) {
//alert(aggettivoJson.filtri[keys[key]])
var vals = categorieJson[filtro][keys[key]]
element.appendTo('#dettaglifiltri'); if (vals.length == 2) {
var container = jQuery('#dettaglifiltri'); var element = $('<div />');
container.attr('id', containerid); element.attr('class', ' w-15 pa1 mr2');
var divdf = jQuery('#divdettaglifiltri >div'), var rbfieldset = $('<fieldset />'),
detelement = null, flexdiv1 = $('<div />'),
detelement = divdf.clone(); flexdiv2 = $('<div />'),
detelement.attr('id','dettaglifiltri') input1 = $('<input />'),
detelement.appendTo("#query") input2 = $('<input />'),
element.find('.sn').html(size); label1 = $('<label />'),
label2 = $('<label />');
});
rbfieldset.attr('id', keys[key]);
rbfieldset.attr('class', 'bn');
jQuery(document).delegate('input.delete-record', 'click', function(e) { flexdiv1.attr('class', 'flex items-center mb2');
e.preventDefault(); flexdiv2.attr('class', 'flex items-center mb2');
var didConfirm = confirm("Sei sicuro di voler eliminare la condizione?"); input1.attr('class', 'mr2 f6');
if (didConfirm == true) { input2.attr('class', 'mr2 f6');
var id = jQuery(this).attr('data-id'); input1.attr('type', 'radio');
var targetDiv = jQuery(this).attr('targetDiv'); input2.attr('type', 'radio');
jQuery('#rec-' + id).remove(); input1.attr('id', vals[0]);
input2.attr('id', vals[1]);
if (jQuery('#condizioni >tbody >tr').length==0) input1.attr('value', vals[0]);
jQuery('#grammarbutton').attr('style', "display:none;") input2.attr('value', vals[1]);
//regnerate index number on table input1.attr('name', 'tra');
$('#condizioni_body tr').each(function(index){ input2.attr('name', 'tra');
$(this).find('span.sn').html(index+1); label1.attr('class', 'lh-copy');
label2.attr('class', 'lh-copy');
}); label1.attr('for', vals[0]);
return true; label2.attr('for', vals[1]);
} else { label1.append(vals[0]);
return false; 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);
element.attr('style', 'display:block')
element.appendTo('#dettaglifiltri');
}
}
for (key in keys) {
var vals = categorieJson[filtro][keys[key]]
if (vals.length > 2) {
var element = $('<div />');
element.attr('class', ' w-15 pa1 mr2');
var select = $('<select id="coniug" class="w-100 db h2 f6 bg-near-white ba b--sliver gray"/>')
select.attr('id', keys[key])
select.attr('title', keys[key])
for (val in vals) {
//alert(vals[val])
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('#dettaglifiltri');
}
}
}
element.attr('style', "display: block;")
//element.appendTo('#dettaglifiltri');
var test = jQuery('#' + containerid)
test.remove()
element.appendTo('#dettaglifiltri');
var container = jQuery('#dettaglifiltri');
container.attr('id', containerid);
var divdf = jQuery('#divdettaglifiltri >div'),
detelement = null,
detelement = divdf.clone();
detelement.attr('id', 'dettaglifiltri')
detelement.appendTo("#query")
element.find('.sn').html(size);
});
jQuery(document).delegate('input.delete-record', 'click', function(e) {
e.preventDefault();
var didConfirm = confirm("Sei sicuro di voler eliminare la condizione?");
if (didConfirm == true) {
var id = jQuery(this).attr('data-id');
var targetDiv = jQuery(this).attr('targetDiv');
jQuery('#rec-' + id).remove();
if (jQuery('#condizioni >tbody >tr').length == 0)
jQuery('#grammarbutton').attr('style', "display:none;")
//regnerate index number on table
$('#condizioni_body tr').each(function(index) {
$(this).find('span.sn').html(index + 1);
});
return true;
} else {
return false;
}
});
});