/* * Codice javascript per l'applicazione */ // necessità comuni function Coda() { // E infine un footer a chiudere la pagina container.append("footer") .attr("class", "row page-footer") .append("figure") .append("a") .attr("href", "https://www.campiaperti.org/") .attr("target", "_blank") .append("center") .html("

Campi Aperti

") }; function Pulisci() { $("div.container-fluid").remove(); }; var nomi = []; var quanti = []; function Aziende(stringexel) { var container = d3.select("#viz") .append("div") .attr("class", "container-fluid"); // Inseriamo il titolo in un contenitore che funga da "header" con classe "row", sempre per sfruttare bootstrap. var header = container.append("header") // Definiamo semanticamente le parti della pagina con i nuovi tag dell'HTML5 .attr("class", "row page-header aziende noprint"); // Rendiamo il tutto ricercabile mediante shufflejs attraverso un campo di input testuale header.append("nav") .append("input") .attr("id", "search") .attr("class", "center-block input-lg noprint") .attr("placeholder", "Cerca per unità produttiva...") .attr("value", ""); d3.csv(stringexel, function(data) { dataset = data.map(function(d) { return d["your-name"] }); //console.log(dataset); var schede = container.append("section") .attr("id", "grid") .attr("class", "row page-body") // Dopo l'header, un'altra "row", ma con classe "body" .selectAll("div") // La selezione dei "div" contenitori viene assegnata alla variabile "albi" e poi riutilizzata successivamente. .data(data) .enter() .append("div") .attr("class", "col-sm-12 card accordion") // Associamo una classe ai div contenitori degli albi per sfruttare la grid di bootstrap che ci assicura la responsiveness .attr("data-groups", function(d) { // Shufflejs effettua il filtro su categorie personalizzate che vanno definite nell'attributo data-groups var groups = []; // Nel nostro caso le categorie sono i nomi degli autori e devono comparire come json di un array di stringhe: ["nome1","nome2",...] // Sappiamo però che nelle nostre colonne ci possono essere più nomi, che divideremo in un array con split() usando la virgola come separatore. // Non possiamo tornare però un array, perché l'attributo si aspetta una stringa, per cui... stringify, non prima di aver eliminato dall'array // gli elementi duplicati. //.concat(d["checkbox-530"].split(",")).concat(d["Bioregione"].split(",")) return JSON.stringify(_.uniq(groups.concat(d["your-name"].split(",")).concat(d["Mercati svolti"].split(",")).concat(d["Situazione mercato"].split(",")))).replace(/"/g, "'"); }) .attr("data-title", function(d) { // Perché allora non inserire tutte e informazioni negli attributi data-? return d["your-name"].replace(/"/g, ""); }) .attr("data-summary", function(d) { return d["tel-216"].replace(/"/g, ""); }); /*dividione in tre blocchi*/ var schede_info = schede.append("div") .attr("class", "card-body"); var schede_infoprivate = schede.append("div") .attr("class", "card-hidden, hide"); var header_schede = schede.append("div") .attr("class", "card-header") .attr("id", function(d) { return d["Data"].replace(/"/g, ""); }); /*parte anagrafica e prodotti*/ var schede_h1 = header_schede.append("h1") .attr("class", "mb-0 realeinfo") .text(function(d) { return "" + d["your-name"].replace(/"/g, ""); // Concatenazione di stringhe, sempre con il "+". }); header_schede.append("p") .attr("class", "luogo") .text(function(d) { return " " + d["text-122"].replace(/"/g, "")+ " " + d["your-subject"].replace(/"/g, "") + " (" + d["text-597"].replace(/"/g, "") + ")"; }); header_schede.append("p") .append("span") .text("Referente d'azienda: ") .append("span") .attr("class", "nomeinfo") .text(function(d) { return "" + d["text-357"].replace(/"/g, ""); }); header_schede.append("p"); header_schede.append("span") .attr("class", "") .text(function(d) { return "Contatti: " + d["tel-216"].replace(/"/g, "") + " " + d["your-email"].replace(/"/g, ""); }); header_schede.append("span") .html(function(d) { return " " + d["url-933"].replace(/"/g, ""); }); header_schede.append("p") .append("span") .attr("class", "info") .text("Bioregione:") .append("span") .text(function(d) { return " " + d["checkbox-666"].replace(/"/g, ""); }); let sau = header_schede.append("p") sau.append("span") .attr("class", "uppercase") .text("SAU:") sau.append("span") .text(function(d) { return " " + d["text-121"].replace(/"/g, ""); }); header_schede.append("p") .append("span") .attr("class", "") .text("Numero di dipendenti:") .append("span") .text(function(d) { return " " + d["number-202"].replace(/"/g, ""); }); header_schede.append("p") .append("span") .attr("class", "") .text("Stagioni disponibili per mercati:") .append("span") .text(function(d) { return " " + d["checkbox-530"].replace(/"/g, ""); }); let mercati = header_schede.append("p") .attr("class", "mercati") mercati.append("span") .attr("class", "info uppercase") .text("Mercati:") mercati.append("span") .text(function(d) { return " " + d["Mercati svolti"].replace(/"/g, ""); }); let prodotti= header_schede.append("p") .attr("class", "prodotti") prodotti.append("span") .attr("class", "info uppercase") .text("Prodotti offerti:") prodotti.append("span") .text(function(d) { return " " + d["checkbox-101"].replace(/"/g, ""); }); header_schede.append("p") .append("span") .attr("class", "info") .text("Trasformati:") .append("span") .text(function(d) { return " " + d["text-746"].replace(/"/g, ""); }); header_schede.append("p").attr("class","tratteggio"); header_schede.append("p") .append("span") .attr("class", "info") .text("Ingredienti non autoprodotti (nei trasformati):") .append("span") .text(function(d) { return " " + d["textarea-491"].replace(/"/g, ""); }); header_schede.append("p") .append("span") .attr("class", "info") .text("Provenienza mangimi e foraggi qualora non autoprodotti:") .append("span") .html(function(d) { return " " + d["textarea-474"].replace(/"/g, ""); }); /*Parte descrizione, collaborazioni e produzione (forse)*/ schede_info.append("img") .attr("class", "logo") .attr("src", "./images/campiapertilogo.png"); var descrizione = schede_info.append("div") .attr("class", "descrizione"); descrizione.append("p") .attr("class", "descrive") .text(function(d) { return " " + d["textarea-777"].replace(/"/g, ""); }); let collabora = descrizione.append("p") .attr("class", "collabora") collabora.append("span") .attr("class", "uppercase") .text("Collaborazioni:") collabora.append("span") .text(function(d) { return " " + d["textarea-627"].replace(/"/g, "") }); if (function(d) { return d["textarea-627"] != ''}) { console.log('ciao'); } schede_info.append("p") .attr("class", "card-hidden hide") .text("Produzioni (in ettari o capi o arnie o zone di raccolta):") .append("span") .text(function(d) { return " " + d["checkbox-119"].replace(/"/g, "") + " " + d["text-761"].replace(/"/g, "") + " " + d["textarea-933"].replace(/"/g, "") + " " + d["text-469"].replace(/"/g, "") + " " + d["textarea-381"].replace(/"/g, "") + " " + d["checkbox-271"].replace(/"/g, "") + " " + d["text-924"].replace(/"/g, "") + " " + d["textarea-112"].replace(/"/g, "") + " " + d["checkbox-895"].replace(/"/g, "") + " " + d["text-968"].replace(/"/g, "") + " " + d["textarea-453"].replace(/"/g, "") + " " + d["text-963"].replace(/"/g, "") + " " + d["checkbox-553"].replace(/"/g, "") + " " + d["text-45"].replace(/"/g, "") + " " + d["textarea-448"].replace(/"/g, "") + " " + d["checkbox-908"].replace(/"/g, "") + " " + d["text-436"].replace(/"/g, "") + " " + d["textarea-624"].replace(/"/g, "") + " " + d["checkbox-332"].replace(/"/g, "") + " " + d["number-509"].replace(/"/g, "") + " " + d["textarea-830"].replace(/"/g, "") + " " + d["checkbox-81"].replace(/"/g, "") + " " + d["text-561"].replace(/"/g, "") + " " + d["textarea-368"].replace(/"/g, "") + " " + d["checkbox-552"].replace(/"/g, "") + " " + d["number-156"].replace(/"/g, "") + " " + d["text-210"].replace(/"/g, "") + " " + d["checkbox-978"].replace(/"/g, "") + " " + d["text-741"].replace(/"/g, "") + " " + d["number-965"].replace(/"/g, "") + " " + d["text-302"].replace(/"/g, "") + " " + d["number-345"].replace(/"/g, "") + " " + d["text-605"].replace(/"/g, "") + " " + d["number-190"].replace(/"/g, "") + " " + d["text-629"].replace(/"/g, "") + " " + d["number-974"].replace(/"/g, "") + " " + d["text-683"].replace(/"/g, "") + " " + d["number-463"].replace(/"/g, "") + " " + d["text-892"].replace(/"/g, "") + " " + d["number-600"].replace(/"/g, ""); /* inserire Checkbox-841 checkbox-332 checkbox-81 checkbox-552 Checkbox-978 checkbox-57 checkbox-106 */ }); /*parte info aggiuntive, alcune da togliere dal csv*/ schede_infoprivate.append("p") .append("span") .text("Referente di visita:") .append("span") .attr("class", "menoinfo") .text(function(d) { return " " + d["Referente visita ingresso"].replace(/"/g, ""); }); schede_infoprivate.append("p") .append("span") .attr("class", "menoinfo") .text("Desidera un altro mercato:") .append("span") .text(function(d) { return " " + d["Situazione mercato"].replace(/"/g, ""); }); schede_infoprivate.append("p") .append("span") .attr("class", "menoinfo") .text("Motivi/note (ingresso, sospensioni, espulsioni, visita GP)") .append("span") .text(function(d) { return " " + d["note"].replace(/"/g, ""); }); schede_infoprivate.append("p") .append("span") .attr("class", "menoinfo") .text("Targhe dei mezzi:") .append("span") .text(function(d) { return " " + d["text-697"].replace(/"/g, ""); }); schede_infoprivate.append("p") .append("span") .attr("class", "menoinfo") .text("Tipo di realtà:") .append("span") .text(function(d) { return " " + d["radio-226"].replace(/"/g, ""); }); schede_infoprivate.append("p") .append("span") .attr("class", "menoinfo") .text("Ragione sociale:") .append("span") .text(function(d) { return " " + d["text-10"].replace(/"/g, ""); }); schede_infoprivate.append("p") .append("span") .attr("class", "menoinfo") .text("Titolare:") .append("span") .text(function(d) { return " " + d["text-540"].replace(/"/g, ""); }); schede_infoprivate.append("p") .append("span") .attr("class", "menoinfo") .text("Codice fiscale:") .append("span") .text(function(d) { return " " + d["text-893"].replace(/"/g, ""); }); schede_infoprivate.append("p") .append("span") .attr("class", "menoinfo") .text("Partita IVA:") .append("span") .text(function(d) { return " " + d["text-878"].replace(/"/g, ""); }); schede_infoprivate.append("p") .append("span") .attr("class", "menoinfo") .text("Certificazione bio:") .append("span") .text(function(d) { return " " + d["radio-273"].replace(/"/g, ""); }); coseshuffle(); url_mercato(); scriviQuanti(); }); // fine data Aziende(); }; // fine Aziende(); function coseshuffle() { $("#grid").shuffle({ itemSelector: ".card" }); // Attacchiamo una funzione di callback a un evento del form di input: viene eseguita ogni volta che il contenuto cambia // a causa della digitazione di un testo all'interno da parte dell'utente $("#search").on('keyup change', function() { // Eventi "rilascio di un pulsante della tastiera" e "cambio del contenuto" // Effettuando una ricerca in data-groups è necessario ripulire un po' sia le stringa di ricerca // (ignorando per$('#print').click(function() { esempio le maiuscole e altri caratteri non letterali) che quella in cui viene effettuata // la ricerca (che è il json di un array di stringhe) // per il numero delle card /* scriviQuanti();*/ var val = this.value.toLowerCase().replace(/[^a-z] /g, ""); // Il valore digitato corrente $('#grid').shuffle('shuffle', function($el, shuffle) { // La funzione viene valutata per ogni elemento della grid: // se vera l'elemento viene tenuto, altrimenti viene nascosto return $el.data('groups').toLowerCase().indexOf(val) > -1; }); scriviQuanti(); }); $("#search").autocomplete({ source: dataset }); }; $(function() { // bottoni delle 3 liste $('#ingressi').click(function() { Pulisci(); Aziende("./Excel_produttori/campiaperti-richieste-nuovi-ingressi.csv"); $("header").addClass("ingressi"); }); $('#aziende').click(function() { Pulisci(); Aziende("./Excel_produttori/campiaperti-aziende.csv"); $("header").addClass("aziende"); }); $('#scartati').click(function() { Pulisci(); Aziende("./Excel_produttori/campiaperti-scartati.csv"); $("header").addClass("scartati"); }); // decidiamo di caricare per primo i produttori in CA Aziende("./Excel_produttori/campiaperti-aziende.csv"); $("header").addClass("aziende"); var my = []; /* NN LA STIAMO USANDOOOO*/ $('#print').click(function() { my = $("h5"); console.log("fdsfs"); var doc = new jsPDF(); doc.setFontSize(16); var i = 0; for (i = 0; i < my.length; i++) { doc.text(20, 30 + (10 * i), my[i].textContent); } //doc.setFontSize(16); //doc.text(20, 30, 'This is some normal sized text underneath.'); // Output as Data URI doc.save('export_desidera_mercato.pdf'); }); }); var quanti = 0; function scriviQuanti() { $("#quanti").empty(); quanti = $(".card.filtered"); console.log(quanti.length); quanti = quanti.length; $("#quanti").append(quanti); }; function url_mercato() { var url = window.location.href; var origin = window.location.origin; url = url.replace(origin, ''); url = url.replace('/schede_produzione/', ''); url = url.replace('#', ''); console.log(url); $("#search").attr("value", url); $("#search").keyup(); scriviQuanti(); };