396 lines
16 KiB
JavaScript
396 lines
16 KiB
JavaScript
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 d’Italiano 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 dell’italiano 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: "Lun", hour: ["21:00", "23:00"], title:"Assemlea di gestione SIM"},
|
||
{day: "Mar", 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, l’imposizione "+
|
||
"di una socialita’ predigerita da parte dei colossi dell’informatica "+
|
||
"e dei media, la profilazione, la censura licenze limitanti e brevetti "+
|
||
"Rivendicando la libera circolazione "+
|
||
"(analogica e digitale) dell’informazione, il diritto alla privacy, "+
|
||
"all’anonimato 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 l’intento 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 l’intento 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: "All’interno del circuito nazionale delle palestre popolari, la P.P. Stevenson si propone di "+
|
||
"offrire un’esperienza di sport popolare che parte dal basso, si prefigge "+
|
||
"di insegnare a praticare una disciplina che ha come principi l’uguaglianza "+
|
||
"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 dall’abuso 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 l’agricoltura 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: "L’assemblea Bologna No Borders nasce in seguito all’esperienza 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;
|
||
};
|