viz_produttori/software_export/js/main.js

502 lines
16 KiB
JavaScript
Raw Normal View History

2020-02-27 22:15:12 +01:00
/*
* Codice javascript per l'applicazione
*/
// necessità comuni
2020-02-27 23:48:24 +01:00
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>")
2020-02-27 22:15:12 +01:00
};
2020-02-27 23:48:24 +01:00
function Pulisci() {
$("div.container-fluid").remove();
};
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
var nomi = [];
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
var quanti = [];
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
function Aziende(stringexel) {
var container = d3.select("#viz")
.append("div")
.attr("class", "container-fluid");
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
// 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");
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
// 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", "");
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
d3.csv(stringexel, function(data) {
dataset = data.map(function(d) {
return d["your-name"]
});
//console.log(dataset);
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
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.
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
//.concat(d["checkbox-530"].split(",")).concat(d["Bioregione"].split(","))
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
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, "");
});
2020-02-27 22:15:12 +01:00
2020-05-13 17:43:31 +02:00
/*dividione in tre blocchi*/
2020-02-27 22:15:12 +01:00
2020-05-13 17:43:31 +02:00
var schede_info = schede.append("div")
.attr("class", "card-body");
var schede_infoprivate = schede.append("div")
.attr("class", "card-hidden, hide");
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
var header_schede = schede.append("div")
.attr("class", "card-header")
.attr("id", function(d) {
return d["Data"].replace(/"/g, "");
});
2020-05-13 16:29:52 +02:00
2020-05-13 17:43:31 +02:00
/*parte anagrafica e prodotti*/
2020-05-13 16:29:52 +02:00
2020-05-13 18:28:51 +02:00
var schede_h1 = header_schede.append("h1")
2020-02-27 23:48:24 +01:00
.attr("class", "mb-0 realeinfo")
.text(function(d) {
return "" + d["your-name"].replace(/"/g, ""); // Concatenazione di stringhe, sempre con il "+".
});
2020-05-13 18:28:51 +02:00
header_schede.append("p")
.attr("class", "luogo")
.text(function(d) {
2020-05-15 09:05:07 +02:00
return " " + d["text-122"].replace(/"/g, "")+ " " + d["your-subject"].replace(/"/g, "") + " (" + d["text-597"].replace(/"/g, "") + ")";
2020-05-13 18:28:51 +02:00
});
2020-02-27 22:15:12 +01:00
2020-05-13 17:43:31 +02:00
header_schede.append("p")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:43:31 +02:00
.text("Referente d'azienda: ")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:43:31 +02:00
.attr("class", "nomeinfo")
2020-02-27 23:48:24 +01:00
.text(function(d) {
2020-05-13 17:43:31 +02:00
return "" + d["text-357"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:43:31 +02:00
header_schede.append("p");
header_schede.append("span")
.attr("class", "")
2020-02-27 23:48:24 +01:00
.text(function(d) {
2020-05-13 17:43:31 +02:00
return "Contatti: " + d["tel-216"].replace(/"/g, "") + " " + d["your-email"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:43:31 +02:00
header_schede.append("span")
.html(function(d) {
return "&nbsp;" + d["url-933"].replace(/"/g, "");
});
2020-05-13 18:28:51 +02:00
2020-05-13 17:43:31 +02:00
header_schede.append("p")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:43:31 +02:00
.attr("class", "info")
.text("Bioregione:")
2020-02-27 23:48:24 +01:00
.append("span")
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["checkbox-666"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-15 10:30:22 +02:00
let sau = header_schede.append("p")
sau.append("span")
2020-05-13 18:28:51 +02:00
.attr("class", "uppercase")
2020-05-13 17:43:31 +02:00
.text("SAU:")
2020-05-15 10:30:22 +02:00
sau.append("span")
2020-02-27 23:48:24 +01:00
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["text-121"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:43:31 +02:00
header_schede.append("p")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:43:31 +02:00
.attr("class", "")
.text("Numero di dipendenti:")
2020-02-27 23:48:24 +01:00
.append("span")
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["number-202"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:43:31 +02:00
header_schede.append("p")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:43:31 +02:00
.attr("class", "")
.text("Stagioni disponibili per mercati:")
2020-02-27 23:48:24 +01:00
.append("span")
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["checkbox-530"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-15 10:30:22 +02:00
let mercati = header_schede.append("p")
.attr("class", "mercati")
mercati.append("span")
2020-05-13 18:28:51 +02:00
.attr("class", "info uppercase")
.text("Mercati:")
2020-05-15 10:30:22 +02:00
mercati.append("span")
2020-02-27 23:48:24 +01:00
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["Mercati svolti"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:43:31 +02:00
2020-05-15 10:30:22 +02:00
let prodotti= header_schede.append("p")
2020-05-13 18:28:51 +02:00
.attr("class", "prodotti")
2020-05-15 10:30:22 +02:00
prodotti.append("span")
2020-05-13 18:28:51 +02:00
.attr("class", "info uppercase")
.text("Prodotti offerti:")
2020-05-15 10:30:22 +02:00
prodotti.append("span")
2020-02-27 23:48:24 +01:00
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["checkbox-101"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:43:31 +02:00
header_schede.append("p")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:43:31 +02:00
.attr("class", "info")
.text("Trasformati:")
2020-02-27 23:48:24 +01:00
.append("span")
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["text-746"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 18:28:51 +02:00
header_schede.append("p").attr("class","tratteggio");
2020-05-13 17:43:31 +02:00
header_schede.append("p")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:43:31 +02:00
.attr("class", "info")
.text("Ingredienti non autoprodotti (nei trasformati):")
2020-02-27 23:48:24 +01:00
.append("span")
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["textarea-491"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:43:31 +02:00
header_schede.append("p")
.append("span")
2020-05-26 20:50:01 +02:00
.attr("class", "info")
.text("Provenienza mangimi e foraggi qualora non autoprodotti:")
.append("span")
.html(function(d) {
return " " + d["textarea-474"].replace(/"/g, "");
});
2020-05-13 17:43:31 +02:00
/*Parte descrizione, collaborazioni e produzione (forse)*/
2020-05-15 16:46:05 +02:00
schede_info.append("img")
.attr("class", "logo")
.attr("src", "./images/campiapertilogo.png");
2020-05-13 17:43:31 +02:00
2020-05-15 14:59:52 +02:00
var descrizione = schede_info.append("div")
2020-05-14 12:30:13 +02:00
.attr("class", "descrizione");
2020-05-13 17:43:31 +02:00
2020-05-15 14:59:52 +02:00
descrizione.append("p")
.attr("class", "descrive")
2020-02-27 23:48:24 +01:00
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["textarea-777"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:43:31 +02:00
2020-05-15 14:59:52 +02:00
let collabora = descrizione.append("p")
2020-05-15 10:30:22 +02:00
.attr("class", "collabora")
collabora.append("span")
.attr("class", "uppercase")
2020-02-27 23:48:24 +01:00
.text("Collaborazioni:")
2020-05-15 10:30:22 +02:00
collabora.append("span")
2020-02-27 23:48:24 +01:00
.text(function(d) {
2020-06-03 00:45:59 +02:00
return " " + d["textarea-627"].replace(/"/g, "")
2020-02-27 23:48:24 +01:00
});
2023-05-02 21:19:14 +02:00
let datarichiesta = descrizione.append("p")
.attr("class", "collabora")
collabora.append("div")
.attr("class", "uppercase")
.text("Data richiesta ingresso:")
collabora.append("span")
.text(function(d) {
var datarichiestaingresso=d["Data"].replace(/"/g, "");
return " " + datarichiestaingresso
});
2020-06-03 00:45:59 +02:00
if (function(d) { return d["textarea-627"] != ''}) {
console.log('ciao');
}
2020-05-26 20:50:01 +02:00
2020-02-27 23:48:24 +01:00
schede_info.append("p")
.attr("class", "card-hidden hide")
2020-02-27 23:48:24 +01:00
.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
2020-02-27 22:15:12 +01:00
Checkbox-841 checkbox-332 checkbox-81 checkbox-552 Checkbox-978 checkbox-57 checkbox-106
*/
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:43:31 +02:00
/*parte info aggiuntive, alcune da togliere dal csv*/
schede_infoprivate.append("p")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:43:31 +02:00
.text("Referente di visita:")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:43:31 +02:00
.attr("class", "menoinfo")
2020-02-27 23:48:24 +01:00
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["Referente visita ingresso"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:43:31 +02:00
schede_infoprivate.append("p")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:43:31 +02:00
.attr("class", "menoinfo")
.text("Desidera un altro mercato:")
2020-02-27 23:48:24 +01:00
.append("span")
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["Situazione mercato"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:43:31 +02:00
schede_infoprivate.append("p")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:43:31 +02:00
.attr("class", "menoinfo")
.text("Motivi/note (ingresso, sospensioni, espulsioni, visita GP)")
2020-02-27 23:48:24 +01:00
.append("span")
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["note"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:43:31 +02:00
schede_infoprivate.append("p")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:43:31 +02:00
.attr("class", "menoinfo")
.text("Targhe dei mezzi:")
2020-02-27 23:48:24 +01:00
.append("span")
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["text-697"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:06:55 +02:00
schede_infoprivate.append("p")
2020-02-27 23:48:24 +01:00
.append("span")
2020-05-13 17:06:55 +02:00
.attr("class", "menoinfo")
2020-05-13 17:43:31 +02:00
.text("Tipo di realtà:")
2020-02-27 23:48:24 +01:00
.append("span")
.text(function(d) {
2020-05-13 17:43:31 +02:00
return " " + d["radio-226"].replace(/"/g, "");
2020-02-27 23:48:24 +01:00
});
2020-05-13 17:06:55 +02:00
schede_infoprivate.append("p")
2020-02-27 23:48:24 +01:00
.append("span")
.attr("class", "menoinfo")
2020-05-13 17:43:31 +02:00
.text("Ragione sociale:")
2020-02-27 23:48:24 +01:00
.append("span")
.text(function(d) {
2020-05-13 17:43:31 +02:00
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, "");
2020-02-27 23:48:24 +01:00
});
coseshuffle();
2020-06-08 12:02:40 +02:00
url_mercato();
2020-02-27 23:48:24 +01:00
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
});
2020-02-27 22:15:12 +01:00
};
2020-02-27 23:48:24 +01:00
$(function() {
// bottoni delle 3 liste
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
$('#ingressi').click(function() {
2020-02-27 22:15:12 +01:00
Pulisci();
Aziende("./Excel_produttori/campiaperti-richieste-nuovi-ingressi.csv");
$("header").addClass("ingressi");
2020-02-27 23:48:24 +01:00
});
$('#aziende').click(function() {
Pulisci();
2020-02-27 22:15:12 +01:00
Aziende("./Excel_produttori/campiaperti-aziende.csv");
2020-02-27 23:48:24 +01:00
$("header").addClass("aziende");
});
$('#scartati').click(function() {
2020-02-27 22:15:12 +01:00
Pulisci();
Aziende("./Excel_produttori/campiaperti-scartati.csv");
$("header").addClass("scartati");
2020-02-27 23:48:24 +01:00
});
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
// decidiamo di caricare per primo i produttori in CA
Aziende("./Excel_produttori/campiaperti-aziende.csv");
$("header").addClass("aziende");
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
var my = [];
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
/* NN LA STIAMO USANDOOOO*/
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
$('#print').click(function() {
my = $("h5");
console.log("fdsfs");
2020-02-27 22:15:12 +01:00
var doc = new jsPDF();
2020-02-27 23:48:24 +01:00
doc.setFontSize(16);
var i = 0;
for (i = 0; i < my.length; i++) {
doc.text(20, 30 + (10 * i), my[i].textContent);
2020-02-27 22:15:12 +01:00
}
2020-02-27 23:48:24 +01:00
//doc.setFontSize(16);
//doc.text(20, 30, 'This is some normal sized text underneath.');
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
// Output as Data URI
doc.save('export_desidera_mercato.pdf');
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
});
2020-02-27 22:15:12 +01:00
});
2020-02-27 23:48:24 +01:00
var quanti = 0;
2020-02-27 22:15:12 +01:00
2020-02-27 23:48:24 +01:00
function scriviQuanti() {
$("#quanti").empty();
quanti = $(".card.filtered");
console.log(quanti.length);
quanti = quanti.length;
$("#quanti").append(quanti);
};
2020-06-02 22:41:40 +02:00
function url_mercato() {
var url = window.location.href;
2020-06-03 00:45:59 +02:00
var origin = window.location.origin;
2022-01-11 19:36:13 +01:00
url = url.replace(origin, '');
url = url.replace('/schede_produzione/', '');
url = url.replace('#', '');
2020-06-02 22:41:40 +02:00
console.log(url);
$("#search").attr("value", url);
$("#search").keyup();
scriviQuanti();
2020-06-02 22:53:18 +02:00
};