Merged [2613] from fenner@fenron.net:

Split the /doc/ tabs into separate pages. Use
<link rel=prefetch> to ask the tabs to be prefetched
when the first tab is loaded, as documented at
https://developer.mozilla.org/en/Link_prefetching_FAQ .
This fixes .
 - Legacy-Id: 2630
Note: SVN reference [2613] has been migrated to Git commit 9391941b867e2f7ce24369be9df009d0ceda9e95
This commit is contained in:
Henrik Levkowetz 2010-11-06 09:16:59 +00:00
parent 2c804b1457
commit 4228daad55
11 changed files with 443 additions and 180 deletions

View file

@ -40,7 +40,7 @@ urlpatterns = patterns('',
(r'^active/$', views_search.active),
url(r'^ad/(?P<name>[^/]+)/$', views_search.by_ad, name="doc_search_by_ad"),
url(r'^(?P<name>[^/]+)/$', views_doc.document_main, name="doc_view"),
url(r'^(?P<name>[^/]+)/((?P<tab>ballot|writeup|history)/)?$', views_doc.document_main, name="doc_view"),
(r'^(?P<name>[^/]+)/doc.json$', views_doc.document_debug),
(r'^(?P<name>[^/]+)/_ballot.data$', views_doc.document_ballot),
(r'^(?P<name>[^/]+)/ballot.tsv$', views_doc.ballot_tsv),

View file

@ -74,7 +74,7 @@ def _get_html(key, filename):
(c1,c2) = markup_txt.markup(raw_content)
return (c1,c2)
def document_main_rfc(request, rfc_number):
def document_main_rfc(request, rfc_number, tab):
rfci = get_object_or_404(RfcIndex, rfc_number=rfc_number)
doc = RfcWrapper(rfci)
@ -93,18 +93,24 @@ def document_main_rfc(request, rfc_number):
history = _get_history(doc, None)
return render_to_response('idrfc/doc_main_rfc.html',
template = "idrfc/doc_tab_%s" % tab
if tab == "document":
template += "_rfc"
return render_to_response(template + ".html",
{'content1':content1, 'content2':content2,
'doc':doc, 'info':info,
'doc':doc, 'info':info, 'tab':tab,
'include_text':request.GET.get( 'include_text' ),
'history':history},
context_instance=RequestContext(request));
@decorator_from_middleware(GZipMiddleware)
def document_main(request, name):
def document_main(request, name, tab):
if tab is None:
tab = "document"
r = re.compile("^rfc([1-9][0-9]*)$")
m = r.match(name)
if m:
return document_main_rfc(request, int(m.group(1)))
return document_main_rfc(request, int(m.group(1)), tab)
id = get_object_or_404(InternetDraft, filename=name)
doc = IdWrapper(id)
@ -138,9 +144,13 @@ def document_main(request, name):
versions = _get_versions(id)
history = _get_history(doc, versions)
return render_to_response('idrfc/doc_main_id.html',
template = "idrfc/doc_tab_%s" % tab
if tab == "document":
template += "_id"
return render_to_response(template + ".html",
{'content1':content1, 'content2':content2,
'doc':doc, 'info':info,
'doc':doc, 'info':info, 'tab':tab,
'include_text':request.GET.get( 'include_text' ),
'versions':versions, 'history':history},
context_instance=RequestContext(request));

View file

@ -0,0 +1,6 @@
{{ doc.title }}
{% if info.is_rfc %}
({{doc.maturity_level}}, {{doc.publication_date|date:"Y"}}){% if doc.obsoleted_by %}; Obsoleted by {{doc.obsoleted_by}}{% endif %}
{% else %}
({{info.type}}; {{doc.publication_date|date:"Y"}})
{% endif %}

View file

@ -55,164 +55,38 @@ div.diffTool { padding: 8px 4px; margin: 8px 0;}
{% if doc.in_ietf_process %}
<link rel="alternate" type="application/atom+xml" href="/feed/comments/{% if info.is_rfc %}rfc{{doc.rfc_number}}{% else %}{{doc.draft_name}}{% endif %}/" />
{% endif %}
<meta name="description" content="{% block doc_meta_description %}{% endblock %}" />
<meta name="description" content="{% include "idrfc/doc_description.html" %}" />
{% ifequal tab "document" %}
{% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}
<link rel="prefetch" href="ballot/" />
<link rel="prefetch" href="writeup/" />
{% endif %}
<link rel="prefetch" href="history/" />
{% endifequal %}
{% endblock %}
{% block title %}{% include "idrfc/doc_title.html" %}{% endblock title %}
{% block content %}
<h1>{% block doc_h1 %}{% endblock %}</h1>
<h1>{{ doc.title }}<br/>{% include "idrfc/doc_title.html" %}</h1>
<div id="mytabs" class="yui-navset">
<ul class="yui-nav">
<li class="selected"><a href="#doc"><em>Document</em></a></li>
<li{% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}{%else%} class="disabled"{%endif%}><a href="#ballot"><em>IESG Evaluation Record</em></a></li>
<li {% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}{%else%}class="disabled" {%endif%}><a href="#writeup"><em>IESG Writeups</em></a></li>
<li><a href="#history"><em>History</em></a></li>
<li{% ifequal tab "document" %} class="selected"{% endifequal %}><a href="{{ doc.get_absolute_url }}"><em>Document</em></a></li>
<li{% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}{% ifequal tab "ballot" %} class="selected"{% endifequal %}{%else%} class="disabled"{%endif%}><a href="{{ doc.get_absolute_url }}ballot/"><em>IESG Evaluation Record</em></a></li>
<li{% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}{% ifequal tab "writeup" %} class="selected"{% endifequal %}{%else%} class="disabled"{%endif%}><a href="{{ doc.get_absolute_url }}writeup/"><em>IESG Writeups</em></a></li>
<li{% ifequal tab "history" %} class="selected"{% endifequal %}><a href="{{ doc.get_absolute_url }}history/"><em>History</em></a></li>
</ul>
<div class="yui-content">
<div id="doc">
<div class="ietf-box metabox">
<table id="metatable">
{% block doc_metatable %}{% endblock %}
</table>
<div style="padding-top:6px;padding-bottom:6px;padding-left:2px;">
{% block doc_metalinks %}{% endblock %}
</div>
{% block doc_metabuttons %}
{% if user|in_group:"Area_Director,Secretariat" %}
<div style="padding-bottom:2px;">
{% ifequal doc.draft_status "Expired" %}
{% if not doc.resurrect_requested_by %}
<span id="doc_request_resurrect_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child"><a href="{% url doc_request_resurrect name=doc.draft_name %}">Request resurrect</a></span></span>
{% endif %}
{% if user|in_group:"Secretariat" %}
<span id="doc_resurrect_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child"><a href="{% url doc_resurrect name=doc.draft_name %}">Resurrect</a></span></span>
{% endif %}
{% else %}
{% if doc.in_ietf_process %}
<span id="doc_edit_state_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child"><a href="{% url doc_change_state name=doc.draft_name %}">Change state</a></span></span>
<span id="doc_edit_info_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child"><a href="{% url doc_edit_info name=doc.draft_name %}">Edit</a></span></span>
{% else %}
<span id="doc_add_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child"><a href="{% url doc_edit_info name=doc.draft_name %}">Add</a></span></span>
{% endif %}
{% endifequal %}
{# links to old system #}
<span id="doc_edit_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child">
{% if doc.in_ietf_process %}
<a href="https://datatracker.ietf.org/cgi-bin/idtracker.cgi?command=view_id&amp;{% if info.is_rfc %}dTag={{doc.rfc_number}}&amp;rfc_flag=1{% else %}dTag={{doc.tracker_id}}{% endif %}" rel="nofollow" target="_blank">Edit (old IESG Tracker)</a>
{% else %}
<a href="https://datatracker.ietf.org/cgi-bin/idtracker.cgi?command=add_id_confirm&amp;{% if info.is_rfc %}dTag={{doc.rfc_number}}&amp;rfc_flag=1{% else %}dTag={{doc.tracker_id}}&amp;rfc_flag=0{% endif %}&amp;ballot_id=0" rel="nofollow" target="_blank">Add (old IESG Tracker)</a>
{% endif %}
</span></span>
{# end links to old #}
</div>
{% endif %}{# if user in group #}
{% endblock doc_metabuttons%}
</div> <!-- metabox -->
</div> <!-- doc -->
<div id="ballot">
<div id="ballot_content">
{% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}
{% with 1 as doc_ballot_edit_button %}
{% with doc.ietf_process.iesg_ballot as ballot %}
{% include "idrfc/doc_ballot.html" %}
{% endwith %}
{% endwith %}
{% endif %}
</div>
</div>
<div id="writeup">
<div id="writeup_content">
---- following is a DRAFT of message to be sent AFTER approval ---
{% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}
{% if user|in_group:"Area_Director,Secretariat" %}
<div style="background:#E0E0FF">
<p align=right>
<span id="doc_edit_announce_button" class="yui-button yui-link-button"><span class="first-child">
<a href="{% url doc_ballot_approvaltext name=doc.draft_name %}">Edit Announcement Text</a>
</span></span>
</p>
{% endif %}
{% endif %}
<pre>
{{ doc.ietf_process.iesg_ballot.approval_text|escape|urlize }}
</pre>
{% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}
{% if user|in_group:"Area_Director,Secretariat" %}
</div>
<div style="background:#E0E0FF">
<p align=right>
<span id="doc_ballot_edit_button" class="yui-button yui-link-button"><span class="first-child">
<a href="{% url doc_ballot_writeupnotes name=doc.draft_name %}">Edit Ballot Text</a>
</span></span>
</p>
{% endif %}
{% endif %}
<pre>
{{ doc.ietf_process.iesg_ballot.ballot_writeup|escape|urlize }}
</pre>
{% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}
{% if user|in_group:"Area_Director,Secretariat" %}
</div>
{% endif %}
{% endif %}
</div>
</div>
<div id="history">
<div id="history_content">
{% if not info.is_rfc %}
{% include "idrfc/doc_diffs.html" %}
{% endif %}
<h2 style="margin-top:1em;">Document history</h2>
{% if user|in_group:"Area_Director,Secretariat" and doc.in_ietf_process %}
<div style="margin-bottom:8px" id="history_actions">
<span id="doc_add_comment_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child"><a href="{% url doc_add_comment name=doc.draft_name %}">Add comment</a></span></span>
</div>
{% endif %}
{% include "idrfc/doc_history.html" %}
</div>
</div>
{% block tab_content %}{% endblock %}
</div> <!-- yui-content -->
</div> <!-- mytabs -->
<script type="text/javascript">
//<![CDATA[
document.getElementById('ballot_content').style.display = 'none';
document.getElementById('writeup_content').style.display = 'none';
document.getElementById('history_content').style.display = 'none';
//]]>
</script>
<div id="rfcText1">
{% block doc_text1 %}{% endblock %}
</div> <!-- rfcText1 -->
{% endblock %}{# content #}
{% endblock content %}
{% block scripts %}
var tabView = new YAHOO.widget.TabView('mytabs');
tabView.subscribe('activeIndexChange', function(e) {
if (e.newValue == 0) {
document.getElementById('rfcText1').style.display = 'block';
document.getElementById('rfcText2').style.display = 'block';
} else {
document.getElementById('rfcText1').style.display = 'none';
document.getElementById('rfcText2').style.display = 'none';
} });
document.getElementById('writeup_content').style.display = 'block';
document.getElementById('ballot_content').style.display = 'block';
document.getElementById('history_content').style.display = 'block';
function toggleComment(n) {
var el = document.getElementById("commentF"+n);
var el2 = document.getElementById("commentS"+n);
@ -228,27 +102,3 @@ function toggleComment(n) {
}
}
{% endblock scripts %}
{% block content_end %}
<div id="rfcText2">
{% block doc_text2 %}{% endblock %}
</div>
<script type="text/javascript">
//<![CDATA[
// based on http://blog.davglass.com/files/yui/tab7/
var url = location.href.split('#');
if (url[1]) {
url[1] = "#"+url[1];
var tabs = tabView.get('tabs');
for (var i = 0; i < tabs.length; i++) {
if (url[1].indexOf(tabs[i].get('href')) == 0) {
tabView.set('activeIndex', i);
break;
}
}
}
//]]>
</script>
{% endblock content_end %}

View file

@ -0,0 +1,47 @@
{% extends "idrfc/doc_main.html" %}
{% comment %}
Copyright (C) 2009-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.
{% endcomment %}
{% load ietf_filters %}
{% block tab_content %}
{% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}
{% with 1 as doc_ballot_edit_button %}
{% with doc.ietf_process.iesg_ballot as ballot %}
{% include "idrfc/doc_ballot.html" %}
{% endwith %}
{% endwith %}
{% endif %}
{% endblock tab_content %}

View file

@ -0,0 +1,96 @@
{% extends "idrfc/doc_main.html" %}
{% comment %}
Copyright (C) 2009-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.
{% endcomment %}
{% load ietf_filters %}
{% block tab_content %}
<div class="ietf-box metabox">
<table id="metatable">
{% block doc_metatable %}{% endblock %}
</table>
<div style="padding-top:6px;padding-bottom:6px;padding-left:2px;">
{% block doc_metalinks %}{% endblock %}
</div>
{% block doc_metabuttons %}
{% if user|in_group:"Area_Director,Secretariat" %}
<div style="padding-bottom:2px;">
{% ifequal doc.draft_status "Expired" %}
{% if not doc.resurrect_requested_by %}
<span id="doc_request_resurrect_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child"><a href="{% url doc_request_resurrect name=doc.draft_name %}">Request resurrect</a></span></span>
{% endif %}
{% if user|in_group:"Secretariat" %}
<span id="doc_resurrect_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child"><a href="{% url doc_resurrect name=doc.draft_name %}">Resurrect</a></span></span>
{% endif %}
{% else %}
{% if doc.in_ietf_process %}
<span id="doc_edit_state_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child"><a href="{% url doc_change_state name=doc.draft_name %}">Change state</a></span></span>
<span id="doc_edit_info_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child"><a href="{% url doc_edit_info name=doc.draft_name %}">Edit</a></span></span>
{% else %}
<span id="doc_add_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child"><a href="{% url doc_edit_info name=doc.draft_name %}">Add</a></span></span>
{% endif %}
{% endifequal %}
{# links to old system #}
<span id="doc_edit_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child">
{% if doc.in_ietf_process %}
<a href="https://datatracker.ietf.org/cgi-bin/idtracker.cgi?command=view_id&amp;{% if info.is_rfc %}dTag={{doc.rfc_number}}&amp;rfc_flag=1{% else %}dTag={{doc.tracker_id}}{% endif %}" rel="nofollow" target="_blank">Edit (old IESG Tracker)</a>
{% else %}
<a href="https://datatracker.ietf.org/cgi-bin/idtracker.cgi?command=add_id_confirm&amp;{% if info.is_rfc %}dTag={{doc.rfc_number}}&amp;rfc_flag=1{% else %}dTag={{doc.tracker_id}}&amp;rfc_flag=0{% endif %}&amp;ballot_id=0" rel="nofollow" target="_blank">Add (old IESG Tracker)</a>
{% endif %}
</span></span>
{# end links to old #}
</div>
{% endif %}{# if user in group #}
{% endblock doc_metabuttons%}
</div> <!-- metabox -->
<div id="rfcText1">
{% block doc_text1 %}{% endblock %}
</div> <!-- rfcText1 -->
{% endblock tab_content %}
{% block content_end %}
<div id="rfcText2">
{% if include_text %}
{% block doc_text2 %}{% endblock %}
{% else %}
<a href="?include_text=1">[include full document text]</a>
{% endif %}
</div>
{% endblock content_end %}

View file

@ -0,0 +1,129 @@
{% extends "idrfc/doc_tab_document.html" %}
{% comment %}
Copyright (C) 2009-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.
{% endcomment %}
{% load ietf_filters %}
{% block doc_metatable %}
<tr><td style="width:18ex;">Document type:</td><td>{{ info.type|escape }}
{% with doc.replaces as r %}{% if r %}<br />Replaces {% filter urlize_ietf_docs %}{{ r|join:", "}}{% endfilter %}{% endif %}{% endwith %}
</td></tr>
<tr><td>Last updated:</td><td> {{ doc.publication_date|default:"(data missing)" }}</td></tr>
<tr><td>State:</td><td>
{{ doc.friendly_state|safe }}
{% if doc.rfc_editor_state %}<br />RFC Editor State: <a href="http://www.rfc-editor.org/queue2.html#{{doc.draft_name}}">{{ doc.rfc_editor_state|escape }}</a>{% endif %}
{% ifequal doc.draft_status "Expired" %}
{% if doc.resurrect_requested_by %}(resurrect requested by {{ doc.resurrect_requested_by }}){% endif %}
{% endifequal %}
{% if doc.in_ietf_process %}{% if doc.ietf_process.telechat_date %}<br/>On agenda of {{ doc.ietf_process.telechat_date }} IESG telechat {% if doc.ietf_process.telechat_returning_item %} (returning item){%endif%}{%endif%}{% if doc.ietf_process.has_active_iesg_ballot %}<br/><i>({{ doc.ietf_process.iesg_ballot_needed }})</i>{%endif%}{%endif%}
</td></tr>
<tr><td>Intended status:</td><td>{% if doc.in_ietf_process %}{{ doc.ietf_process.intended_maturity_level|default:"-" }}{% else %}-{%endif%}</td></tr>
<tr><td>Submission:</td><td>{{ doc.submission }}</td></tr>
<tr><td>Responsible AD:</td><td>{% if doc.in_ietf_process %}{{ doc.ietf_process.ad_name|default:"-"|escape }}{%else%}-{%endif%}</td></tr>
{% if doc.in_ietf_process and doc.ietf_process.iesg_note %}<tr><td>IESG Note:</td><td>{{ doc.ietf_process.iesg_note|format_textarea|safe }}</td></tr>{% endif %}
{% if user|in_group:"Area_Director,Secretariat" %}
{% if doc.in_ietf_process %}<tr><td>Send notices to:</td><td>{{ doc.ietf_process.state_change_notice_to}}</td></tr>{% endif %}
{% endif %}{# if user|in_group:... #}
{% ifequal doc.draft_status "Active" %}
<tr><td>Other versions:</td><td>
<a href="http://www.ietf.org/id/{{doc.draft_name_and_revision}}.txt">plain text</a>,
{% for ext in doc.file_types %}
{% ifnotequal ext ".txt" %}
<a href="http://www.ietf.org/id/{{doc.draft_name_and_revision}}{{ext}}">{{ext|cut:"."}}</a>,
{% endifnotequal %}
{% endfor %}
{% if not info.has_pdf %}
<a href="http://tools.ietf.org/pdf/{{doc.draft_name_and_revision}}.pdf">pdf</a>,
{% endif %}
<a href="http://tools.ietf.org/html/{{doc.draft_name_and_revision}}">html</a>
</td></tr>
{% endifequal %}
{% endblock doc_metatable %}
{% block doc_metalinks %}
<div>
<a href="mailto:{{doc.draft_name}}@tools.ietf.org?subject=Mail%20regarding%20{{doc.draft_name}}" rel="nofollow">Email Authors</a>
| <a href="/ipr/search/?option=document_search&amp;id_document_tag={{doc.tracker_id}}" rel="nofollow">IPR Disclosures</a>
| <a href="http://www.fenron.net/~fenner/ietf/deps/index.cgi?dep={{doc.draft_name}}" rel="nofollow">Dependencies to this draft</a>
| <a href="http://tools.ietf.org/idnits?url=http://tools.ietf.org/id/{{doc.draft_name_and_revision}}.txt" rel="nofollow" target="_blank">Check nits</a>
{% if doc.in_ietf_process %}| <a href="/feed/comments/{% if info.is_rfc %}rfc{{doc.rfc_number}}{% else %}{{doc.draft_name}}{% endif %}/">Comments feed</a>{% endif %}
</div>
{% if user|in_group:"Area_Director,Secretariat" %}
<div>
<a href="{% url doc_ballot_lastcall name=doc.draft_name %}">Last Call Text</a>
| <a href="{% url doc_ballot_writeupnotes name=doc.draft_name %}">Ballot Text</a>
| <a href="{% url doc_ballot_approvaltext name=doc.draft_name %}">Announcement Text</a>
</div>
{% endif %}
{% endblock %}
{% block doc_text1 %}
{% ifequal doc.draft_status "Active" %}
<div class="markup_draft">
{{ content1|safe }}
</div>
{% else %}
<p>This Internet-Draft is no longer active. Unofficial copies of old Internet-Drafts can be found here:<br/>
<a href="http://tools.ietf.org/id/{{doc.draft_name}}">http://tools.ietf.org/id/{{doc.draft_name}}</a>.</p>
<p style="max-width: 400px;"><b>Abstract:</b><br/> {{ doc.abstract|escape }}</p>
<p><b>Authors:</b><br/>
{% for author in doc.authors.all %}
{% if author.email %}
<a href="mailto:{{ author.email }}">{{ author.person }} &lt;{{author.email}}&gt;</a>
{% else %}
{% if author.person %}
{{ author.person }}
{% else %}
Missing author info #{{ author.person_id }}
{% endif %}
{% endif %}<br />
{% endfor %}</p>
<p>(Note: The e-mail addresses provided for the authors of this Internet-Draft may no longer be valid)</p>
{% endifequal %}
{% endblock %}{# doc_text1 #}
{% block doc_text2 %}
{% ifequal doc.draft_status "Active" %}
<div class="markup_draft">
{{ content2|safe }}
</div>
{% endifequal %}
{% endblock %} {# doc_text2 #}

View file

@ -1,4 +1,4 @@
{% extends "idrfc/doc_main.html" %}
{% extends "idrfc/doc_tab_document.html" %}
{% comment %}
Copyright (C) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved. Contact: Pasi Eronen <pasi.eronen@nokia.com>
@ -32,11 +32,8 @@ 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.
{% endcomment %}
{% load ietf_filters %}
{% block title %}RFC {{ doc.rfc_number }}{% endblock %}
{% block doc_meta_description %}{{ doc.title }} ({{doc.maturity_level}}, {{doc.publication_date|date:"Y"}}){% if doc.obsoleted_by %}; Obsoleted by {{doc.obsoleted_by}}{% endif %}{% endblock %}
{% block doc_h1 %}{{ doc.title|escape }}<br/>RFC {{ doc.rfc_number }}{% endblock %}
{% load ietf_filters %}
{% block doc_metatable %}
<tr><td style="width:18ex;">Document type:</td><td>RFC - {{ doc.maturity_level }} {% if doc.stream_name %}({{ doc.stream_name }}){% endif %}

View file

@ -0,0 +1,50 @@
{% extends "idrfc/doc_main.html" %}
{% comment %}
Copyright (C) 2009-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.
{% endcomment %}
{% load ietf_filters %}
{% block tab_content %}
{% if not info.is_rfc %}
{% include "idrfc/doc_diffs.html" %}
{% endif %}
<h2 style="margin-top:1em;">Document history</h2>
{% if user|in_group:"Area_Director,Secretariat" and doc.in_ietf_process %}
<div style="margin-bottom:8px" id="history_actions">
<span id="doc_add_comment_button" class="yui-button yui-link-button" style="margin-left:2px;"><span class="first-child"><a href="{% url doc_add_comment name=doc.draft_name %}">Add comment</a></span></span>
</div>
{% endif %}
{% include "idrfc/doc_history.html" %}
{% endblock tab_content %}

View file

@ -0,0 +1,73 @@
{% extends "idrfc/doc_main.html" %}
{% comment %}
Copyright (C) 2009-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.
{% endcomment %}
{% load ietf_filters %}
{% block tab_content %}
---- following is a DRAFT of message to be sent AFTER approval ---
{% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}
{% if user|in_group:"Area_Director,Secretariat" %}
<div style="background:#E0E0FF">
<p align=right>
<span id="doc_edit_announce_button" class="yui-button yui-link-button"><span class="first-child">
<a href="{% url doc_ballot_approvaltext name=doc.draft_name %}">Edit Announcement Text</a>
</span></span>
</p>
{% endif %}
{% endif %}
<pre>
{{ doc.ietf_process.iesg_ballot.approval_text|escape|urlize }}
</pre>
{% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}
{% if user|in_group:"Area_Director,Secretariat" %}
</div>
<div style="background:#E0E0FF">
<p align=right>
<span id="doc_ballot_edit_button" class="yui-button yui-link-button"><span class="first-child">
<a href="{% url doc_ballot_writeupnotes name=doc.draft_name %}">Edit Ballot Text</a>
</span></span>
</p>
{% endif %}
{% endif %}
<pre>
{{ doc.ietf_process.iesg_ballot.ballot_writeup|escape|urlize }}
</pre>
{% if doc.in_ietf_process and doc.ietf_process.has_iesg_ballot %}
{% if user|in_group:"Area_Director,Secretariat" %}
</div>
{% endif %}
{% endif %}
{% endblock tab_content %}

View file

@ -0,0 +1,5 @@
{% if info.is_rfc %}
RFC {{ doc.rfc_number }}
{% else %}
{{ doc.draft_name_and_revision }}
{% endif %}