mirror of
https://github.com/voc/streaming-website
synced 2024-11-10 06:34:17 +00:00
Rename program to schedule
This commit is contained in:
parent
f7d9d59274
commit
fc4cf5793c
6 changed files with 66 additions and 72 deletions
|
@ -78,7 +78,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
#program {
|
||||
@import "_program.less";
|
||||
#schedule {
|
||||
@import "_schedule.less";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.program {
|
||||
.schedule {
|
||||
&.scroll-container {
|
||||
overflow: hidden;
|
||||
overflow-x: scroll;
|
||||
|
@ -17,7 +17,7 @@
|
|||
left: 0;
|
||||
width: 150px;
|
||||
height: 100%;
|
||||
background-color: @program-now-bg;
|
||||
background-color: @schedule-now-bg;
|
||||
font-size: 14px;
|
||||
|
||||
//z-index: -5;
|
||||
|
@ -26,7 +26,7 @@
|
|||
display: block;
|
||||
position: absolute;
|
||||
right: -28px;
|
||||
color: @program-now;
|
||||
color: @schedule-now;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@
|
|||
|
||||
|
||||
padding: 10px;
|
||||
border: 1px solid @program-border;
|
||||
border: 1px solid @schedule-border;
|
||||
|
||||
h3 {
|
||||
margin: 0;
|
||||
|
@ -58,7 +58,7 @@
|
|||
h4 {
|
||||
|
||||
margin: 3px 0;
|
||||
color: @program-room;
|
||||
color: @schedule-room;
|
||||
font-size: 14px;
|
||||
|
||||
@media (max-width: @screen-xs-max) {
|
||||
|
@ -66,7 +66,7 @@
|
|||
}
|
||||
|
||||
a {
|
||||
color: @program-room;
|
||||
color: @schedule-room;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,7 @@
|
|||
margin: 0;
|
||||
}
|
||||
|
||||
color: @program-author;
|
||||
color: @schedule-author;
|
||||
}
|
||||
|
||||
&.event h3 {
|
||||
|
@ -84,25 +84,25 @@
|
|||
|
||||
&.gap {
|
||||
background-image: url("@{img}/stripes/gap.png");
|
||||
background-color: @program-gap-bg;
|
||||
color: @program-gap;
|
||||
text-shadow: 0 0 3px @program-gap;
|
||||
background-color: @schedule-gap-bg;
|
||||
color: @schedule-gap;
|
||||
text-shadow: 0 0 3px @schedule-gap;
|
||||
}
|
||||
|
||||
&.daychange {
|
||||
background-image: url("@{img}/stripes/gap.png");
|
||||
background-color: @program-daychange-bg;
|
||||
color: @program-daychange;
|
||||
text-shadow: 0 0 3px @program-daychange;
|
||||
background-color: @schedule-daychange-bg;
|
||||
color: @schedule-daychange;
|
||||
text-shadow: 0 0 3px @schedule-daychange;
|
||||
}
|
||||
|
||||
&.pause {
|
||||
background-color: @program-pause-bg;
|
||||
color: @program-pause;
|
||||
background-color: @schedule-pause-bg;
|
||||
color: @schedule-pause;
|
||||
}
|
||||
}
|
||||
|
||||
.room.highlight .block {
|
||||
background-color: @program-selected-room;
|
||||
background-color: @schedule-selected-room;
|
||||
}
|
||||
}
|
|
@ -11,23 +11,23 @@
|
|||
@jumbo-font-size-xs: 2.5em;
|
||||
@jumbo-line-height: 45px;
|
||||
|
||||
@program-now: @brand-danger;
|
||||
@program-now-bg: fade(lighten(@brand-danger, 5%), 60%);
|
||||
@program-border: lighten(@brand-primary, 50%);
|
||||
@schedule-now: @brand-danger;
|
||||
@schedule-now-bg: fade(lighten(@brand-danger, 5%), 60%);
|
||||
@schedule-border: lighten(@brand-primary, 50%);
|
||||
|
||||
@program-room: darken(@brand-primary, 15%);
|
||||
@program-author: #444;
|
||||
@schedule-room: darken(@brand-primary, 15%);
|
||||
@schedule-author: #444;
|
||||
|
||||
@program-selected-room: lighten(@brand-success, 10%);
|
||||
@schedule-selected-room: lighten(@brand-success, 10%);
|
||||
|
||||
@program-daychange: darken(@brand-primary, 20%);
|
||||
@program-daychange-bg: fade(white, 30%);
|
||||
@schedule-daychange: darken(@brand-primary, 20%);
|
||||
@schedule-daychange-bg: fade(white, 30%);
|
||||
|
||||
@program-gap: darken(@brand-primary, 20%);
|
||||
@program-gap-bg: fade(white, 30%);
|
||||
@schedule-gap: darken(@brand-primary, 20%);
|
||||
@schedule-gap-bg: fade(white, 30%);
|
||||
|
||||
@program-pause: white;
|
||||
@program-pause-bg: lighten(black, 85%);
|
||||
@schedule-pause: white;
|
||||
@schedule-pause-bg: lighten(black, 85%);
|
||||
|
||||
|
||||
// website configuration styles
|
||||
|
|
|
@ -183,11 +183,11 @@ $(function() {
|
|||
$(window).on('hashchange', setTabToHash).trigger('hashchange');
|
||||
});
|
||||
|
||||
// programm-timeline
|
||||
// schedule-timeline
|
||||
$(function() {
|
||||
var
|
||||
$program = $('.program'),
|
||||
$now = $program.find('.now'),
|
||||
$schedule = $('.schedule'),
|
||||
$now = $schedule.find('.now'),
|
||||
scrollLock = false,
|
||||
rewindTimeout,
|
||||
|
||||
|
@ -203,7 +203,7 @@ $(function() {
|
|||
/* offset to the browsers realtime (for simulation) */
|
||||
offset = $('.js-settings').data('scheduleoffset');
|
||||
|
||||
$program.on('mouseenter mouseleave touchstart touchend', function(e) {
|
||||
$schedule.on('mouseenter mouseleave touchstart touchend', function(e) {
|
||||
if(e.type == 'mouseleave' || e.type == 'touchend') {
|
||||
rewindTimeout = setTimeout(function() {
|
||||
scrollLock = false;
|
||||
|
@ -214,7 +214,7 @@ $(function() {
|
|||
}
|
||||
});
|
||||
|
||||
// program now-marker & scrolling
|
||||
// schedule now-marker & scrolling
|
||||
function updateProgramView(initial) {
|
||||
var
|
||||
// corrected "now" timestamp in unix-counting (seconds, not microseconds)
|
||||
|
@ -223,7 +223,7 @@ $(function() {
|
|||
// only check the first room (shouldn't matter anyway)
|
||||
// find the newest block that starts in the past
|
||||
// that's the one that is most probably currently still running
|
||||
var $block = $program
|
||||
var $block = $schedule
|
||||
.find('.room')
|
||||
.first()
|
||||
.find('.block')
|
||||
|
@ -242,16 +242,16 @@ $(function() {
|
|||
// place of the now-marker between 0 and 1 within this block
|
||||
normalized = Math.max(0, Math.min(1, (now - start) / (end - start))),
|
||||
|
||||
// projected to pixels with respect to the programms left end
|
||||
// projected to pixels with respect to the schedules left end
|
||||
px = $block.position().left + ($block.outerWidth() * normalized),
|
||||
|
||||
// visible width of the program display
|
||||
displayw = $program.width(),
|
||||
// visible width of the schedule display
|
||||
displayw = $schedule.width(),
|
||||
|
||||
// current scroll position
|
||||
scrollx = $program.scrollLeft(),
|
||||
scrollx = $schedule.scrollLeft(),
|
||||
|
||||
// distance of the now-marker to the left border of the program display
|
||||
// distance of the now-marker to the left border of the schedule display
|
||||
px_in_display = px - scrollx;
|
||||
|
||||
//console.log($block.get(0), new Date(start*1000), new Date(now*1000), new Date(end*1000), normalized, px);
|
||||
|
@ -262,14 +262,14 @@ $(function() {
|
|||
return;
|
||||
|
||||
if(
|
||||
// now marker is > 2/3 of the program-display-width
|
||||
// now marker is > 2/3 of the schedule-display-width
|
||||
px_in_display > (displayw * 2/3) ||
|
||||
|
||||
// now marker is <1/7 of the program-display-width
|
||||
// now marker is <1/7 of the schedule-display-width
|
||||
px_in_display < (displayw/7)
|
||||
) {
|
||||
// scroll program so that now-marker is as 1/5 of the screen
|
||||
$program.stop().scrollTo(px - displayw/6, {
|
||||
// scroll schedule so that now-marker is as 1/5 of the screen
|
||||
$schedule.stop().scrollTo(px - displayw/6, {
|
||||
axis: 'x',
|
||||
duration: initial ? 0 : scrollDuration,
|
||||
});
|
||||
|
@ -277,7 +277,7 @@ $(function() {
|
|||
}
|
||||
|
||||
|
||||
// when on programs tab
|
||||
// when on schedules tab
|
||||
var updateInterval;
|
||||
function on() {
|
||||
// initial trigger
|
||||
|
@ -291,24 +291,24 @@ $(function() {
|
|||
clearInterval(updateInterval);
|
||||
}
|
||||
|
||||
if(window.location.hash == '#program')
|
||||
if(window.location.hash == '#schedule')
|
||||
on();
|
||||
|
||||
// trigger when a tab was changed
|
||||
$('.nav-tabs').on('shown.bs.tab', 'a', function(e) {
|
||||
if(e.target.hash == '#program')
|
||||
if(e.target.hash == '#schedule')
|
||||
on();
|
||||
else
|
||||
off();
|
||||
});
|
||||
});
|
||||
|
||||
// startpage program teaser
|
||||
// startpage schedule teaser
|
||||
$(function() {
|
||||
var
|
||||
updateTimer = 5*1000, /* update display every 5 seconds */
|
||||
refetchTimer = 10*60*1000, /* re-request current / upcoming program every 10 minutes */
|
||||
programData = {},
|
||||
refetchTimer = 10*60*1000, /* re-request current / upcoming schedule every 10 minutes */
|
||||
scheduleData = {},
|
||||
$lecture = $('.room.has-schedule'),
|
||||
|
||||
/* offset to the browsers realtime (for simulation) */
|
||||
|
@ -320,10 +320,10 @@ $(function() {
|
|||
|
||||
function fetchProgram() {
|
||||
$.ajax({
|
||||
url: 'program.json',
|
||||
url: 'schedule.json',
|
||||
dataType: 'json',
|
||||
success: function(data) {
|
||||
programData = data;
|
||||
scheduleData = data;
|
||||
updateProgtamTeaser();
|
||||
},
|
||||
|
||||
|
@ -339,7 +339,7 @@ $(function() {
|
|||
// corrected "now" timestamp in unix-counting (seconds, not microseconds)
|
||||
now = (Date.now() / 1000) + offset;
|
||||
|
||||
$.each(programData, function(room, talks) {
|
||||
$.each(scheduleData, function(room, talks) {
|
||||
var currentTalk, nextTalk;
|
||||
|
||||
$.each(talks, function(room, talk) {
|
||||
|
|
|
@ -1,18 +1,12 @@
|
|||
<?
|
||||
|
||||
foreach(reset($program) as $event)
|
||||
$width += $event['duration'];
|
||||
|
||||
?>
|
||||
<div class="program scroll-container">
|
||||
<div class="schedule scroll-container">
|
||||
<div class="scroll-element">
|
||||
<div class="now"><span>now</span></div>
|
||||
<? foreach($program as $roomname => $events): ?>
|
||||
<div class="room <? if($roomname == get("ROOMS.$room.SCHEDULE_NAME", $room)): ?>highlight<? endif ?>" style="width: <?=$width / get('SCHEDULE.SCALE')?>px">
|
||||
<? foreach($schedule->getSchedule() as $roomname => $events): ?>
|
||||
<div class="room <? if($roomname == $room->getSlug()): ?>highlight<? endif ?>" style="width: <?=ceil($schedule->getDurationSum() / $schedule->getScale())?>px">
|
||||
<? foreach($events as $event): ?>
|
||||
<div
|
||||
class="block <?=h(@$event['special'] ?: 'event')?>"
|
||||
style="width: <?=h($event['duration'] / get('SCHEDULE.SCALE'))?>px"
|
||||
style="width: <?=h(round($event['duration'] / $schedule->getScale()))?>px"
|
||||
data-start="<?=intval($event['start'])?>"
|
||||
data-end="<?=intval($event['end'])?>"
|
||||
>
|
||||
|
@ -34,23 +28,23 @@ foreach(reset($program) as $event)
|
|||
–
|
||||
<?=h(strftime('%H:%M', $event['end']))?>
|
||||
in
|
||||
<? if(has("ROOMS.$roomname")): ?>
|
||||
<? /*if(has("ROOMS.$roomname")): ?>
|
||||
<a href="<?=h(link_player($roomname))?>">
|
||||
<?=h(get("ROOMS.$roomname.DISPLAY"))?>
|
||||
</a>
|
||||
<? else: ?>
|
||||
<? else:*/ ?>
|
||||
<?=h($roomname) ?>
|
||||
<? endif ?>
|
||||
<? /*endif*/ ?>
|
||||
</h4>
|
||||
<h3>
|
||||
<? if(has("ROOMS.$roomname")): ?>
|
||||
<? /*if(has("ROOMS.$roomname")): ?>
|
||||
<a
|
||||
href="<?=h(link_player($roomname))?>"
|
||||
title="Switch to <?=h(get("ROOMS.$roomname.DISPLAY"))?>"
|
||||
><?=h($event['title'])?></a>
|
||||
<? else: ?>
|
||||
<? else:*/ ?>
|
||||
<?=h($event['title'])?>
|
||||
<? endif ?>
|
||||
<? /*endif*/ ?>
|
||||
</h3>
|
||||
<? if($event['speaker']): ?>
|
||||
<h5>by <?=h($event['speaker'])?></h5>
|
|
@ -54,8 +54,8 @@
|
|||
</div>
|
||||
<? endif ?>
|
||||
<? if($room->hasSchedule()): ?>
|
||||
<div role="tabpanel" class="tab-pane" id="program">
|
||||
<? require("$assemblies/program.phtml") ?>
|
||||
<div role="tabpanel" class="tab-pane" id="schedule">
|
||||
<? require("$assemblies/schedule.phtml") ?>
|
||||
</div>
|
||||
<? endif ?>
|
||||
<? if($room->hasFeedback()): ?>
|
||||
|
|
Loading…
Reference in a new issue