Ilovexm24/www/js/progetti.js
2017-11-10 14:35:52 +01:00

396 lines
16 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var PROJECT = PROJECT || {};
PROJECT.labs = [
{ collettivo: "Ciclofficina Ampioraggio",
dshort: "Officina per le biciclette. Nessuno ti ripara le bici, impari a farlo insieme a chi ha già questa competenza.",
dlong: "...",
when : [
{day: "Mar", hour: ["19:00", "22:00"], title: "Assemblea Ciclofficina" },
{day: "Mer", hour: ["18:00", "22:00"], title: "Riparazioni biciclette" },
{day: "Dom", hour: ["18:00", "22:00"], title: "Riparazioni biciclette" }
],
old_event: "", //un vecchio evento
site: "http://ampioraggio.noblogs.org", //sito personale
contatto : "", //email
page: "http://www.ecn.org/xm24/ciclofficina-ampioraggio", //pagina su sito xm24
sn: "", //social network
},
{ collettivo: "SIM",
dshort: '“Nessuno educa nessuno, nessuno educa se stesso, gli uomini'+
'si educano insieme, con la mediazione del mondo.” Paulo Freire',
dlong: "La Scuola dItaliano CON migranti del XM24 è una scuola "+
"autogestita che unisce al percorso linguistico un percorso politico, sia "+
"perchè si oppone alle leggi razziste dello stato, sia perchè concepisce "+
"l apprendimento dellitaliano da parte dei migranti come uno strumento "+
"di emancipazione, autodefinizione e socializzazione.",
when : [
{day: "Lun", hour: ["19:00", "21:00"], title:"Scuola Italiano con Migranti"},
{day: "Mar", hour: ["19:00", "21:00"], title:"Scuola Italiano con Migranti"},
{day: "Mer", hour: ["19:00", "21:00"], title:"Scuola Italiano con Migranti"}
],
old_event: "", //un vecchio evento
site: "http://simxm24.noblogs.org", //sito personale
contatto : "", //email
page: "", //pagina su sito xm24
sn: "https://www.fb.com/infoschockxm24", //social network
},
{ collettivo: "Hacklabbo",
dshort: "Serata di smanettamento collettivo, giochi, confronto. Sottoterra nascono idee, "+
"serpeggiano progetti, si condividono codice, saldatori e birrette.",
dlong: "Analizziamo e smontiamo e scardiniamoLe tecnologie invasive, limposizione "+
"di una socialita predigerita da parte dei colossi dellinformatica "+
"e dei media, la profilazione, la censura licenze limitanti e brevetti "+
"Rivendicando la libera circolazione "+
"(analogica e digitale) dellinformazione, il diritto alla privacy, "+
"allanonimato e alla liberta di espressione ed invenzione. Condividiamo "+
"conoscenza autoproducendo dal basso strumenti alternativi ed infrastrutture "+
"autonome di comunicazione per una partecipazione politica consapevole.",
when : [
{day: "Mer", hour: ["21:00", "24:00"], title:"Hacklabbo" },
],
old_event: "", //un vecchio evento
site: "http://liste.indivia.net/listinfo/hacklabbo", //sito personale
contatto : "", //email
page: "http://www.ecn.org/xm24/hacklabbo/", //pagina su sito xm24
},
{ collettivo: "Infoshock",
dshort: "L InfoShock di XM24 è uno spazio di consultazione e distribuzione "+
"alternativa di materiale storico/culturale/politico.",
dlong: "Infoshock è uno spazio aggregativo, un luogo di interazione e contaminazione "+
"sociale, di incontro, confronto e condivisione, un veicolo sperimentale e "+
"creativo per la trasmissione della cultura e della politica.",
when : [
{day: "Giov", hour: ["20:00", "23:00"], title:"Apertura spazio Infoshock" },
],
old_event: "", //un vecchio evento
site: "https://infoshockxm24.noblogs.org", //sito personale
contatto : "infoshockxm24@indivia.net", //email
page: "http://www.ecn.org/xm24/infoshock/", //pagina su sito xm24
sn: "", //social network
},
{ collettivo: "SeriXm",
dshort: "Laboratorio creativo attrezzato per la stampa serigrafica",
dlong: "Uno spazio di autoproduzione che nasce con lintento di sperimentare e "+
"applicare la creazione legata al mondo del visuale. La serigrafia come "+
"tecnica di stampa manuale legata al mondo d.i.y. si pone in maniera "+
"opposta alle logiche della produzione industriale massiva e omologante.",
when : [
{day: "Mer", hour: ["19:30", "22:00"], title:"Apertura serigrafia"},
],
old_event: "", //un vecchio evento
site: "", //sito personale
contatto : "serixm@autistici.org", //email
page: "http://www.ecn.org/xm24/seryxm/", //pagina su sito xm24
sn: "", //social network
},
{ collettivo: "Palestrina Libera",
dshort: "Palestra popolare basata sugli stessi principi del posto che la ospita, XM24, di cui è parte integrante.",
dlong: "Uno spazio di autoproduzione che nasce con lintento di sperimentare e "+
"applicare la creazione legata al mondo del visuale. La serigrafia come "+
"tecnica di stampa manuale legata al mondo d.i.y. si pone in maniera "+
"opposta alle logiche della produzione industriale massiva e omologante.",
when : [
{day: "Mar", hour: ["18:30", "20:00"], title:"Hata Yoga"},
{day: "Mer", hour: ["20:30", "22:30"], title:"Hata Yoga meditativa"},
{day: "Lun", hour: ["20:30", "22:30"], title:"Hata Yoga meditativa"},
{day: "Gio", hour: ["18:30", "20:00"], title:"Hata Yoga"},
{day: "Lun", hour: ["19:00", "21:00"], title:"Tessuti aerei"},
{day: "Mer", hour: ["19:00", "21:00"], title:"Tessuti aerei"},
{day: "Ven", hour: ["19:00", "21:00"], title:"Tessuti aerei"},
{day: "Sab", hour: ["15:00", "17:00"], title:"Shiatsu"},
//{day: "Lun", hour: ["15:00", "17:00"], title:"Acrobalance"}
],
old_event: "", //un vecchio evento
site: "http://liste.indivia.net/listinfo/pallestra", //sito personale
contatto : "palestrinalibera@autistici.org", //email
page: "http://www.ecn.org/xm24/palestrina-libera/", //pagina su sito xm24
sn: "", //social network
},
{ collettivo: "Palestra Popolare Antifa Boxe Teofilo Stevenson",
dshort: "Palestra popolare nata a novembre del 2014 per offrire un corso autogestito di Boxe.",
dlong: "Allinterno del circuito nazionale delle palestre popolari, la P.P. Stevenson si propone di "+
"offrire unesperienza di sport popolare che parte dal basso, si prefigge "+
"di insegnare a praticare una disciplina che ha come principi luguaglianza "+
"e il rispetto reciproco",
when : [
{day: "Lun", hour: ["19:00", "21:00"], title:"Pugilato"},
{day: "Mer", hour: ["19:00", "21:00"], title:"Pugilato Principianti"},
{day: "Ven", hour: ["19:00", "21:00"], title:"Pugilato"},
],
old_event: "", //un vecchio evento
site: "http://liste.indivia.net/listinfo/pallestra", //sito personale
contatto : "palestrapopolarestevenson@autistici.org", //email
page: "http://www.ecn.org/xm24/palestrina-libera/", //pagina su sito xm24
sn: "https://www.fb.com/palestrapopolarestevenson", //social network
},
{ collettivo: "Lab57 Alchemica",
dshort: "Ascolto psicologico e punto di primo soccorso",
dlong: "Ascolto psicologico e punto di primo soccorso per evitare le "+
"conseguenze dannose provocate dallabuso di sostanze psicoattive "+
"legali ed illegali o più in generale causate da comportamenti e "+
"stili vita a rischio",
when : [
{day: "Giov", hour: ["19:00", "23:00"], title:"Sportello consulenza antipro"},
],
old_event: "", //un vecchio evento
site: "http://lab57.indivia.net", //sito personale
contatto : "lab57@indivia.net", //email
page: "http://www.ecn.org/xm24/alchemicalab57/", //pagina su sito xm24
sn: "", //social network
},
{ collettivo: "Campi aperti",
dshort: "Associazione fatta da agricoltori e consumatori che sostiene lagricoltura biologica e contadina.",
dlong: "Per noi di CampiAperti realizzare la sovranità alimentare nelle città "+
"significa difendere la piccola agricoltura contadina nelle campagne "+
"creando una relazione diretta tra chi produce e chi consuma. "+
"Questo progetto per noi è il punto di partenza per la costruzione di"+
" una alternativa al sistema economico dominante.",
when : [
{day: "Gio", hour: ["16.30", "21:00"], title:"Mercatino Biologico"},
],
old_event: "", //un vecchio evento
site: "http://www.campiaperti.org/", //sito personale
contatto : "frigotecniche@indivia.net", //email
page: "http://www.campiaperti.org/chi-siamo/", //pagina su sito xm24
sn: "", //social network
},
{ collettivo: "Frigotecniche",
dshort: "Laboratori di sperimentazione musicale",
dlong: "Alcuni gruppi promotori del lab sono: Dune, Mother propaganda, Kaatu verata nikto, "+
"Stormo, G.I.JOE, Grindine. "+
"Alcune etichette Xhol Records, In limine Records, Donnabavosa REcords",
when : [
],
old_event: "", //un vecchio evento
site: "", //sito personale
contatto : "frigotecniche@indivia.net", //email
page: "http://www.ecn.org/xm24/frigotecniche/", //pagina su sito xm24
sn: "", //social network
},
{ collettivo: "Xm24",
dshort: "Spazio pubblico autogestito",
dlong: "Crogiulo di opinioni, interessi, speranze. Ostinatamente dietro la barricata.",
when : [
{day: "Mar", hour: ["20.30", "24:30"], title:"Assemblea pubblica Xm24"},
],
site: "http://www.ecn.org/xm24/", //sito personale
},
{ collettivo: "No Borders",
dshort: "Lottiamo contro tutte le frontiere, fisiche e immaginarie, e siamo per la libertà di movimento di tutti e tutte.",
dlong: "Lassemblea Bologna No Borders nasce in seguito allesperienza del "+
"presidio di Ventimiglia e fa parte della rete No Borders, "+
"che è presente in tante città Italiane e europee ed è attiva in "+
"molti luoghi di frontiera.",
when : [
{day: "Mer", hour: ["20.00", "22:00"], title:"Assemblea No Borders"},
],
old_event: "", //un vecchio evento
site: "", //sito personale
contatto : "", //email
page: "", //pagina su sito xm24
},
{ collettivo: "Sportello medico giuridico MEDERÌ",
dshort: "Consulenza medica e legale in materia di immigrazione",
dlong: "Rivendichiamo il diritto di ciascuno di essere libero di scegliere "+
"dove spostarsi e stabilirsi a prescindere dalla provenienza e senza "+
"subire discriminazioni. Rifiutiamo che il fenomeno migratorio sia "+
"trattato come un problema di ordine pubblico oppure limitato dalle "+
"esigenze economiche di un paese.",
when : [
{day: "Lun", hour: ["19.00", "21:00"], title:"Sportello medico giuridico"},
],
old_event: "", //un vecchio evento
site: "", //sito personale
contatto : "sportellomedicogiuridico@xm24.indivia.net", //email
page: "http://www.ecn.org/xm24/sportello-medico-legale/", //pagina su sito xm24
}
];
var sortHours = function(a, b){
return a.hour[0] < b.hour[0] || (a.hour[0] == b.hour[0] && a.hour[1] < b.hour[1]) ? -1 : 1;
};
var sortDay = function(arr){
var sorted = [];
if(arr.lun)
sorted.push(arr.lun);
if(arr.mar)
sorted.push(arr.mar);
if(arr.mer)
sorted.push(arr.mer);
if(arr.gio)
sorted.push(arr.gio);
if(arr.ven)
sorted.push(arr.ven);
if(arr.sab)
sorted.push(arr.sab);
if(arr.dom)
sorted.push(arr.dom);
return sorted;
};
var init = true;
PROJECT.hr = "<hr class='post-divider'>";
var getLabelUrl = function(url){
var label = url.replace(/(http|https):\/\/(www\.)*/,'')
.replace(/\/\s*$/, ""); //l'ultima barra
return label;
};
PROJECT.getHtmlA = function(label, url, _class, isMail) {
if(!url)
return "";
_class = _class || "";
var link = isMail ? "mailto:" + url : url;
return "<span class='e_link title "+_class+"'>" + label + "</span>"+
"<a class='e_link e_url"+_class+"' href='" + link + "' rel='external'>" +
getLabelUrl(url) +
"</a>" +
"<br>";
};
PROJECT.getHtmlDate = function(evt, noDay) {
if(evt) {
var day = ! noDay ? "<span class='e_day'>" + evt.day + "</span>" + " " : "";
return "<small>" + day +
"<span class='e_from'>" + evt.hour[0] + "</span>" + " - " +
"<span class='e_to'>" + evt.hour[1] + "</span></small> " +
"<span class='e_title'>" + " : " + evt.title + "</span> ";
} else {
return "";
}
};
PROJECT.labOrder = function(lab){
var events = "";
for(var e = 0; e < lab.when.length; e++) {
events += "<li>" + PROJECT.getHtmlDate(lab.when[e]) + "</li>";
}
if(events !== '') {
events = "<small>Orari:</small>"+
"<ul>" +
events +
"</ul>";
}
var li = "<li>"+
"<p class='title'>" + lab.collettivo + "</p>"+
"<p class='dshort'>" + lab.dshort + "</p>"+
PROJECT.getHtmlA("Url: ", lab.page) +
PROJECT.getHtmlA("Sito: ", lab.site) +
PROJECT.getHtmlA("Email: ", lab.contatto, null, true) +
PROJECT.getHtmlA("Social: ", lab.sn)+
"<br>" +
events +
PROJECT.hr +
"</li>";
return li;
};
PROJECT.todayOrder = function(todayEvents, lab, day){
for(var e = 0; e < lab.when.length; e++) {
//Comparo in minuscolo così son sicuro di matchare in ogni modo in cui è scritto nel json
if(lab.when[e].day.toLowerCase() == day) {
todayEvents.push(lab.when[e]);
}
}
};
PROJECT.todayRender = function(todayEvents){
var events="";
todayEvents.sort(sortHours);
for(var i = 0, len = todayEvents.length; i < len; i++) {
var hr = i == len - 1 ? "" : PROJECT.hr;
events += "<li>" +
PROJECT.getHtmlDate(todayEvents[i], true) +
hr +
"</li>";
}
if(todayEvents.length === 0) {
events = "<i>Oggi non sono previsti laboratori o assemblee.</i>";
} else {
events = "<p class='title'>OGGI: " + moment().format('DD/MM/YYYY') + "</p><ul>" + events + "</ul>";
}
return events;
};
PROJECT.dateRender = function(date) {
date.sort(sortHours);
var dates = "<p class='title'>" + date[0].day.toUpperCase() + "</p>";
dates += "<ul>";
for(var i = 0, len = date.length; i < len; i++) {
var hr = i == len - 1 ? "" : PROJECT.hr;
dates += "<li>" +
PROJECT.getHtmlDate(date[i], true) +
hr +
"</li>";
}
dates += "</ul>";
return dates;
};
PROJECT.dateOrder = function(dayEvents, lab) {
for(var e = 0; e < lab.when.length; e++) {
var day = lab.when[e].day.toLowerCase();
if(! dayEvents[day])
dayEvents[day] = [];
dayEvents[day].push(lab.when[e]);
}
};
PROJECT.render = function() {
var day = moment().format("ddd").toLowerCase();
//var day = "mar"; //DEBUG
var lab = "", date = "", today = "";
var todayEvents = [], dayEvents = [];
for(var l = 0, labLen = PROJECT.labs.length; l < labLen; l++) {
PROJECT.todayOrder(todayEvents, PROJECT.labs[l], day);
lab += PROJECT.labOrder(PROJECT.labs[l]);
PROJECT.dateOrder(dayEvents, PROJECT.labs[l]);
}
//------ TODAY ORDER
today += PROJECT.todayRender(todayEvents);
$('#today p').empty();
$('#today p').html(today);
//------ DAY ORDER
dayEvents = sortDay(dayEvents);
for(var k in dayEvents) {
date += PROJECT.dateRender(dayEvents[k]);
}
$('#mydate p').empty();
$('#mydate p').html(date);
//------ LAB ORDER
$('#project p').empty();
$('#project p').html("<ul>" + lab + "</ul>");
init = false;
};