Bring back some additional js dependencies.

- Legacy-Id: 19707
This commit is contained in:
Lars Eggert 2021-11-24 14:32:35 +00:00
parent a189b51b30
commit 9e038d3e98
32 changed files with 260 additions and 132 deletions

View file

@ -0,0 +1 @@
@import "~/node_modules/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css";

View file

@ -0,0 +1 @@
import "bootstrap-datepicker";

View file

@ -0,0 +1 @@
import "~/node_modules/highcharts/modules/exporting";

View file

@ -0,0 +1,3 @@
import * as Highcharts from "~/node_modules/highcharts";
window.Highcharts = Highcharts;

View file

@ -0,0 +1,3 @@
import * as Highcharts from "~/node_modules/highcharts/highstock";
window.Highcharts = Highcharts;

View file

@ -0,0 +1 @@
import "~/node_modules/highcharts/modules/offline-exporting";

60
ietf/static/js/stats.js Normal file
View file

@ -0,0 +1,60 @@
$(document).ready(function () {
if (window.chartConf) {
window.chartConf.credits = {
enabled: false
};
window.chartConf.exporting = {
fallbackToExportServer: false
};
if (!window.chartConf.legend)
window.chartConf.legend = {
enabled: false
};
var chart = Highcharts.chart('chart', window.chartConf);
}
if (window.pieChartConf) {
window.pieChartConf.credits = {
enabled: false
};
var pieChart = Highcharts.chart('pie-chart', window.pieChartConf);
}
/*
$(".popover-details").each(function () {
var stdNameRegExp = new RegExp("^(rfc|bcp|fyi|std)[0-9]+$", 'i');
var draftRegExp = new RegExp("^draft-", 'i');
var html = [];
$.each(($(this).data("elements") || "").split("|"), function (i, element) {
if (!$.trim(element))
return;
if (draftRegExp.test(element) || stdNameRegExp.test(element)) {
var displayName = element;
if (stdNameRegExp.test(element))
displayName = element.slice(0, 3).toUpperCase() + " " + element.slice(3);
html.push('<div class="element"><a href="/doc/' + element + '/">' + displayName + '</a></div>');
}
else {
html.push('<div class="element">' + element + '</div>');
}
});
if ($(this).data("sliced"))
html.push('<div class="text-center">&hellip;</div>');
$(this).popover({
trigger: "focus",
template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>',
content: html.join(""),
placement: "top",
html: true
}).on("click", function (e) {
e.preventDefault();
});
});*/
});

View file

@ -5,7 +5,7 @@
{% block title %}{% if revising_review %}Revise{% elif assignment %}Complete{% else %}Submit unsolicited{% endif %} review of {{ doc.name }}{% endblock %}
{% block pagehead %}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block content %}
@ -110,7 +110,7 @@
{% endblock %}
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
<script>
{% if assignment %}
var searchMailArchiveUrl = "{% url "ietf.doc.views_review.search_mail_archive" name=doc.name assignment_id=assignment.pk %}";

View file

@ -3,7 +3,7 @@
{% load origin django_bootstrap5 static %}
{% block pagehead %}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block title %}Edit review request deadline for {{ review_req.doc.name }}{% endblock %}
@ -28,5 +28,5 @@
{% endblock %}
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
{% endblock %}

View file

@ -4,7 +4,7 @@
{% block pagehead %}
{{ form.media.css }}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block title %}Request review of {{ doc.name }} {% endblock %}
@ -46,6 +46,6 @@
{% endblock %}
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
{{ form.media.js }}
{% endblock %}

View file

