More fixes

- Legacy-Id: 19759
This commit is contained in:
Lars Eggert 2021-12-08 08:55:45 +00:00
parent 1a7ed54783
commit 01504d8004
99 changed files with 4569 additions and 253 deletions

1
ietf/secr/static/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/dist

View file

@ -0,0 +1,786 @@
/*
DJANGO Admin styles
*/
body {
margin: 0;
padding: 0;
font-size: 12px;
font-family: "Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif;
color: #333;
background: #fff;
}
/* LINKS */
a:link, a:visited {
color: #5b80b2;
text-decoration: none;
}
a:hover {
color: #036;
}
a img {
border: none;
}
a.section:link, a.section:visited {
color: white;
text-decoration: none;
}
/* GLOBAL DEFAULTS */
p, ol, ul, dl {
margin: .2em 0 .8em 0;
}
p {
padding: 0;
line-height: 140%;
}
h1,h2,h3,h4,h5 {
font-weight: bold;
}
h1 {
font-size: 18px;
color: #666;
padding: 0 6px 0 0;
margin: 0 0 .2em 0;
}
h2 {
font-size: 16px;
margin: 1em 0 .5em 0;
}
h2.subhead {
font-weight: normal;
margin-top: 0;
}
h3 {
font-size: 14px;
margin: .8em 0 .3em 0;
color: #666;
font-weight: bold;
}
h4 {
font-size: 12px;
margin: 1em 0 .8em 0;
padding-bottom: 3px;
}
h5 {
font-size: 10px;
margin: 1.5em 0 .5em 0;
color: #666;
text-transform: uppercase;
letter-spacing: 1px;
}
ul li {
list-style-type: square;
padding: 1px 0;
}
ul.plainlist {
margin-left: 0 !important;
}
ul.plainlist li {
list-style-type: none;
}
li ul {
margin-bottom: 0;
}
li, dt, dd {
font-size: 11px;
line-height: 14px;
}
dt {
font-weight: bold;
margin-top: 4px;
}
dd {
margin-left: 0;
}
form {
margin: 0;
padding: 0;
}
fieldset {
margin: 0;
padding: 1em;
}
blockquote {
font-size: 11px;
color: #777;
margin-left: 2px;
padding-left: 10px;
border-left: 5px solid #ddd;
}
code, pre {
font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
background: inherit;
color: #666;
font-size: 11px;
}
pre.literal-block {
margin: 10px;
background: #eee;
padding: 6px 8px;
}
code strong {
color: #930;
}
hr {
clear: both;
color: #eee;
background-color: #eee;
height: 1px;
border: none;
margin: 0;
padding: 0;
font-size: 1px;
line-height: 1px;
}
/* TEXT STYLES & MODIFIERS */
.small {
font-size: 11px;
}
.tiny {
font-size: 10px;
}
p.tiny {
margin-top: -2px;
}
.mini {
font-size: 9px;
}
p.mini {
margin-top: -3px;
}
.help, p.help {
font-size: 10px !important;
color: #999;
}
p img, h1 img, h2 img, h3 img, h4 img, td img {
vertical-align: middle;
}
.quiet, a.quiet:link, a.quiet:visited {
color: #999 !important;
font-weight: normal !important;
}
.quiet strong {
font-weight: bold !important;
}
.float-right {
float: right;
}
.float-left {
float: left;
}
.clear {
clear: both;
}
.align-left {
text-align: left;
}
.align-right {
text-align: right;
}
.example {
margin: 10px 0;
padding: 5px 10px;
background: #efefef;
}
.nowrap {
white-space: nowrap;
}
/* TABLES */
table {
border-collapse: collapse;
border-color: #ccc;
}
td, th {
font-size: 11px;
line-height: 13px;
border-bottom: 1px solid #eee;
vertical-align: top;
padding: 5px;
font-family: "Lucida Grande", Verdana, Arial, sans-serif;
}
th {
text-align: left;
font-size: 12px;
font-weight: bold;
}
thead th,
tfoot td {
color: #666;
padding: 2px 5px;
font-size: 11px;
background: #e1e1e1 url(../images/nav-bg.webp) top left repeat-x;
border-left: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
tfoot td {
border-bottom: none;
border-top: 1px solid #ddd;
}
thead th:first-child,
tfoot td:first-child {
border-left: none !important;
}
thead th.optional {
font-weight: normal !important;
}
fieldset table {
border-right: 1px solid #eee;
}
tr.row-label td {
font-size: 9px;
padding-top: 2px;
padding-bottom: 0;
border-bottom: none;
color: #666;
margin-top: -1px;
}
tr.alt {
background: #f6f6f6;
}
.row1 {
background: #EDF3FE;
}
.row2 {
background: white;
}
/* SORTABLE TABLES */
thead th a:link, thead th a:visited {
color: #666;
display: block;
}
table thead th.sorted {
background-position: bottom left !important;
}
table thead th.sorted a {
padding-right: 13px;
}
table thead th.ascending a {
background: url(../images/arrow-down.webp) right .4em no-repeat;
}
table thead th.descending a {
background: url(../images/arrow-up.webp) right .4em no-repeat;
}
/* ORDERABLE TABLES */
table.orderable tbody tr td:hover {
cursor: move;
}
table.orderable tbody tr td:first-child {
padding-left: 14px;
background-image: url(../images/nav-bg-grabber.webp);
background-repeat: repeat-y;
}
table.orderable-initalized .order-cell, body>tr>td.order-cell {
display: none;
}
/* FORM DEFAULTS */
input, textarea, select {
margin: 2px 0;
padding: 2px 3px;
vertical-align: middle;
font-family: "Lucida Grande", Verdana, Arial, sans-serif;
font-weight: normal;
font-size: 11px;
}
textarea {
vertical-align: top !important;
}
input[type=text], input[type=password], textarea, select, .vTextField {
border: 1px solid #ccc;
}
/* FORM BUTTONS */
.button, input[type=submit], input[type=button], .submit-row input {
background: white url(../images/nav-bg.webp) bottom repeat-x;
padding: 3px;
color: black;
border: 1px solid #bbb;
border-color: #ddd #aaa #aaa #ddd;
}
.button:active, input[type=submit]:active, input[type=button]:active {
background-image: url(../images/nav-bg-reverse.webp);
background-position: top;
}
.button.default, input[type=submit].default, .submit-row input.default {
border: 2px solid #5b80b2;
background: #7CA0C7 url(../images/default-bg.webp) bottom repeat-x;
font-weight: bold;
color: white;
float: right;
}
.button.default:active, input[type=submit].default:active {
background-image: url(../images/default-bg-reverse.webp);
background-position: top;
}
/* MODULES */
.module {
border: 1px solid #ccc;
margin-bottom: 5px;
background: white;
}
.module p, .module ul, .module h3, .module h4, .module dl, .module pre {
padding-left: 10px;
padding-right: 10px;
}
.module blockquote {
margin-left: 12px;
}
.module ul, .module ol {
margin-left: 1.5em;
}
.module h3 {
margin-top: .6em;
}
.module h2, .module caption, .inline-group h2 {
margin: 0;
padding: 2px 5px 3px 5px;
font-size: 11px;
text-align: left;
font-weight: bold;
background: #7CA0C7 url(../images/default-bg.webp) top left repeat-x;
color: white;
}
.module table {
border-collapse: collapse;
}
/* MESSAGES & ERRORS */
ul.messagelist {
padding: 0 0 5px 0;
margin: 0;
}
ul.messagelist li {
font-size: 12px;
display: block;
padding: 4px 5px 4px 25px;
margin: 0 0 3px 0;
border-bottom: 1px solid #ddd;
color: #666;
background: #ffc url(../images/icon_success.webp) 5px .3em no-repeat;
}
/******** User feedback messages ********/
ul.messages {
padding: 0 0 5px 0;
margin: 0;
}
ul.messages li {
font-size: 12px;
display: block;
padding: 4px 5px 4px 25px;
margin: 0 0 3px 0;
border-bottom: 1px solid #ddd;
color: #666;
}
.info,
.success,
.warning,
.error,
.validation {
padding: 4px 5px 4px 25px;
margin: 0 0 3px 0;
border-bottom: 1px solid #ddd;
}
.info {
background: #ffc url(../images/icon_success.webp) 5px .3em no-repeat;
}
.success {
background: #ffc url(../images/icon_success.webp) 5px .3em no-repeat;
}
.warning {
background: #ffc url(../images/icon_alert.webp) 5px .3em no-repeat;
}
.error {
background: #ffc url(../images/icon_error.webp) 5px .3em no-repeat;
}
/******** /User feedback messages ********/
.errornote {
font-size: 12px !important;
display: block;
padding: 4px 5px 4px 25px;
margin: 0 0 3px 0;
border: 1px solid red;
color: red;
background: #ffc url(../images/icon_error.webp) 5px .3em no-repeat;
}
ul.errorlist {
margin: 0 !important;
padding: 0 !important;
}
.errorlist li {
font-size: 12px !important;
display: block;
padding: 4px 5px 4px 25px;
margin: 0 0 3px 0;
border: 1px solid red;
color: white;
background: red url(../images/icon_alert.webp) 5px .3em no-repeat;
}
td ul.errorlist {
margin: 0 !important;
padding: 0 !important;
}
td ul.errorlist li {
margin: 0 !important;
}
.errors {
background: #ffc;
}
.errors input, .errors select {
border: 1px solid red;
}
div.system-message {
background: #ffc;
margin: 10px;
padding: 6px 8px;
font-size: .8em;
}
div.system-message p.system-message-title {
padding: 4px 5px 4px 25px;
margin: 0;
color: red;
background: #ffc url(../images/icon_error.webp) 5px .3em no-repeat;
}
.description {
font-size: 12px;
padding: 5px 0 0 12px;
}
/* BREADCRUMBS */
div.breadcrumbs {
background: white url(../images/nav-bg-reverse.webp) 0 -10px repeat-x;
padding: 2px 8px 3px 8px;
font-size: 11px;
color: #999;
border-top: 1px solid white;
border-bottom: 1px solid #ccc;
text-align: left;
}
/* ACTION ICONS */
.addlink {
padding-left: 12px;
background: url(../images/icon_addlink.webp) 0 .2em no-repeat;
}
.changelink {
padding-left: 12px;
background: url(../images/icon_changelink.webp) 0 .2em no-repeat;
}
.deletelink {
padding-left: 12px;
background: url(../images/icon_deletelink.webp) 0 .25em no-repeat;
}
a.deletelink:link, a.deletelink:visited {
color: #CC3434;
}
a.deletelink:hover {
color: #993333;
}
/* OBJECT TOOLS */
.object-tools {
font-size: 10px;
font-weight: bold;
font-family: Arial,Helvetica,sans-serif;
padding-left: 0;
float: right;
position: relative;
margin-top: -2.4em;
margin-bottom: -2em;
}
.form-row .object-tools {
margin-top: 5px;
margin-bottom: 5px;
float: none;
height: 2em;
padding-left: 3.5em;
}
.object-tools li {
display: block;
float: left;
background: url(../images/tool-left.webp) 0 0 no-repeat;
padding: 0 0 0 8px;
margin-left: 2px;
height: 16px;
}
.object-tools li:hover {
background: url(../images/tool-left_over.webp) 0 0 no-repeat;
}
.object-tools a:link, .object-tools a:visited {
display: block;
float: left;
color: white;
padding: .1em 14px .1em 8px;
height: 14px;
background: #999 url(../images/tool-right.webp) 100% 0 no-repeat;
}
.object-tools a:hover, .object-tools li:hover a {
background: #5b80b2 url(../images/tool-right_over.webp) 100% 0 no-repeat;
}
.object-tools a.viewsitelink, .object-tools a.golink {
background: #999 url(../images/tooltag-arrowright.webp) top right no-repeat;
padding-right: 28px;
}
.object-tools a.viewsitelink:hover, .object-tools a.golink:hover {
background: #5b80b2 url(../images/tooltag-arrowright_over.webp) top right no-repeat;
}
.object-tools a.addlink {
background: #999 url(../images/tooltag-add.webp) top right no-repeat;
padding-right: 28px;
}
.object-tools a.addlink:hover {
background: #5b80b2 url(../images/tooltag-add_over.webp) top right no-repeat;
}
/* OBJECT HISTORY */
table#change-history {
width: 100%;
}
table#change-history tbody th {
width: 16em;
}
/* PAGE STRUCTURE */
#container {
position: relative;
width: 100%;
min-width: 760px;
padding: 0;
}
#content {
margin: 10px 15px;
}
#header {
width: 100%;
}
#content-main {
float: left;
width: 100%;
}
#content-related {
float: right;
width: 18em;
position: relative;
margin-right: -19em;
}
#footer {
clear: both;
padding: 10px;
}
/* COLUMN TYPES */
.colMS {
margin-right: 20em !important;
}
.colSM {
margin-left: 20em !important;
}
.colSM #content-related {
float: left;
margin-right: 0;
margin-left: -19em;
}
.colSM #content-main {
float: right;
}
.popup .colM {
width: 95%;
}
.subcol {
float: left;
width: 46%;
margin-right: 15px;
}
.dashboard #content {
width: 500px;
}
/* HEADER */
#header {
background: #417690;
color: #ffc;
overflow: hidden;
}
#header a:link, #header a:visited {
color: white;
}
#header a:hover {
text-decoration: underline;
}
#branding h1 {
padding: 0 10px;
font-size: 18px;
margin: 8px 0;
font-weight: normal;
color: #f4f379;
}
#branding h2 {
padding: 0 10px;
font-size: 14px;
margin: -8px 0 8px 0;
font-weight: normal;
color: #ffc;
}
#user-tools {
position: absolute;
top: 0;
right: 0;
padding: 1.2em 10px;
font-size: 11px;
text-align: right;
}
/* SIDEBAR */
#content-related h3 {
font-size: 12px;
color: #666;
margin-bottom: 3px;
}
#content-related h4 {
font-size: 11px;
}
#content-related .module h2 {
background: #eee url(../images/nav-bg.webp) bottom left repeat-x;
color: #666;
}

View file

@ -0,0 +1,845 @@
/*
Overrides (override existing properties from Django admin css)
*/
#container {
margin: 0 auto;
width: 760px;
}
#content {
margin: 10px auto;
}
#footer {
/* background-color: #DDDDDD;
background-color: #EEEEFF; */
color: #888888;
margin-top: 8px;
padding: 6px 0;
text-align: left;
font-size: 10px;
}
#footer-logo {
border-top: 1px solid #DDDDDD;
padding-top: 9px;
}
#footer-version {
float: left;
border-top: 1px solid #DDDDDD;
padding-top: 9px;
}
#footer ul {
margin: 0;
padding: 0 0 9px;
}
#footer li {
list-style-type: none;
font-size: 10px;
}
/*.inline-group th, td {
padding: 3px;
}*/
.object-tools {
float: left;
margin-bottom: 0;
margin-top: 0;
}
.errorlist li {
background: #FF8080 url(../images/icon_alert.webp) no-repeat scroll 5px 0.3em;
border: 1px solid #FF8080;
}
/* ==========================================================================
General Styles
========================================================================== */
.alert {
color: red;
}
.breadcrumbs td {
border-bottom: none;
}
.internal-form {
padding: 1em;
}
.message-right {
float: right;
color: Red;
}
.locked {
float: right;
}
.locked a {
color: Red;
text-decoration: underline;
}
.locked a:hover {
color: Blue;
text-decoration: underline;
}
.unlocked {
float: right;
}
.unlocked a {
color: White;
text-decoration: underline;
}
.unlocked a:hover {
color: Blue;
text-decoration: underline;
}
.login {
float: right;
color: white;
font-size: 12px;
vertical-align: bottom;
padding-right: 10px;
}
.menu li {
list-style-type: none;
}
ul.none li {
list-style-type: none;
}
.required {
color: red;
}
.loading {
display: block;
margin-left: auto;
margin-right: auto;
padding-top: 10px;
}
td.border-right {
border-right: #ccc 1px solid;
padding: 0;
}
tr.green-row {
background-color: #A5EEAA;
}
tr.red-row {
background-color: #FF66FF;
}
table.full-width {
width: 100%;
}
table.center {
margin-left: auto;
margin-right: auto;
width: 100%;
}
.new-style th {
text-align: right;
}
/* Buttons
========================================================================== */
.action-group ul {
list-style-type: none;
margin: 0;
padding: 7px;
text-align: center;
}
.action-group li {
list-style-type: none;
padding: 4px;}
.button.standard, input.standard[type="submit"] {
background: none;
}
.button-group {
clear: both;
width: auto;
height: 2.5em;
padding: 4px 7px;
background: white url(../images/nav-bg.webp) 0 100% repeat-x;
border: 0 solid #ccc;
border-top: 1px solid #ccc;
margin: 5px 0 0 0;
overflow: hidden;
}
.button-group ul {
list-style-type: none;
margin: 0;
padding: 7px;
text-align: center;
}
.button-group li {
display: inline;
padding: 5px;
}
button.fancy:hover {
background-color: #ffc;
}
/* Navigation Bar
========================================================================== */
#nav {
padding: 0;
}
.list-nav {
padding-left: 0;
margin-left: 0;
background-color: #36648B;
color: White;
width: 100%;
overflow: auto;
}
.list-nav li { display: inline; }
.list-nav li a {
padding: 0.2em;
width: 19%;
background-color: #36648B;
color: White;
text-decoration: none;
text-align: center;
float: left;
border-left: 1px solid #fff;
}
.rooms-times-nav .list-nav li a {
width: 25%;
}
.list-nav li.selected a {
background-color: #4F94CD;
}
.list-nav li.leftmost a {
border-left: none;
}
.list-nav li a:hover {
background-color: #4F94CD;
color: #fff;
}
.list-nav a.current {
background-color: #7CA0C7;
}
/* ==========================================================================
Announcement Tool
========================================================================== */
#announce-table input[type="text"] {
width: 40em;
}
#announce-table #id_body {
width: 40em;
}
#announce-table td {
border-bottom: none;
}
#announce-table th {
border-bottom: none;
}
#announce-confirm {
color: black;
font-family: "Courier New",Courier,monospace;
}
/* ==========================================================================
Area Tool
========================================================================== */
#areas-list-table td {
padding-left: 1em;
padding-right: 1em;
}
#area-awp-table input[type="text"] {
width: 40em;
}
#area-add-table #id_comments {
width: 40em;
}
#area-add-table #id_name {
width: 40em;
}
/* ==========================================================================
Draft Tool
========================================================================== */
input.draft-file-input {
width: 40em;
}
.draft-container #id_title {
height: 4em;
width: 40em;
}
.draft-container #id_pages {
width: 4em;
}
.draft-container #id_internal_comments {
height: 4em;
width: 40em;
}
.draft-container #id_abstract {
height: 15em;
width: 40em;
}
#draft-confirm-email th {
text-align: right;
font-weight: normal;
padding-right: 2em;
}
#draft-file-table label {
width: 12em;
/* text-align: right;
margin-right: 0.5em; */
margin-left: 1em;
display: block;
}
#draft-search-table th {
width: 15em;
}
#draft-view-col1 {
float: left;
width: 600px;
margin: 0;
border-right: 1px solid #CCCCCC;
}
#draft-view-col2 {
float: left;
width: 157px;
margin: 0;
padding: 0;
}
#draft-edit-col1 {
float: left;
width: 620px;
margin: 0;
border-right: 1px solid #CCCCCC;
}
#draft-edit-col2 {
float: left;
width: 137px;
margin: 0;
padding: 0;
}
#draft-edit-table #id_name {
width: 30em;
}
#draft-email-table #id_cc {
width: 60em;
}
#draft-email-table #id_subject {
width: 60em;
}
#draft-email-table #id_to {
width: 60em;
}
#draft-email-table #id_body {
width: 60em;
}
#draft-search-form #id_document_title {
width: 40em;
}
#draft-search-form #id_group {
width: 40em;
}
#draft-search-form #id_filename {
width: 40em;
}
#draft-obsoletes-table input[type="text"] {
width: 3.5em;
}
/* ==========================================================================
Group Tool
========================================================================== */
.awp-form input {
width: 30em;
}
#groups-table #id_name,#id_list_email,#id_list_subscribe,#id_list_archive {
width: 40em;
}
#groups-table #id_comments {
width: 40em;
}
#group-description-form #id_description {
width: 90%;
}
#group-search-results td {
font-size: xx-small;
}
#groups-people-col1 {
width: 75%;
}
#groups-people-col2 {
width: 25%;
}
#groups-view-col1 {
float: left;
width: 620px;
margin: 0;
border-right: 1px solid #CCCCCC;
}
#groups-view-col2 {
float: left;
width: 137px;
margin: 0;
padding: 0;
}
/* ==========================================================================
Meeting Tool
========================================================================== */
#misc-sessions .from-base-schedule {
text-align: centeR;
opacity: 0.7;
}
#misc-session-edit-form input[type="text"] {
width: 30em;
}
#additional-info-form #id_text {
width: 90%;
}
#meetings-schedule-form input[type="text"] {
width: 30em;
}
#timeslot-form #id_time,#id_duration {
width: 5em;
}
#timeslot-form #id_name {
width: 30em;
}
#timeslot-form th {
width: 60px;
}
#id_duration input {
width: 5em;
}
tr.break td {
border-top: 2px solid black;
}
tr.cancelled {
background-color: #e12817;
color: white;
}
#id_schedule_selector {
display: inline;
}
#id_rooms_table input[type="number"] {
width: 4em;
}
/* ==========================================================================
Proceedings Tool
========================================================================== */
input#id_slide_name {
width: 30em;
}
input#id_title {
width: 30em;
}
div.interim-scroll {
height: 300px;
overflow: auto;
}
.highlight {
color: #FF0000;
}
.internal-form label {
float: left;
width: 100px;
text-align: right;
padding-right: 10px;
}
.internal-form select {
min-width: 100px;
}
#interim-directory-table td {
padding-left: 2em;
padding-right: 2em;
}
#proceedings-interim-table td {
white-space:pre-wrap;
padding-left: 1em;
padding-right: 1em;
/* font-family: "Courier",monospace; */
}
#proceedings-list-table td {
padding-left: 1em;
padding-right: 1em;
}
#proceedings-add-table th {
width: 25%;
}
#proceedings-edit-table th {
width: 25%;
}
#proceedings-upload-table th {
text-align: right;
width: 30%;
}
#proceedings-view-first-col {
width: 30%;
}
#proceedings-left-col {
float: left;
width: 378px;
margin: 0;
border-right: 1px solid #CCCCCC;
}
#proceedings-right-col {
float: left;
width: 377px;
margin: 0;
border-right: 1px solid #CCCCCC;
border-left: 1px solid #CCCCCC;
}
#recording-form #id_external_url {
width: 40em;
}
td.hidden {
display: none;
}
td.document-name {
white-space: nowrap;
}
/* ==========================================================================
Role Tool
========================================================================== */
.name-autocomplete {
width: 300px;
}
/* ==========================================================================
Rolodex Tool
========================================================================== */
form[id^="rolodex-"] input[type=text] {
width: 25em;
}
form[id^="rolodex-"] #id_address {
width: 25em;
height: 7em;
}
/* ==========================================================================
Session Request Tool
========================================================================== */
tr.bg1 {
background: #CCCCCC;
}
tr.bg2 {
background: #EEEEEE;
}
tr.bg3 {
background: #DDDDDD;
}
/*
table#sessions-new-table td {
padding: 2px;
border-spacing: 2px;
border: 1;
}
*/
#id_number_attendee {
width: 3em;
}
input.wg_constraint { width: 37em; }
input.wg_constraint:disabled {
background-color: #ffe0e0;
cursor: not-allowed;
}
ul.session-buttons {
padding-left: 2px;
margin-left: 0;
}
.session-buttons li {
list-style-type: none;
padding-left: 0;
}
/* ==========================================================================
Telechat Tool
========================================================================== */
#telechat-sidebar {
float: left;
width: 294px;
background: url("../images/default-bg.webp") repeat-x scroll left top #7CA0C7;
color: white;
min-height: 500px;
padding: 0 0 0 6px;
}
#telechat-sidebar h2 {
text-align: center;
}
#telechat-sidebar ul {
/*list-style-type: none;*/
padding: 0;
}
#telechat-sidebar ul.doc-list {
list-style-type: circle;
}
#telechat-sidebar ul.doc-list {
margin-bottom: 0.8em;
}
ul.doc-list li {
list-style-type: circle;
}
#telechat-sidebar ul ul {
list-style-type: circle;
}
#telechat-sidebar a:link {
color: #FFFF99;
}
#telechat-sidebar a:visited {
color: #FFFF99;
}
#telechat-sidebar a:hover {
color: #FF0000;
}
#telechat-sidebar li.level1 {
font-size: 110%;
}
#telechat-sidebar li.level3 + li.level2 {
margin-top: 1em;
}
#telechat-sidebar li.level3 + li.level1 {
margin-top: 1.5em;
}
#telechat-sidebar li div {
font-style: italic;
}
#telechat-positions-table td {
text-align: center;
}
/*
#telechat-sidebar ol {
list-style-position: outside;
counter-reset: item;
padding: 0px;
}
#telechat-sidebar li { display: block }
#telechat-sidebar li li { display: block; padding: 3px 3px 3px 3px; }
#telechat-sidebar li:before { content: counters(item, ".") " "; counter-increment: item }
*/
#telechat-main {
float: left;
padding-left: 20px;
width: 640px;
}
#telechat-main pre {
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
.right-nav {
float: right;
}
.telechat-warn h3 {
color: white;
text-align: center;
background-color: #FF66FF;
}
.telechat-button {
height: 2.5em;
padding: 4px 7px;
width: auto;
margin: 0 auto;
}
.telechat-button ul {
list-style-type: none;
margin: 0;
padding: 7px;
text-align: center;
}
.telechat-button li {
list-style-type: none;
text-align: center;
}
/* ==========================================================================
Redesign Section
========================================================================== */
table.amstable {
background-color: #F2F2E6;
}
table.amstable th {
color: #666666;
font-size: 12px;
font-weight: normal !important;
padding-left: 1em;
padding-right: 1em;
text-align: right;
}
table.amsview th {
border-bottom: none;
color: #666666;
font-size: 13px;
padding: 4px 10px 4px 4px;
text-align: right;
vertical-align: middle;
}
table.amsview td {
border-bottom: none;
vertical-align: middle;
padding: 4px 10px 4px 4px;
}
.button-group {
background: #F2F2E6;
}
td, th, li, h2 {
font-size: 12px;
}
.module h2 {
font-size: 12px;
}
thead th {
font-size: 12px;
}

View file

@ -0,0 +1,354 @@
@import url('widgets.css');
/* FORM ROWS */
.form-row {
overflow: hidden;
padding: 8px 12px;
font-size: 11px;
border-bottom: 1px solid #eee;
}
.form-row img, .form-row input {
vertical-align: middle;
}
form .form-row p {
padding-left: 0;
font-size: 11px;
}
/* FORM LABELS */
form h4 {
margin: 0 !important;
padding: 0 !important;
border: none !important;
}
label {
font-weight: normal !important;
color: #666;
font-size: 12px;
}
.required label, label.required {
font-weight: bold !important;
color: #333 !important;
}
/* RADIO BUTTONS */
form ul.radiolist li {
list-style-type: none;
}
form ul.radiolist label {
float: none;
display: inline;
}
form ul.inline {
margin-left: 0;
padding: 0;
}
form ul.inline li {
float: left;
padding-right: 7px;
}
/* ALIGNED FIELDSETS */
.aligned label {
display: block;
padding: 3px 10px 0 0;
float: left;
width: 8em;
}
.aligned ul label {
display: inline;
float: none;
width: auto;
}
.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField {
width: 350px;
}
form .aligned p, form .aligned ul {
margin-left: 7em;
padding-left: 30px;
}
form .aligned table p {
margin-left: 0;
padding-left: 0;
}
form .aligned p.help {
padding-left: 38px;
}
.aligned .vCheckboxLabel {
float: none !important;
display: inline;
padding-left: 4px;
}
.colM .aligned .vLargeTextField, .colM .aligned .vXMLLargeTextField {
width: 610px;
}
.checkbox-row p.help {
margin-left: 0;
padding-left: 0 !important;
}
fieldset .field-box {
float: left;
margin-right: 20px;
}
/* WIDE FIELDSETS */
.wide label {
width: 15em !important;
}
form .wide p {
margin-left: 15em;
}
form .wide p.help {
padding-left: 38px;
}
.colM fieldset.wide .vLargeTextField, .colM fieldset.wide .vXMLLargeTextField {
width: 450px;
}
/* COLLAPSED FIELDSETS */
fieldset.collapsed * {
display: none;
}
fieldset.collapsed h2, fieldset.collapsed {
display: block !important;
}
fieldset.collapsed h2 {
background-image: url(../images/nav-bg.webp);
background-position: bottom left;
color: #999;
}
fieldset.collapsed .collapse-toggle {
background: transparent;
display: inline !important;
}
/* MONOSPACE TEXTAREAS */
fieldset.monospace textarea {
font-family: "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace;
}
/* SUBMIT ROW */
.submit-row {
padding: 5px 7px;
text-align: right;
background: white url(../images/nav-bg.webp) 0 100% repeat-x;
border: 1px solid #ccc;
margin: 5px 0;
overflow: hidden;
}
.submit-row input {
margin: 0 0 0 5px;
}
.submit-row p {
margin: 0.3em;
}
.submit-row p.deletelink-box {
float: left;
}
.submit-row .deletelink {
background: url(../images/icon_deletelink.webp) 0 50% no-repeat;
padding-left: 14px;
}
/* CUSTOM FORM FIELDS */
.vSelectMultipleField {
vertical-align: top !important;
}
.vCheckboxField {
border: none;
}
.vDateField, .vTimeField {
margin-right: 2px;
}
.vURLField {
width: 30em;
}
.vLargeTextField, .vXMLLargeTextField {
width: 48em;
}
.flatpages-flatpage #id_content {
height: 40.2em;
}
.module table .vPositiveSmallIntegerField {
width: 2.2em;
}
.vTextField {
width: 20em;
}
.vIntegerField {
width: 5em;
}
.vForeignKeyRawIdAdminField {
width: 5em;
}
/* INLINES */
.inline-group {
padding: 0;
border: 1px solid #ccc;
margin: 10px 0;
}
.inline-group .aligned label {
width: 8em;
}
.inline-related {
position: relative;
}
.inline-related h3 {
margin: 0;
color: #666;
padding: 3px 5px;
font-size: 11px;
background: #e1e1e1 url(../images/nav-bg.webp) top left repeat-x;
border-bottom: 1px solid #ddd;
}
.inline-related h3 span.delete {
float: right;
}
.inline-related h3 span.delete label {
margin-left: 2px;
font-size: 11px;
}
.inline-related fieldset {
margin: 0;
background: #fff;
border: none;
}
.inline-related fieldset.module h3 {
margin: 0;
padding: 2px 5px 3px 5px;
font-size: 11px;
text-align: left;
font-weight: bold;
background: #bcd;
color: #fff;
}
.inline-group .tabular fieldset.module {
border: none;
border-bottom: 1px solid #ddd;
}
.inline-related.tabular fieldset.module table {
width: 100%;
}
.last-related fieldset {
border: none;
}
.inline-group .tabular tr.has_original td {
padding-top: 2em;
}
.inline-group .tabular tr td.original {
padding: 2px 0 0 0;
width: 0;
_position: relative;
}
.inline-group .tabular th.original {
width: 0px;
padding: 0;
}
.inline-group .tabular td.original p {
position: absolute;
left: 0;
height: 1.1em;
padding: 2px 7px;
overflow: hidden;
font-size: 9px;
font-weight: bold;
color: #666;
_width: 700px;
}
.inline-group ul.tools {
padding: 0;
margin: 0;
list-style: none;
}
.inline-group ul.tools li {
display: inline;
padding: 0 5px;
}
.inline-group div.add-row,
.inline-group .tabular tr.add-row td {
color: #666;
padding: 3px 5px;
border-bottom: 1px solid #ddd;
background: #e1e1e1 url(../images/nav-bg.webp) top left repeat-x;
}
.inline-group .tabular tr.add-row td {
padding: 4px 5px 3px;
border-bottom: none;
}
.inline-group ul.tools a.add,
.inline-group div.add-row a,
.inline-group .tabular tr.add-row td a {
background: url(../images/icon_addlink.webp) 0 50% no-repeat;
padding-left: 14px;
font-size: 11px;
outline: 0; /* Remove dotted border around link */
}
.empty-form {
display: none;
}

View file

@ -0,0 +1,10 @@
#container {
margin: 0 auto;
width: 960px;
}
ul#list-nav li a {
width: 19%;
background-color: #36648B;
}

View file

@ -0,0 +1,3 @@
body {
background-image:url('../images/test-background.png');
}

View file

@ -0,0 +1,505 @@
/* SELECTOR (FILTER INTERFACE) */
.selector {
width: 580px;
float: left;
}
.selector select {
width: 270px;
height: 17.2em;
}
.selector-available, .selector-chosen {
float: left;
width: 270px;
text-align: center;
margin-bottom: 5px;
}
.selector-available h2, .selector-chosen h2 {
border: 1px solid #ccc;
}
.selector .selector-available h2 {
background: white url(../images/nav-bg.webp) bottom left repeat-x;
color: #666;
}
.selector .selector-filter {
background: white;
border: 1px solid #ccc;
border-width: 0 1px;
padding: 3px;
color: #999;
font-size: 10px;
margin: 0;
text-align: left;
}
.selector .selector-chosen .selector-filter {
padding: 4px 5px;
}
.selector .selector-available input {
width: 230px;
}
.selector ul.selector-chooser {
float: left;
width: 22px;
height: 50px;
background: url(../images/chooser-bg.webp) top center no-repeat;
margin: 8em 3px 0 3px;
padding: 0;
}
.selector-chooser li {
margin: 0;
padding: 3px;
list-style-type: none;
}
.selector select {
margin-bottom: 5px;
margin-top: 0;
}
.selector-add, .selector-remove {
width: 16px;
height: 16px;
display: block;
text-indent: -3000px;
}
.selector-add {
background: url(../images/selector-add.webp) top center no-repeat;
margin-bottom: 2px;
}
.selector-remove {
background: url(../images/selector-remove.webp) top center no-repeat;
}
a.selector-chooseall, a.selector-clearall {
display: block;
width: 6em;
text-align: left;
margin-left: auto;
margin-right: auto;
font-weight: bold;
color: #666;
padding: 3px 0 3px 18px;
}
a.selector-chooseall:hover, a.selector-clearall:hover {
color: #036;
}
a.selector-chooseall {
width: 7em;
background: url(../images/selector-addall.webp) left center no-repeat;
}
a.selector-clearall {
background: url(../images/selector-removeall.webp) left center no-repeat;
}
/* STACKED SELECTORS */
.stacked {
float: left;
width: 500px;
}
.stacked select {
width: 480px;
height: 10.1em;
}
.stacked .selector-available, .stacked .selector-chosen {
width: 480px;
}
.stacked .selector-available {
margin-bottom: 0;
}
.stacked .selector-available input {
width: 442px;
}
.stacked ul.selector-chooser {
height: 22px;
width: 50px;
margin: 0 0 3px 40%;
background: url(../images/chooser_stacked-bg.webp) top center no-repeat;
}
.stacked .selector-chooser li {
float: left;
padding: 3px 3px 3px 5px;
}
.stacked .selector-chooseall, .stacked .selector-clearall {
display: none;
}
.stacked .selector-add {
background-image: url(../images/selector_stacked-add.webp);
}
.stacked .selector-remove {
background-image: url(../images/selector_stacked-remove.webp);
}
/* DATE AND TIME */
p.datetime {
line-height: 20px;
margin: 0;
padding: 0;
color: #666;
font-size: 11px;
font-weight: bold;
}
.datetime span {
font-size: 11px;
color: #ccc;
font-weight: normal;
white-space: nowrap;
}
table p.datetime {
font-size: 10px;
margin-left: 0;
padding-left: 0;
}
/* FILE UPLOADS */
p.file-upload {
line-height: 20px;
margin: 0;
padding: 0;
color: #666;
font-size: 11px;
font-weight: bold;
}
.file-upload a {
font-weight: normal;
}
.file-upload .deletelink {
margin-left: 5px;
}
/* CALENDARS & CLOCKS */
.calendarbox, .clockbox {
margin: 5px auto;
font-size: 11px;
width: 16em;
text-align: center;
background: white;
position: relative;
}
.clockbox {
width: auto;
}
.calendar {
margin: 0;
padding: 0;
}
.calendar table {
margin: 0;
padding: 0;
border-collapse: collapse;
background: white;
width: 99%;
}
.calendar caption, .calendarbox h2 {
margin: 0;
font-size: 11px;
text-align: center;
border-top: none;
}
.calendar th {
font-size: 10px;
color: #666;
padding: 2px 3px;
text-align: center;
background: #e1e1e1 url(../images/nav-bg.webp) 0 50% repeat-x;
border-bottom: 1px solid #ddd;
}
.calendar td {
font-size: 11px;
text-align: center;
padding: 0;
border-top: 1px solid #eee;
border-bottom: none;
}
.calendar td.selected a {
background: #C9DBED;
}
.calendar td.nonday {
background: #efefef;
}
.calendar td.today a {
background: #ffc;
}
.calendar td a, .timelist a {
display: block;
font-weight: bold;
padding: 4px;
text-decoration: none;
color: #444;
}
.calendar td a:hover, .timelist a:hover {
background: #5b80b2;
color: white;
}
.calendar td a:active, .timelist a:active {
background: #036;
color: white;
}
.calendarnav {
font-size: 10px;
text-align: center;
color: #ccc;
margin: 0;
padding: 1px 3px;
}
.calendarnav a:link, #calendarnav a:visited, #calendarnav a:hover {
color: #999;
}
.calendar-shortcuts {
background: white;
font-size: 10px;
line-height: 11px;
border-top: 1px solid #eee;
padding: 3px 0 4px;
color: #ccc;
}
.calendarbox .calendarnav-previous, .calendarbox .calendarnav-next {
display: block;
position: absolute;
font-weight: bold;
font-size: 12px;
background: #C9DBED url(../images/default-bg.webp) bottom left repeat-x;
padding: 1px 4px 2px 4px;
color: white;
}
.calendarnav-previous:hover, .calendarnav-next:hover {
background: #036;
}
.calendarnav-previous {
top: 0;
left: 0;
}
.calendarnav-next {
top: 0;
right: 0;
}
.calendar-cancel {
margin: 0 !important;
padding: 0;
font-size: 10px;
background: #e1e1e1 url(../images/nav-bg.webp) 0 50% repeat-x;
border-top: 1px solid #ddd;
}
.calendar-cancel a {
padding: 2px;
color: #999;
}
ul.timelist, .timelist li {
list-style-type: none;
margin: 0;
padding: 0;
}
.timelist a {
padding: 2px;
}
/* INLINE ORDERER */
ul.orderer {
position: relative;
padding: 0 !important;
margin: 0 !important;
list-style-type: none;
}
ul.orderer li {
list-style-type: none;
display: block;
padding: 0;
margin: 0;
border: 1px solid #bbb;
border-width: 0 1px 1px 0;
white-space: nowrap;
overflow: hidden;
background: #e2e2e2 url(../images/nav-bg-grabber.webp) repeat-y;
}
ul.orderer li:hover {
cursor: move;
background-color: #ddd;
}
ul.orderer li a.selector {
margin-left: 12px;
overflow: hidden;
width: 83%;
font-size: 10px !important;
padding: 0.6em 0;
}
ul.orderer li a:link, ul.orderer li a:visited {
color: #333;
}
ul.orderer li .inline-deletelink {
position: absolute;
right: 4px;
margin-top: 0.6em;
}
ul.orderer li.selected {
background-color: #f8f8f8;
border-right-color: #f8f8f8;
}
ul.orderer li.deleted {
background: #bbb url(../images/deleted-overlay.webp);
}
ul.orderer li.deleted a:link, ul.orderer li.deleted a:visited {
color: #888;
}
ul.orderer li.deleted .inline-deletelink {
background-image: url(../images/inline-restore.png);
}
ul.orderer li.deleted:hover, ul.orderer li.deleted a.selector:hover {
cursor: default;
}
/* EDIT INLINE */
.inline-deletelink {
display: block;
text-indent: -9999px;
background: transparent url(../images/inline-delete.png) no-repeat;
width: 15px;
height: 15px;
margin: 0.4em 0;
border: 0px none;
}
.inline-deletelink:hover {
background-position: -15px 0;
cursor: pointer;
}
.editinline button.addlink {
border: 0px none;
color: #5b80b2;
font-size: 100%;
cursor: pointer;
}
.editinline button.addlink:hover {
color: #036;
cursor: pointer;
}
.editinline table .help {
text-align: right;
float: right;
padding-left: 2em;
}
.editinline tfoot .addlink {
white-space: nowrap;
}
.editinline table thead th:last-child {
border-left: none;
}
.editinline tr.deleted {
background: #ddd url(../images/deleted-overlay.webp);
}
.editinline tr.deleted .inline-deletelink {
background-image: url(../images/inline-restore.png);
}
.editinline tr.deleted td:hover {
cursor: default;
}
.editinline tr.deleted td:first-child {
background-image: none !important;
}
/* EDIT INLINE - STACKED */
.editinline-stacked {
min-width: 758px;
}
.editinline-stacked .inline-object {
margin-left: 210px;
background: white;
}
.editinline-stacked .inline-source {
float: left;
width: 200px;
background: #f8f8f8;
}
.editinline-stacked .inline-splitter {
float: left;
width: 9px;
background: #f8f8f8 url(../images/inline-splitter-bg.webp) 50% 50% no-repeat;
border-right: 1px solid #ccc;
}
.editinline-stacked .controls {
clear: both;
background: #e1e1e1 url(../images/nav-bg.webp) top left repeat-x;
padding: 3px 4px;
font-size: 11px;
border-top: 1px solid #ddd;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

View file

@ -0,0 +1,66 @@
/* Following functions based off code written by Arne Brodowski
http://www.arnebrodowski.de/blog/507-Add-and-remove-Django-Admin-Inlines-with-JavaScript.html
2012-02-01 customized for new Rolodex. Email formset doesn't have an id field, rather a "address"
field as primary key. Also for some reason the "active" boolean field doesn't get saved properly
if the checkbox input has an empty "value" argument.
*/
function increment_form_ids(el, to, name) {
var from = to-1
$(':input', $(el)).each(function(i,e){
var old_name = $(e).attr('name')
var old_id = $(e).attr('id')
$(e).attr('name', old_name.replace(from, to))
$(e).attr('id', old_id.replace(from, to))
if ($(e).attr('type') != 'checkbox') {
$(e).val('')
}
})
}
function add_inline_form(name) {
if (name=="email") {
var first = $('#id_'+name+'-0-address').parents('.inline-related')
}
else {
var first = $('#id_'+name+'-0-id').parents('.inline-related')
}
// check to see if this is a stacked or tabular inline
if (first.hasClass("tabular")) {
var field_table = first.parent().find('table > tbody')
var count = field_table.children().length
var copy = $('tr:last', field_table).clone(true)
copy.removeClass("row1 row2")
copy.find("input[name$='address']").removeAttr("readonly")
copy.addClass("row"+((count % 2) == 0 ? 1 : 2))
field_table.append(copy)
increment_form_ids($('tr:last', field_table), count, name)
}
else {
var last = $(first).parent().children('.last-related')
var copy = $(last).clone(true)
var count = $(first).parent().children('.inline-related').length
$(last).removeClass('last-related')
var header = $('h3', copy)
header.html(header.html().replace("#"+count, "#"+(count+1)))
$(last).after(copy)
increment_form_ids($(first).parents('.inline-group').children('.last-related'), count, name)
}
$('input#id_'+name+'-TOTAL_FORMS').val(count+1)
return false;
}
// Add all the "Add Another" links to the bottom of each inline group
$(function() {
var html_template = '<ul class="tools">'+
'<li>'+
'<a class="addlink" href="#" onclick="return add_inline_form(\'{{prefix}}\')">'+
'Add another</a>'+
'</li>'+
'</ul>'
$('.inline-group').each(function(i) {
//prefix is in the name of the input fields before the "-"
var prefix = $("input[type='hidden'][name!='csrfmiddlewaretoken']", this).attr("name").split("-")[0]
$(this).append(html_template.replace("{{prefix}}", prefix))
})
})

View file

@ -0,0 +1,6 @@
/* proceedings-recordings.js - utility functions */
$(document).ready(function() {
$('#id_session').select2({ placeholder: 'Type group acronym or part of session name', width: '450px' });;
});

View file

@ -0,0 +1,28 @@
/* Copyright The IETF Trust 2021, All Rights Reserved
*
* JS support for the SessionForm
* */
(function() {
'use strict';
function track_common_input(input, name_suffix) {
const handler = function() {
const hidden_inputs = document.querySelectorAll(
'.session-details-form input[name$="-' + name_suffix + '"]'
);
for (let hi of hidden_inputs) {
hi.value = input.value;
}
};
input.addEventListener('change', handler);
handler();
}
function initialize() {
// Keep all the hidden inputs in sync with the main form
track_common_input(document.getElementById('id_attendees'), 'attendees');
track_common_input(document.getElementById('id_comments'), 'comments');
}
window.addEventListener('load', initialize);
})();

View file

@ -0,0 +1,159 @@
// Copyright The IETF Trust 2015-2021, All Rights Reserved
/* global alert */
var ietf_sessions; // public interface
(function() {
'use strict';
function get_formset_management_data(prefix) {
return {
total_forms: document.getElementById('id_' + prefix + '-TOTAL_FORMS').value,
};
}
function update_session_form_visibility(session_num, is_visible) {
const elt = document.getElementById('session_row_' + session_num);
if (elt) {
elt.hidden = !is_visible;
elt.querySelector('[name$="DELETE"]').value = is_visible ? '' : 'on';
}
}
function have_additional_session() {
const elt = document.getElementById('id_third_session');
return elt && elt.checked;
}
function update_for_num_sessions(val) {
const total_forms = get_formset_management_data('session_set').total_forms;
val = Number(val);
if (have_additional_session()) {
val++;
}
for (let i=0; i < total_forms; i++) {
update_session_form_visibility(i, i < val);
}
const only_one_session = (val === 1);
if (document.form_post.session_time_relation) {
document.form_post.session_time_relation.disabled = only_one_session;
document.form_post.session_time_relation.closest('tr').hidden = only_one_session;
}
if (document.form_post.joint_for_session) {
document.form_post.joint_for_session.disabled = only_one_session;
}
const third_session_row = document.getElementById('third_session_row');
if (third_session_row) {
third_session_row.hidden = val < 2;
}
}
function delete_last_joint_with_groups () {
var b = document.form_post.joint_with_groups.value;
var temp = b.split(' ');
temp.pop();
b = temp.join(' ');
document.form_post.joint_with_groups.value = b;
document.form_post.joint_with_groups_selector.selectedIndex=0;
}
/*******************************************************************/
// WG constraint UI support
// get the constraint field element for a given slug
function constraint_field(slug) {
return document.getElementById('id_constraint_' + slug);
}
// get the wg selection element for a given slug
function constraint_selector(slug) {
return document.getElementById('id_wg_selector_' + slug);
}
/**
* Handler for constraint select input 'change' event
*/
function wg_constraint_selector_changed() {
let slug = this.getAttribute('data-slug');
let cfield = constraint_field(slug);
// add selected value to constraint_field
cfield.value += ' ' + this.options[this.selectedIndex].value;
}
/**
* Remove the last group in a WG constraint field
*
* @param slug ConstraintName slug
*/
function delete_last_wg_constraint(slug) {
let cfield = constraint_field(slug);
if (cfield) {
var b = cfield.value;
var temp = b.split(' ');
temp.pop();
b = temp.join(' ');
cfield.value = b;
constraint_selector(slug).selectedIndex = 0;
}
}
/**
* Handle click event on a WG constraint's delete button
*
* @param slug ConstraintName slug
*/
function delete_wg_constraint_clicked(slug) {
delete_last_wg_constraint(slug);
}
/**
* Handler for the change event on the session count select or 'third session' checkbox
*/
function handle_num_session_change(event) {
const num_select_value = Number(event.target.value);
if (num_select_value !== 2) {
if (document.form_post.third_session) {
document.form_post.third_session.checked = false;
}
}
update_for_num_sessions(num_select_value);
}
function handle_third_session_change(event) {
const num_select_value = Number(document.getElementById('id_num_session').value);
if (num_select_value === 2) {
update_for_num_sessions(num_select_value);
} else {
event.target.checked = false;
}
}
/* Initialization */
function on_load() {
// Attach event handler to session count select
const num_session_select = document.getElementById('id_num_session');
num_session_select.addEventListener('change', handle_num_session_change);
const third_session_input = document.getElementById('id_third_session');
if (third_session_input) {
third_session_input.addEventListener('change', handle_third_session_change);
}
update_for_num_sessions(num_session_select.value);
// Attach event handlers to constraint selectors
let selectors = document.getElementsByClassName('wg_constraint_selector');
for (let index = 0; index < selectors.length; index++) {
selectors[index].addEventListener('change', wg_constraint_selector_changed, false)
}
}
// initialize after page loads
window.addEventListener('load', on_load, false);
// expose public interface methods
ietf_sessions = {
delete_last_joint_with_groups: delete_last_joint_with_groups,
delete_wg_constraint_clicked: delete_wg_constraint_clicked
}
})();

View file

@ -0,0 +1,253 @@
/* utils.js - utility functions */
// set X-CSRFToken AJAX request header
// from https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
var csrftoken = getCookie('csrftoken');
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
function sameOrigin(url) {
// test that a given url is a same-origin URL
// url could be relative or scheme relative or absolute
var host = document.location.host; // host + port
var protocol = document.location.protocol;
var sr_origin = '//' + host;
var origin = protocol + sr_origin;
// Allow absolute or scheme relative URLs to same origin
return (url == origin || url.slice(0, origin.length + 1) == origin + '/') ||
(url == sr_origin || url.slice(0, sr_origin.length + 1) == sr_origin + '/') ||
// or any other URL that isn't scheme relative or absolute i.e relative.
!(/^(\/\/|http:|https:).*/.test(url));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && sameOrigin(settings.url)) {
// Send the token to same-origin, relative URLs only.
// Send the token only if the method warrants CSRF protection
// Using the CSRFToken value acquired earlier
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
// end set csrftoken
//returns the requested GET parameter from the URL
function get_param(param) {
var regex = '[?&]' + param + '=([^&#]*)';
var results = (new RegExp(regex)).exec(window.location.href);
if(results) return results[1];
return '';
}
function restripe(id) {
$(id + ' tbody tr:visible:even').removeClass('row1 row2').addClass('row1');
$(id + ' tbody tr:visible:odd').removeClass('row1 row2').addClass('row2');
}
function init_area_table() {
// add "Show All" button
$("#areas-button-list").append('<li><button type="button" id="areas-list-toggle" value="Show All">Show All</button></li>');
// register button
$("#areas-list-toggle").click(function() {
if (this.value == "Show All") {
$('#areas-list-table tbody tr:not(.active)').show();
$(this).val("Show Active");
$(this).text("Show Active");
} else if (this.value == "Show Active") {
$('#areas-list-table tbody tr:not(.active)').hide();
$(this).val("Show All");
$(this).text("Show All");
}
// restripe the table
restripe('#areas-list-table');
});
// hide non-active areas
$('#areas-list-table tbody tr:not(.active)').hide();
restripe('#areas-list-table');
}
function style_current_tab() {
path_array = window.location.pathname.split('/');
page = path_array[path_array.length-2];
id = "#nav-" + page;
$(id + ' a').addClass('current');
}
/*********************************
/*Functions : For Proceedings */
/*********************************/
function change_material_type(obj) {
if (obj.value == "Agenda") {
alert('agenda');
}
}
function init_proceedings_upload() {
// dynamic help message
$('#id_material_type').change(function() {
if(this.value == "slides") {
//alert('Presentation handler called');
$('div#id_file_help').html("Note 1: You can only upload a presentation file in txt, pdf, doc, or ppt/pptx. System will not accept presentation files in any other format.<br><br>Note 2: All uploaded files will be available to the public immediately on the Preliminary Page. However, for the Proceedings, ppt/pptx files will be converted to html format and doc files will be converted to pdf format manually by the Secretariat staff.");
$('#id_slide_name').attr('disabled', false);
}
if(this.value == "minutes") {
//alert('Minutes handler called');
$('div#id_file_help').html("Note: You can only upload minutes in txt/html/ppt/pdf formats. System will not accept minutes in any other format.");
$('#id_slide_name').attr('disabled', true);
$('#id_slide_name').val('');
}
if(this.value == "agenda") {
//alert('Agenda handler called');
$('div#id_file_help').html("Note: You can only upload agendas in txt/html/ppt/pdf formats. System will not accept agendas in any other format.");
$('#id_slide_name').attr('disabled', true);
$('#id_slide_name').val('');
}
});
// handle slide sorting
$('#slides.sortable tbody').sortable({
axis:'y',
//containment:'parent',
update: function(event, ui){
var data = $(this).sortable("toArray");
var element_id = ui.item.attr("id");
var slide_name = $("tr#"+element_id+" td.hidden").text();
var order = $.inArray(element_id,data);
$.post('/secr/proceedings/ajax/order-slide/',{'slide_name':slide_name,'order':order});
// restripe the table
restripe('#slides.sortable');
}
}).disableSelection();
}
function init_proceedings_table() {
// do only if table with secretariat class exists
if ($('table.secretariat').length) {
// add "Show All" button
$("#proceedings-meeting-buttons").append('<li><button type="button" id="proceedings-list-toggle" value="Show All">Show All</button></li>');
// register button
$("#proceedings-list-toggle").click(function() {
if (this.value == "Show All") {
$('#proceedings-list-table tbody tr:not(.open)').show();
$(this).val("Show Active");
$(this).text("Show Active");
} else if (this.value == "Show Active") {
$('#proceedings-list-table tbody tr:not(.open)').hide();
$(this).val("Show All");
$(this).text("Show All");
}
// restripe the table
restripe('#proceedings-list-table');
});
// hide non-active areas
$('#proceedings-list-table tbody tr:not(.open)').hide();
restripe('#proceedings-list-table');
}
}
$(document).ready(function() {
// set focus --------------------------------
if ( $("form[id^=group-role-assignment-form]").length > 0) {
$("#id_role_type").focus();
} else if ( $("form[id=draft-search-form]").length > 0) {
$("#id_filename").focus();
} else if ( $("form[id=drafts-add-form]").length > 0) {
$("#id_title").focus();
} else if ( $("form[id=proceedings-add-form]").length > 0) {
$("#id_start_date").focus();
} else if ( $("form[id=proceedings-upload-form]").length > 0) {
$("#id_group_name").focus();
} else if ( $("form[id=session-request-form]").length > 0) {
$("#id_num_session").focus();
} else if ( $(".rooms-times-nav").length > 0){
$("li.selected a").focus();
} else {
$("input:text:visible:enabled:first").focus();
}
// unset Primary Area selection unless it appears as URL parameter
//if (($('#id_primary_area').length) && (get_param('primary_area') == '')) {
// $('#id_primary_area')[0].selectedIndex = -1;
// special features for area list page
if ($('#areas-button-list').length) {
init_area_table();
}
// Setup autocomplete for adding names
if ($('input.name-autocomplete').length) {
$('input.name-autocomplete').autocomplete({
source: "/secr/areas/getpeople/",
minLength: 3,
select: function(event, ui) {
//match number inside paren and then strip paren
var id = ui.item.label.match(/\(\d+\)/);
var val = id[0].replace(/[\(\)]/g, "");
//alert(id,val);
//alert(id.match(/\d+/));
$.getJSON('/secr/areas/getemails/',{"id":val},function(data) {
$('#id_email option').remove();
$.each(data,function(i,item) {
$('#id_email').append('<option value="'+item.id+'">'+item.value+'</option>');
});
});
}
});
}
// nav bar setup
if ($('ul#list-nav').length) {
style_current_tab();
}
// auto populate Area Director List when primary area selected (add form)
$('#id_primary_area').change(function(){
$.getJSON('/secr/groups/get_ads/',{"area":$(this).val()},function(data) {
$('#id_primary_area_director option').remove();
$.each(data,function(i,item) {
$('#id_primary_area_director').append('<option value="'+item.id+'">'+item.value+'</option>');
});
});
});
// auto populate Area Director List when area selected (edit form)
$('#id_ietfwg-0-primary_area').change(function(){
$.getJSON('/secr/groups/get_ads/',{"area":$(this).val()},function(data) {
$('#id_ietfwg-0-area_director option').remove();
$.each(data,function(i,item) {
$('#id_ietfwg-0-area_director').append('<option value="'+item.id+'">'+item.value+'</option>');
});
});
});
// special features for Proceedings list page
if ($('#proceedings-button-list').length) {
init_proceedings_table();
}
// special features for Proceedings Upload Material Page
if ($('#proceedings-upload-table').length) {
init_proceedings_upload();
}
});

View file

@ -3,8 +3,8 @@
{% block title %}Areas - People{% endblock %}
{% block extrahead %}{{ block.super }}
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/jquery-ui-1.11.4.custom.css' %}" />
<script type="text/javascript" src="{% static 'secr/js/jquery-ui-1.11.4.custom.min.js' %}"></script>
<link rel="stylesheet" type="text/css" href="{% static 'ietf/css/jquery-ui.css' %}" />
<script type="text/javascript" src="{% static 'ietf/js/jquery-ui.js' %}"></script>
<script type="text/javascript" src="{% static 'secr/js/utils.js' %}"></script>
{% endblock %}

View file

@ -1,7 +1,10 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!doctype html>
{% load staticfiles %}
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static 'secr/css/base.css' %}{% endblock %}" />
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/forms.css' %}" />
@ -12,11 +15,10 @@
{% block extrastyle %}{% endblock %}
{% block extrahead %}
<script type="text/javascript" src="{% static 'jquery/jquery.min.js' %}"></script>
<script type="text/javascript" src="{% static 'ietf/js/ietf.js' %}"></script>
{% endblock %}
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %}
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
</head>
<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}">
@ -83,4 +85,4 @@
<!-- END Container -->
</body>
</html>
</html>

View file

@ -1,11 +1,12 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!doctype html>
{% load staticfiles %}
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" href="{% static 'font-awesome/css/font-awesome.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/bootstrap/css/bootstrap.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/bootstrap/css/bootstrap-theme.min.css' %}">
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static 'secr/css/base.css' %}{% endblock %}" />
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/forms.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/custom.css' %}" />
@ -15,11 +16,10 @@
{% block extrastyle %}{% endblock %}
{% block extrahead %}
<script type="text/javascript" src="{% static 'jquery/jquery.min.js' %}"></script>
<script type="text/javascript" src="{% static 'ietf/js/ietf.js' %}"></script>
{% endblock %}
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %}
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
</head>
<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}">
@ -86,4 +86,4 @@
<!-- END Container -->
</body>
</html>
</html>

View file

@ -33,7 +33,7 @@
</div>
<div id="footer-logo">
<a href="https://www.amsl.com/"><img src="{% static 'secr/img/ams_logo.png' %}" alt="AMS" align="right" border="0" hspace="5" /></a>
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" align="right" border="0" hspace="5" /></a>
</div>
</div>
{% endblock %}

View file

@ -33,7 +33,7 @@
</div>
<div id="footer-logo">
<a href="https://www.amsl.com/"><img src="{% static 'secr/img/ams_logo.png' %}" alt="AMS" align="right" border="0" hspace="5" /></a>
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" align="right" border="0" hspace="5" /></a>
</div>
</div>
{% endblock %}

View file

@ -4,8 +4,8 @@
{% block title %}Groups - People{% endblock %}
{% block extrahead %}{{ block.super }}
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/jquery-ui-1.11.4.custom.css' %}" />
<script type="text/javascript" src="{% static 'secr/js/jquery-ui-1.11.4.custom.min.js' %}"></script>
<link rel="stylesheet" type="text/css" href="{% static 'ietf/css/jquery-ui.css' %}" />
<script type="text/javascript" src="{% static 'ietf/js/jquery-ui.js' %}"></script>
<script type="text/javascript" src="{% static 'secr/js/utils.js' %}"></script>
{% endblock %}

View file

@ -4,8 +4,8 @@
{% block title %}Meetings{% endblock %}
{% block extrahead %}{{ block.super }}
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/jquery-ui-1.11.4.custom.css' %}" />
<script type="text/javascript" src="{% static 'secr/js/jquery-ui-1.11.4.custom.min.js' %}"></script>
<link rel="stylesheet" type="text/css" href="{% static 'ietf/css/jquery-ui.css' %}" />
<script type="text/javascript" src="{% static 'ietf/js/jquery-ui.js' %}"></script>
<script type="text/javascript" src="{% static 'secr/js/utils.js' %}"></script>
<script type="text/javascript" src="{% static 'secr/js/dynamic_inlines.js' %}"></script>
{% endblock %}

View file

@ -4,12 +4,12 @@
{% block title %}Proceedings{% endblock %}
{% block extrastyle %}{{ block.super }}
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/jquery-ui-1.11.4.custom.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'ietf/css/jquery-ui.css' %}" />
<link rel="stylesheet" href="{% static 'ietf/css/select2.css' %}">
{% endblock %}
{% block extrahead %}{{ block.super }}
<script type="text/javascript" src="{% static 'secr/js/jquery-ui-1.11.4.custom.min.js' %}"></script>
<script type="text/javascript" src="{% static 'ietf/js/jquery-ui.js' %}"></script>
<script src="{% static 'ietf/js/select2.js' %}"></script>
<script type="text/javascript" src="{% static 'secr/js/proceedings-recording.js' %}"></script>
{% endblock %}

View file

@ -16,7 +16,7 @@
<h2>Proceedings</h2>
<hr />
<h2>{{ message }}</h2>
<img class="loading" src="{% static "secr/img/ajax-loader.gif" %}" alt="loading..." />
<img class="loading" src="{% static "secr/images/ajax-loader.webp" %}" alt="loading..." />
</div> <!-- module -->
{% endblock %}

View file

@ -4,8 +4,8 @@
{% block title %}Roles{% endblock %}
{% block extrahead %}{{ block.super }}
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/jquery-ui-1.11.4.custom.css' %}" />
<script type="text/javascript" src="{% static 'secr/js/jquery-ui-1.11.4.custom.min.js' %}"></script>
<link rel="stylesheet" type="text/css" href="{% static 'ietf/css/jquery-ui.css' %}" />
<script type="text/javascript" src="{% static 'ietf/js/jquery-ui.js' %}"></script>
<script type="text/javascript" src="{% static 'secr/js/utils.js' %}"></script>
<script type="text/javascript">
@ -16,7 +16,7 @@
$('#id_group').change(function(){
var loadUrl = "/secr/roles/ajax/get-roles/" + $(this).val() + "/";
var ajax_load = '<img class="loading" src="{% static "secr/img/ajax-loader.gif" %}" alt="loading..." />';
var ajax_load = '<img class="loading" src="{% static "secr/images/ajax-loader.webp" %}" alt="loading..." />';
var text = $(this).val();
$("#id_group_acronym").val(text);
$("#roles-list").html(ajax_load).load(loadUrl);

View file

@ -415,7 +415,7 @@ ROOT_URLCONF = 'ietf.urls'
# Additional locations of static files (in addition to each app's static/ dir)
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static/dist'),
# os.path.join(BASE_DIR, 'secr/static'),
os.path.join(BASE_DIR, 'secr/static/dist'),
)
INSTALLED_APPS = [

View file

@ -1 +1,2 @@
/*.coverage
/dist

View file

@ -0,0 +1 @@
@import "~/node_modules/jquery-ui/themes/base/all.css";

View file

@ -0,0 +1,135 @@
.baseform {
font-size: 12px;
}
.baseform .fieldset {
margin: 1em 0px;
border: none;
border: 1px solid #8899dd;
background-color: #edf5ff;
}
.baseform .fieldset h2 {
background-color: #2647a0;
color: white;
font-size: 14px;
padding: 5px 10px;
margin: 0px;
}
.baseform .field {
padding: 0.5em 10px;
}
.baseform .field label {
display: block;
width: 150px;
float: left;
clear: left;
}
.baseform .field .endfield {
clear: left;
}
.baseform .fieldWidget {
margin-left: 150px;
}
.baseform #baseform-fieldname-purpose_text,
.baseform #baseform-fieldname-deadline_date {
display: none;
}
.baseform select,
.baseform textarea,
.baseform input {
border: 1px solid #cccccc;
}
.baseform input {
font-size: 12px;
}
#id_title,
.baseformedit #id_from_field,
.baseform #id_organization,
.baseform #id_to_poc,
.baseform #id_response_contacts,
.baseform #id_technical_contact,
.baseform #id_cc1,
.attach_titleField input,
.baseform textarea {
width: 80%;
}
#id_purpose_text {
height: 100px;
}
#id_body {
height: 300px;
}
.baseform input.disabledAddAttachment {
border: none;
padding: none;
background: none;
padding: 0px;
margin: 0px;
color: black;
font-weight: bold;
}
span.fieldRequired {
color: red;
}
.fieldError {
background-color: #ffcc66;
}
th.sort {
/*background-image: url(/images/sort-header-clear.png);*/
background-repeat: no-repeat;
background-position: right center;
cursor: pointer;
}
th.headerSortUp {
/*background-image: url(/images/sort-header-up-filled.png);*/
}
th.headerSortDown {
/*background-image: url(/images/sort-header-filled.png);*/
}
td span.awaiting {
background-color: #ffcc33;
border-radius: 3px;
float: right;
width: 35px;
padding: 4px 8px;
text-align: center;
font-size: 10px;
}
.noActionTaken, .actionTaken { padding: 2px 5px; }
.actionTaken { border: 1px solid green; background-color: #ccffbb; }
.noActionTaken { border: 1px solid red; background-color: #ffccbb; }
input[id$='DELETE'] {
display: none;
}
#id_from_groups + span {
display: none;
}
#id_to_groups + span {
display: none;
}
.liaison-group-col {
min-width: 10em;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View file

@ -0,0 +1,151 @@
$(document).ready(function () {
var form = $("form.complete-review");
var reviewedRev = form.find("[name=reviewed_rev]");
reviewedRev.closest(".form-group").find("a.rev").on("click", function (e) {
e.preventDefault();
reviewedRev.val($(this).text());
});
// mail archive search functionality
var mailArchiveSearchTemplate = form.find(".template .mail-archive-search").parent().html();
var mailArchiveSearchResultTemplate = form.find(".template .mail-archive-search-result").parent().html();
form.find("[name=review_url]").closest(".form-group").before(mailArchiveSearchTemplate);
var mailArchiveSearch = form.find(".mail-archive-search");
var retrievingData = null;
function searchMailArchive() {
if (retrievingData)
return;
var queryInput = mailArchiveSearch.find(".query-input");
if (queryInput.length == 0 || !$.trim(queryInput.val()))
return;
mailArchiveSearch.find(".search").prop("disabled", true);
mailArchiveSearch.find(".error").addClass("hidden");
mailArchiveSearch.find(".retrieving").removeClass("hidden");
mailArchiveSearch.find(".results").addClass("hidden");
retrievingData = $.ajax({
url: searchMailArchiveUrl,
method: "GET",
data: {
query: queryInput.val()
},
dataType: "json",
timeout: 20 * 1000
}).then(function (data) {
retrievingData = null;
mailArchiveSearch.find(".search").prop("disabled", false);
mailArchiveSearch.find(".retrieving").addClass("hidden");
var err = data.error;
if (!err && (!data.messages || !data.messages.length))
err = "No messages matching document name found in archive";
var non_reply_row = null;
if (err) {
var errorDiv = mailArchiveSearch.find(".error");
errorDiv.removeClass("hidden");
errorDiv.find(".content").text(err);
if (data.query && data.query_url && data.query_data_url) {
errorDiv.find(".try-yourself .query").text(data.query);
errorDiv.find(".try-yourself .query-url").prop("href", data.query_url);
errorDiv.find(".try-yourself .query-data-url").prop("href", data.query_data_url);
errorDiv.find(".try-yourself").removeClass("hidden");
}
}
else {
mailArchiveSearch.find(".results").removeClass("hidden");
var results = mailArchiveSearch.find(".results .list-group");
results.children().remove();
for (var i = 0; i < data.messages.length; ++i) {
var msg = data.messages[i];
var row = $(mailArchiveSearchResultTemplate).attr("title", "Click to fill in link and content from this message");
row.find(".subject").text(msg.subject);
row.find(".date").text(msg.utcdate[0]);
row.find(".from").text(msg.splitfrom[0]);
row.data("url", msg.url);
row.data("content", msg.content);
row.data("date", msg.utcdate[0]);
row.data("time", msg.utcdate[1]);
row.data("revision_guess", msg.revision_guess);
results.append(row);
if (msg.subject.toUpperCase().substr(0, 3) !== 'RE:') {
non_reply_row = row;
}
}
if (!isReviewer && non_reply_row) {
// Automatically select the first non-reply.
non_reply_row.click();
}
}
}, function () {
retrievingData = null;
mailArchiveSearch.find(".search").prop("disabled", false);
mailArchiveSearch.find(".retrieving").addClass("hidden");
var errorDiv = mailArchiveSearch.find(".error");
errorDiv.removeClass("hidden");
errorDiv.find(".content").text("Error trying to retrieve data from mailing list archive.");
});
}
mailArchiveSearch.find(".search").on("click", function () {
searchMailArchive();
});
mailArchiveSearch.find(".results").on("click", ".mail-archive-search-result", function (e) {
e.preventDefault();
var row = $(this);
if (!row.is(".mail-archive-search-result"))
row = row.closest(".mail-archive-search-result");
form.find("[name=review_url]").val(row.data("url"));
form.find("[name=review_content]").val(row.data("content")).prop("scrollTop", 0);
form.find("[name=completion_date]").val(row.data("date"));
form.find("[name=completion_time]").val(row.data("time"));
form.find("[name=reviewed_rev]").val(row.data("revision_guess"));
});
// review submission selection
form.find("[name=review_submission]").on("click change", function () {
var val = form.find("[name=review_submission]:checked").val();
var shouldBeVisible = {
"enter": ['[name="review_content"]', '[name="cc"]'],
"upload": ['[name="review_file"]', '[name="cc"]'],
"link": [".mail-archive-search", '[name="review_url"]', '[name="review_content"]']
};
for (var v in shouldBeVisible) {
for (var i in shouldBeVisible[v]) {
var selector = shouldBeVisible[v][i];
var row = form.find(selector);
if (!row.is(".form-group"))
row = row.closest(".form-group");
if ($.inArray(selector, shouldBeVisible[val]) != -1)
row.show();
else
row.hide();
}
}
if (val == "link")
searchMailArchive();
}).trigger("change");
if (!isReviewer) {
// Select mail search by default for secretary completions.
form.find("[name=review_submission][value=link]").click()
}
});

View file

@ -0,0 +1,43 @@
// Copyright The IETF Trust 2021, All Rights Reserved
/* global URLSearchParams */
(function() {
'use strict';
function initialize() {
const form = document.getElementById('timeslot-form');
if (!form) {
return;
}
const params = new URLSearchParams(document.location.search);
const day = params.get('day');
const date = params.get('date');
const location = params.get('location');
const time = params.get('time');
const duration = params.get('duration');
if (day) {
const inp = form.querySelector('#id_days input[value="' + day +'"]');
if (inp) {
inp.checked = true;
} else if (date) {
const date_field = form.querySelector('#id_other_date');
date_field.value = date;
}
}
if (location) {
const inp = form.querySelector('#id_locations input[value="' + location + '"]');
inp.checked=true;
}
if (time) {
const inp = form.querySelector('input#id_time');
inp.value = time;
}
if (duration) {
const inp = form.querySelector('input#id_duration');
inp.value = duration;
}
}
window.addEventListener('load', initialize);
})();

View file

@ -0,0 +1,156 @@
jQuery(document).ready(function () {
function reportServerError(xhr, textStatus, error) {
let errorText = error || textStatus;
if (xhr && xhr.responseText)
errorText += "\n\n" + xhr.responseText;
alert("Error: " + errorText);
}
let content = jQuery(".edit-meeting-timeslots-and-misc-sessions");
if (content.data('scroll'))
jQuery(document).scrollTop(+content.data('scroll'));
else {
let scrollFragment = "#scroll=";
if (window.location.hash.slice(0, scrollFragment.length) == scrollFragment && !isNaN(+window.location.hash.slice(scrollFragment.length))) {
jQuery(document).scrollTop(+window.location.hash.slice(scrollFragment.length));
history.replaceState(null, document.title, window.location.pathname + window.location.search);
}
}
function reportServerError(xhr, textStatus, error) {
let errorText = error || textStatus;
if (xhr && xhr.responseText)
errorText += "\n\n" + xhr.responseText;
alert("Error: " + errorText);
}
let timeslots = content.find(".timeslot");
timeslots.each(function () {
jQuery(this).tooltip({title: jQuery(this).text()});
});
content.find(".day-grid").on("click", cancelCurrentActivity);
let schedulingPanel = content.find(".scheduling-panel");
function cancelCurrentActivity() {
content.find(".selected").removeClass("selected");
schedulingPanel.hide();
schedulingPanel.find(".panel-content").children().remove();
// if we came from a failed POST, that's no longer relevant so overwrite history
history.replaceState(null, document.title, window.location.pathname + window.location.search);
}
if (!content.hasClass("read-only")) {
// we handle the hover effect in Javascript because we don't want
// it to show in case the timeslot itself is hovered
content.find(".room-label,.timeline").on("mouseover", function () {
jQuery(this).closest(".day").find(".timeline.hover").removeClass("hover");
jQuery(this).closest(".room-row").find(".timeline").addClass("hover");
}).on("mouseleave", function (){
jQuery(this).closest(".day").find(".timeline.hover").removeClass("hover");
});
content.find(".timeline .timeslot").on("mouseover", function (e) {
e.stopPropagation();
jQuery(this).closest(".day").find(".timeline.hover").removeClass("hover");
}).on("mouseleave", function (e) {
jQuery(this).closest(".day").find(".timeline.hover").removeClass("hover");
});
content.find(".room-row").on("click", function (e) {
e.stopPropagation();
cancelCurrentActivity();
jQuery(this).find(".timeline").addClass("selected");
schedulingPanel.find(".panel-content").append(content.find(".add-timeslot-template").html());
schedulingPanel.find("[name=day]").val(this.dataset.day);
schedulingPanel.find("[name=location]").val(this.dataset.room);
schedulingPanel.find("[name=type]").trigger("change");
schedulingPanel.show();
schedulingPanel.find("[name=time]").focus();
});
}
content.find(".timeline .timeslot").on("click", function (e) {
e.stopPropagation();
let element = jQuery(this);
element.addClass("selected");
jQuery.ajax({
url: window.location.href,
method: "get",
timeout: 5 * 1000,
data: {
action: "edit-timeslot",
timeslot: this.id.slice("timeslot".length)
}
}).fail(reportServerError).done(function (response) {
if (!response.form) {
reportServerError(null, null, response);
return;
}
cancelCurrentActivity();
element.addClass("selected");
schedulingPanel.find(".panel-content").append(response.form);
schedulingPanel.find(".timeslot-form [name=type]").trigger("change");
schedulingPanel.find(".timeslot-form").show();
schedulingPanel.show();
});
});
content.on("change click", ".timeslot-form [name=type]", function () {
let form = jQuery(this).closest("form");
let hide = {};
form.find("[name=group],[name=short],[name=\"agenda_note\"]").prop('disabled', false).closest(".form-group").show();
if (this.value == "break") {
form.find("[name=short]").closest(".form-group").hide();
}
else if (this.value == "plenary") {
let group = form.find("[name=group]");
group.val(group.data('ietf'));
}
else if (this.value == "regular") {
form.find("[name=short]").closest(".form-group").hide();
}
if (this.value != "regular")
form.find("[name=\"agenda_note\"]").closest(".form-group").hide();
if (['break', 'reg', 'reserved', 'unavail', 'regular'].indexOf(this.value) != -1) {
let group = form.find("[name=group]");
group.prop('disabled', true);
group.closest(".form-group").hide();
}
});
content.on("submit", ".timeslot-form", function () {
let form = jQuery(this).closest("form");
form.find("[name=scroll]").remove();
form.append("<input type=hidden name=scroll value=" + jQuery(document).scrollTop() + ">");
});
content.on("click", "button[type=submit][name=action][value=\"delete-timeslot\"],button[type=submit][name=action][value=\"cancel-timeslot\"]", function (e) {
let msg = this.value == "delete-timeslot" ? "Delete this time slot?" : "Cancel the session in this time slot?";
if (!confirm(msg)) {
e.preventDefault();
}
});
schedulingPanel.find(".close").on("click", function () {
cancelCurrentActivity();
});
schedulingPanel.find('.timeslot-form [name=type]').trigger("change");
});

View file

@ -0,0 +1,187 @@
$(document).ready(function () {
var idCounter = -1;
var milestonesForm = $('#milestones-form');
var group_uses_milestone_dates = ( $('#uses_milestone_dates').length > 0 );
var milestone_order_has_changed = false;
var switch_date_use_form = $("#switch-date-use-form")
// make sure we got the lowest number for idCounter
milestonesForm.find('.edit-milestone input[name$="-id"]').each(function () {
var v = +this.value;
if (!isNaN(v) && v < idCounter)
idCounter = v - 1;
});
function setChanged() {
$(this).closest(".edit-milestone").addClass("changed");
setSubmitButtonState();
if (switch_date_use_form) {
switch_date_use_form.hide();
}
}
milestonesForm.on("change", '.edit-milestone select,.edit-milestone input,.edit-milestone textarea', setChanged);
milestonesForm.on("click", '.edit-milestone .select2 input', setChanged);
// the required stuff seems to trip up many browsers with dynamic forms
milestonesForm.find("input").prop("required", false);
function setSubmitButtonState() {
var action, label;
if ( milestonesForm.find("input[name$=delete]:visible").length > 0 || milestone_order_has_changed )
action = "review";
else
action = "save";
milestonesForm.find("input[name=action]").val(action);
var submit = milestonesForm.find("[type=submit]");
submit.text(submit.data("label" + action));
if (milestonesForm.find(".edit-milestone.changed,.edit-milestone.delete").length > 0 || action == "review")
submit.show();
else
submit.hide();
}
milestonesForm.find(".milestone").click(function () {
var row = $(this), editRow = row.next(".edit-milestone");
row.hide();
editRow.show();
editRow.find('input[name$="desc"]').focus();
setSubmitButtonState();
// collapse unchanged rows
milestonesForm.find(".milestone").not(this).each(function () {
var e = $(this).next('.edit-milestone');
if (e.is(":visible") && !e.hasClass("changed")) {
$(this).show();
e.hide();
}
});
});
milestonesForm.find(".add-milestone").click(function() {
var template = $("#extratemplatecontainer .extratemplate");
var templateclone = template.clone();
$("#dragdropcontainer").append(templateclone);
var new_milestone = $("#dragdropcontainer > div:last")
var new_edit_milestone = new_milestone.find(".edit-milestone");
var new_edit_milestone_order = $("#dragdropcontainer > div").length
new_milestone.removeClass("extratemplate")
new_milestone.addClass("draggable")
new_milestone.addClass("milestonerow")
var newId = idCounter;
--idCounter;
var prefix = "m" + newId;
new_edit_milestone.find('input[name="prefix"]').val(prefix);
new_edit_milestone.find('input[name="order"]').val(new_edit_milestone_order);
new_edit_milestone.find("input,select,textarea").each(function () {
if (this.name == "prefix")
return;
if (this.name == "id")
this.value = "" + idCounter;
this.name = prefix + "-" + this.name;
this.id = prefix + "-" + this.id;
});
new_edit_milestone.find("label").each(function () {
if (this.htmlFor)
this.htmlFor = prefix + "-" + this.htmlFor;
});
new_edit_milestone.removeClass("template");
new_edit_milestone.show();
new_edit_milestone.find(".select2-field").each(function () {
window.setupSelect2Field($(this)); // from select2-field.js
});
if ( ! group_uses_milestone_dates ) {
setOrderControlValue();
}
});
function setResolvedState() {
var resolved = $(this).is(":checked");
var label = $(this).closest(".edit-milestone").find("label[for=" + this.id + "]");
var reason = $(this).closest(".edit-milestone").find("[name$=resolved]");
if (resolved) {
reason.closest(".form-group").show();
if (!reason.val())
reason.val(reason.data("default"));
}
else {
reason.closest(".form-group").hide();
reason.val("");
}
}
milestonesForm.find(".edit-milestone [name$=resolved_checkbox]").each(setResolvedState);
milestonesForm.on("change", ".edit-milestone [name$=resolved_checkbox]", setResolvedState);
function setDeleteState() {
var edit = $(this).closest(".edit-milestone"), row = edit.prev(".milestone");
if ($(this).is(":checked")) {
if (+edit.find('input[name$="id"]').val() < 0) {
edit.remove();
setSubmitButtonState();
}
else {
row.addClass("delete");
edit.addClass("delete");
}
}
else {
row.removeClass("delete");
edit.removeClass("delete");
}
}
function setOrderControlValue() {
$("#dragdropcontainer > div").each(function(index){
var prefix = $(this).find('input[name="prefix"]').val();
$(this).find('input[name="'+prefix+'-order"]').val(index)
})
}
milestonesForm.find(".edit-milestone [name$=delete]").each(setDeleteState);
milestonesForm.on("change", ".edit-milestone input[name$=delete]", setDeleteState);
milestonesForm.find('.edit-milestone .has-error').each(function () {
$(this).closest(".edit-milestone").prev().click();
});
setSubmitButtonState();
if ( ! group_uses_milestone_dates) {
setOrderControlValue();
function onEnd(event) {
milestone_order_has_changed = true;
setSubmitButtonState();
setOrderControlValue();
if (switch_date_use_form) {
switch_date_use_form.hide();
}
}
var options = {
animation: 150,
draggable: ".draggable",
onEnd: function(event) {onEnd(event)}
};
var el = document.getElementById('dragdropcontainer');
var sortable = new Sortable(el, options);
}
});

View file

@ -0,0 +1,55 @@
$(document).ready(function() {
var form = $(".ipr-form");
var template = form.find('.draft-row.template');
var templateData = template.clone();
$('.draft-add-row').click(function() {
var el = template.clone(true);
var totalField = $('#id_iprdocrel_set-TOTAL_FORMS');
var total = +totalField.val();
el.find(':input').each(function() {
var name = $(this).attr('name').replace('-' + (total-1) + '-','-' + total + '-');
var id = 'id_' + name;
$(this).attr({'name': name, 'id': id}).val('');
});
el.find('label').each(function() {
var newFor = $(this).attr('for').replace('-' + (total-1) + '-','-' + total + '-');
$(this).attr('for', newFor);
});
++total;
totalField.val(total);
template.before(el);
el.removeClass("template");
el.find(".select2-field").each(function () {
setupSelect2Field($(this));
});
});
function updateRevisions() {
var selectbox = $(this).find('[name$="document"]');
if (selectbox.val()) {
var name = selectbox.select2("data").text;
if (name.toLowerCase().substring(0, 3) == "rfc")
$(this).find('[name$=revisions]').val("").hide();
else
$(this).find('[name$=revisions]').show();
}
}
form.on("change", ".select2-field", function () {
$(this).closest(".draft-row").each(updateRevisions);
});
// add a little bit of delay to let the select2 box have time to do its magic
setTimeout(function () {
form.find(".draft-row").each(updateRevisions);
}, 10);
});

View file

@ -0,0 +1,27 @@
$(document).ready(function() {
// hack the "All States" check box
$("#id_state").addClass("list-inline");
$("#id_state input[value!=all]").change(function(e) {
if (this.checked) {
$("#id_state input[value=all]").prop('checked',false);
}
});
$("#id_state_0").change(function(e) {
if (this.checked) {
$("#id_state input[value!=all]").prop('checked',false);
}
});
// make enter presses submit through the nearby button
$("form.ipr-search input,select").keyup(function (e) {
var submitButton = $(this).closest(".form-group").find('button[type=submit]');
if (e.which == 13 && submitButton.length > 0) {
submitButton.click();
return false;
} else {
return true;
}
});
});

20
ietf/static/js/jquery-ui.js vendored Normal file
View file

@ -0,0 +1,20 @@
var accordion = require("jquery-ui/ui/widgets/accordion");
var autocomplete = require("jquery-ui/ui/widgets/autocomplete");
var button = require("jquery-ui/ui/widgets/button");
var checkboxradio = require("jquery-ui/ui/widgets/checkboxradio");
var controlgroup = require("jquery-ui/ui/widgets/controlgroup");
var datepicker = require("jquery-ui/ui/widgets/datepicker");
var dialog = require("jquery-ui/ui/widgets/dialog");
var draggable = require("jquery-ui/ui/widgets/draggable");
var droppable = require("jquery-ui/ui/widgets/droppable");
var menu = require("jquery-ui/ui/widgets/menu");
var mouse = require("jquery-ui/ui/widgets/mouse");
var progressbar = require("jquery-ui/ui/widgets/progressbar");
var resizable = require("jquery-ui/ui/widgets/resizable");
var selectable = require("jquery-ui/ui/widgets/selectable");
var selectmenu = require("jquery-ui/ui/widgets/selectmenu");
var slider = require("jquery-ui/ui/widgets/slider");
var sortable = require("jquery-ui/ui/widgets/sortable");
var spinner = require("jquery-ui/ui/widgets/spinner");
var tabs = require("jquery-ui/ui/widgets/tabs");
var tooltip = require("jquery-ui/ui/widgets/tooltip");

View file

@ -0,0 +1 @@
import "js-cookie";

View file

@ -0,0 +1,101 @@
$(document).ready(function () {
var form = $("form.review-requests");
var saveButtons = form.find("[name=action][value^=\"save\"]");
function updateSaveButtons() {
saveButtons.prop("disabled", form.find("[name$=\"-action\"][value][value!=\"\"]").length == 0);
}
function setControlDisplay(row) {
var action = row.find("[name$=\"-action\"]").val();
if (action == "assign") {
row.find(".reviewer-controls").show();
row.find(".close-controls").hide();
row.find(".assign-action,.close-action").hide();
}
else if (action == "close") {
row.find(".reviewer-controls").hide();
row.find(".close-controls").show();
row.find(".assign-action,.close-action").hide();
}
else {
row.find(".reviewer-controls,.close-controls").hide();
row.find(".assign-action,.close-action").show();
}
updateSaveButtons();
}
form.find(".assign-action button").on("click", function () {
var row = $(this).closest(".review-request");
var select = row.find(".reviewer-controls [name$=\"-reviewer\"]");
if (!select.val()) {
// collect reviewers already assigned in this session
var reviewerAssigned = {};
select.find("option").each(function () {
if (this.value)
reviewerAssigned[this.value] = 0;
});
form.find("[name$=\"-action\"][value=\"assign\"]").each(function () {
var v = $(this).closest(".review-request").find("[name$=\"-reviewer\"]").val();
if (v)
reviewerAssigned[v] += 1;
});
// by default, the select box contains a sorted list, so
// we should be able to select the first, unless that
// person has already been assigned to review in this
// session
var found = null;
var options = select.find("option").get();
for (var round = 0; round < 100 && !found; ++round) {
for (var i = 0; i < options.length && !found; ++i) {
var v = options[i].value;
if (!v)
continue;
if (reviewerAssigned[v] == round)
found = v;
}
}
if (found)
select.val(found);
}
row.find("[name$=\"-action\"]").val("assign");
setControlDisplay(row);
});
form.find(".reviewer-controls .undo").on("click", function () {
var row = $(this).closest(".review-request");
row.find("[name$=\"-action\"]").val("");
row.find("[name$=\"-reviewer\"]").val($(this).data("initial"));
setControlDisplay(row);
});
form.find(".close-action button").on("click", function () {
var row = $(this).closest(".review-request");
row.find("[name$=\"-action\"]").val("close");
setControlDisplay(row);
});
form.find(".close-controls .undo").on("click", function () {
var row = $(this).closest(".review-request");
row.find("[name$=\"-action\"]").val("");
setControlDisplay(row);
});
form.find("[name$=\"-action\"]").each(function () {
var v = $(this).val();
if (!v)
return;
var row = $(this).closest(".review-request");
setControlDisplay(row);
});
updateSaveButtons();
});

View file

@ -0,0 +1,234 @@
var interimRequest = {
// functions for Interim Meeting Request
init : function() {
// get elements
interimRequest.form = $(this);
interimRequest.addButton = $('#add_session');
interimRequest.inPerson = $('#id_in_person');
interimRequest.timezone = $('#id_time_zone');
// bind functions
$('.select2-field').select2();
interimRequest.addButton.click(interimRequest.addSession);
$('.btn-delete').click(interimRequest.deleteSession);
interimRequest.inPerson.change(interimRequest.toggleLocation);
$('input[name="meeting_type"]').change(interimRequest.meetingTypeChanged);
$('input[name$="-requested_duration"]').blur(interimRequest.calculateEndTime);
$('input[name$="-time"]').blur(interimRequest.calculateEndTime);
$('input[name$="-time"]').blur(interimRequest.updateInfo);
$('input[name$="-end_time"]').change(interimRequest.updateInfo);
interimRequest.timezone.change(interimRequest.timezoneChange);
// init
interimRequest.inPerson.each(interimRequest.toggleLocation);
interimRequest.checkAddButton();
interimRequest.checkHelpText();
interimRequest.initTimezone();
$('input[name$="-time"]').each(interimRequest.calculateEndTime);
$('input[name$="-time"]').each(interimRequest.updateInfo);
$('#id_country').select2({placeholder:"Country"});
},
addSession : function() {
var template = interimRequest.form.find('.fieldset.template');
var el = template.clone(true);
var totalField = $('#id_session_set-TOTAL_FORMS');
var total = +totalField.val();
var meeting_type = $('input[name="meeting_type"]:checked').val();
// increment formset counter
template.find(':input').each(function() {
var name = $(this).attr('name').replace('-' + (total-1) + '-','-' + total + '-');
var id = 'id_' + name;
$(this).attr({'name': name, 'id': id}).val('');
});
template.find('label').each(function() {
var newFor = $(this).attr('for').replace('-' + (total-1) + '-','-' + total + '-');
$(this).attr('for', newFor);
});
template.find('div.utc-time').each(function() {
var newId = $(this).attr('id').replace('-' + (total-1) + '-','-' + total + '-');
$(this).attr('id', newId);
});
++total;
totalField.val(total);
template.before(el);
el.removeClass("template");
el.find(".select2-field").each(function () {
setupSelect2Field($(this));
});
// copy field contents
var first_session = $(".fieldset:first");
el.find("input[name$='remote_instructions']").val(first_session.find("input[name$='remote_instructions']").val());
$('.btn-delete').removeClass("hidden");
},
updateInfo : function() {
// makes ajax call to server and sets UTC field
var time = $(this).val();
if(!time){
return;
}
var url = "/meeting/ajax/get-utc";
var fieldset = $(this).parents(".fieldset");
var date = fieldset.find("input[name$='-date']").val();
var timezone = interimRequest.timezone.val();
var name = $(this).attr("id") + "_utc";
var utc = fieldset.find("#" + name);
//console.log(name,utc.attr("id"));
$.ajax({
url: url,
type: 'GET',
cache: false,
async: true,
dataType: 'json',
data: {date: date,
time: time,
timezone: timezone},
success: function(response){
if (!response.error && response.html) {
utc.html(response.html);
}
}
});
return false;
},
calculateEndTime : function() {
// gets called when either start_time or duration change
var fieldset = $(this).parents(".fieldset");
var start_time = fieldset.find("input[name$='-time']");
var end_time = fieldset.find("input[name$='-end_time']");
var duration = fieldset.find("input[name$='-requested_duration']");
if(!start_time.val() || !duration.val()){
return;
}
var start_values = start_time.val().split(":");
var duration_values = duration.val().split(":");
var d = new Date(2000,1,1,start_values[0],start_values[1]);
var d1 = new Date(d.getTime() + (duration_values[0]*60*60*1000));
var d2 = new Date(d1.getTime() + (duration_values[1]*60*1000));
end_time.val(interimRequest.get_formatted_time(d2));
end_time.trigger('change');
},
checkAddButton : function() {
var meeting_type = $('input[name="meeting_type"]:checked').val();
if(meeting_type == 'single'){
interimRequest.addButton.hide();
} else {
interimRequest.addButton.show();
}
},
checkHelpText : function() {
var meeting_type = $('input[name="meeting_type"]:checked').val();
if(meeting_type == 'single'){
$('.meeting-type-help').hide();
} else if(meeting_type == 'multi-day') {
$('.meeting-type-help').hide();
$('.mth-multi').show();
} else if(meeting_type == 'series') {
$('.meeting-type-help').hide();
$('.mth-series').show();
}
},
checkInPerson : function() {
var meeting_type = $('input[name="meeting_type"]:checked').val();
if(meeting_type == 'series'){
interimRequest.inPerson.prop('disabled', true);
interimRequest.inPerson.prop('checked', false);
interimRequest.toggleLocation();
} else {
interimRequest.inPerson.prop('disabled', false);
}
},
initTimezone : function() {
if (interimRequest.isEditView()) {
// Don't set timezone in edit view, already set
return true;
}
if(window.Intl && typeof window.Intl === "object"){
var tzname = Intl.DateTimeFormat().resolvedOptions().timeZone;
if($('#id_time_zone option[value="'+tzname+'"]').length > 0){
$('#id_time_zone').val(tzname);
}
}
},
get_formatted_time : function (d) {
// returns time from Date object as HH:MM
var minutes = d.getMinutes().toString();
var hours = d.getHours().toString();
return interimRequest.pad(hours) + ":" + interimRequest.pad(minutes);
},
deleteSession : function() {
var fieldset = $(this).parents(".fieldset");
fieldset.remove();
var totalField = $('#id_form-TOTAL_FORMS');
var total = +totalField.val();
--total;
totalField.val(total);
if(total == 2){
$(".btn-delete").addClass("hidden");
}
},
get_formatted_utc_time : function (d) {
// returns time from Date object as HH:MM
var minutes = d.getUTCMinutes().toString();
var hours = d.getUTCHours().toString();
return interimRequest.pad(hours) + ":" + interimRequest.pad(minutes);
},
isEditView : function() {
// Called on init, returns true if editing existing meeting request
if ($('#id_session_set-0-date').val()) {
return true;
} else {
return false;
}
},
meetingTypeChanged : function () {
interimRequest.checkAddButton();
interimRequest.checkInPerson();
interimRequest.checkHelpText();
},
pad : function(str) {
// zero pads string 00
if(str.length == 1){
str = "0" + str;
}
return str;
},
timezoneChange : function() {
$("input[name$='-time']").trigger('blur');
$("input[name$='-end_time']").trigger('change');
},
toggleLocation : function() {
if(this.checked){
$(".location").prop('disabled', false);
} else {
$(".location").prop('disabled', true);
}
}
}
$(document).ready(function () {
$('#interim-request-form').each(interimRequest.init);
});

View file

@ -0,0 +1,115 @@
/* Copyright The IETF Trust 2021, All Rights Reserved
*
* JS support for the SessionDetailsForm
* */
(function() {
'use strict';
/* Find the id prefix for each widget. Individual elements have a _<number> suffix. */
function get_widget_ids(elements) {
const ids = new Set();
for (let ii=0; ii < elements.length; ii++) {
const parts = elements[ii].id.split('_');
parts.pop();
ids.add(parts.join('_'));
}
return ids;
}
/* Set the 'type' element to a type valid for the currently selected purpose, if possible */
function set_valid_type(type_elt, purpose, allowed_types) {
const valid_types = allowed_types[purpose] || [];
if (valid_types.indexOf(type_elt.value) === -1) {
type_elt.value = (valid_types.length > 0) ? valid_types[0] : '';
}
}
/* Hide any type options not allowed for the selected purpose */
function update_type_option_visibility(type_option_elts, purpose, allowed_types) {
const valid_types = allowed_types[purpose] || [];
for (const elt of type_option_elts) {
if (valid_types.indexOf(elt.value) === -1) {
elt.setAttribute('hidden', 'hidden');
} else {
elt.removeAttribute('hidden');
}
}
}
/* Update visibility of 'type' select so it is only shown when multiple options are available */
function update_widget_visibility(elt, purpose, allowed_types) {
const valid_types = allowed_types[purpose] || [];
if (valid_types.length > 1) {
elt.removeAttribute('hidden'); // make visible
} else {
elt.setAttribute('hidden', 'hidden'); // make invisible
}
}
/* Update the 'type' select to reflect a change in the selected purpose */
function update_type_element(type_elt, purpose, type_options, allowed_types) {
update_widget_visibility(type_elt, purpose, allowed_types);
update_type_option_visibility(type_options, purpose, allowed_types);
set_valid_type(type_elt, purpose, allowed_types);
}
function update_name_field_visibility(name_elt, purpose) {
const row = name_elt.closest('tr');
if (row) {
if (purpose === 'regular') {
row.setAttribute('hidden', 'hidden');
} else {
row.removeAttribute('hidden');
}
}
}
/* Factory for event handler with a closure */
function purpose_change_handler(name_elt, type_elt, type_options, allowed_types) {
return function(event) {
const purpose = event.target.value;
update_name_field_visibility(name_elt, purpose);
update_type_element(type_elt, purpose, type_options, allowed_types);
};
}
function add_purpose_change_handler(form) {
const id_prefix = 'id_' + (form.dataset.prefix ? (form.dataset.prefix + '-') : '');
const purpose_elt = document.getElementById(id_prefix + 'purpose');
if (purpose_elt.type === 'hidden') {
return; // element is hidden, so nothing to do
}
const name_elt = document.getElementById(id_prefix + 'name');
const type_elt = document.getElementById(id_prefix + 'type');
const type_options = type_elt.getElementsByTagName('option');
const allowed_types = (type_elt.dataset.allowedOptions) ?
JSON.parse(type_elt.dataset.allowedOptions) : [];
// update on future changes
purpose_elt.addEventListener(
'change',
purpose_change_handler(name_elt, type_elt, type_options, allowed_types)
);
// update immediately
update_type_element(type_elt, purpose_elt.value, type_options, allowed_types);
update_name_field_visibility(name_elt, purpose_elt.value);
// hide the purpose selector if only one option
const purpose_options = purpose_elt.querySelectorAll('option:not([value=""])');
if (purpose_options.length < 2) {
purpose_elt.closest('tr').setAttribute('hidden', 'hidden');
}
}
/* Initialization */
function on_load() {
/* Find elements that are parts of the session details forms. This is an
* HTMLCollection that will update if the DOM changes, so ok to evaluate immediately. */
const forms = document.getElementsByClassName('session-details-form');
for (const form of forms) {
add_purpose_change_handler(form);
}
}
window.addEventListener('load', on_load, false);
})();

View file

@ -0,0 +1 @@
import "sortablejs";

View file

@ -0,0 +1,22 @@
$(function () {
var form = $(".new-relation-row").closest("form");
var newRowHtml = form.find(".new-relation-row").get(0).outerHTML;
var counter = 1;
form.on("click", ".delete", function (e) {
e.preventDefault();
$(this).closest(".row").remove();
});
form.on("keydown", ".new-relation-row input[type=text]", function () {
var top = $(this).closest(".new-relation-row");
top.removeClass("new-relation-row");
top.find(".help-block").remove();
top.find(".delete").show();
top.find("input,select").each(function () {
this.name += counter;
});
++counter;
top.after(newRowHtml);
});
});

View file

@ -0,0 +1,26 @@
$(document).ready(function () {
var form = $("form.upload-content");
// review submission selection
form.find("[name=bofreq_submission]").on("click change", function () {
var val = form.find("[name=bofreq_submission]:checked").val();
var shouldBeVisible = {
"enter": ['[name="bofreq_content"]'],
"upload": ['[name="bofreq_file"]'],
};
for (var v in shouldBeVisible) {
for (var i in shouldBeVisible[v]) {
var selector = shouldBeVisible[v][i];
var row = form.find(selector);
if (!row.is(".form-group"))
row = row.closest(".form-group");
if ($.inArray(selector, shouldBeVisible[val]) != -1)
row.show();
else
row.hide();
}
}
}).trigger("change");
});

View file

@ -6,7 +6,6 @@
{% block pagehead %}
<link rel="stylesheet" href="{% static 'ietf/css/select2.css' %}">
<link rel="stylesheet" href="{% static 'select2-bootstrap-css/select2-bootstrap.min.css' %}">
{% endblock %}
{% block morecss %}
@ -70,9 +69,8 @@
{% endblock %}
{% block js %}
<script src="{% static 'Sortable/Sortable.min.js' %}"></script>
<script src="{% static 'ietf/js/sortable.js' %}"></script>
<script src="{% static 'ietf/js/select2.js' %}"></script>
<script src="{% static 'ietf/js/select2-field.js' %}"></script>
<script type="text/javascript">
const local_js = (
@ -161,4 +159,4 @@
$(document).ready(local_js.initialize);
</script>
{% endblock %}
{% endblock %}

View file

@ -124,7 +124,7 @@
{{ all_forms|merge_media:'js' }}
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
{% if not group.uses_milestone_dates %}
<script src="{% static 'Sortable/Sortable.min.js' %}"></script>
<script src="{% static 'ietf/js/sortable.js' %}"></script>
{% endif %}
<script src="{% static 'ietf/js/edit-milestones.js' %}"></script>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "base.html" %}
{# Copyright The IETF Trust 2021, All Rights Reserved #}
{% load origin static %}
{% load bootstrap3 %}
{% load django_bootstrap5 %}
{% block pagehead %}
{{ form.media.css }}
@ -15,14 +15,12 @@
<form id="timeslot-form" method="post">
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">Save</button>
<a class="btn btn-primary" href="{% url 'ietf.meeting.views.edit_timeslots' num=meeting.number %}">Cancel</a>
{% endbuttons %}
</form>
{% endblock %}
{% block js %}
<script src="{% static 'ietf/js/meeting/create_timeslot.js' %}"></script>
<script src="{% static 'ietf/js/create_timeslot.js' %}"></script>
{{ form.media.js }}
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "base.html" %}
{# Copyright The IETF Trust 2021, All Rights Reserved #}
{% load origin %}
{% load bootstrap3 %}
{% load django_bootstrap5 %}
{% block pagehead %}
{{ form.media.css }}
@ -15,10 +15,8 @@
<form class="session-details-form" method="post">
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">Save</button>
<a class="btn btn-primary" href="{% url 'ietf.meeting.views.edit_meeting_schedule' num=session.meeting.number %}">Cancel</a>
{% endbuttons %}
</form>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "base.html" %}
{# Copyright The IETF Trust 2021, All Rights Reserved #}
{% load origin %}
{% load bootstrap3 %}
{% load django_bootstrap5 %}
{% block pagehead %}
{{ form.media.css }}
@ -23,10 +23,8 @@
<form method="post">
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">Save</button>
<a class="btn btn-primary" href="{% url 'ietf.meeting.views.edit_timeslots' num=timeslot.meeting.number %}">Cancel</a>
{% endbuttons %}
</form>
{% endblock %}

View file

@ -55,10 +55,10 @@
{% if floor.image %}
<img id="{{floor.name|xslugify}}-image" class="col-md-12 col-sm-12 col-xs-12" src="{{ floor.image.url }}" >
<!-- We need as many of these as we can have individual rooms combining into one -->
<div id="{{floor.name|xslugify}}-arrowdiv0" style="position: absolute; left: 0; top: 67.5px; visibility: hidden;"><img id="arrow" src="{% static 'ietf/images/arrow-ani.gif' %}"></div>
<div id="{{floor.name|xslugify}}-arrowdiv1" style="position: absolute; left: 0; top: 67.5px; visibility: hidden;"><img id="arrow" src="{% static 'ietf/images/arrow-ani.gif' %}"></div>
<div id="{{floor.name|xslugify}}-arrowdiv2" style="position: absolute; left: 0; top: 67.5px; visibility: hidden;"><img id="arrow" src="{% static 'ietf/images/arrow-ani.gif' %}"></div>
<div id="{{floor.name|xslugify}}-arrowdiv3" style="position: absolute; left: 0; top: 67.5px; visibility: hidden;"><img id="arrow" src="{% static 'ietf/images/arrow-ani.gif' %}"></div>
<div id="{{floor.name|xslugify}}-arrowdiv0" style="position: absolute; left: 0; top: 67.5px; visibility: hidden;"><img id="arrow" src="{% static 'ietf/images/arrow-ani.webp' %}"></div>
<div id="{{floor.name|xslugify}}-arrowdiv1" style="position: absolute; left: 0; top: 67.5px; visibility: hidden;"><img id="arrow" src="{% static 'ietf/images/arrow-ani.webp' %}"></div>
<div id="{{floor.name|xslugify}}-arrowdiv2" style="position: absolute; left: 0; top: 67.5px; visibility: hidden;"><img id="arrow" src="{% static 'ietf/images/arrow-ani.webp' %}"></div>
<div id="{{floor.name|xslugify}}-arrowdiv3" style="position: absolute; left: 0; top: 67.5px; visibility: hidden;"><img id="arrow" src="{% static 'ietf/images/arrow-ani.webp' %}"></div>
{% else %}
No floor image available yet.
{% endif %}
@ -117,4 +117,4 @@
return [left, top, right, bottom, floor, width];
}
</script>
{% endblock %}
{% endblock %}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -83,8 +83,8 @@
{% comment %}{% block js %}
{% if can_manage_materials %}
<script type="text/javascript" src="{% static 'js-cookie/src/js.cookie.js' %}"></script>
<script type="text/javascript" src={% static 'Sortable/Sortable.min.js' %}></script>
<script type="text/javascript" src="{% static 'ietf/js/js-cookie.js' %}"></script>
<script type="text/javascript" src={% static 'ietf/js/sortable.js' %}></script>
<script type="text/javascript">

View file

@ -1,11 +1,14 @@
{# Copyright The IETF Trust 2015, All Rights Reserved #}
{% load origin %}{% origin %}
{% load static %}
<html> <head>
<link rel="stylesheet" href="{% static 'ietf/bootstrap/css/bootstrap.min.css' %}"> {% comment %} This sets box-sizing: border-box {% endcomment %}
<link rel="stylesheet" href="{% static 'ietf/bootstrap/css/bootstrap-theme.min.css' %}">
<script src="{% static 'jquery/jquery.min.js' %}"></script>
<script src="{% static 'ietf/bootstrap/js/bootstrap.min.js' %}"></script>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}"> {% comment %} This sets box-sizing: border-box {% endcomment %}
<script src="{% static 'ietf/js/ietf.js' %}"></script>
<script type="text/javascript">
{% autoescape off %}
@ -483,8 +486,7 @@
e.insertBefore(document.createElement("br"),e.firstChild);
var minimize_func = function (e) { return function(){minimize(e);} }
var img = document.createElement("img");
img.src = "{% static 'ietf/images/agenda-weekview/close.png' %}";
var img = $('<i class="bi bi-x-circle-fill"></i>');
img.style.cssFloat="right";
img.onclick = minimize_func(e);
img.style.cursor="pointer";
@ -609,4 +611,4 @@
window.location.hash = e.target.hash;
})
</script>
</body></html>
</body></html>

View file

@ -1,66 +0,0 @@
{% extends "base.html" %}
{# Copyright The IETF Trust 2015, All Rights Reserved #}
{% load origin %}
{% load static %}
{% load ietf_filters %}
{% load humanize %}
{% block title %}IETF {{ meeting.number }} Meeting Agenda: Timeslot/Room Availability{% endblock %}
{% load agenda_custom_tags %}
{% block pagehead %}
<link rel='stylesheet' type='text/css' href="{% static 'ietf/css/agenda/jquery-ui-themes/jquery-ui-1.8.11.custom.css' %}" />
<link rel='stylesheet' type='text/css' href="{% static 'ietf/css/agenda/base2.css' %}" />
<link rel='stylesheet' type='text/css' href="{% static 'ietf/css/agenda/agenda.css' %}" />
{% endblock pagehead %}
{% block js %}
<script type="text/javascript" src="{% static 'ietf/js/agenda/jquery-1.8.2.min.js' %}"></script>
<script src="{% static 'js-cookie/src/js.cookie.js' %}"></script>
<script>
jQuery.ajaxSetup({
crossDomain: false, // obviates need for sameOrigin test
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", Cookies.get('csrftoken'));
}
}
});
</script>
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery-ui.custom.js' %}"></script>
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery.ui.widget.js' %}"></script>
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery.ui.droppable.js' %}"></script>
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery.ui.sortable.js' %}"></script>
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery.ui.accordion.js' %}"></script>
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-1.9.0.custom/jquery.ui.draggable.js' %}"></script>
<!-- source (MIT License) http://momentjs.com/ https://github.com/moment/moment/ -->
<script type='text/javascript' src="{% static 'ietf/js/agenda/moment.min.js' %}"></script>
<!-- source (MIT License) : https://github.com/trentrichardson/jQuery-Timepicker-Addon -->
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-timepicker/jquery-ui-timepicker-addon.js' %}"></script>
<script type='text/javascript' src="{% static 'ietf/js/agenda/jquery-ui-timepicker/jquery-ui-sliderAccess.js' %}"></script>
<link rel='stylesheet' type='text/css' href="{% static 'ietf/css/agenda/jquery-ui-timepicker-addon.css' %}" />
<script type='text/javascript' src="{% static 'spin.js/spin.min.js' %}"></script>
{% endblock js %}
{% block content %}
{% origin %}
<div class="wrapper custom_text_stuff">
<div style="ui-icon ui-icon-arrow-1-w" id="close_ietf_menubar">
&lt;
</div>
<div class="room_div">
<div id="edit_room_dialog">
<form action="{{roomsurl}}" method="post">{% csrf_token %}
<table>
{{ editroom.as_table }}
<tr><td><input type="submit" name="editroom" value="editroom"></td></tr>
</table>
</form>
</div>
{% endblock %}

View file

@ -69,9 +69,7 @@
{% block js %}
{% if can_manage_materials %}
<script type="text/javascript" src="{% static 'jquery/jquery.min.js' %}"></script>
<script type="text/javascript" src="{% static 'js-cookie/src/js.cookie.js' %}"></script>
<script type="text/javascript" src={% static 'Sortable/Sortable.min.js' %}></script>
<script type="text/javascript" src={% static 'ietf/js/sortable.js' %}></script>
<script type="text/javascript">

168
package-lock.json generated
View file

@ -15,12 +15,14 @@
"flot": "^4.2.2",
"highcharts": "^9.3.1",
"jquery": "^3.6.0",
"jquery-ui": "^1.13.0",
"js-cookie": "^3.0.1",
"list.js": "^2.3.1",
"moment": "^2.29.1",
"moment-timezone": "^0.5.34",
"select2": "^4.1.0-rc.0",
"select2-bootstrap-5-theme": "^1.2.0",
"sortablejs": "^1.14.0",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
@ -504,14 +506,14 @@
}
},
"node_modules/@eslint/eslintrc": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz",
"integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==",
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz",
"integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.0.0",
"espree": "^9.2.0",
"globals": "^13.9.0",
"ignore": "^4.0.6",
"import-fresh": "^3.2.1",
@ -551,12 +553,12 @@
}
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz",
"integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==",
"version": "0.9.2",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz",
"integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==",
"dev": true,
"dependencies": {
"@humanwhocodes/object-schema": "^1.2.0",
"@humanwhocodes/object-schema": "^1.2.1",
"debug": "^4.1.1",
"minimatch": "^3.0.4"
},
@ -2305,9 +2307,9 @@
}
},
"node_modules/bootstrap-icons": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.7.1.tgz",
"integrity": "sha512-Hkuoo0qrWegA9cdzwS68YPSOLf7d42gqnMzT1tIy/SWvnxnI+Y5PFvK2qIbM/L7knH8SdC8FPgjA+bktzmGcAw==",
"version": "1.7.2",
"resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.7.2.tgz",
"integrity": "sha512-NiR2PqC73AQOPdVSu6GJfnk+hN2z6powcistXk1JgPnKuoV2FSdSl26w931Oz9HYbKCcKUSB6ncZTYJAYJl3QQ==",
"engines": {
"node": ">=10"
}
@ -2542,9 +2544,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001283",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz",
"integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==",
"version": "1.0.30001285",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz",
"integrity": "sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==",
"dev": true,
"funding": {
"type": "opencollective",
@ -2782,9 +2784,9 @@
"dev": true
},
"node_modules/core-js": {
"version": "3.19.2",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.2.tgz",
"integrity": "sha512-ciYCResnLIATSsXuXnIOH4CbdfgV+H1Ltg16hJFN7/v6OxqnFr/IFGeLacaZ+fHLAm0TBbXwNK9/DNBzBUrO/g==",
"version": "3.19.3",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.3.tgz",
"integrity": "sha512-LeLBMgEGSsG7giquSzvgBrTS7V5UL6ks3eQlUSbN8dJStlLFiRzUm5iqsRyzUB8carhfKjkJ2vzKqE6z1Vga9g==",
"dev": true,
"hasInstallScript": true,
"funding": {
@ -3409,9 +3411,9 @@
}
},
"node_modules/domhandler": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz",
"integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==",
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz",
"integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==",
"dev": true,
"dependencies": {
"domelementtype": "^2.2.0"
@ -3484,9 +3486,9 @@
}
},
"node_modules/electron-to-chromium": {
"version": "1.4.5",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.5.tgz",
"integrity": "sha512-YKaB+t8ul5crdh6OeqT2qXdxJGI0fAYb6/X8pDIyye+c3a7ndOCk5gVeKX+ABwivCGNS56vOAif3TN0qJMpEHw==",
"version": "1.4.12",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.12.tgz",
"integrity": "sha512-zjfhG9Us/hIy8AlQ5OzfbR/C4aBv1Dg/ak4GX35CELYlJ4tDAtoEcQivXvyBdqdNQ+R6PhlgQqV8UNPJmhkJog==",
"dev": true
},
"node_modules/elliptic": {
@ -3759,13 +3761,13 @@
}
},
"node_modules/eslint": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz",
"integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==",
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.4.0.tgz",
"integrity": "sha512-kv0XQcAQJL/VD9THQKhTQZVqkJKA+tIj/v2ZKNaIHRAADcJWFb+B/BAewUYuF6UVg1s2xC5qXVoDk0G8sKGeTA==",
"dev": true,
"dependencies": {
"@eslint/eslintrc": "^1.0.4",
"@humanwhocodes/config-array": "^0.6.0",
"@eslint/eslintrc": "^1.0.5",
"@humanwhocodes/config-array": "^0.9.2",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
@ -3776,7 +3778,7 @@
"eslint-scope": "^7.1.0",
"eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.1.0",
"espree": "^9.1.0",
"espree": "^9.2.0",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@ -3937,9 +3939,9 @@
}
},
"node_modules/espree": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz",
"integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==",
"version": "9.2.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz",
"integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==",
"dev": true,
"dependencies": {
"acorn": "^8.6.0",
@ -5407,6 +5409,14 @@
"jquery": ">=3 <4"
}
},
"node_modules/jquery-ui": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.13.0.tgz",
"integrity": "sha512-Osf7ECXNTYHtKBkn9xzbIf9kifNrBhfywFEKxOeB/OVctVmLlouV9mfc2qXCp6uyO4Pn72PXKOnj09qXetopCw==",
"dependencies": {
"jquery": ">=1.8.0 <4.0.0"
}
},
"node_modules/js-cookie": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
@ -6025,9 +6035,9 @@
}
},
"node_modules/object-inspect": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
"integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==",
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz",
"integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==",
"dev": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
@ -7969,6 +7979,11 @@
"url": "https://github.com/chalk/slice-ansi?sponsor=1"
}
},
"node_modules/sortablejs": {
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz",
"integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w=="
},
"node_modules/source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
@ -9292,14 +9307,14 @@
}
},
"@eslint/eslintrc": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz",
"integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==",
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz",
"integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.0.0",
"espree": "^9.2.0",
"globals": "^13.9.0",
"ignore": "^4.0.6",
"import-fresh": "^3.2.1",
@ -9336,12 +9351,12 @@
}
},
"@humanwhocodes/config-array": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz",
"integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==",
"version": "0.9.2",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz",
"integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==",
"dev": true,
"requires": {
"@humanwhocodes/object-schema": "^1.2.0",
"@humanwhocodes/object-schema": "^1.2.1",
"debug": "^4.1.1",
"minimatch": "^3.0.4"
}
@ -10548,9 +10563,9 @@
}
},
"bootstrap-icons": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.7.1.tgz",
"integrity": "sha512-Hkuoo0qrWegA9cdzwS68YPSOLf7d42gqnMzT1tIy/SWvnxnI+Y5PFvK2qIbM/L7knH8SdC8FPgjA+bktzmGcAw=="
"version": "1.7.2",
"resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.7.2.tgz",
"integrity": "sha512-NiR2PqC73AQOPdVSu6GJfnk+hN2z6powcistXk1JgPnKuoV2FSdSl26w931Oz9HYbKCcKUSB6ncZTYJAYJl3QQ=="
},
"brace-expansion": {
"version": "1.1.11",
@ -10745,9 +10760,9 @@
}
},
"caniuse-lite": {
"version": "1.0.30001283",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz",
"integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==",
"version": "1.0.30001285",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz",
"integrity": "sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==",
"dev": true
},
"caseless": {
@ -10943,9 +10958,9 @@
}
},
"core-js": {
"version": "3.19.2",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.2.tgz",
"integrity": "sha512-ciYCResnLIATSsXuXnIOH4CbdfgV+H1Ltg16hJFN7/v6OxqnFr/IFGeLacaZ+fHLAm0TBbXwNK9/DNBzBUrO/g==",
"version": "3.19.3",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.3.tgz",
"integrity": "sha512-LeLBMgEGSsG7giquSzvgBrTS7V5UL6ks3eQlUSbN8dJStlLFiRzUm5iqsRyzUB8carhfKjkJ2vzKqE6z1Vga9g==",
"dev": true
},
"core-util-is": {
@ -11442,9 +11457,9 @@
}
},
"domhandler": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz",
"integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==",
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz",
"integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==",
"dev": true,
"requires": {
"domelementtype": "^2.2.0"
@ -11499,9 +11514,9 @@
}
},
"electron-to-chromium": {
"version": "1.4.5",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.5.tgz",
"integrity": "sha512-YKaB+t8ul5crdh6OeqT2qXdxJGI0fAYb6/X8pDIyye+c3a7ndOCk5gVeKX+ABwivCGNS56vOAif3TN0qJMpEHw==",
"version": "1.4.12",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.12.tgz",
"integrity": "sha512-zjfhG9Us/hIy8AlQ5OzfbR/C4aBv1Dg/ak4GX35CELYlJ4tDAtoEcQivXvyBdqdNQ+R6PhlgQqV8UNPJmhkJog==",
"dev": true
},
"elliptic": {
@ -11711,13 +11726,13 @@
}
},
"eslint": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz",
"integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==",
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.4.0.tgz",
"integrity": "sha512-kv0XQcAQJL/VD9THQKhTQZVqkJKA+tIj/v2ZKNaIHRAADcJWFb+B/BAewUYuF6UVg1s2xC5qXVoDk0G8sKGeTA==",
"dev": true,
"requires": {
"@eslint/eslintrc": "^1.0.4",
"@humanwhocodes/config-array": "^0.6.0",
"@eslint/eslintrc": "^1.0.5",
"@humanwhocodes/config-array": "^0.9.2",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
@ -11728,7 +11743,7 @@
"eslint-scope": "^7.1.0",
"eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.1.0",
"espree": "^9.1.0",
"espree": "^9.2.0",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@ -11842,9 +11857,9 @@
"dev": true
},
"espree": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz",
"integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==",
"version": "9.2.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz",
"integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==",
"dev": true,
"requires": {
"acorn": "^8.6.0",
@ -12941,6 +12956,14 @@
"dev": true,
"requires": {}
},
"jquery-ui": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.13.0.tgz",
"integrity": "sha512-Osf7ECXNTYHtKBkn9xzbIf9kifNrBhfywFEKxOeB/OVctVmLlouV9mfc2qXCp6uyO4Pn72PXKOnj09qXetopCw==",
"requires": {
"jquery": ">=1.8.0 <4.0.0"
}
},
"js-cookie": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
@ -13447,9 +13470,9 @@
"dev": true
},
"object-inspect": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
"integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==",
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz",
"integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==",
"dev": true
},
"object-is": {
@ -14890,6 +14913,11 @@
"is-fullwidth-code-point": "^3.0.0"
}
},
"sortablejs": {
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz",
"integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w=="
},
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",

View file

@ -10,12 +10,14 @@
"flot": "^4.2.2",
"highcharts": "^9.3.1",
"jquery": "^3.6.0",
"jquery-ui": "^1.13.0",
"js-cookie": "^3.0.1",
"list.js": "^2.3.1",
"moment": "^2.29.1",
"moment-timezone": "^0.5.34",
"select2": "^4.1.0-rc.0",
"select2-bootstrap-5-theme": "^1.2.0",
"sortablejs": "^1.14.0",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
@ -24,48 +26,121 @@
"jquery-migrate": "^3.3.2",
"parcel": "^2.0.0"
},
"source": [
"ietf/static/css/ietf.scss",
"ietf/static/css/list.scss",
"ietf/static/css/select2.scss",
"ietf/static/images/apple-touch-icon.png",
"ietf/static/images/ietf-icon-red3.png",
"ietf/static/images/ietflogo-small-transparent.png",
"ietf/static/images/ietflogo.png",
"ietf/static/js/agenda_filter.js",
"ietf/static/js/agenda_materials.js",
"ietf/static/js/agenda_personalize.js",
"ietf/static/js/agenda_timezone.js",
"ietf/static/js/d3.js",
"ietf/static/js/datepicker.js",
"ietf/static/js/doc-search.js",
"ietf/static/js/document_timeline.js",
"ietf/static/js/edit-meeting-schedule.js",
"ietf/static/js/flot.js",
"ietf/static/js/fullcalendar.js",
"ietf/static/js/highcharts-export-data.js",
"ietf/static/js/highcharts-exporting.js",
"ietf/static/js/highcharts-highcharts.js",
"ietf/static/js/highcharts-highstock.js",
"ietf/static/js/highcharts-offline-exporting.js",
"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/password_strength.js",
"ietf/static/js/review-stats.js",
"ietf/static/js/room_params.js",
"ietf/static/js/select2.js",
"ietf/static/js/stats.js",
"ietf/static/js/timezone.js",
"ietf/static/js/week-view.js",
"ietf/static/js/zxcvbn.js"
],
"targets": {
"default": {
"distDir": "ietf/static/dist/ietf"
"ietf": {
"distDir": "ietf/static/dist/ietf",
"source": [
"ietf/static/css/ietf.scss",
"ietf/static/css/jquery-ui.scss",
"ietf/static/css/liaisons.css",
"ietf/static/css/list.scss",
"ietf/static/css/select2.scss",
"ietf/static/images/apple-touch-icon.png",
"ietf/static/images/arrow-ani.webp",
"ietf/static/images/iesg-draft-state-diagram.png",
"ietf/static/images/ietf-icon-blue3.png",
"ietf/static/images/ietf-icon-red3.png",
"ietf/static/images/ietflogo-small-transparent.png",
"ietf/static/images/ietflogo.png",
"ietf/static/images/sprite.png",
"ietf/static/js/agenda_filter.js",
"ietf/static/js/agenda_materials.js",
"ietf/static/js/agenda_personalize.js",
"ietf/static/js/agenda_timezone.js",
"ietf/static/js/complete-review.js",
"ietf/static/js/create_timeslot.js",
"ietf/static/js/create_timeslot.js",
"ietf/static/js/d3.js",
"ietf/static/js/datepicker.js",
"ietf/static/js/doc-search.js",
"ietf/static/js/document_timeline.js",
"ietf/static/js/edit-meeting-schedule.js",
"ietf/static/js/edit-meeting-timeslots-and-misc-sessions.js",
"ietf/static/js/edit-milestones.js",
"ietf/static/js/flot.js",
"ietf/static/js/fullcalendar.js",
"ietf/static/js/highcharts-export-data.js",
"ietf/static/js/highcharts-exporting.js",
"ietf/static/js/highcharts-highcharts.js",
"ietf/static/js/highcharts-highstock.js",
"ietf/static/js/highcharts-offline-exporting.js",
"ietf/static/js/ietf.js",
"ietf/static/js/ipr-edit.js",
"ietf/static/js/ipr-search.js",
"ietf/static/js/jquery-ui.js",
"ietf/static/js/js-cookie.js",
"ietf/static/js/liaisons.js",
"ietf/static/js/list.js",
"ietf/static/js/manage-community-list.js",
"ietf/static/js/manage-review-requests.js",
"ietf/static/js/meeting-interim-request.js",
"ietf/static/js/moment-timezone-with-data-10-year-range.js",
"ietf/static/js/moment.js",
"ietf/static/js/password_strength.js",
"ietf/static/js/review-stats.js",
"ietf/static/js/room_params.js",
"ietf/static/js/select2.js",
"ietf/static/js/session_details_form.js",
"ietf/static/js/sortable.js",
"ietf/static/js/stats.js",
"ietf/static/js/status-change-edit-relations.js",
"ietf/static/js/timezone.js",
"ietf/static/js/upload_bofreq.js",
"ietf/static/js/week-view.js",
"ietf/static/js/zxcvbn.js"
]
},
"secr": {
"distDir": "ietf/secr/static/dist/secr",
"source": [
"ietf/secr/static/css/base.css",
"ietf/secr/static/css/custom.css",
"ietf/secr/static/css/forms.css",
"ietf/secr/static/css/telechat.css",
"ietf/secr/static/css/test.css",
"ietf/secr/static/css/widgets.css",
"ietf/secr/static/images/ajax-loader.webp",
"ietf/secr/static/images/ams_logo.png",
"ietf/secr/static/images/arrow-down.webp",
"ietf/secr/static/images/arrow-up.webp",
"ietf/secr/static/images/chooser-bg.webp",
"ietf/secr/static/images/chooser_stacked-bg.webp",
"ietf/secr/static/images/default-bg-reverse.webp",
"ietf/secr/static/images/default-bg.webp",
"ietf/secr/static/images/deleted-overlay.webp",
"ietf/secr/static/images/icon_addlink.webp",
"ietf/secr/static/images/icon_alert.webp",
"ietf/secr/static/images/icon_changelink.webp",
"ietf/secr/static/images/icon_deletelink.webp",
"ietf/secr/static/images/icon_error.webp",
"ietf/secr/static/images/icon_success.webp",
"ietf/secr/static/images/inline-delete.png",
"ietf/secr/static/images/inline-restore.png",
"ietf/secr/static/images/inline-splitter-bg.webp",
"ietf/secr/static/images/nav-bg-grabber.webp",
"ietf/secr/static/images/nav-bg-reverse.webp",
"ietf/secr/static/images/nav-bg.webp",
"ietf/secr/static/images/selector-add.webp",
"ietf/secr/static/images/selector-addall.webp",
"ietf/secr/static/images/selector-remove.webp",
"ietf/secr/static/images/selector-removeall.webp",
"ietf/secr/static/images/selector_stacked-add.webp",
"ietf/secr/static/images/selector_stacked-remove.webp",
"ietf/secr/static/images/test-background.png",
"ietf/secr/static/images/tool-left.webp",
"ietf/secr/static/images/tool-left_over.webp",
"ietf/secr/static/images/tool-right.webp",
"ietf/secr/static/images/tool-right_over.webp",
"ietf/secr/static/images/tooltag-add.webp",
"ietf/secr/static/images/tooltag-add_over.webp",
"ietf/secr/static/images/tooltag-arrowright.webp",
"ietf/secr/static/images/tooltag-arrowright_over.webp",
"ietf/secr/static/js/dynamic_inlines.js",
"ietf/secr/static/js/proceedings-recording.js",
"ietf/secr/static/js/session_form.js",
"ietf/secr/static/js/sessions.js",
"ietf/secr/static/js/utils.js"
]
}
}
}
}