Highlight current talks on schedule
This commit is contained in:
		
							parent
							
								
									ef420b2d43
								
							
						
					
					
						commit
						8838b9b47d
					
				
					 6 changed files with 33 additions and 4 deletions
				
			
		|  | @ -28,7 +28,7 @@ | |||
|     <tr class="calendar-row"> | ||||
|       <th scope="row" class="time" data-time="{{ timetable.day.date|date:'c' }}T{{ row.time|date:'c' }}"><p>{{ row.time|date:"h:iA" }}</p></th> | ||||
|       {% for slot in row.slots %} | ||||
|       <td class="slot slot-{{ slot.kind.label }}" colspan="{{ slot.colspan }}" rowspan="{{ slot.rowspan }}" data-startdatetime="{{ slot.start_datetime }}" data-enddatetime="{{ slot.end_datetime }}"> | ||||
|       <td class="slot slot-{{ slot.kind.label }}" colspan="{{ slot.colspan }}" rowspan="{{ slot.rowspan }}" data-starttime="{{ slot.start_datetime|date:'c' }}" data-endtime="{{ slot.end_datetime|date:'c' }}"> | ||||
|         {% with slot.kind.label.lower as label %} | ||||
|         {% if label == "talk" or label == "tutorial" %} | ||||
|           {% if slot.content.unpublish and not request.user.is_staff %} | ||||
|  |  | |||
|  | @ -46,7 +46,7 @@ | |||
|             <span class="clearfix d-sm-block d-md-none"></span> | ||||
|             <small class="text-muted">{{ timetable.day.date|date:"l" }}, {{ timetable.day.date }}</small> | ||||
|           </h2> | ||||
|           <p class="timezone-info small">Conference times are in {{ settings.LCA_START|date:'T' }} (UTC{{ settings.LCA_START|date:'O' }}).</p> | ||||
|           <p class="timezone-info small">Conference times are in {{ settings.LCA_START|date:'T' }} (UTC{{ settings.LCA_START|date:'O' }}). Current talks will be highlighted.</p> | ||||
|           <div class="table-responsive d-none d-md-block"> | ||||
|             {% include "symposion/schedule/_grid.html" %} | ||||
|           </div> | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ | |||
|         <h2 class="my-4"> | ||||
|           {{ timetable.day.date|date:"l" }}, {{ timetable.day.date }} | ||||
|         </h2> | ||||
|         <p class="timezone-info small">Conference times are in {{ settings.LCA_START|date:'T' }} (UTC{{ settings.LCA_START|date:'O' }}).</p> | ||||
|         <p class="timezone-info small">Conference times are in {{ settings.LCA_START|date:'T' }} (UTC{{ settings.LCA_START|date:'O' }}). Current talks will be highlighted.</p> | ||||
|         <div class="table-responsive d-none d-md-block"> | ||||
|           {% include "symposion/schedule/_grid.html" %} | ||||
|         </div> | ||||
|  |  | |||
|  | @ -24,7 +24,7 @@ | |||
|       <h2 class="my-4"> | ||||
|         {{ timetable.day.date|date:"l" }}, {{ timetable.day.date }} | ||||
|       </h2> | ||||
|       <p class="timezone-info small">Conference times are in {{ settings.LCA_START|date:'T' }} (UTC{{ settings.LCA_START|date:'O' }}).</p> | ||||
|       <p class="timezone-info small">Conference times are in {{ settings.LCA_START|date:'T' }} (UTC{{ settings.LCA_START|date:'O' }}). Current talks will be highlighted.</p> | ||||
|       <div class="table-responsive d-none d-md-block"> | ||||
|         {% include "symposion/schedule/_grid.html" with edit_schedule=True %} | ||||
|       </div> | ||||
|  |  | |||
|  | @ -1,4 +1,6 @@ | |||
| $(function() { | ||||
|     var SLOT_REFRESH_INTERVAL = 60 * 1000; | ||||
| 
 | ||||
|     /* Schedule display localisation */ | ||||
|     var showCurrentTab = function() { | ||||
|         var fragment = window.location.hash.toLowerCase().substring(1); | ||||
|  | @ -103,6 +105,25 @@ $(function() { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     var highlightCurrentSlots = function() { | ||||
|         var now = luxon.DateTime.local(); | ||||
| 
 | ||||
|         var slots = $('td.slot'); | ||||
|         for (var i = 0; i < slots.length; ++i) { | ||||
|             var slot = $(slots[i]); | ||||
|             var startTime = slot.data('starttime'); | ||||
|             var endTime = slot.data('endtime'); | ||||
|             var confStartTime = luxon.DateTime.fromISO(startTime, { zone: CONF_TZ }); | ||||
|             var confEndTime = luxon.DateTime.fromISO(endTime, { zone: CONF_TZ }); | ||||
| 
 | ||||
|             if (confStartTime <= now && confEndTime > now) { | ||||
|                 slot.addClass("slot-active"); | ||||
|             } else { | ||||
|                 slot.removeClass("slot-active"); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     var embeddedView = function() { | ||||
|         var urlParams = new URLSearchParams(window.location.search); | ||||
|         if (urlParams.has('embed')) { | ||||
|  | @ -115,6 +136,8 @@ $(function() { | |||
|                 if (path.startsWith('/')) { | ||||
|                     var separator = path.indexOf('?') === -1 ? '?' : '&'; | ||||
|                     anchor.attr('href', path + separator + 'embed') | ||||
|                 } else if (path.startsWith('http')) { | ||||
|                     anchor.attr('target', '_blank'); | ||||
|                 } | ||||
|             }) | ||||
|         } | ||||
|  | @ -144,4 +167,6 @@ $(function() { | |||
|     showCurrentTab(); | ||||
|     updateScheduleGrid(); | ||||
|     updatePresentationTimes(); | ||||
|     highlightCurrentSlots(); | ||||
|     var slotRefresh = setInterval(highlightCurrentSlots, SLOT_REFRESH_INTERVAL); | ||||
| }); | ||||
|  |  | |||
|  | @ -84,6 +84,10 @@ h3, .h3 { | |||
|     border-bottom: 1px solid $noon-sea; | ||||
| } | ||||
| 
 | ||||
| .slot-active { | ||||
|     background-color: $blaze; | ||||
| } | ||||
| 
 | ||||
| /* END LCA BRAND */ | ||||
| 
 | ||||
| .messagelist { | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Joel Addison
						Joel Addison