Skip to content

Commit dd7e454

Browse files
committed
Added consistent navigation tabs for agenda-related pages, and added a floor-plan tab. Tweaked the styling of by-room and by-type meeting tabs to be more consistent with the rest of the site. Factored out page header to the common header include file for some pages.
- Legacy-Id: 11537
1 parent c0c3d2a commit dd7e454

7 files changed

Lines changed: 202 additions & 76 deletions

File tree

ietf/templates/meeting/agenda.html

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -31,33 +31,17 @@
3131
{% origin %}
3232

3333
<div class="row">
34-
<div class="col-md-10">
35-
36-
{% include "meeting/meeting_heading.html" with meeting=schedule.meeting updated=updated %}
37-
38-
<p class="noprint h6 text-center panel panel-heading ">
39-
{% if "-utc" in request.path %}
40-
<a href="{% url 'ietf.meeting.views.agenda' num=schedule.meeting.number %}">Agenda in local timezone</a> |
41-
{% else %}
42-
{% comment %}<a href="{% url 'ietf.meeting.views.agenda' base='agenda-utc' %}">Agenda in UTC timezone</a> | {% endcomment %}
43-
<a href="/meeting/agenda-utc">Agenda in UTC timezone</a> |
44-
{% endif %}
45-
<a href="{% url 'ietf.meeting.views.agenda' num=schedule.meeting.number ext='.txt' %}">Plaintext agenda</a> |
46-
<a href="https://tools.ietf.org/agenda/{{schedule.meeting.number}}/">Tools-style agenda</a>
47-
{% if user|has_role:"Secretariat,Area Director,IAB" %}
48-
|
49-
{% if schedule != meeting.agenda %}
50-
<a href="{% url 'ietf.meeting.views.agenda_by_room' num=schedule.meeting.number name=schedule.name owner=schedule.owner.email %}">List by Room</a> |
51-
<a href="{% url 'ietf.meeting.views.agenda_by_type' num=schedule.meeting.number name=schedule.name owner=schedule.owner.email %}">List by Type</a> |
52-
<a href="{% url 'ietf.meeting.views.room_view' num=schedule.meeting.number name=schedule.name owner=schedule.owner.email %}">Room Grid</a>
53-
{% else %}
54-
<a href="{% url 'ietf.meeting.views.agenda_by_room' num=schedule.meeting.number%}">List by Room</a> |
55-
<a href="{% url 'ietf.meeting.views.agenda_by_type' num=schedule.meeting.number%}">List by Type</a> |
56-
<a href="{% url 'ietf.meeting.views.room_view' num=schedule.meeting.number%}">Room Grid</a>
57-
{% endif %}
58-
{% endif %}
59-
</p>
34+
<div class="col-md-12">
35+
{% if "-utc" in request.path %}
36+
{% include "meeting/meeting_heading.html" with meeting=schedule.meeting updated=updated selected="agenda-utc" title_extra="(UTC)" %}
37+
{% else %}
38+
{% include "meeting/meeting_heading.html" with meeting=schedule.meeting updated=updated selected="agenda" title_extra="" %}
39+
{% endif %}
6040

