viz_produttori/software_export/js/main.js
2020-05-13 18:28:51 +02:00

465 rader
14 KiB
JavaScript

/*
* 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("<h2>Campi Aperti</h2>")
};
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 "&nbsp;" + 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, "");
});
header_schede.append("p")
.append("span")
.attr("class", "uppercase")
.text("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, "");
});
header_schede.append("p")
.append("span")
.attr("class", "info uppercase")
.text("Mercati:")
.append("span")
.text(function(d) {
return " " + d["Mercati svolti"].replace(/"/g, "");
});
header_schede.append("p")
.attr("class", "prodotti")
.append("span")
.attr("class", "info uppercase")
.text("Prodotti offerti:")
.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, "");
});
/*Parte descrizione, collaborazioni e produzione (forse)*/
schede_info.append("p")
.append("span")
.text("Descrizione:")
.append("span")
.text(function(d) {
return " " + d["textarea-777"].replace(/"/g, "");
});
schede_info.append("p")
.append("span")
.text("Collaborazioni:")
.append("span")
.text(function(d) {
return " " + d["textarea-627"].replace(/"/g, "");
});
schede_info.append("p")
.append("span")
.attr("class", "")
.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
*/
});
schede_info.append("p")
.append("span")
.attr("class", "")
.text("Provenienza mangimi e foraggi qualora non autoprodotti:")
.append("span")
.html(function(d) {
return " " + d["textarea-474"].replace(/"/g, "");
});
/*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();
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);
};