@ -5,9 +5,9 @@
{% load ietf_filters %}
{% block js %}
<script src="{% static 'highcharts/highstock.js' %}"></script>
<script src="{% static 'highcharts/modules/exporting.js' %}"></script>
<script src="{% static 'highcharts/modules/offline-exporting.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-highstock.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-exporting.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-offline-exporting.js' %}"></script>
<script>
$(function () {
var chart;

View file

@ -5,7 +5,7 @@
{% load django_bootstrap5 %}
{% block pagehead %}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block title %}Make last call for {{ doc.name }}{% endblock %}
@ -36,7 +36,7 @@
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
<script>
$('#id_last_call_sent_date, #id_last_call_expiration_date').datepicker({
format: "yyyy-mm-dd",

View file

@ -7,7 +7,7 @@
{% block title %}{{ title|striptags }}{% endblock %}
{% block pagehead %}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block content %}
@ -32,5 +32,5 @@
{% endblock %}
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
{% endblock %}

View file

@ -5,7 +5,7 @@
{% load ietf_filters static django_bootstrap5 %}
{% block pagehead %}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block title %}Change reviewer settings for {{ group.acronym }} for {{ reviewer_email }}{% endblock %}
@ -128,5 +128,5 @@
{% endblock %}
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
{% endblock %}

View file

@ -7,7 +7,7 @@
{% block pagehead %}
{{ all_forms|merge_media:'css' }}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block title %}{{ title }}{% endblock %}
@ -122,7 +122,7 @@
{% block js %}
{{ all_forms|merge_media:'js' }}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
{% if not group.uses_milestone_dates %}
<script src="{% static 'Sortable/Sortable.min.js' %}"></script>
{% endif %}

View file

@ -264,6 +264,6 @@
{% block js %}
{{ form.media.js }}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
<script src="{% static 'ietf/js/ipr-edit.js' %}"></script>
{% endblock %}

View file

@ -7,7 +7,7 @@
{% block title %}Email submitter of {{ ipr.title }}{% endblock %}
{% block pagehead %}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block content %}
@ -29,5 +29,5 @@
{% endblock %}
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
{% endblock %}

View file

@ -8,7 +8,7 @@
{% block title %}{% if liaison %}Edit liaison: {{ liaison }}{% else %}Send Liaison Statement{% endif %}{% endblock %}
{% block pagehead %}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{{ form.media.css }} {# n.b., liaisons.js relies on select2 CSS being loaded by this #}
<link rel="stylesheet" href="{% static 'ietf/css/liaisons.css' %}">
{% endblock %}
@ -71,7 +71,7 @@
{% endblock %}
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
{{ form.media.js }} {# n.b., liaisons.js relies on select2.js being loaded by this #}
<script src="{% static 'ietf/js/liaisons.js' %}"></script>
{% endblock %}

View file

@ -5,7 +5,7 @@
{% load static %}
{% block pagehead %}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
{% endblock %}
@ -54,6 +54,6 @@
{% block js %}
<script src="{% static "ietf/js/list.js" %}"></script>
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
<script src="{% static 'ietf/js/liaisons.js' %}"></script>
{% endblock %}

View file

@ -8,7 +8,7 @@
{% block pagehead %}
<link rel="stylesheet" href="{% static 'select2/select2.css' %}">
<link rel="stylesheet" href="{% static 'select2-bootstrap-css/select2-bootstrap.min.css' %}">
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block content %}
@ -166,7 +166,7 @@
{% endblock %}
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
<script src="{% static 'select2/select2.min.js' %}"></script>
<script src="{% static 'ietf/js/meeting-interim-request.js' %}"></script>
{% endblock %}

View file

@ -8,7 +8,7 @@
{% block pagehead %}
<link rel="stylesheet" href="{% static 'select2/select2.css' %}">
<link rel="stylesheet" href="{% static 'select2-bootstrap-css/select2-bootstrap.min.css' %}">
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block content %}
@ -35,7 +35,7 @@
{% endblock %}
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
<script src="{% static 'select2/select2.min.js' %}"></script>
<script src="{% static 'ietf/js/meeting-interim-request.js' %}"></script>
{% endblock %}

View file

@ -8,7 +8,7 @@
{% block pagehead %}
<link rel="stylesheet" href="{% static 'select2/select2.css' %}">
<link rel="stylesheet" href="{% static 'select2-bootstrap-css/select2-bootstrap.min.css' %}">
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block content %}
@ -113,7 +113,7 @@
{% endblock %}
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
<script src="{% static 'select2/select2.min.js' %}"></script>
<script src="{% static 'ietf/js/meeting-interim-request.js' %}"></script>
{% endblock %}

View file

@ -5,7 +5,7 @@
{% load django_bootstrap5 %}
{% block pagehead %}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block subtitle %} - Settings{% endblock %}
@ -36,7 +36,7 @@
{% endblock %}
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
<script>
$('input[id*="reminderdates"][type="text"]').datepicker({
format: "yyyy-mm-dd",

View file

@ -6,6 +6,10 @@
{% load ietf_filters %}
{% load group_filters %}
{% block pagehead %}
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
{% endblock %}
{% block title %}Profile for {{ persons.0 }}{% endblock %}
{% block content %}
@ -17,10 +21,9 @@
</div>
{% endif %}
{% for person in persons %}
<div class="col-md-12">
{% if not forloop.first %}<hr>{% endif %}
<h1>{{ person.name }} {% if person.ascii != person.name %}<br><small>({{person.ascii}})</small>{% endif %}</h1>
<h1>{{ person.name }} {% if person.ascii != person.name %}<br><small class="text-muted">({{person.ascii}})</small>{% endif %}</h1>
<div class="bio-text">
{% if person.photo %}
@ -30,17 +33,22 @@
{% endif %}
{{ person.biography | apply_markup:"restructuredtext" }}
</div>
</div>
{% if person.role_set.exists %}
<div class="col-md-12">
<h2 id="roles">Roles</h2>
<table class="table">
<h2 class="mt-3" id="roles">Roles</h2>
<table class="table table-sm table-striped tablesorter">
<thead>
<th data-sort="role">Role</th>
<th data-sort="group">Group</th>
<th data-sort="email">Email</th>
</thead>
<tbody>
{% for role in person.role_set.all|active_roles %}
<tr>
<td>
{{ role.name.name }}
{% if role.group.type_id == 'sdo' %}for{% elif role.name_id == 'reviewer' %}in{% else %}of{% endif %}
</td>
<td>
<a href="{% url 'ietf.group.views.group_about' acronym=role.group.acronym %}">{{ role.group.name }}</a>
(<a href="{% url 'ietf.group.views.group_about' acronym=role.group.acronym %}">{{ role.group.acronym }}</a>)
</td>
@ -51,48 +59,62 @@
{% empty %}
{{ person.first_name }} has no active roles as of {{ today }}.
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
{% if person.personextresource_set.exists %}
<div class="col-md-12">
<h2 id="extresources">External Resources</h2>
<table class="table">
<h2 class="mt-3" id="extresources">External Resources</h2>
<table class="table table-sm table-striped tablesorter">
<thead>
<th data-sort="name">Name</th>
<th data-sort="value">Value</th>
</thead>
<tbody>
{% for extres in person.personextresource_set.all %}
<tr>
<td class="col-md-1"><span title="{{ extres.name.name }}">{% firstof extres.display_name extres.name.name %}</span></td>
<td class="col-md-11">{{extres.value}}</td>
<td><span title="{{ extres.name.name }}">{% firstof extres.display_name extres.name.name %}</span></td>
<td>{{extres.value}}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
<div class="col-md-6">
<h2 id="rfcs">RFCs <small>({{person.rfcs|length}})</small></h2>
<div class="row">
<div class="col-md-7">
<h2 class="mt-3" id="rfcs">RFCs <small class="text-muted">({{person.rfcs|length}})</small></h2>
{% if person.rfcs %}
<table class="table">
<table class="table table-sm table-striped tablesorter">
<thead>
<th data-sort="rfc">RFC</th>
<th data-sort="date">Date</th>
<th data-sort="title">Title</th>
<th data-sort="title">Cited by</th>
</thead>
<tbody>
{% for doc in person.rfcs %}
<tr>
<td><a href="{{ doc.get_absolute_url }}">{{ doc.canonical_name }}</a></td>
<td class="text-nowrap"><a href="{{ doc.get_absolute_url }}">RFC {{ doc.rfc_number }}</a></td>
<td>{{ doc.pub_date|date:"b Y"|title|nbsp }}</td>
<td>{{ doc.title }}<br>
<td>{{ doc.title }}</td>
<td class="text-end">
{% with doc.referenced_by_rfcs.count as refbycount %}
{% if refbycount %}
Cited by <a style="text-decoration: underline" href="{% url 'ietf.doc.views_doc.document_referenced_by' doc.canonical_name %}" rel="nofollow">{{ refbycount }} RFC{{ refbycount|pluralize}}</a>
<a class="text-nowrap text-end" href="{% url 'ietf.doc.views_doc.document_referenced_by' doc.canonical_name %}" rel="nofollow">{{ refbycount }} RFC{{ refbycount|pluralize}}</a>
{% endif %}
{% endwith %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
{{ person.first_name }} has no RFCs as of {{ today }}.
{% endif %}
</div>
<div class="col-md-6">
<h2 id="drafts">Active Drafts <small>({{person.active_drafts|length}})</small></h2>
<div class="col-md-5">
<h2 class="mt-3" id="drafts">Active Drafts <small class="text-muted">({{person.active_drafts|length}})</small></h2>
{% if person.active_drafts.exists %}
<ul>
{% for doc in person.active_drafts %}
@ -104,9 +126,8 @@
{% else %}
{{ person.first_name }} has no active drafts as of {{ today }}.
{% endif %}
</div>
<div class="col-md-6">
<h2>Expired Drafts <small>excluding replaced drafts</small></h2>
<h2 class="mt-3">Expired Drafts <small class="text-muted">({{person.expired_drafts|length}})</small></h2>
{% if person.expired_drafts.exists %}
<ul>
{% for doc in person.expired_drafts %}
@ -115,22 +136,23 @@
{% endif %}
{% endfor %}
</ul>
(Excluding replaced drafts.)
{% else %}
{{ person.first_name }} has no expired drafts as of {{ today }}.
{% endif %}
</div>
</div>
{% if person.has_drafts %}
<div id="chart" style="width:100%; height:400px; margin-top:1em;" class="panel card-body col-md-12"></div>
{% endif %}
<div id="chart" class="mt-3"></div>
{% endfor %}
{% endblock %}
{% block js %}
{% if persons|length == 1 %}
<script src="{% static 'highcharts/highstock.js' %}"></script>
<script src="{% static 'highcharts/modules/exporting.js' %}"></script>
<script src="{% static "ietf/js/list.js" %}"></script>
{% if persons|length == 1 and person.has_drafts %}
<script src="{% static 'ietf/js/highcharts-highstock.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-exporting.js' %}"></script>
<script>
$(function () {
$.getJSON('{% url "ietf.doc.views_stats.chart_conf_person_drafts" id=persons.0.id %}', function (conf) {
@ -144,6 +166,5 @@
});
});
</script>
{% endif %}
{% endblock %}
{% endblock %}

View file

@ -121,9 +121,9 @@
{% endblock %}
{% block js %}
<script src="{% static 'highcharts/highcharts.js' %}"></script>
<script src="{% static 'highcharts/modules/exporting.js' %}"></script>
<script src="{% static 'highcharts/modules/offline-exporting.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-highcharts.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-exporting.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-offline-exporting.js' %}"></script>
<script>
$(document).ready(function () {
Highcharts.chart('coverage-chart', window.coverageChartConf);

View file

@ -7,7 +7,7 @@
{% block title %}{{ stats_title }}{% endblock %}
{% block pagehead %}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
{% endblock %}
@ -20,9 +20,9 @@
<div>
Documents:
<div class="btn-group">
<div class="btn-group buttonlist">
{% for slug, label, url in possible_document_stats_types %}
<a class="btn btn-primary {% if slug == stats_type %}active{% endif %}" href="{{ url }}">{{ label }}</a>
<a class="btn btn-outline-primary {% if slug == stats_type %}active{% endif %}" href="{{ url }}">{{ label }}</a>
{% endfor %}
</div>
</div>
@ -30,9 +30,9 @@
<div>
Authors:
<div class="btn-group">
<div class="btn-group buttonlist">
{% for slug, label, url in possible_author_stats_types %}
<a class="btn btn-primary {% if slug == stats_type %}active{% endif %}" href="{{ url }}">{{ label }}</a>
<a class="btn btn-outline-primary {% if slug == stats_type %}active{% endif %}" href="{{ url }}">{{ label }}</a>
{% endfor %}
</div>
</div>
@ -40,27 +40,27 @@
<div>
Yearly:
<div class="btn-group">
<div class="btn-group buttonlist">
{% for slug, label, url in possible_yearly_stats_types %}
<a class="btn btn-primary {% if slug == stats_type %}active{% endif %}" href="{{ url }}">{{ label }}</a>
<a class="btn btn-outline-primary {% if slug == stats_type %}active{% endif %}" href="{{ url }}">{{ label }}</a>
{% endfor %}
</div>
</div>
<h5>Options</h5>
<h2>Options</h2>
<div>
Document type:
<div style="margin-right:3em;" class="btn-group">
<div class="btn-group buttonlist">
{% for slug, label, url in possible_document_types %}
<a class="btn btn-primary {% if slug == document_type %}active{% endif %}" href="{{ url }}">{{ label }}</a>
<a class="btn btn-outline-primary {% if slug == document_type %}active{% endif %}" href="{{ url }}">{{ label }}</a>
{% endfor %}
</div>
Time:
<div class="btn-group">
<div class="btn-group buttonlist">
{% for slug, label, url in possible_time_choices %}
<a class="btn btn-primary {% if slug == time_choice %}active{% endif %}" href="{{ url }}">{{ label }}</a>
<a class="btn btn-outline-primary {% if slug == time_choice %}active{% endif %}" href="{{ url }}">{{ label }}</a>
{% endfor %}
</div>
</div>
@ -97,9 +97,9 @@
{% endblock %}
{% block js %}
<script src="{% static 'highcharts/highcharts.js' %}"></script>
<script src="{% static 'highcharts/modules/exporting.js' %}"></script>
<script src="{% static 'highcharts/modules/offline-exporting.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-highcharts.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-exporting.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-offline-exporting.js' %}"></script>
<script src="{% static 'ietf/js/stats.js' %}"></script>
<script src="{% static "ietf/js/list.js" %}"></script>
{% endblock %}
{% endblock %}

View file

@ -7,7 +7,7 @@
{% block title %}{{ stats_title }}{% endblock %}
{% block pagehead %}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/list.css' %}">
{% endblock %}
@ -40,10 +40,10 @@
{% endblock %}
{% block js %}
<script src="{% static 'highcharts/highcharts.js' %}"></script>
<script src="{% static 'highcharts/modules/exporting.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-highcharts.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-exporting.js' %}"></script>
<script src="{% static 'highcharts/modules/export-data.js' %}"></script>
<script src="{% static 'highcharts/modules/offline-exporting.js' %}"></script>
<script src="{% static 'ietf/js/highcharts-offline-exporting.js' %}"></script>
<script src="{% static 'ietf/js/stats.js' %}"></script>
<script src="{% static "ietf/js/list.js" %}"></script>
{% endblock %}

View file

@ -6,7 +6,7 @@
{% block pagehead %}
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block content %}
@ -253,7 +253,7 @@
{% block js %}
<script src="{% static "ietf/js/list.js" %}"></script>
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
{% if stats_type == "time" %}
<script src="{% static 'flot/jquery.flot.min.js' %}"></script>
<script src="{% static 'flot/jquery.flot.time.min.js' %}"></script>

View file

@ -7,7 +7,7 @@
{% block title %}Email related to{{ submission.name }}{% endblock %}
{% block pagehead %}
<link rel="stylesheet" href="{% static 'bootstrap-datepicker/css/bootstrap-datepicker3.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
{% endblock %}
{% block content %}
@ -28,5 +28,5 @@
{% endblock %}
{% block js %}
<script src="{% static 'bootstrap-datepicker/js/bootstrap-datepicker.min.js' %}"></script>
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
{% endblock %}

View file

@ -68,8 +68,8 @@ def yyyymmdd_to_strftime_format(fmt):
class DatepickerMedia:
"""Media definitions needed for Datepicker widgets"""
css = dict(all=('bootstrap-datepicker/css/bootstrap-datepicker3.min.css',))
js = ('bootstrap-datepicker/js/bootstrap-datepicker.min.js',)
css = dict(all=('ietf/css/datepicker.css',))
js = ('ietf/js/datepicker.js',)
class DatepickerDateInput(forms.DateInput):

104
package-lock.json generated
View file

@ -7,8 +7,10 @@
"dependencies": {
"@popperjs/core": "^2.10.2",
"bootstrap": "^5.1.3",
"bootstrap-datepicker": "^1.9.0",
"bootstrap-icons": "^1.7.0",
"d3": "^3.5.17",
"highcharts": "^9.3.1",
"jquery": "^3.6.0",
"js-cookie": "^3.0.1",
"list.js": "^2.3.1",
@ -1761,9 +1763,9 @@
}
},
"node_modules/@parcel/watcher": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.2.tgz",
"integrity": "sha512-WGJY55/mTAGse2C9VVi2oo+p05oJ0kiSHmOjV33+ywgKgUkUh6B/qFQ5kBO/9mH686qqtV3k2zH1QNm+XX4+lw==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.3.tgz",
"integrity": "sha512-PHh5PArr3nYGYVj9z/NSfDmmKEBNrg2bzoFgxzjTRBBxPUKx039x3HF6VGLFIfrghjJxcYn/IeSpdVwfob7KFA==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
@ -1836,9 +1838,9 @@
}
},
"node_modules/@types/node": {
"version": "16.11.9",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.9.tgz",
"integrity": "sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==",
"version": "16.11.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.10.tgz",
"integrity": "sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA==",
"dev": true
},
"node_modules/@types/parse-json": {
@ -2261,6 +2263,14 @@
"@popperjs/core": "^2.10.2"
}
},
"node_modules/bootstrap-datepicker": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.9.0.tgz",
"integrity": "sha512-9rYYbaVOheGYxjOr/+bJCmRPihfy+LkLSg4fIFMT9Od8WwWB/MB50w0JO1eBgKUMbb7PFHQD5uAfI3ArAxZRXA==",
"dependencies": {
"jquery": ">=1.7.1 <4.0.0"
}
},
"node_modules/bootstrap-icons": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.7.1.tgz",
@ -3441,9 +3451,9 @@
}
},
"node_modules/electron-to-chromium": {
"version": "1.3.904",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.904.tgz",
"integrity": "sha512-x5uZWXcVNYkTh4JubD7KSC1VMKz0vZwJUqVwY3ihsW0bst1BXDe494Uqbg3Y0fDGVjJqA8vEeGuvO5foyH2+qw==",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.0.tgz",
"integrity": "sha512-+oXCt6SaIu8EmFTPx8wNGSB0tHQ5biDscnlf6Uxuz17e9CjzMRtGk9B8705aMPnj0iWr3iC74WuIkngCsLElmA==",
"dev": true
},
"node_modules/elliptic": {
@ -4562,6 +4572,11 @@
"minimalistic-assert": "^1.0.1"
}
},
"node_modules/highcharts": {
"version": "9.3.1",
"resolved": "https://registry.npmjs.org/highcharts/-/highcharts-9.3.1.tgz",
"integrity": "sha512-T5BjvY2CDtqlKRbid1Jd22psBp8tV9+7fm+x7h+EZuXF0OVDLR5128sRuC6WCWVss4cTVzS6PKnlnXKfYskIhw=="
},
"node_modules/highlight.js": {
"version": "10.4.1",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz",
@ -6309,14 +6324,14 @@
"dev": true
},
"node_modules/postcss": {
"version": "8.3.11",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz",
"integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==",
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.0.tgz",
"integrity": "sha512-BRMNx3Wy7UI89jN8H4ZVS5lQMPM2OSMkOkvDCSjwXa7PWTs24k7Lm55NXLbMbs070LvraXaxN5l1npSOS6wMVw==",
"dev": true,
"dependencies": {
"nanoid": "^3.1.30",
"picocolors": "^1.0.0",
"source-map-js": "^0.6.2"
"source-map-js": "^1.0.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
@ -7897,9 +7912,9 @@
}
},
"node_modules/source-map-js": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz",
"integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz",
"integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@ -8778,9 +8793,9 @@
"dev": true
},
"node_modules/ws": {
"version": "7.5.5",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz",
"integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==",
"version": "7.5.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
"integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
"dev": true,
"engines": {
"node": ">=8.3.0"
@ -10041,9 +10056,9 @@
}
},
"@parcel/watcher": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.2.tgz",
"integrity": "sha512-WGJY55/mTAGse2C9VVi2oo+p05oJ0kiSHmOjV33+ywgKgUkUh6B/qFQ5kBO/9mH686qqtV3k2zH1QNm+XX4+lw==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.3.tgz",
"integrity": "sha512-PHh5PArr3nYGYVj9z/NSfDmmKEBNrg2bzoFgxzjTRBBxPUKx039x3HF6VGLFIfrghjJxcYn/IeSpdVwfob7KFA==",
"dev": true,
"requires": {
"node-addon-api": "^3.2.1",
@ -10091,9 +10106,9 @@
}
},
"@types/node": {
"version": "16.11.9",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.9.tgz",
"integrity": "sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==",
"version": "16.11.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.10.tgz",
"integrity": "sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA==",
"dev": true
},
"@types/parse-json": {
@ -10420,6 +10435,14 @@
"integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==",
"requires": {}
},
"bootstrap-datepicker": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.9.0.tgz",
"integrity": "sha512-9rYYbaVOheGYxjOr/+bJCmRPihfy+LkLSg4fIFMT9Od8WwWB/MB50w0JO1eBgKUMbb7PFHQD5uAfI3ArAxZRXA==",
"requires": {
"jquery": ">=1.7.1 <4.0.0"
}
},
"bootstrap-icons": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.7.1.tgz",
@ -11372,9 +11395,9 @@
}
},
"electron-to-chromium": {
"version": "1.3.904",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.904.tgz",
"integrity": "sha512-x5uZWXcVNYkTh4JubD7KSC1VMKz0vZwJUqVwY3ihsW0bst1BXDe494Uqbg3Y0fDGVjJqA8vEeGuvO5foyH2+qw==",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.0.tgz",
"integrity": "sha512-+oXCt6SaIu8EmFTPx8wNGSB0tHQ5biDscnlf6Uxuz17e9CjzMRtGk9B8705aMPnj0iWr3iC74WuIkngCsLElmA==",
"dev": true
},
"elliptic": {
@ -12231,6 +12254,11 @@
"minimalistic-assert": "^1.0.1"
}
},
"highcharts": {
"version": "9.3.1",
"resolved": "https://registry.npmjs.org/highcharts/-/highcharts-9.3.1.tgz",
"integrity": "sha512-T5BjvY2CDtqlKRbid1Jd22psBp8tV9+7fm+x7h+EZuXF0OVDLR5128sRuC6WCWVss4cTVzS6PKnlnXKfYskIhw=="
},
"highlight.js": {
"version": "10.4.1",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz",
@ -13565,14 +13593,14 @@
"dev": true
},
"postcss": {
"version": "8.3.11",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz",
"integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==",
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.0.tgz",
"integrity": "sha512-BRMNx3Wy7UI89jN8H4ZVS5lQMPM2OSMkOkvDCSjwXa7PWTs24k7Lm55NXLbMbs070LvraXaxN5l1npSOS6wMVw==",
"dev": true,
"requires": {
"nanoid": "^3.1.30",
"picocolors": "^1.0.0",
"source-map-js": "^0.6.2"
"source-map-js": "^1.0.1"
}
},
"postcss-calc": {
@ -14735,9 +14763,9 @@
"dev": true
},
"source-map-js": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz",
"integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz",
"integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==",
"dev": true
},
"source-map-support": {
@ -15446,9 +15474,9 @@
"dev": true
},
"ws": {
"version": "7.5.5",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz",
"integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==",
"version": "7.5.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
"integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
"dev": true,
"requires": {}
},