41+
</div>
42+
</div>
43+
<div class="row">
44+
<div class="col-md-10">
6145
{# cache this part for 5 minutes -- it takes 3-6 seconds to generate #}
6246
{% load cache %}
6347
{% cache 300 ietf_meeting_agenda_utc schedule.meeting.number request.path %}
Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{% extends "base.html" %}
22
{% block morecss %}
33
ul.daylist { list-style:none; padding-left:0; }
4-
li.daylistentry { font-size:162%; font-weight:700; }
4+
li h2 { font-weight: 600; margin-top: 0.5em; }
5+
li h3 { font-weight: 400; margin-top: 0.5em; }
56
li.even { background-color:#EDF5FF; }
67
li.odd { background-color:white; }
7-
ul.roomlist {list-style:none; padding-left:0; margin-bottom:20px;}
8+
ul.roomlist {list-style:none; margin-top: 0.5em; }
89
li.roomlistentry { font-weight: 400; }
910
ul.sessionlist { list-style:none; padding-left:2em; margin-bottom:10px;}
10-
li.sessionlistentry { font-size:62%; }
1111

1212
.type-lead:after { content: " (DO NOT POST)"; color:red; }
1313
.type-offagenda:after { content:" (not published on agenda)"; }
@@ -17,25 +17,26 @@
1717
{% block title %}Agenda for {{meeting}} by Room{% endblock %}
1818

1919
{% block content %}
20-
{% include "meeting/meeting_heading.html" with meeting=schedule.meeting updated=meeting.updated %}
21-
<h1>Agenda for {{meeting}} by Room</h1>
22-
<ul class="daylist">
23-
{% for day,sessions in ss_by_day.items %}
24-
<li class="daylistentry {% cycle 'even' 'odd' %}">{{day|date:'l, j F Y'}}
25-
{% regroup sessions by timeslot.get_functional_location as room_list %}
26-
<ul class="roomlist">
27-
{% for room in room_list %}
28-
<li class="roomlistentry">{{room.grouper|default:"Location Unavailable"}}
29-
<ul class="sessionlist">
30-
{% for ss in room.list %}
31-
<li class="sessionlistentry type-{{ss.timeslot.type.slug}}">{{ss.timeslot.time|date:"H:i"}}-{{ss.timeslot.end_time|date:"H:i"}} {{ss.session.short_name}}</li>
32-
{% endfor %}
33-
</ul>
34-
</li>
35-
{% endfor %}
36-
</ul>
37-
</li>
38-
{% endfor %}
39-
</ul>
20+
21+
{% include "meeting/meeting_heading.html" with meeting=schedule.meeting updated=meeting.updated selected="by-room" title_extra="by Room" %}
22+
23+
<ul class="daylist">
24+
{% for day,sessions in ss_by_day.items %}
25+
<li class="daylistentry {% cycle 'even' 'odd' %}"><h2>{{day|date:'l, j F Y'}}</h2>
26+
{% regroup sessions by timeslot.get_functional_location as room_list %}
27+
<ul class="roomlist">
28+
{% for room in room_list %}
29+
<li class="roomlistentry"><h3>{{room.grouper|default:"Location Unavailable"}}</h3>
30+
<ul class="sessionlist">
31+
{% for ss in room.list %}
32+
<li class="sessionlistentry type-{{ss.timeslot.type.slug}}">{{ss.timeslot.time|date:"H:i"}}-{{ss.timeslot.end_time|date:"H:i"}} {{ss.session.short_name}}</li>
33+
{% endfor %}
34+
</ul>
35+
</li>
36+
{% endfor %}
37+
</ul>
38+
</li>
39+
{% endfor %}
40+
</ul>
4041
{% endblock %}
4142

ietf/templates/meeting/agenda_by_type.html

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22
{% block morecss %}
33

44
ul.typelist { list-style:none; padding-left:0; }
5-
li.typelistentry { font-size:162%; font-weight:700; }
5+
li h2 { font-weight: 600; margin-top: 0.5em; }
6+
li h3 { font-weight: 400; margin-top: 0.5em; }
67
li.even { background-color:#EDF5FF; }
78
li.odd { background-color:white; }
89
ul.daylist {list-style:none; padding-left:0; margin-bottom:20px;}
910
li.daylistentry { margin-left:2em; font-weight: 400; }
1011

11-
.sessiontable {margin-left:2em; font-size:62%;}
12+
13+
.sessiontable {margin-left: 2em; }
1214
.sessiontable td {padding-right: 1em;}
1315

1416
.typelabel { font-size:162%; font-weight:700; }
@@ -25,18 +27,18 @@
2527
{% block title %}Agenda for {{meeting}} by Session Type{% endblock %}
2628

2729
{% block content %}
28-
{% include "meeting/meeting_heading.html" with meeting=schedule.meeting updated=meeting.updated %}
29-
<h1>Agenda for {{meeting}} by Session Type</h1>
30+
{% include "meeting/meeting_heading.html" with meeting=schedule.meeting updated=meeting.updated selected="by-type" title_extra="by Session Type" %}
31+
3032
{% regroup assignments by session.type.slug as type_list %}
3133
<ul class="typelist">
3234
{% for type in type_list %}
3335
<li class="typelistentry {% cycle 'even' 'odd' %}">
34-
{{type.grouper}} {% if schedule == meeting.agenda %}<a id="ical-link" class="btn btn-primary" href="{% url "ietf.meeting.views.agenda_by_type_ics" num=meeting.number type=type.grouper %}">Download to Calendar</a>{% endif %}
36+
<h2>{{type.grouper|title}}</h2> {% if schedule == meeting.agenda %}<a id="ical-link" class="btn btn-primary" href="{% url "ietf.meeting.views.agenda_by_type_ics" num=meeting.number type=type.grouper %}">Download to Calendar</a>{% endif %}
3537
<ul class="daylist">
3638
{% regroup type.list by timeslot.time|date:"l Y-M-d" as daylist %}
3739
{% for day in daylist %}
3840
<li class="daylistentry">
39-
{{ day.grouper }}
41+
<h3>{{ day.grouper }}</h3>
4042
<table class="sessiontable">
4143
{% for ss in day.list %}
4244
<tr>
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
{% extends "base.html" %}
2+
{# Copyright The IETF Trust 2015, All Rights Reserved #}
3+
{% load origin %}
4+
5+
{% load ietf_filters %}
6+
{% load staticfiles %}
7+
8+
{% block title %}
9+
IETF {{ schedule.meeting.number }} meeting agenda
10+
{% if "-utc" in request.path %}
11+
(UTC)
12+
{% endif %}
13+
{% endblock %}
14+
15+
{% block morecss %}
16+
.floor-plan {
17+
position: relative;
18+
top: 0;
19+
left: 0;
20+
}
21+
.rooms a {
22+
text-decoration: underline;
23+
}
24+
{% endblock %}
25+
26+
{% block bodyAttrs %}data-spy="scroll" data-target="#affix"{% endblock %}
27+
28+
{% block content %}
29+
{% origin %}
30+
31+
<div class="row">
32+
<div class="col-md-12" >
33+
34+
{% include "meeting/meeting_heading.html" with meeting=schedule.meeting selected="floor-plan" title_extra="Floor Plan" %}
35+
36+
</div>
37+
</div>
38+
39+
40+
<div class="row">
41+
<div class="col-md-10">
42+
{% for floor in floors %}
43+
<div class="anchor-target" id="{{floor.name|slugify}}"></div>
44+
<h3>{{ floor.name }}</h3>
45+
<div class="floor-plan">
46+
<img class="col-md-12" src="{{ floor.image.url }}" >
47+
<!-- We need as many of these as we can have individual rooms combining into one -->
48+
<div id="{{floor.name|slugify}}-arrowdiv" style="position: absolute; left: 0; top: 67.5px; visibility: hidden;"><img id="arrow" src="{% static 'ietf/images/arrow-ani.gif' %}"></div>
49+
<div id="{{floor.name|slugify}}-arrowdiv1" style="position: absolute; left: 0; top: 67.5px; visibility: hidden;"><img id="arrow" src="{% static 'ietf/images/arrow-ani.gif' %}"></div>
50+
<div id="{{floor.name|slugify}}-arrowdiv2" style="position: absolute; left: 0; top: 67.5px; visibility: hidden;"><img id="arrow" src="{% static 'ietf/images/arrow-ani.gif' %}"></div>
51+
<div id="{{floor.name|slugify}}-arrowdiv3" style="position: absolute; left: 0; top: 67.5px; visibility: hidden;"><img id="arrow" src="{% static 'ietf/images/arrow-ani.gif' %}"></div>
52+
</div>
53+
<div class="rooms">
54+
{% for room in floor.room_set.all %}
55+
{#<a href="javascript: setarrow('{{room.name|slugify}}','{{floor.name|slugify}}')">{{ room.name|nbsp }}</a>#}
56+
{{ room.name|nbsp }}
57+
{% endfor %}
58+
</div>
59+
<div class="row"></div>
60+
{% endfor %}
61+
</div>
62+
<div class="col-md-2 hidden-print bs-docs-sidebar" id="affix">
63+
<ul class="nav nav-pills nav-stacked small" data-spy="affix">
64+
{% for floor in floors %}
65+
<li><a href="#{{floor.name|slugify}}">{{ floor.name }}</a></li>
66+
{% endfor %}
67+
</ul>
68+
</div>
69+
</div>
70+
{% endblock %}
71+
72+
{% block js %}
73+
{% with meeting=schedule.meeting %}
74+
<script src="{% static 'ietf/js/room_params.js' %}"></script>
75+
<script>
76+
// These must match the 'arrowdiv' divs above
77+
var arrowsuffixlist = [ '', '1', '2', '3' ];
78+
79+
function roommap(nm)
80+
{
81+
var c = findroom(nm);
82+
if (c) return nm;
83+
var m = suffixmap(nm);
84+
// alert("m=" + m);
85+
return m;
86+
}
87+
88+
function findroom(nm)
89+
{
90+
var left = 0, top = 0, right = 0, bottom = 0;
91+
92+
if (0) { }
93+
{% for room in meeting.room_set.all %}
94+
else if (nm == '{{room.name|slugify}}') { left = {{room.left}}; top = {{room.top}}; right = {{room.right}}; bottom = {{room.bottom}}; }{% endfor %}
95+
96+
{% for room in meeting.room_set.all %}{% if room.functional_display_name %}
97+
else if (nm == '{{room.functional_name|slugify}}') { left = {{room.left}}; top = {{room.top}}; right = {{room.right}}; bottom = {{room.bottom}}; }{% endif %}{% endfor %}
98+
99+
else return null;
100+
101+
// alert("nm=" + nm + ",left=" + left + ",top=" + top + ",r=" + right + ",b=" + bottom);
102+
return [left, top, right, bottom];
103+
}
104+
</script>
105+
{% endwith %}
106+
{% endblock %}
Lines changed: 52 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,57 @@
11
{# Copyright The IETF Trust 2015, All Rights Reserved #}{% load origin %}{% origin %}
22
{# assumes meeting is in context #}
3-
{% if schedule != meeting.agenda %}
4-
<h3 class="alert alert-danger text-center">
5-
This is schedule {{schedule.owner.email}}/{{ schedule.name }}, not the official schedule.
6-
</h3>
7-
{% endif %}
3+
{% load origin %}
4+
{% load ietf_filters %}
85

9-
<h1>
10-
IETF {{ meeting.number }} Meeting Agenda
11-
<br>
12-
<small>
13-
{{ meeting.city }}, {{ meeting.date|date:"F j" }} -
14-
{% if meeting.date.month != meeting.end_date.month %}
15-
{{ meeting.end_date|date:"F " }}
16-
{% endif %}
17-
{{ meeting.end_date|date:"j, Y" }}
18-
<span class="pull-right">
19-
Updated {{ updated|date:"Y-m-d \a\t G:i:s (T)" }}
20-
</span>
6+
{% origin %}
217

22-
</small>
8+
{% if schedule != meeting.agenda %}
9+
<h3 class="alert alert-danger text-center">
10+
This is schedule {{schedule.owner.email}}/{{ schedule.name }}, not the official schedule.
11+
</h3>
12+
{% endif %}
2313

24-
</h1>
14+
<h1>
15+
IETF {{ meeting.number }} Meeting Agenda {{ title_extra }}
16+
<br>
17+
<small>
18+
{{ meeting.city }}, {{ meeting.date|date:"F j" }} -
19+
{% if meeting.date.month != meeting.end_date.month %}
20+
{{ meeting.end_date|date:"F " }}
21+
{% endif %}
22+
{{ meeting.end_date|date:"j, Y" }}
23+
{% if updated %}
24+
<span class="pull-right">
25+
Updated {{ updated|date:"Y-m-d \a\t G:i:s (T)" }}
26+
</span>
27+
{% endif %}
28+
</small>
29+
</h1>
30+
31+
<ul class="nav nav-tabs" role="tablist">
32+
<li {% if selected == "agenda" %}class="active"{% endif %}>
33+
<a href="{% url 'ietf.meeting.views.agenda' num=schedule.meeting.number %}">Agenda</a></li>
34+
<li {% if selected == "agenda-utc" %}class="active"{% endif %}>
35+
<a href="{% url 'ietf.meeting.views.agenda' num=schedule.meeting.number utc='-utc' %}">UTC Agenda</a></li>
36+
{% if user|has_role:"Secretariat,Area Director,IAB" %}
37+
{% if schedule != meeting.agenda %}
38+
<li {% if selected == "by-room" %}class="active"{% endif %}>
39+
<a href="{% url 'ietf.meeting.views.agenda_by_room' num=schedule.meeting.number name=schedule.name owner=schedule.owner.email %}">by Room</a></li>
40+
<li {% if selected == "by-type" %}class="active"{% endif %}>
41+
<a href="{% url 'ietf.meeting.views.agenda_by_type' num=schedule.meeting.number name=schedule.name owner=schedule.owner.email %}">by Type</a></li>
42+
<li {% if selected == "room-view" %}class="active"{% endif %}>
43+
<a href="{% url 'ietf.meeting.views.room_view' num=schedule.meeting.number name=schedule.name owner=schedule.owner.email %}">Room grid</a></li>
44+
{% else %}
45+
<li {% if selected == "by-room" %}class="active"{% endif %}>
46+
<a href="{% url 'ietf.meeting.views.agenda_by_room' num=schedule.meeting.number %}">by Room</a></li>
47+
<li {% if selected == "by-type" %}class="active"{% endif %}>
48+
<a href="{% url 'ietf.meeting.views.agenda_by_type' num=schedule.meeting.number %}">by Type</a></li>
49+
<li {% if selected == "room-view" %}class="active"{% endif %}>
50+
<a href="{% url 'ietf.meeting.views.room_view' num=schedule.meeting.number %}">Room grid</a></li>
51+
{% endif %}
52+
{% endif %}
53+
<li {% if selected == "floor-plan" %}class="active"{% endif %}>
54+
<a href="{% url 'ietf.meeting.views.floor_plan' num=schedule.meeting.number %}">Floor plan</a></li>
55+
<li><a href="{% url 'ietf.meeting.views.agenda' num=schedule.meeting.number ext='.txt' %}">Plaintext</a></li>
56+
<li><a href="https://tools.ietf.org/agenda/{{schedule.meeting.number}}/">Tools-style &raquo;</a></li>
57+
</ul>

ietf/templates/meeting/no-agenda.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
{% block content %}
88
{% origin %}
9-
{% include "meeting/meeting_heading.html" %}
9+
{% include "meeting/meeting_heading.html" with title_extra="" selected="" %}
1010

1111
<div class="jumbotron">
1212
<p>There is no agenda available yet.</p>

ietf/templates/meeting/room-view.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,7 @@
582582
</script>
583583
</head>
584584
<body onload="draw_calendar()" onresize="draw_calendar()" id="body">
585-
<div id="mtgheader" style="overflow:auto">{% include "meeting/meeting_heading.html" with meeting=schedule.meeting updated=schedule.meeting.updated %}</div>
585+
<div id="mtgheader" style="overflow:auto">{% include "meeting/meeting_heading.html" with meeting=schedule.meeting updated=schedule.meeting.updated selected="room-view" title_extra="Room Grid" %}</div>
586586
<div id="daycontainer" role="tabpanel">
587587
<ul id="daytabs" class="nav nav-tabs" role="tablist">
588588
{% for day in days %}

0 commit comments

Comments
 (0)