jekyll-theme-conference 3.5.0 → 3.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3463207643540289c9e9bc5f6c7bf57a63d0b1f48f3dc72e4a0dac3f98d2034
4
- data.tar.gz: 1c475f305b05cea1a9866f025e2d215320b1b20a7c8ce8a79769d3e310732d3e
3
+ metadata.gz: 0da457627a261ffda7837260a6b66294a383971e653ea3e3f05299cb8f672f8f
4
+ data.tar.gz: b02dc7da45e1e76386635952414d57c0c22727fa6e4c6e0968e5e55db58266d3
5
5
  SHA512:
6
- metadata.gz: a250438190ceec15cfc5bebf1d73dffa1a07c0f3c5056b39ff180273abdd37dc16c0b8e2a69e16f7493730ac4cb017b86a08c6890933f714fc91010742a15e12
7
- data.tar.gz: d1fec1808da818d9d241ecd3dede1253f60f4e4d2fde4b260433b32d57b8e0bc4714c1afa00a0746e7317fadb0de61f323f48ca7443b9d80610d5781bfd635d3
6
+ metadata.gz: 23c9ce1a8794dc7f25d5973c3ce70fd1c3dbb599ffc73c5a5e9fe4135a001e4ca173671d2433f66b15dd0bdc517fee1637a52325a2f233107d0590b1f554563e
7
+ data.tar.gz: ab334e1c2cd367f9ff3eebbc4d00760fc19a0ea0a1a7ea20df8d3bcc8ed0740a73464bb4b29db87452c780c4ade88b094766cff5377166a0249272105c5f50ee
data/README.md CHANGED
@@ -384,12 +384,12 @@ This can be further extended if some of the talks have an associated live stream
384
384
 
385
385
  In order to activate these functionalities, each day in the `program.yml` file must contain a `date` property (see section _Content_ > _Schedule / Program_ below) and the `live` property has to be set in the configuration file containing
386
386
 
387
- - how long a pause between two consecutive talks has to be for the live indication to pause (`time_stop`),
387
+ - how long a pause between two consecutive talks has to be for the live indication to pause (`stop`),
388
388
  - optionally under the `streaming` property:
389
389
  + if streaming should be enabled (`enable`), and if enabled
390
- + how many minutes the stream goes active before a talk (`time_prepend`),
391
- + how many minutes the stream stays active after a talk (`time_extend`),
392
- + how long a pause between two consecutive talks has to be for the stream to pause (`time_pause`), and
390
+ + how many minutes the stream goes active before a talk (`prepend`),
391
+ + how many minutes the stream stays active after a talk (`extend`),
392
+ + how long a pause between two consecutive talks has to be for the stream to pause (`pause`), and
393
393
  + optionally an external (absolute) link to which the user will be redirected instead of opening the modal (`external`),
394
394
  - optionally under the `demo` property:
395
395
  + if a demonstration mode should be enabled (`enable`), whereby the JavaScript function cycles continuously through the entire program in a few minutes, and if enabled
