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"> |     <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> |       <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 %} |       {% 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 %} |         {% with slot.kind.label.lower as label %} | ||||||
|         {% if label == "talk" or label == "tutorial" %} |         {% if label == "talk" or label == "tutorial" %} | ||||||
|           {% if slot.content.unpublish and not request.user.is_staff %} |           {% if slot.content.unpublish and not request.user.is_staff %} | ||||||
|  |  | ||||||
|  | @ -46,7 +46,7 @@ | ||||||
|             <span class="clearfix d-sm-block d-md-none"></span> |             <span class="clearfix d-sm-block d-md-none"></span> | ||||||
|             <small class="text-muted">{{ timetable.day.date|date:"l" }}, {{ timetable.day.date }}</small> |             <small class="text-muted">{{ timetable.day.date|date:"l" }}, {{ timetable.day.date }}</small> | ||||||
|           </h2> |           </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"> |           <div class="table-responsive d-none d-md-block"> | ||||||
|             {% include "symposion/schedule/_grid.html" %} |             {% include "symposion/schedule/_grid.html" %} | ||||||
|           </div> |           </div> | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ | ||||||
|         <h2 class="my-4"> |         <h2 class="my-4"> | ||||||
|           {{ timetable.day.date|date:"l" }}, {{ timetable.day.date }} |           {{ timetable.day.date|date:"l" }}, {{ timetable.day.date }} | ||||||
|         </h2> |         </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"> |         <div class="table-responsive d-none d-md-block"> | ||||||
|           {% include "symposion/schedule/_grid.html" %} |           {% include "symposion/schedule/_grid.html" %} | ||||||
|         </div> |         </div> | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ | ||||||
|       <h2 class="my-4"> |       <h2 class="my-4"> | ||||||
|         {{ timetable.day.date|date:"l" }}, {{ timetable.day.date }} |         {{ timetable.day.date|date:"l" }}, {{ timetable.day.date }} | ||||||
|       </h2> |       </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"> |       <div class="table-responsive d-none d-md-block"> | ||||||
|         {% include "symposion/schedule/_grid.html" with edit_schedule=True %} |         {% include "symposion/schedule/_grid.html" with edit_schedule=True %} | ||||||
|       </div> |       </div> | ||||||
|  |  | ||||||
|  | @ -1,4 +1,6 @@ | ||||||
| $(function() { | $(function() { | ||||||
|  |     var SLOT_REFRESH_INTERVAL = 60 * 1000; | ||||||
|  | 
 | ||||||
|     /* Schedule display localisation */ |     /* Schedule display localisation */ | ||||||
|     var showCurrentTab = function() { |     var showCurrentTab = function() { | ||||||
|         var fragment = window.location.hash.toLowerCase().substring(1); |         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 embeddedView = function() { | ||||||
|         var urlParams = new URLSearchParams(window.location.search); |         var urlParams = new URLSearchParams(window.location.search); | ||||||
|         if (urlParams.has('embed')) { |         if (urlParams.has('embed')) { | ||||||
|  | @ -115,6 +136,8 @@ $(function() { | ||||||
|                 if (path.startsWith('/')) { |                 if (path.startsWith('/')) { | ||||||
|                     var separator = path.indexOf('?') === -1 ? '?' : '&'; |                     var separator = path.indexOf('?') === -1 ? '?' : '&'; | ||||||
|                     anchor.attr('href', path + separator + 'embed') |                     anchor.attr('href', path + separator + 'embed') | ||||||
|  |                 } else if (path.startsWith('http')) { | ||||||
|  |                     anchor.attr('target', '_blank'); | ||||||
|                 } |                 } | ||||||
|             }) |             }) | ||||||
|         } |         } | ||||||
|  | @ -144,4 +167,6 @@ $(function() { | ||||||
|     showCurrentTab(); |     showCurrentTab(); | ||||||
|     updateScheduleGrid(); |     updateScheduleGrid(); | ||||||
|     updatePresentationTimes(); |     updatePresentationTimes(); | ||||||
|  |     highlightCurrentSlots(); | ||||||
|  |     var slotRefresh = setInterval(highlightCurrentSlots, SLOT_REFRESH_INTERVAL); | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | @ -84,6 +84,10 @@ h3, .h3 { | ||||||
|     border-bottom: 1px solid $noon-sea; |     border-bottom: 1px solid $noon-sea; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | .slot-active { | ||||||
|  |     background-color: $blaze; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| /* END LCA BRAND */ | /* END LCA BRAND */ | ||||||
| 
 | 
 | ||||||
| .messagelist { | .messagelist { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Joel Addison
						Joel Addison