View file

@ -2,8 +2,10 @@
"dependencies": {
"@popperjs/core": "^2.10.2",
"bootstrap": "^5.1.3",
"bootstrap-datepicker": "^1.9.0",
"bootstrap-icons": "^1.7.0",
"d3": "^3.5.17",
"highcharts": "^9.3.1",
"jquery": "^3.6.0",
"js-cookie": "^3.0.1",
"list.js": "^2.3.1",
@ -21,6 +23,11 @@
"ietf/static/js/list.js",
"ietf/static/js/document_timeline.js",
"ietf/static/js/d3.js",
"ietf/static/js/datepicker.js",
"ietf/static/js/highcharts-highcharts.js",
"ietf/static/js/highcharts-highstock.js",
"ietf/static/js/highcharts-exporting.js",
"ietf/static/js/highcharts-offline-exporting.js",
"ietf/static/js/moment.js",
"ietf/static/js/agenda_filter.js",
"ietf/static/js/agenda_materials.js",
@ -30,9 +37,11 @@
"ietf/static/js/room_params.js",
"ietf/static/js/week-view.js",
"ietf/static/js/doc-search.js",
"ietf/static/js/stats.js",
"ietf/static/js/moment-timezone-with-data-10-year-range.js",
"ietf/static/css/ietf.scss",
"ietf/static/css/list.scss",
"ietf/static/css/datepicker.scss",
"ietf/static/images/ietflogo-small-transparent.png",
"ietf/static/images/ietflogo.png",
"ietf/static/images/apple-touch-icon.png",