@@ -399,12 +399,12 @@ In order to activate these functionalities, each day in the `program.yml` file m
399
399
  ```yaml
400
400
  conference:
401
401
  live:
402
- time_stop: 240 # in minutes
402
+ stop: 240 # in minutes
403
403
  streaming:
404
404
  enable: true
405
- time_pause: 60 # in minutes
406
- time_prepend: 5 # in minutes
407
- time_extend: 5 # in minutes
405
+ pause: 60 # in minutes
406
+ prepend: 5 # in minutes
407
+ extend: 5 # in minutes
408
408
  demo:
409
409
  enable: false
410
410
  duration: 300 # in seconds
@@ -620,7 +620,22 @@ Each room is represented by a file in the `_rooms/` directory. It must begin wit
620
620
 
621
621
  - the room's `name`
622
622
  - optionally `hide: true` if the room's page should not be linked to, and
623
- - optionally a URL pointing to a live stream for the given room during the conference (`live`, see the section _Live Indications & Streaming_ above).
623
+ - optionally under the `live` property a URL pointing to a live stream for the given room during the conference (see the section _Live Indications & Streaming_ above), either:
624
+ * as an `absolute_url`, or
625
+ * a `relative_url`.
626
+
627
+ Example:
628
+
629
+ ```yaml
630
+ ---
631
+ name: The Room
632
+ hide: false
633
+ live:
634
+ absolute_url: https://github.com
635
+ ---
636
+
637
+ ...
638
+ ```
624
639
 
625
640
  ### Links
626
641
 
data/_includes/js/live.js CHANGED
@@ -27,6 +27,8 @@ window.conference.live = (() => {
27
27
  let streamVideoTimer;
28
28
  let streamInfoTimer;
29
29
 
30
+ let streamModal;
31
+
30
32
  const loadData = () => {
31
33
  // Load schedule
32
34
  const request = new Request(window.conference.config.baseurl + '/assets/js/data.json');
@@ -306,13 +308,22 @@ window.conference.live = (() => {
306
308
  let tRel = tNow - t;
307
309
 
308
310
  if (tRel < 0) {
309
- // Grey out when in past
310
- if (!livePast[i].classList.contains('text-secondary')) {
311
- livePast[i].classList.add('text-secondary');
311
+ if (livePast[i].nodeName == 'A' || livePast[i].nodeName == 'BUTTON') {
312
+ // Disable when in past
313
+ if (!livePast[i].classList.contains('disabled')) {
314
+ livePast[i].classList.add('disabled');
315
+ }
316
+ }
317
+ else {
318
+ // Grey out when in past
319
+ if (!livePast[i].classList.contains('text-secondary')) {
320
+ livePast[i].classList.add('text-secondary');
321
+ }
312
322
  }
313
323
  }
314
324
  else {
315
325
  // Show normal otherwise
326
+ livePast[i].classList.remove('disabled');
316
327
  livePast[i].classList.remove('text-secondary');
317
328
  }
318
329
  }
@@ -347,8 +358,6 @@ window.conference.live = (() => {
347
358
  }
348
359
  };
349
360
 
350
- let streamModal;
351
-
352
361
  const getRoom = (roomName) => {
353
362
  // Return room object for given room name
354
363
  if (roomName in data.rooms) {
@@ -361,7 +370,14 @@ window.conference.live = (() => {
361
370
 
362
371
  const getTalks = (roomName) => {
363
372
  if (roomName in data.talks) {
364
- return data.talks[roomName];
373
+ return data.talks[roomName].map((talk) => {
374
+ // For talks with live links, add some grace period to the end
375
+ // time in order to prevent that the next talk is announced
376
+ // immediately
377
+ const end = talk.live_links && talk.live_links.length > 0 ?
378
+ talk.end + streamExtend * 60 : talk.end;
379
+ return { ...talk, end };
380
+ });
365
381
  }
366
382
  else {
367
383
  return false;
@@ -454,7 +470,7 @@ window.conference.live = (() => {
454
470
  }
455
471
 
456
472
  // Conference not yet started
457
- if (timeNow < roomStart - streamPrepend*60) {
473
+ if (timeNow <= roomStart - streamPrepend*60) {
458
474
  setStreamIframeContent(lang.pre_stream);
459
475
 
460
476
  if (!freezeTime) {
@@ -463,7 +479,7 @@ window.conference.live = (() => {
463
479
  }
464
480
 
465
481
  // Conference is over
466
- else if (timeNow > roomEnd + streamExtend*60) {
482
+ else if (timeNow >= roomEnd + streamExtend*60) {
467
483
  setStreamIframeContent(lang.post_stream);
468
484
 
469
485
  if (!freezeTime && demo) {
@@ -513,7 +529,6 @@ window.conference.live = (() => {
513
529
  if (talkNext && timeNow >= talkNext.start - streamPause*60) {
514
530
  document.getElementById('stream-info').dataset.time = talkNext.start;
515
531
  document.getElementById('stream-info-time').dataset.time = talkNext.start;
516
- updateLive();
517
532
 
518
533
  streamModal.find('#stream-info-color').removeClass((index, className) => {
519
534
  return (className.match(/(^|\s)border-soft-\S+/g) || []).join(' ');
@@ -540,11 +555,12 @@ window.conference.live = (() => {
540
555
  for (let i = 0; i < talkNext.live_links.length; i++) {
541
556
  const link = talkNext.live_links[i];
542
557
 
543
- linksStr += '<a href="' + link.href + '" class="btn btn-light m-1'
544
- if (link.disabled) {
545
- linksStr += ' disabled';
558
+ // Skip empty links
559
+ if ((link.name == '' && !link.icon) || link.href == '') {
560
+ continue;
546
561
  }
547
- linksStr += '">';
562
+
563
+ linksStr += '<a href="' + link.href + '" class="btn btn-light m-1 live-past" data-time="'+ talkNext.start +'">';
548
564
  if (link.icon) {
549
565
  linksStr += '<i class="fas fa-' + link.icon + '"></i>&nbsp;';
550
566
  }
@@ -558,6 +574,7 @@ window.conference.live = (() => {
558
574
 
559
575
  streamModal.find('#stream-info').removeClass('d-none');
560
576
 
577
+ updateLive();
561
578
  if (!freezeTime) {
562
579
  streamInfoTimer = setTimeout(setStreamInfo, delayStart(talkNext.end) * 1000, roomName);
563
580
  }
@@ -19,7 +19,8 @@ window.conference.program = (() => {
19
19
  today.setHours(0,0,0,0);
20
20
 
21
21
  $('a[data-toggle="tab"]').each(function () {
22
- const d = new Date($(this).data('date'));
22
+ let d = new Date($(this).data('date'));
23
+ d.setHours(0,0,0,0);
23
24
 
24
25
  if (today.getTime() === d.getTime()) {
25
26
  $(this).tab('show');
@@ -4,7 +4,7 @@
4
4
  {%- unless site.conference.lang == "en" -%}
5
5
  {%- assign errors = errors | push : "The internationalization file containing different strings for this template seems to be missing. Have you copied the `_data/lang.yml` file from the [theme's repository](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/blob/master/_data/lang.yml) to you local website folder?" -%}
6
6
  {%- endunless -%}
7
- {%- elsif site.data.lang.version != 7 -%}
7
+ {%- elsif site.data.lang.version != 8 -%}
8
8
  {%- assign errors = errors | push : "The internationalization file in `_data/lang.yml` seems to be outdated and does not correspond to the current version of the theme. Grab the current version from the [theme's repository](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/blob/master/_data/lang.yml)." -%}
9
9
  {%- endunless -%}
10
10
  {%- unless site.conference.lang == "en" or site.conference.lang == "de" or site.conference.lang == "fr" or site.conference.lang == "pt" -%}
@@ -1,9 +1,9 @@
1
- {%- assign min_pause = site.conference.live.time_stop | default: 240 -%}
1
+ {%- assign min_pause = site.conference.live.stop | default: 240 -%}
2
2
  {%- assign min_pause = min_pause | times: 60 -%}
3
3
 
4
4
  {%- if site.conference.live.streaming.enable -%}
5
- {%- assign offset_start = site.conference.live.streaming.time_prepend | default: 5 -%}
6
- {%- assign offset_end = site.conference.live.streaming.time_extend | default: 5 -%}
5
+ {%- assign offset_start = site.conference.live.streaming.prepend | default: 5 -%}
6
+ {%- assign offset_end = site.conference.live.streaming.extend | default: 5 -%}
7
7
  {%- else -%}
8
8
  {%- assign offset_start = 0 -%}
9
9
  {%- assign offset_end = 0 -%}
@@ -11,7 +11,7 @@
11
11
 
12
12
  {%- else -%}
13
13
  {%- if page.layout == 'location' -%}
14
- {{- site.data.lang[site.conference.lang].location.title | default: "Location" -}}
14
+ {{- site.data.lang[site.conference.lang].location.rooms | default: "Rooms" -}}
15
15
  {%- elsif page.layout == 'program' -%}
16
16
  {{- site.data.lang[site.conference.lang].program.title | default: "Program" -}}
17
17
  {%- elsif page.layout == 'speaker-overview' -%}
data/_layouts/config.html CHANGED
@@ -31,9 +31,9 @@
31
31
 
32
32
  "streaming": {
33
33
  "enable": {{ site.conference.live.streaming.enable | default: "false" }},
34
- "pause": {{ site.conference.live.streaming.time_pause | default: 60 }},
35
- "prepend": {{ site.conference.live.streaming.time_prepend | default: 5 }},
36
- "extend": {{ site.conference.live.streaming.time_extend | default: 5 }}
34
+ "pause": {{ site.conference.live.streaming.pause | default: 60 }},
35
+ "prepend": {{ site.conference.live.streaming.prepend | default: 5 }},
36
+ "extend": {{ site.conference.live.streaming.extend | default: 5 }}
37
37
  },
38
38
 
39
39
  "demo": {
data/_layouts/data.html CHANGED
@@ -15,6 +15,14 @@
15
15
  {%- assign first_room = true -%}
16
16
  {%- for room in site.rooms %}
17
17
  {%- if room.live -%}
18
+ {%- if room.live.absolute_url -%}
19
+ {%- assign room_live_href = room.live.absolute_url -%}
20
+ {%- elsif room.live.relative_url -%}
21
+ {%- assign room_live_href = room.live.relative_url | prepend: site.baseurl -%}
22
+ {%- else -%}
23
+ {%- continue -%}
24
+ {%- endif -%}
25
+
18
26
  {%- unless first_room -%}
19
27
  ,
20
28
  {%- else -%}
@@ -23,7 +31,7 @@
23
31
  "{{ room.name }}": {
24
32
  "id": {{ forloop.index }},
25
33
  "name": "{{ room.name }}",
26
- "href": "{{ room.live }}"
34
+ "href": "{{ room_live_href }}"
27
35
  }
28
36
  {%- endif -%}
29
37
  {%- endfor %}
@@ -6,7 +6,7 @@
6
6
  {% if page.title %}
7
7
  {{ page.title }}
8
8
  {% else %}
9
- {{ site.data.lang[site.conference.lang].location.title | default: "Location" }}
9
+ {{ site.data.lang[site.conference.lang].location.directions | default: "Directions" }}
10
10
  {% endif %}
11
11
  </h1>
12
12
 
data/_layouts/room.html CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  <!-- title shown in browser: -->
12
12
  <h1 class="display-5 mb-3 d-print-none">
13
- {{ site.data.lang[site.conference.lang].location.title | default: "Location" }}
13
+ {{ site.data.lang[site.conference.lang].location.rooms | default: "Rooms" }}
14
14
  </h1>
15
15
 
16
16
  {% include partials/navbar_rooms.html %}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-conference
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.0
4
+ version: 3.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lorenz Schmid
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-19 00:00:00.000000000 Z
11
+ date: 2022-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll