Merge branch 'ittour-json-export'

This commit is contained in:
Petko Bordjukov 2015-08-12 21:18:35 +03:00
commit 0dcfa7efa0
3 changed files with 34 additions and 113 deletions

View File

@ -97,7 +97,7 @@
<script id="slides_template" type="text/ractive"> <script id="slides_template" type="text/ractive">
<section data-state="update-safe"> <section data-state="update-safe">
<img src="logo.png"> <img src="http://varnaconf.com/system/uploads/event/logo/15/main_image.png">
</section> </section>
{{#eventCount}} {{#eventCount}}
@ -124,13 +124,13 @@
<!-- <section> --> <!-- <section> -->
<!-- <h1>Обратна връзка</h1> --> <!-- <h1>Обратна връзка</h1> -->
<!-- <h2>http://bit.ly/burgasconf-2014-feedback</h2> --> <!-- <h2>http://bit.ly/varnaconf-2015-feedback</h2> -->
<!-- </section> --> <!-- </section> -->
<section> <section>
<h1>#BurgasConf</h1> <h1>#VarnaConf</h1>
<h2>В Twitter и IRC на irc.it-tour.bg</h2> <h2>В Twitter и IRC на irc.it-tour.bg</h2>
<!-- <a class="twitter-timeline" href="https://twitter.com/search?q=%23BurgasConf" data-widget-id="466029214940925952">Tweets about "#BurgasConf"</a> --> <!-- <a class="twitter-timeline" href="https://twitter.com/search?q=%23VarnaConf" data-widget-id="466029214940925952">Tweets about "#VarnaConf"</a> -->
<!-- <script src="https://platform.twitter.com/widgets.js" id="twitter-wjs"></script> --> <!-- <script src="https://platform.twitter.com/widgets.js" id="twitter-wjs"></script> -->
</section> </section>
</script> </script>

View File

@ -15,6 +15,7 @@ var reactive = new Ractive({
}); });
function refreshEvent() { function refreshEvent() {
schedule.update();
reactive.set({pastEvents: schedule.pastEvents(), reactive.set({pastEvents: schedule.pastEvents(),
currentEvent: schedule.currentEvent(), currentEvent: schedule.currentEvent(),
nextEvent: schedule.nextEvent(), nextEvent: schedule.nextEvent(),

View File

@ -1,10 +1,24 @@
function Schedule() { function Schedule(hallId) {
var events = []; var events = [];
this.addEvent = function(event) { this.update = function() {
events.push(event); $.getJSON("http://varnaconf.com/schedules/2015.json", function(data) {
events = _.sortBy(events, function(event) { var scheduleEvents = $.map(data[hallId], function(event) {
return event.startTime.unix() event['startTime'] = moment(event['startTime']);
return event;
});
$.each(scheduleEvents, function(index, event) {
var nextEvent = scheduleEvents[index + 1];
if (typeof(nextEvent) != 'undefined') {
event['endTime'] = moment(nextEvent['startTime']).subtract(10, 'minutes');
} else {
event['endTime'] = moment(event['startTime']).add(40, 'minutes');
}
});
events = scheduleEvents;
console.log(events);
}); });
} }
@ -20,8 +34,7 @@ function Schedule() {
this.currentEvent = function() { this.currentEvent = function() {
var latestEvent = _.last(this.pastEvents()); var latestEvent = _.last(this.pastEvents());
var nextEvent = this.nextEvent(); if (typeof(latestEvent) != 'undefined' && latestEvent.endTime.isAfter(moment())) {
if (typeof nextEvent != 'undefined' && typeof latestEvent != 'undefined' && (latestEvent.displayNext || moment(nextEvent.startTime).subtract('minutes', 10).isAfter(moment()))) {
return latestEvent; return latestEvent;
} else { } else {
return undefined; return undefined;
@ -41,109 +54,16 @@ function Schedule() {
this.allEvents = function() { this.allEvents = function() {
return events; return events;
} }
}
this.addDelay = function(time) { $.urlParam = function(name){
_.each(this.upcomingEvents(), function(event, index, agenda) { var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
event.startTime.add(time); if (results==null){
}); return null;
}
else{
return results[1] || 0;
} }
} }
var schedule = new Schedule(); var schedule = new Schedule(parseInt($.urlParam('roomId')));
schedule.addEvent({
title: 'Кафе',
startTime: moment({hour: 9, minute: 30})
});
schedule.addEvent({
title: 'Откриване',
startTime: moment({hour: 10})
});
schedule.addEvent({
title: 'Уеб сайтове с Perl Dancer',
startTime: moment({hour: 10, minute: 10}),
speakers: [
{
name: 'Мариян Маринов',
description: 'Мариян е системен администратор по душа. Занимава се с Линукс от 16 години. Той е партньор и управител на 1H Ltd. - фирма, която пише софтуер за server management специфично за hosting доставчици. Голям фен е на Open Source софтуера и редовно говори на различни Open Source конференции на Балканите. Той също помага и за случването на OpenFest - най-голямата българска Free and Open Source конференция. В свободното си време води курсове по Системна администрация и Мрежова сигурност в Софийски университет и Telerik.'
}
]
});
schedule.addEvent({
title: 'Zero Downtime Deployment with Relational Databases',
startTime: moment({hour: 11, minute: 00}),
speakers: [
{
name: 'Неда Калчева',
description: 'Неда е CTO на PowerToFly, разработчик по душа, а в Бургас е позната като майката на Лора. Преди това е учила в САЩ и е работила като програмист и софтуерен архитект. В момента живее в Бургас заедно със семейството си.'
}
]
});
schedule.addEvent({
title: 'Извличане на информация или как работят търсачките',
startTime: moment({hour: 11, minute: 50}),
speakers: [
{
name: 'Мария Матева',
description: 'Мария е ентусиаст в областта на изкуствения интелект. Част е от Data Science Society. На последните си две работни места работи по софтуер, взимащ интелигентни решения - семантична търсачка, класификатори, препоръчваща система, софтуер за анализ и оптимизация на кредитен риск. В рамките на три семестъра преподава в магистърския курс "Извличане на информация" във ФМИ на СУ, откъдето идва и вдъхновението за тази лекция.'
}
]
});
schedule.addEvent({
title: 'Обяд',
startTime: moment({hour: 12, minute: 30})
});
schedule.addEvent({
title: 'Wearables',
startTime: moment({hour: 13, minute: 20}),
speakers: [
{
name: 'Стоян Узунов',
description: 'Стоян е програмист в бургаския офис на ТехноЛогика, занимава се предимно с .NET. От 4 години е студент партньор на Microsoft. Обича да ходи по различни състезания по програмиране и изпитва странен и необясним интерес към разнообразни нови джаджи.'
}
]
});
schedule.addEvent({
title: 'Swift in the Real World',
startTime: moment({hour: 14, minute: 10}),
speakers: [
{
name: 'Галин Кърджилов',
description: 'Галин е проактивен и творчески настроен софтуерен инженер с повече от 10 години опит. В момента е посветен на мобилните разработки и работи като Senior iOS Developer в 23snaps София. Неговият стремеж е да генерира максимално въздействие към потребителите.'
}
]
});
schedule.addEvent({
title: 'Кафе пауза ☕',
startTime: moment({hour: 14, minute: 50})
});
schedule.addEvent({
title: 'Изкуствен интелект възможности или заплаха?',
startTime: moment({hour: 15, minute: 10}),
speakers: [
{
name: 'Стефан Ставрев',
description: 'Собственик и управител на TRI Soft. С над 3 години опит в проектирането и разработването на интелигентни системи и игри, и трудов стаж в научната компания TNO - основен партньор на Холандското министерство на отбраната. Понастоящем Стефан се занимава с разработката на иновативни автономни системи, компютърно зрение, разпознаване на лица и разработване на игри и интерактивни архитектурни визуализации в реално време. Изкуствен интелект и модерните технологии за него са не просто академични дисциплини, а и начин на мислене. В свободното си време обича да преподава. Води избираеми курсове в Пловдивския университет "Паисий Хилендарски".'
}
]
});
schedule.addEvent({
title: 'Lightning Talks',
startTime: moment({hour: 16, minute: 00})
});
schedule.addEvent({
title: 'Закриване',
startTime: moment({hour: 17, minute: 00})
});