More bs5 changes
- Legacy-Id: 19725
This commit is contained in:
parent
448c6dbe9e
commit
e2541030d3
|
@ -108,7 +108,6 @@ $(document)
|
|||
// Automatically add a navigation pane to long pages
|
||||
$(document)
|
||||
.ready(function () {
|
||||
|
||||
var headings = $("#content")
|
||||
.find("h1, h2, h3, h4, h5, h6");
|
||||
|
||||
|
@ -123,11 +122,6 @@ $(document)
|
|||
var last_level;
|
||||
var nav;
|
||||
|
||||
$("body")
|
||||
.attr("data-bs-spy", "scroll")
|
||||
.attr("data-bs-target", "#righthand-nav")
|
||||
.scrollspy("refresh");
|
||||
|
||||
$("#content")
|
||||
.attr("data-bs-offset", 0)
|
||||
.attr("tabindex", 0)
|
||||
|
@ -185,5 +179,52 @@ $(document)
|
|||
item[0].scrollIntoView({ block: "center" });
|
||||
}
|
||||
});
|
||||
|
||||
$("body")
|
||||
.attr("data-bs-spy", "scroll")
|
||||
.attr("data-bs-target", "#righthand-nav")
|
||||
.scrollspy("refresh");
|
||||
|
||||
$(window)
|
||||
.on("activate.bs.scrollspy", function () {
|
||||
console.log("X");
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Replace track/untrack functionality with js.
|
||||
$(document)
|
||||
.ready(function () {
|
||||
$('.review-wish-add-remove-doc.ajax, .track-untrack-doc')
|
||||
.click(function (e) {
|
||||
e.preventDefault();
|
||||
var trigger = $(this);
|
||||
$.ajax({
|
||||
url: trigger.attr('href'),
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
dataType: 'json',
|
||||
success: function (response) {
|
||||
if (response.success) {
|
||||
trigger.parent()
|
||||
.find(".track-untrack-doc")
|
||||
.tooltip("hide");
|
||||
trigger.addClass("visually-hidden");
|
||||
|
||||
var target_unhide = null;
|
||||
if (trigger.hasClass('review-wish-add-remove-doc')) {
|
||||
target_unhide = '.review-wish-add-remove-doc';
|
||||
} else if (trigger.hasClass('track-untrack-doc')) {
|
||||
target_unhide = '.track-untrack-doc';
|
||||
}
|
||||
if (target_unhide) {
|
||||
trigger.parent()
|
||||
.find(target_unhide)
|
||||
.not(trigger)
|
||||
.removeClass("visually-hidden");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
36
ietf/static/js/manage-community-list.js
Normal file
36
ietf/static/js/manage-community-list.js
Normal file
|
@ -0,0 +1,36 @@
|
|||
$(document)
|
||||
.ready(function () {
|
||||
$("[name=rule_type]")
|
||||
.on("click change keypress", function () {
|
||||
var form = $(this)
|
||||
.closest("form");
|
||||
var ruleType = $(this)
|
||||
.val();
|
||||
var emptyForms = $(".empty-forms");
|
||||
|
||||
var currentFormContent = form.find(".form-content-placeholder .rule-type");
|
||||
if (!ruleType || !currentFormContent.hasClass(ruleType)) {
|
||||
// move previous back into the collection
|
||||
if (currentFormContent.length > 0)
|
||||
emptyForms.append(currentFormContent);
|
||||
else
|
||||
currentFormContent.html(""); // make sure it's empty
|
||||
|
||||
// insert new
|
||||
if (ruleType)
|
||||
form.find(".form-content-placeholder")
|
||||
.append(emptyForms.find("." + ruleType));
|
||||
}
|
||||
});
|
||||
|
||||
$("[name=rule_type]")
|
||||
.each(function () {
|
||||
// don't trigger the handler if we have a form with errors
|
||||
var placeholderContent = $(this)
|
||||
.closest("form")
|
||||
.find(".form-content-placeholder >");
|
||||
if (placeholderContent.length == 0 || placeholderContent.hasClass("rule-type"))
|
||||
$(this)
|
||||
.trigger("change");
|
||||
});
|
||||
});
|
|
@ -1,17 +1,14 @@
|
|||
{# bs5ok #}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% extends "base.html" %}
|
||||
{% block title %}OpenID Connect Issuer{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>OpenID Connect Issuer</h2>
|
||||
<h1>OpenID Connect Issuer</h1>
|
||||
<p>
|
||||
This is the IETF Datatracker's OpenID Connect Issuer endpoint.
|
||||
The OpenID Connect provider info is at
|
||||
<code>
|
||||
<a href="{% url 'oidc_provider:provider-info' %}">{% url 'oidc_provider:provider-info' %}"</a>
|
||||
<a href="{% url 'oidc_provider:provider-info' %}">{% url 'oidc_provider:provider-info' %}</a>
|
||||
</code>
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% endblock %}
|
|
@ -1,17 +1,18 @@
|
|||
{# bs5ok #}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
|
||||
{% load origin %}
|
||||
{% origin %}
|
||||
|
||||
<ul class="dropdown-menu {% if flavor == 'top' %}mt-n1{% else %}ms-n1{% endif %}">
|
||||
{% for p in parents %}
|
||||
<li>
|
||||
<a class="dropdown-item {% if flavor != 'top' %}text-wrap{% endif %}" href="{{ p.menu_url }}">Active {{ p.name }}s</a>
|
||||
<a class="dropdown-item {% if flavor != 'top' %}text-wrap{% endif %}"
|
||||
href="{{ p.menu_url }}">Active {{ p.name }}s</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% for o in others %}
|
||||
<li>
|
||||
<a class="dropdown-item {% if flavor != 'top' %}text-wrap{% endif %}" href="{{o.menu_url}}">{{ o.acronym|upper }}</a>
|
||||
<a class="dropdown-item {% if flavor != 'top' %}text-wrap{% endif %}"
|
||||
href="{{ o.menu_url }}">{{ o.acronym|upper }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
|
@ -1,11 +1,11 @@
|
|||
{# bs5ok #}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
|
||||
{% load origin %}
|
||||
{% origin %}
|
||||
|
||||
{% for p in parents %}
|
||||
<li class="dropend group-menu group-parent-{{ p.id }}">
|
||||
<a class="dropdown-item dropdown-toggle {% if flavor != 'top' %}text-wrap link-primary{% endif %}" href="{{ p.menu_url }}">
|
||||
<a class="dropdown-item dropdown-toggle {% if flavor != 'top' %}text-wrap link-primary{% endif %}"
|
||||
href="{{ p.menu_url }}">
|
||||
{{ p.short_name }}
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
@ -1,29 +1,31 @@
|
|||
<ul class="list-inline text-end pt-4">
|
||||
<li class="list-inline-item">
|
||||
<label id="list-feeds">Atom feed:</label>
|
||||
<div class="btn-group" role="group" aria-labelledby="list-feeds">
|
||||
<a class="btn btn-primary" title="Feed of all changes" href="{% if clist.group %}{% url "ietf.community.views.feed" acronym=clist.group.acronym %}{% else %}{% url "ietf.community.views.feed" username=clist.user.username %}{% endif %}">
|
||||
<i class="bi bi-rss"></i> All changes
|
||||
</a>
|
||||
<a class="btn btn-primary" title="Feed of only significant state changes" href="{% if clist.group %}{% url "ietf.community.views.feed" acronym=clist.group.acronym %}{% else %}{% url "ietf.community.views.feed" username=clist.user.username %}{% endif %}?significant=1">
|
||||
<i class="bi bi-rss"></i> Significant
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
{# bs5ok #}
|
||||
<div class="text-end">
|
||||
<label id="list-feeds">Atom feed:</label>
|
||||
<div class="btn-group" role="group" aria-labelledby="list-feeds">
|
||||
<a class="btn btn-primary"
|
||||
title="Feed of all changes"
|
||||
href="{% if clist.group %}{% url "ietf.community.views.feed" acronym=clist.group.acronym %}{% else %}{% url "ietf.community.views.feed" username=clist.user.username %}{% endif %}">
|
||||
<i class="bi bi-rss"></i> All changes
|
||||
</a>
|
||||
<a class="btn btn-primary"
|
||||
title="Feed of only significant state changes"
|
||||
href="{% if clist.group %}{% url "ietf.community.views.feed" acronym=clist.group.acronym %}{% else %}{% url "ietf.community.views.feed" username=clist.user.username %}{% endif %}?significant=1">
|
||||
<i class="bi bi-rss"></i> Significant
|
||||
</a>
|
||||
</div>
|
||||
{% if clist.pk != None %}
|
||||
<li class="list-inline-item"><a class="btn btn-primary" href="{% if clist.group %}{% url "ietf.community.views.subscription" acronym=clist.group.acronym %}{% else %}{% url "ietf.community.views.subscription" username=clist.user.username %}{% endif %}">
|
||||
<a class="btn btn-primary"
|
||||
href="{% if clist.group %}{% url "ietf.community.views.subscription" acronym=clist.group.acronym %}{% else %}{% url "ietf.community.views.subscription" username=clist.user.username %}{% endif %}">
|
||||
<i class="bi bi-envelope"></i>
|
||||
{% if subscribed %}
|
||||
Change subscription
|
||||
{% else %}
|
||||
Subscribe to changes
|
||||
{% endif %}
|
||||
</a></li>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<li class="list-inline-item">
|
||||
<a class="btn btn-primary" href="{% if clist.group %}{% url "ietf.community.views.export_to_csv" acronym=clist.group.acronym %}{% else %}{% url "ietf.community.views.export_to_csv" username=clist.user.username %}{% endif %}"
|
||||
><i class="bi bi-file-ruled"></i> Export as CSV</a>
|
||||
</li>
|
||||
</ul>
|
||||
<a class="btn btn-primary"
|
||||
href="{% if clist.group %}{% url "ietf.community.views.export_to_csv" acronym=clist.group.acronym %}{% else %}{% url "ietf.community.views.export_to_csv" username=clist.user.username %}{% endif %}">
|
||||
<i class="bi bi-file-ruled"></i> Export as CSV
|
||||
</a>
|
||||
</div>
|
|
@ -1,39 +1,43 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% load django_bootstrap5 %}
|
||||
{% load static %}
|
||||
{% load misc_filters %}
|
||||
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
{{ all_forms|merge_media:'css' }}
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}Manage {{ clist.long_name }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Manage {{ clist.long_name }}</h1>
|
||||
|
||||
<noscript>This page depends on Javascript being enabled to work properly.</noscript>
|
||||
|
||||
{% bootstrap_messages %}
|
||||
|
||||
<p>The list currently tracks <a href="{{ clist.get_absolute_url }}">{{ total_count }} document{{ total_count|pluralize }}</a>.</p>
|
||||
|
||||
<p><a class="btn btn-primary" href="{{ clist.get_absolute_url }}">Back to list</a></p>
|
||||
|
||||
<p>
|
||||
The list currently tracks
|
||||
<a href="{{ clist.get_absolute_url }}">{{ total_count }} document{{ total_count|pluralize }}</a>
|
||||
.
|
||||
</p>
|
||||
<p>
|
||||
<a class="btn btn-primary" href="{{ clist.get_absolute_url }}">Back to list</a>
|
||||
</p>
|
||||
<h2>Individual documents</h2>
|
||||
|
||||
{% if individually_added %}
|
||||
<p>The list tracks {{ individually_added|length }} individually added document{{ individually_added|length|pluralize }}:</p>
|
||||
<table class="table table-sm table-striped">
|
||||
<p>
|
||||
The list tracks {{ individually_added|length }} individually added document{{ individually_added|length|pluralize }}:
|
||||
</p>
|
||||
<table class="table table-sm table-striped tablesorter">
|
||||
<thead>
|
||||
<th data-sort="doc">Document</th>
|
||||
<th>Manage</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for d in individually_added %}
|
||||
<tr>
|
||||
<td>{{ d.name }}</td>
|
||||
<td>
|
||||
<form method="post" id="remove_document_{{d.pk}}">
|
||||
<form method="post" id="remove_document_{{ d.pk }}">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="document" value="{{ d.pk }}">
|
||||
<button class="btn btn-danger btn-sm" name="action" value="remove_document">Remove</button>
|
||||
|
@ -44,32 +48,44 @@
|
|||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p>The list does not track any individually added documents yet.</p>
|
||||
<p>
|
||||
The list does not track any individually added documents yet.
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
{% if clist.group %}
|
||||
<p>Add individual documents here:</p>
|
||||
<p>
|
||||
Add individual documents here:
|
||||
</p>
|
||||
{% else %}
|
||||
<p>Conveniently track individual documents in your personal list with the track icon <span class="bi bi-bookmark"></span> in <a href="/doc/search/">search results</a>.</p>
|
||||
|
||||
<p>You can also add documents here:</p>
|
||||
<p>
|
||||
Conveniently track individual documents in your personal list with the track icon
|
||||
<span class="bi bi-bookmark"></span>
|
||||
in
|
||||
<a href="/doc/search/">search results</a>
|
||||
.
|
||||
</p>
|
||||
<p>
|
||||
You can also add documents here:
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
<form class="form add-document" method="post" id="add_document">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_field add_doc_form.documents show_label=False %}
|
||||
<button class="btn btn-primary" name="action" value="add_documents">Add documents</button>
|
||||
{% bootstrap_form add_doc_form show_label=False %}
|
||||
{% bootstrap_button button_type="submit" name="action" value="add_documents" content="Add documents" %}
|
||||
</form>
|
||||
|
||||
|
||||
<h2>Search rules</h2>
|
||||
|
||||
<p>You can track documents with a search rule. When a document fulfills the search criteria, it will automatically show up in the list.</p>
|
||||
|
||||
<p>
|
||||
You can track documents with a search rule. When a document fulfills the search criteria, it will automatically show up in the list.
|
||||
</p>
|
||||
{% if rules %}
|
||||
<table class="table table-sm table-striped">
|
||||
<table class="table table-sm table-striped tablesorter">
|
||||
<thead>
|
||||
<tr><th>Rule</th><th>Value</th><th>Documents</th><th></th></tr>
|
||||
<tr>
|
||||
<th data-sort="rule">Rule</th>
|
||||
<th data-sort="value">Value</th>
|
||||
<th data-sort="num">Matching Documents</th>
|
||||
<th>Manage</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for rule in rules %}
|
||||
|
@ -86,7 +102,7 @@
|
|||
{{ rule.text }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ rule.matching_documents_count }} match{{ rule.matching_documents_count|pluralize:"es" }}</td>
|
||||
<td>{{ rule.matching_documents_count }}</td>
|
||||
<td>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
|
@ -98,47 +114,37 @@
|
|||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% else %}
|
||||
|
||||
<p>No rules defined.</p>
|
||||
|
||||
<p>
|
||||
No rules defined.
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
<div><a class="btn btn-primary" data-bs-toggle="collapse" data-bs-target="#add-new-rule">Add a new rule</a></div>
|
||||
|
||||
<div id="add-new-rule" {% if not rule_type_form.errors and not rule_form %}class="collapse"{% endif %}>
|
||||
<h3>Add a new rule</h3>
|
||||
|
||||
<div>
|
||||
<a class="btn btn-primary"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#add-new-rule">Add a new rule</a>
|
||||
</div>
|
||||
<div id="add-new-rule"
|
||||
{% if not rule_type_form.errors and not rule_form %}class="collapse"{% endif %}>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form rule_type_form %}
|
||||
|
||||
{% bootstrap_form rule_type_form layout="horizontal" %}
|
||||
<div class="form-content-placeholder">
|
||||
{% if rule_form %}
|
||||
{% bootstrap_form rule_form %}
|
||||
{% bootstrap_form rule_form layout="horizontal" %}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary" name="action" value="add_rule">Add rule</button>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
<div class="empty-forms hide">
|
||||
<div class="empty-forms visually-hidden">
|
||||
{% for rule_type, f in empty_rule_forms.items %}
|
||||
<div class="rule-type {{ rule_type }}">
|
||||
{% bootstrap_form f %}
|
||||
</div>
|
||||
<div class="rule-type {{ rule_type }}">{% bootstrap_form f layout="horizontal" %}</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
{{ all_forms|merge_media:'js' }}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
<script src="{% static 'ietf/js/manage-community-list.js' %}"></script>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -1,18 +1,15 @@
|
|||
{# bs5ok #}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}{% origin %}
|
||||
{% load django_bootstrap5 %}
|
||||
|
||||
{% extends "base.html" %}
|
||||
{% load origin %}
|
||||
{% origin %}
|
||||
{% block title %}Track document {{ name }}{% endblock %}
|
||||
|
||||
{% bootstrap_messages %}
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<p>Add {{ name }} to the list?</p>
|
||||
|
||||
|
||||
|
||||
<input type="submit" class="btn btn-primary" value="Track document">
|
||||
|
||||
|
||||
</form>
|
||||
{% block content %}
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<p>
|
||||
Add {{ name }} to the list?
|
||||
</p>
|
||||
<input type="submit" class="btn btn-primary" value="Track document">
|
||||
</form>
|
||||
{% endblock %}
|
|
@ -1,23 +1,26 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% load django_bootstrap5 %}
|
||||
|
||||
{% load static django_bootstrap5 %}
|
||||
{% block title %}{{ clist.long_name }}{% endblock %}
|
||||
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>{{ clist.long_name }}</h1>
|
||||
|
||||
{% bootstrap_messages %}
|
||||
|
||||
{% if can_manage_list %}
|
||||
<a class="btn btn-primary" href="{% url "ietf.community.views.manage_list" username=clist.user.username %}">
|
||||
<a class="btn btn-primary my-3"
|
||||
href="{% url "ietf.community.views.manage_list" username=clist.user.username %}">
|
||||
<i class="bi bi-gear"></i>
|
||||
Manage list
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% include "doc/search/search_results.html" with skip_no_matches_warning=True %}
|
||||
{% include "doc/search/search_results.html" with skip_no_matches_warning=True start_table=True end_table=True %}
|
||||
{% include "community/list_menu.html" %}
|
||||
{% endblock %}
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}
|
|
@ -1,66 +1,80 @@
|
|||
{# Copyright The IETF Trust 2015, All Rights Reserved #}{% load origin %}{% origin %}
|
||||
{# bs5ok #}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% origin %}
|
||||
{% load widget_tweaks %}
|
||||
{% load ietf_filters %}
|
||||
{% load ballot_icon %}
|
||||
{% load person_filters %}
|
||||
{% load django_bootstrap5 %}
|
||||
|
||||
<tr {% spaceless %}
|
||||
{% if color_row_positions %}
|
||||
{% with doc|ballotposition:user as pos %}
|
||||
{% if pos %}class="position-{{pos.slug}}-row"{% endif %}
|
||||
{% endwith %}
|
||||
{% if color_row_positions %} {% with doc|ballotposition:user as pos %} {% if pos %}class="position-{{ pos.slug }}-row"{% endif %}
|
||||
{% endwith %}
|
||||
{% endif %}
|
||||
{% endspaceless %}>
|
||||
|
||||
{% endspaceless %}>
|
||||
<td>
|
||||
{% if user.is_authenticated %}
|
||||
<a href="{% url "ietf.community.views.untrack_document" username=request.user.username name=doc.name %}" class="track-untrack-doc" {% if not doc.tracked_in_personal_community_list %}hidden{% endif %} title="Remove from your personal ID list">
|
||||
<a href="{% url "ietf.community.views.untrack_document" username=request.user.username name=doc.name %}"
|
||||
class="track-untrack-doc
|
||||
{% if not doc.tracked_in_personal_community_list %}visually-hidden{% endif %}"
|
||||
title="Remove from your personal ID list">
|
||||
<span class="bi bi-bookmark-check-fill"></span>
|
||||
</a>
|
||||
<a href="{% url "ietf.community.views.track_document" username=request.user.username name=doc.name %}" class="track-untrack-doc" {% if doc.tracked_in_personal_community_list %}hidden{% endif %} title="Add to your personal ID list">
|
||||
<a href="{% url "ietf.community.views.track_document" username=request.user.username name=doc.name %}"
|
||||
class="track-untrack-doc
|
||||
{% if doc.tracked_in_personal_community_list %}visually-hidden{% endif %}"
|
||||
title="Add to your personal ID list">
|
||||
<span class="bi bi-bookmark"></span>
|
||||
</a>
|
||||
<br>
|
||||
{% endif %}
|
||||
{% if user.review_teams %}
|
||||
<a class="review-wish-add-remove-doc ajax" {% if not doc.has_review_wish %}hidden{% endif %} href="{% url "ietf.doc.views_review.review_wishes_remove" name=doc.name %}?next={{ request.get_full_path|urlencode }}" title="Remove from your review wishes for all teams">
|
||||
<a class="review-wish-add-remove-doc ajax
|
||||
{% if not doc.has_review_wish %}visually-hidden{% endif %}"
|
||||
href="{% url "ietf.doc.views_review.review_wishes_remove" name=doc.name %}?next={{ request.get_full_path|urlencode }}"
|
||||
title="Remove from your review wishes for all teams">
|
||||
<span class="bi bi-chats"></span>
|
||||
</a>
|
||||
<a class="review-wish-add-remove-doc {% if user.review_teams|length_is:"1" %}ajax {% endif %}" {% if doc.has_review_wish %}hidden{% endif %} href="{% url "ietf.doc.views_review.review_wish_add" name=doc.name %}?next={{ request.get_full_path|urlencode }}" title="Add to your review wishes">
|
||||
<a class="review-wish-add-remove-doc {% if user.review_teams|length_is:"1" %}ajax {% endif %}
|
||||
{% if doc.has_review_wish %}visually-hidden{% endif %}"
|
||||
href="{% url "ietf.doc.views_review.review_wish_add" name=doc.name %}?next={{ request.get_full_path|urlencode }}"
|
||||
title="Add to your review wishes">
|
||||
<span class="bi bi-chats-o"></span>
|
||||
</a>
|
||||
<br>
|
||||
{% endif %}
|
||||
|
||||
{% for session in doc.sessions %}
|
||||
<a href="{% url 'ietf.meeting.views.agenda_ical' num=session.meeting.number session_id=session.id %}"
|
||||
title="Calendar entry: document is on the agenda for {{ session.group.acronym }}@{{ session.meeting }}">
|
||||
title="Calendar entry: document is on the agenda for {{ session.group.acronym }}@{{ session.meeting }}">
|
||||
<span class="bi bi-calendar"></span>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{% if doc.pages %}
|
||||
<small class="float-end text-muted">{{doc.pages}} page{{ doc.pages|pluralize }}</small>
|
||||
{% endif %}
|
||||
|
||||
{% if doc.pages %}<small class="float-end text-muted">{{ doc.pages }} page{{ doc.pages|pluralize }}</small>{% endif %}
|
||||
<div>
|
||||
<a href="{{ doc.get_absolute_url }}">{% if doc.get_state_slug == "rfc" %}RFC {{ doc.rfc_number }}{% else %}{{ doc.name }}-{{ doc.rev }}{% endif %}</a>
|
||||
|
||||
{% if doc.get_state_slug == "rfc" and "draft" in doc.name %}
|
||||
<i class="text-muted">(was {{ doc.name }})</i>
|
||||
{% endif %}
|
||||
<a href="{{ doc.get_absolute_url }}">
|
||||
{% if doc.get_state_slug == "rfc" %}
|
||||
RFC {{ doc.rfc_number }}
|
||||
{% else %}
|
||||
{{ doc.name }}-{{ doc.rev }}
|
||||
{% endif %}
|
||||
</a>
|
||||
{% if doc.get_state_slug == "rfc" and "draft" in doc.name %}<i class="text-muted">(was {{ doc.name }})</i>{% endif %}
|
||||
<br>
|
||||
<b>{{ doc.title }}</b>
|
||||
{% if doc.has_verified_errata %}
|
||||
<a class="badge bg-danger float-end" href="https://www.rfc-editor.org/errata_search.php?rfc={{ doc.rfc_number }}">Errata</a>
|
||||
<a class="badge bg-danger float-end"
|
||||
href="https://www.rfc-editor.org/errata_search.php?rfc={{ doc.rfc_number }}">
|
||||
Errata
|
||||
</a>
|
||||
{% elif doc.has_errata %}
|
||||
<a class="badge bg-warning float-end" href="https://www.rfc-editor.org/errata_search.php?rfc={{ doc.rfc_number }}">Errata</a>
|
||||
<a class="badge bg-warning float-end"
|
||||
href="https://www.rfc-editor.org/errata_search.php?rfc={{ doc.rfc_number }}">
|
||||
Errata
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if user|has_role:"Secretariat" and doc.reschedule_form %}
|
||||
<div class="mt-3">
|
||||
{% bootstrap_form doc.reschedule_form layout="floating" %}
|
||||
|
@ -70,68 +84,69 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span class="text-nowrap">
|
||||
|
||||
{% if doc.latest_revision_date|timesince_days|new_enough:request and doc.get_state_slug != "rfc" %}
|
||||
|
||||
{% if doc.rev != "00" %}<a href="{{ rfcdiff_base_url }}?url2={{ doc.name }}-{{ doc.rev }}">
|
||||
{% elif doc.replaces %}<a href="{{ rfcdiff_base_url }}?url1={{ doc.replaces_canonical_name}}&url2={{ doc.name }}-{{ doc.rev }}">{% endif %}
|
||||
|
||||
{% endif %}
|
||||
{% if doc.get_state_slug == "rfc" %}{{ doc.latest_revision_date|date:"Y-m" }}{% else %}{{ doc.latest_revision_date|date:"Y-m-d" }}{% endif %}
|
||||
{% if doc.latest_revision_date|timesince_days|new_enough:request and doc.get_state_slug != "rfc" %}
|
||||
{% if doc.rev != "00" or doc.replaces %}</a>{% endif %}
|
||||
{% endif %}
|
||||
</span>
|
||||
|
||||
{% comment %}
|
||||
{% if doc.rev != "00" %}
|
||||
<a href="{{ rfcdiff_base_url }}?url2={{ doc.name }}-{{ doc.rev }}">
|
||||
{% elif doc.replaces %}
|
||||
<a href="{{ rfcdiff_base_url }}?url1={{ doc.replaces_canonical_name }}&url2={{ doc.name }}-{{ doc.rev }}">
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if doc.get_state_slug == "rfc" %}
|
||||
{{ doc.latest_revision_date|date:"Y-m" }}
|
||||
{% else %}
|
||||
{{ doc.latest_revision_date|date:"Y-m-d" }}
|
||||
{% endif %}
|
||||
{% if doc.latest_revision_date|timesince_days|new_enough:request and doc.get_state_slug != "rfc" %}
|
||||
{% if doc.rev != "00" or doc.replaces %}</a>{% endif %}
|
||||
{% endif %}
|
||||
</span>
|
||||
{% comment %}
|
||||
{% for check in doc.submission.latest_checks %}
|
||||
{% if check.passed != None and check.symbol.strip %}
|
||||
{% if check.errors or check.warnings %}
|
||||
<span class="checker-warning float-end" data-bs-toggle="modal" data-bs-target="#check-{{check.pk}}" title="{{check.checker|title}} returned warnings or errors." >{{ check.symbol|safe }}</span>
|
||||
<span class="checker-warning float-end" data-bs-toggle="modal" data-bs-target="#check-{{ check.pk }}" title="{{ check.checker|title }} returned warnings or errors.">{{ check.symbol|safe }}</span>
|
||||
{% else %}
|
||||
<span class="checker-success float-end" data-bs-toggle="modal" data-bs-target="#check-{{check.pk}}" title="{{check.checker|title}} passed">{{ check.symbol|safe }}</span>
|
||||
<span class="checker-success float-end" data-bs-toggle="modal" data-bs-target="#check-{{ check.pk }}" title="{{ check.checker|title }} passed">{{ check.symbol|safe }}</span>
|
||||
{% endif %}
|
||||
{% include "doc/yang-check-modal-overlay.html" %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endcomment %}
|
||||
|
||||
{% if doc.latest_revision_date|timesince_days|new_enough:request %}
|
||||
<wbr><div class="float-end"><span class="badge bg-success">New</span></div>
|
||||
{% endif %}
|
||||
|
||||
{% if doc.get_state_slug == "active" and doc.expirable and doc.expires|timesince_days|expires_soon:request %}
|
||||
<wbr><span class="badge bg-warning">Expires soon</span>
|
||||
{% endif %}
|
||||
|
||||
</td>
|
||||
|
||||
{% include "doc/search/status_columns.html" %}
|
||||
|
||||
<td class="text-center">
|
||||
{% if doc.related_ipr %}
|
||||
<a href="{% url "ietf.ipr.views.search" %}?submit=draft&id={{ doc.name }}">
|
||||
<span class="badge bg-secondary">{{ doc.related_ipr|length }}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
{% if ad_name == None or ad_name != doc.ad.plain_name %}
|
||||
<td>
|
||||
{% if doc.ad %}
|
||||
{% person_link doc.ad title="Area Director" %}<br>
|
||||
{% endcomment %}
|
||||
{% if doc.latest_revision_date|timesince_days|new_enough:request %}
|
||||
<wbr>
|
||||
<div class="float-end">
|
||||
<span class="badge bg-success">New</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if doc.get_state_slug == "active" and doc.expirable and doc.expires|timesince_days|expires_soon:request %}
|
||||
<wbr>
|
||||
<span class="badge bg-warning">Expires soon</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
{% include "doc/search/status_columns.html" %}
|
||||
<td class="text-center">
|
||||
{% if doc.related_ipr %}
|
||||
<a href="{% url "ietf.ipr.views.search" %}?submit=draft&id={{ doc.name }}">
|
||||
<span class="badge bg-secondary">{{ doc.related_ipr|length }}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
{% if ad_name == None or ad_name != doc.ad.plain_name %}
|
||||
<td>
|
||||
{% if doc.ad %}
|
||||
{% person_link doc.ad title="Area Director" %}
|
||||
<br>
|
||||
{% endif %}
|
||||
{% if doc.shepherd %}
|
||||
{% email_person_link doc.shepherd title="Shepherd" class="small text-muted" %}
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endif %}
|
||||
{% if doc.shepherd %}{% email_person_link doc.shepherd title="Shepherd" class="small text-muted" %}{% endif %}
|
||||
</td>
|
||||
{% endif %}
|
||||
|
||||
{% if color_row_positions %}
|
||||
{% with doc|ballotposition:user as pos %}
|
||||
<td {% if pos %}class="changebar position-{{pos.slug}}"{% endif %}></td>
|
||||
{% endwith %}
|
||||
{% endif %}
|
||||
|
||||
</tr>
|
||||
{% if color_row_positions %}
|
||||
{% with doc|ballotposition:user as pos %}
|
||||
<td {% if pos %}class="changebar position-{{ pos.slug }}"{% endif %}></td>
|
||||
{% endwith %}
|
||||
{% endif %}
|
||||
</tr>
|
|
@ -1,4 +1,4 @@
|
|||
{% autoescape off %}The following liaison {{ days_msg }}. Plase take actions.
|
||||
{% autoescape off %}The following liaison {{ days_msg }}. Please take actions.
|
||||
|
||||
{% include "liaisons/liaison_mail.txt" %}
|
||||
{% endautoescape %}
|
||||
{% endautoescape %}
|
|
@ -1,34 +1,32 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin static %}
|
||||
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}Sync discrepancies{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Sync discrepancies</h1>
|
||||
|
||||
{% for title, docs in sections %}
|
||||
<h2>{{ title }}</h2>
|
||||
|
||||
{% if docs %}
|
||||
<table class="table table-sm table-striped tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Draft name</th>
|
||||
<th>IESG state</th>
|
||||
<th>RFC Editor state</th>
|
||||
<th>IANA Action state</th>
|
||||
<th data-sort="draft">Draft name</th>
|
||||
<th data-sort="iesg">IESG state</th>
|
||||
<th data-sort="rfc">RFC Editor state</th>
|
||||
<th data-sort="iana">IANA Action state</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for d in docs %}
|
||||
<tr>
|
||||
<td><a href="{{ d.get_absolute_url }}">{{ d.name }}</a></td>
|
||||
<td>
|
||||
<a href="{{ d.get_absolute_url }}">{{ d.name }}</a>
|
||||
</td>
|
||||
<td>{{ d.iesg_state|default:"" }}</td>
|
||||
<td>{{ d.rfc_state|default:"" }}</td>
|
||||
<td>{{ d.iana_action_state|default:"" }}</td>
|
||||
|
@ -37,12 +35,12 @@
|
|||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p class="text-muted">(None)</p>
|
||||
<p class="text-muted">
|
||||
(None)
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -1,17 +1,18 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
|
||||
{% block title %}Trigger {{ notification }} sync for {{ org }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Trigger {{ notification }} sync for {{ org }}</h1>
|
||||
|
||||
<p>Update the Datatracker with {{ help_text|safe }} at {{ org }}.</p>
|
||||
|
||||
<p>
|
||||
Update the Datatracker with {{ help_text|safe }} at {{ org }}.
|
||||
</p>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<input class="btn btn-primary" type="submit" value="Trigger {{ notification }} sync"/>
|
||||
<input class="btn btn-primary"
|
||||
type="submit"
|
||||
value="Trigger {{ notification }} sync"/>
|
||||
</form>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -1,28 +1,32 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015-2019, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
|
||||
{% load origin static %}
|
||||
{% block title %}Undo RFC Editor state events{% endblock %}
|
||||
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Undo RFC Editor state events</h1>
|
||||
|
||||
<table class="table table-sm table-striped">
|
||||
<table class="table table-sm table-striped tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Time</th>
|
||||
<th>Document</th>
|
||||
<th>Text</th>
|
||||
<th>Undo</th>
|
||||
<th data-sort="time">Time</th>
|
||||
<th data-sort="document">Document</th>
|
||||
<th data-sort="text">Text</th>
|
||||
<th data-sort="undo">Undo</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for e in events %}
|
||||
<tr>
|
||||
<td>{{ e.time|date:"Y-m-d H:i:s"}}</td>
|
||||
<td><a href="{% url 'ietf.doc.views_doc.document_history' e.doc.name %}">{{ e.doc.name }}</a></td>
|
||||
<td>{{ e.time|date:"Y-m-d H:i:s" }}</td>
|
||||
<td>
|
||||
<a href="{% url 'ietf.doc.views_doc.document_history' e.doc.name %}">{{ e.doc.name }}</a>
|
||||
</td>
|
||||
<td>{{ e.desc|safe }}</td>
|
||||
<td>
|
||||
<form method="post">
|
||||
|
@ -36,3 +40,7 @@
|
|||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}
|
|
@ -49,6 +49,7 @@
|
|||
"ietf/static/js/ietf.js",
|
||||
"ietf/static/js/liaisons.js",
|
||||
"ietf/static/js/list.js",
|
||||
"ietf/static/js/manage-community-list.js",
|
||||
"ietf/static/js/moment-timezone-with-data-10-year-range.js",
|
||||
"ietf/static/js/moment.js",
|
||||
"ietf/static/js/review-stats.js",
|
||||
|
|
Loading…
Reference in a new issue