Use new look for IETF meeting agenda; add color-coding support (like tools has)
- Legacy-Id: 2046
This commit is contained in:
parent
4eb804f4ac
commit
70211dfc5a
|
@ -1,31 +1,53 @@
|
|||
{% extends "base.html" %}
|
||||
{% extends "idrfc/base.html" %}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% load humanize %}
|
||||
{% block title %} Meeting Agenda of the {{ meeting.num|ordinal }} IETF Meeting{% endblock %}
|
||||
{% block head %}
|
||||
<link href="http://tools.ietf.org/css/palette.css" rel="stylesheet" type="text/css" />
|
||||
<script language='javascript' src='http://tools.ietf.org/js/prototype-1.6.0.2.js'></script>
|
||||
<script language='javascript' src='/js/agenda.js'></script>
|
||||
{% endblock %}
|
||||
{% block body_attributes %}onload='set_cookie_colors()'{% endblock %}
|
||||
{% block title %}IETF {{ meeting.num }} Meeting Agenda{% endblock %}
|
||||
|
||||
{% block morecss %}
|
||||
table#agenda { border: 0; border-collapse:collapse; }
|
||||
tr.meeting-date td { padding-top:1em; }
|
||||
#agenda td { padding-right:2em; }
|
||||
.ietf-agenda-palette { border-collapse:collapse; border:2px solid black; background:white;}
|
||||
.ietf-agenda-palette td { border:1px solid black; }
|
||||
.ietf-agenda-palette td { padding: 4px; text-align:center;}
|
||||
.ietf-agenda-palette td a { text-decoration:none; }
|
||||
.bgnone {}
|
||||
.bgaqua, .bgaqua a { background-color: aqua; color: black; }
|
||||
.bgblue, .bgblue a { background-color: blue; color: black; }
|
||||
.bgfuchsia, .bgfuchsia a { background-color: fuchsia; color: black; }
|
||||
.bggray, .bggray a { background-color: gray; color: white; }
|
||||
.bggreen, .bggreen a { background-color: green; color: white; }
|
||||
.bglime, .bglime a { background-color: lime; color: black; }
|
||||
.bgmaroon, .bgmaroon a { background-color: maroon; color: white; }
|
||||
.bgnavy, .bgnavy a { background-color: navy; color: white; }
|
||||
.bgolive, .bgolive a { background-color: olive; color: white; }
|
||||
.bgpurple, .bgpurple a { background-color: purple; color: white; }
|
||||
.bgred, .bgred a { background-color: red; color: black; }
|
||||
.bgsilver, .bgsilver a { background-color: silver; color: black; }
|
||||
.bgteal, .bgteal a { background-color: teal; color: white; }
|
||||
.bgwhite, .bgwhite a { background-color: white; color: black; }
|
||||
.bgyellow, .bgyellow a { background-color: yellow; color: black; }
|
||||
.bgblack, .bgblack a { background-color: black; color: white; }
|
||||
{% endblock morecss %}
|
||||
|
||||
{% block pagehead %}
|
||||
<script language='javascript' src='/js/agenda2.js'></script>
|
||||
{% endblock pagehead %}
|
||||
{% block bodyAttrs %}onload='updateAgendaColors()'{% endblock %}
|
||||
{% block content %}
|
||||
<span id='colorpallet'></span>
|
||||
<p style="text-align: center">
|
||||
Agenda of the {{ meeting.num|ordinal }} IETF Meeting<br />
|
||||
{{ meeting.start_date|date:"F j" }}-{% ifnotequal meeting.start_date.month meeting.end_date.month %}{{ meeting.end_date|date:"F " }}{% endifnotequal %}{{ meeting.end_date|date:"j, Y" }}<br />
|
||||
<h1>IETF {{ meeting.num }} Meeting Agenda</h1>
|
||||
<p>{{ meeting.city }}, {{ meeting.start_date|date:"F j" }}-{% ifnotequal meeting.start_date.month meeting.end_date.month %}{{ meeting.end_date|date:"F " }}{% endifnotequal %}{{ meeting.end_date|date:"j, Y" }}<br />
|
||||
Updated {{ update.updated|date:"Y-m-d H:i:s T" }}<br />
|
||||
(There's also a <a href="/meeting/{{meeting.num}}/agenda.txt">plaintext agenda</a> and a <a href="http://tools.ietf.org/agenda/{{meeting.num}}/">tools-style agenda</a> available)<br />
|
||||
<br />
|
||||
IETF agendas are subject to change, up to and during the meeting.<br />
|
||||
</p>
|
||||
(There's also a <a href="/meeting/{{meeting.num}}/agenda.txt">plaintext agenda</a> and a <a href="http://tools.ietf.org/agenda/{{meeting.num}}/">tools-style agenda</a> available)</p>
|
||||
|
||||
<p><strong>IETF agendas are subject to change, up to and during the meeting.</strong></p>
|
||||
|
||||
<table id="agenda">
|
||||
{% for slot in timeslots %}
|
||||
{% ifchanged %}
|
||||
<tr>
|
||||
<tr class="meeting-date">
|
||||
<td colspan="4">
|
||||
<hr />
|
||||
<h4>{{ slot.meeting_date|date:"l"|upper }}, {{ slot.meeting_date|date:"F j, Y" }}</h4>
|
||||
<h2 class="ietf-divider">{{ slot.meeting_date|date:"l"|upper }}, {{ slot.meeting_date|date:"F j, Y" }}</h2>
|
||||
</td>
|
||||
</tr>
|
||||
{% if slot.reg_info %}
|
||||
|
@ -68,6 +90,7 @@ IETF agendas are subject to change, up to and during the meeting.<br />
|
|||
<td>{{ session.info.area|upper}}</td>
|
||||
<td>{% if session.info.isWG %}<a href="http://www.ietf.org/dyn/wg/charter/{{ session.info.acronym|lower }}-charter.html">{{ session.info.acronym|lower }}</a>{% else %}{{ session.info.acronym|lower }}{% endif %}</td>
|
||||
<td>
|
||||
<img src="/images/color-palette-4x4.gif" alt="" onclick="pickAgendaColor('{{meeting.num}}-{{slot.meeting_date|date:"D"|lower}}-{{slot.time_desc|slice:":4"}}-{{session.info.acronym|lower}}',this);"/>
|
||||
{% if session.info.agenda_file %}<a href="http://www3.ietf.org/proceedings/{{ session.info.agenda_file }}">{{ session.info.acronym_name|escape }} {{ session.info.group_type_str }}</a>{% else %}{{ session.info.acronym_name|escape }} {{ session.info.group_type_str }}{% endif %}
|
||||
{% if session.info.special_agenda_note %}<br/> - {{ session.info.special_agenda_note }}{% endif %}
|
||||
</td>
|
||||
|
@ -85,23 +108,10 @@ IETF agendas are subject to change, up to and during the meeting.<br />
|
|||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<tr><td colspan="4"><hr /></td></tr>
|
||||
<tr><td colspan="4" style="text-align: center"><b>AREA DIRECTORS</b></td></tr>
|
||||
<tr><td colspan="4">
|
||||
<table>
|
||||
{% regroup ads by area as grouped %}{% for ad in grouped %}
|
||||
<tr valign="top">
|
||||
<td>{{ ad.grouper|upper }}</td>
|
||||
<td>{{ ad.list.0.area.area_acronym.name }}</td>
|
||||
<td>
|
||||
{% for ad_person in ad.list %}
|
||||
{% ifequal forloop.counter 2 %} & {% endifequal %}
|
||||
{{ ad_person.person }}/{{ ad_person.person.affiliation }}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -72,9 +72,10 @@ body { margin: 0; }
|
|||
#search_form_box {width: 99.5%; border: 0px solid #cccccc; background:#edf5ff;margin-top:8px; padding:4px; margin-bottom:1em; padding-left:8px;}
|
||||
form#search_form { padding-top: 4px; padding-bottom: 4px; }
|
||||
#search_form input { padding: 0; padding-left: 2px; border: 1px solid #89d;}
|
||||
#search_form input.radio { padding-left: 0; border: 0; }
|
||||
#search_form select { border: 1px solid #89d; }
|
||||
#search_form div.search_field { margin-top:2px; }
|
||||
#search_form label { width: 130px; float: left; }
|
||||
#search_form div.search_field { margin-top:2px; clear:both;}
|
||||
#search_form label { width: 170px; float: left; }
|
||||
/* checkboxes for document types */
|
||||
#search_form table#search_types { border-collapse:collapse;}
|
||||
#search_form #search_types td { padding:0; }
|
||||
|
|
BIN
static/images/color-palette-4x4.gif
Normal file
BIN
static/images/color-palette-4x4.gif
Normal file
Binary file not shown.
After ![]() (image error) Size: 102 B |
73
static/js/agenda2.js
Normal file
73
static/js/agenda2.js
Normal file
|
@ -0,0 +1,73 @@
|
|||
// Based on agenda.js written by Tony Hansen.
|
||||
|
||||
// Portion Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
||||
// All rights reserved. Contact: Pasi Eronen <pasi.eronen@nokia.com>
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions
|
||||
// are met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
//
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following
|
||||
// disclaimer in the documentation and/or other materials provided
|
||||
// with the distribution.
|
||||
//
|
||||
// * Neither the name of the Nokia Corporation and/or its
|
||||
// subsidiary(-ies) nor the names of its contributors may be used
|
||||
// to endorse or promote products derived from this software
|
||||
// without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
function setAgendaColor(color) {
|
||||
IETF.agendaPalette.hide();
|
||||
document.getElementById(IETF.agendaRow).className="bg"+color;
|
||||
if (color == 'none') {
|
||||
YAHOO.util.Cookie.removeSub("ietf-agenda-colors", IETF.agendaRow);
|
||||
} else {
|
||||
var twoMonths = new Date(new Date().getTime() + 60*24*60*60*1000);
|
||||
YAHOO.util.Cookie.setSub("ietf-agenda-colors", IETF.agendaRow, color, { expires:twoMonths });
|
||||
}
|
||||
}
|
||||
function createPalette() {
|
||||
IETF.agendaPalette = new YAHOO.widget.Overlay("ietf-agenda-palette", { constraintoviewport:true, visible:false } );
|
||||
var body = '<table class="ietf-agenda-palette"><tr><td colspan="4">Select a color for this line</td></tr>';
|
||||
var c = ['aqua', 'blue', 'fuchsia', 'gray', 'green', 'lime',
|
||||
'maroon', 'navy', 'olive', 'purple', 'red', 'silver',
|
||||
'teal', 'white', 'yellow', 'black'];
|
||||
for (var i = 0; i < c.length; i++) {
|
||||
if ((i%4) == 0) { body += "<tr>" }
|
||||
body += '<td class="bg'+c[i]+'"><a href=\'javascript:setAgendaColor("'+c[i]+'");\'>'+c[i]+'</a></td>';
|
||||
if ((i%4) == 3) { body += "</tr>" }
|
||||
}
|
||||
body += '<tr><td class="bgnone" colspan="4"><a href="javascript:setAgendaColor(\'none\');">none</a></td></tr></table>';
|
||||
IETF.agendaPalette.setBody(body);
|
||||
IETF.agendaPalette.render(document.body);
|
||||
}
|
||||
function pickAgendaColor(row, place) {
|
||||
if (!IETF.agendaPalette) {
|
||||
createPalette();
|
||||
}
|
||||
IETF.agendaRow = row;
|
||||
IETF.agendaPalette.cfg.setProperty("context", [place, "tl", "tl"]);
|
||||
IETF.agendaPalette.show();
|
||||
}
|
||||
function updateAgendaColors() {
|
||||
var colors = YAHOO.util.Cookie.getSubs("ietf-agenda-colors");
|
||||
for (var k in colors) {
|
||||
document.getElementById(k).className="bg"+colors[k];
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue