{% extends "symposion/schedule/public_base.html" %} {% load i18n %} {% load cache %} {% load lca2018_tags %} {% block head_title %}Conference Schedule{% endblock %} {% block header_title %}Conference Schedule{% endblock %} {% block body_class %}full{% endblock %} {% block right %} {% endblock %} {% block content_base %} <div class="page-head"> {% block breadcrumbs %}{% endblock %} </div> <div class="card"> <div class="card-header"> <nav> <ul class="nav nav-tabs card-header-tabs" id="nav-tabs" role="tablist"> {% for section in sections %} {% for timetable in section.days %} <li class="nav-item"> <a class="nav-item nav-link active" id="schedule_day_{{ timetable.day.date|date:"l"|lower}}-tab" href="#{{ timetable.day.date|date:"l"|lower}}" role="tab" aria-controls="schedule_day_{{ timetable.day.date|date:"l"|lower}" > {{ timetable.day.date|date:"l"}} </a> </li> {% endfor %} {% endfor %} </ul> </nav> </div> <div class="tab-content card-body"> {% for section in sections %} {% cache 600 "schedule-table" section.schedule.section %} {% for timetable in section.days %} <div class="tab-pane active" id="{{ timetable.day.date|date:"l"|lower}}" role="tabpanel" aria-labelledby="schedule_day_{{ timetable.day.date|date:"l"|lower}}-tab"> <h3>{{ section.schedule.section.name }} — {{ timetable.day.date|date:"l" }}, {{ timetable.day.date }}</h3> {% include "symposion/schedule/_grid.html" %} </div> {% endfor %} {% endcache %} {% endfor %} </div> </div> {% endblock %} {% block scripts_extra %} <script type="text/javascript"> fragment = window.location.hash.toLowerCase().substring(1); if (!fragment) { OFFSET = -11 * (60 * 60 * 1000); // Sydney is 11 hours ahead of UTC in Jan. JAN = 0; // because January is 0, not 1 fragments = [ {"day": "monday", "time": Date.UTC(2018, JAN, 22)}, {"day": "tuesday", "time": Date.UTC(2018, JAN, 23)}, {"day": "wednesday", "time": Date.UTC(2018, JAN, 24)}, {"day": "thursday", "time": Date.UTC(2018, JAN, 25)}, {"day": "friday", "time": Date.UTC(2018, JAN, 26)}, {"day": "saturday", "time": Date.UTC(2018, JAN, 27)}, ]; now = new Date().getTime(); for (i = 0; i < 5; i++) { f = fragments[i]; g = fragments[i+1]; if ((f.time + OFFSET) <= now && now < (g.time + OFFSET)) { fragment = f.day; } } } document.addEventListener("hashchange", function(event) { fragment = window.location.hash.toLowerCase().substring(1); if (!fragment) { return; }; fragmentid = "#schedule_day_" + fragment + "-tab"; $(fragmentid).tab('show'); }); $(".nav-item").click(function(event) { // This updates the window location fragment so that // the URL bar is updated, and so that when you go // back, it loads the right page. // len("schedule_day_") == 13 day_tab = event.target.id.substring(13); day = day_tab.substr(0, day_tab.length-4); if(history.pushState) { history.pushState(null, null, "#" + day); } }); </script> {{ block.super }} {% endblock %}