Merge branch 'main' into feat/postgres

This commit is contained in:
Robert Sparks 2023-03-09 11:43:38 -06:00
commit 4b4e876305
No known key found for this signature in database
GPG key ID: 6E2A6A5775F91318
58 changed files with 445 additions and 2991 deletions

View file

@ -17,7 +17,7 @@ jobs:
packages: write
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View file

@ -19,7 +19,7 @@ jobs:
packages: write
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View file

@ -18,7 +18,7 @@ jobs:
packages: write
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View file

@ -26,12 +26,12 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v2

165
.pnp.cjs generated
View file

@ -37,6 +37,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@fullcalendar/bootstrap5", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
["@fullcalendar/core", "npm:6.1.4"],\
["@fullcalendar/daygrid", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
["@fullcalendar/icalendar", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
["@fullcalendar/interaction", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
["@fullcalendar/list", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
["@fullcalendar/luxon2", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
@ -67,6 +68,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["file-saver", "npm:2.0.5"],\
["highcharts", "npm:10.3.3"],\
["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:7.13.1"],\
["ical.js", "npm:1.5.0"],\
["jquery", "npm:3.6.3"],\
["jquery-migrate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.4.0"],\
["jquery-ui-dist", "npm:1.13.2"],\
@ -92,6 +94,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["shepherd.js", "npm:10.0.1"],\
["slugify", "npm:1.6.5"],\
["sortablejs", "npm:1.15.0"],\
["vanillajs-datepicker", "npm:1.3.1"],\
["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.2.5"],\
["vue", "npm:3.2.47"],\
["vue-router", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.1.6"],\
@ -313,6 +316,32 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\
}]\
]],\
["@fullcalendar/icalendar", [\
["npm:6.1.4", {\
"packageLocation": "./.yarn/cache/@fullcalendar-icalendar-npm-6.1.4-8f5c41e738-4ec2ed9092.zip/node_modules/@fullcalendar/icalendar/",\
"packageDependencies": [\
["@fullcalendar/icalendar", "npm:6.1.4"]\
],\
"linkType": "SOFT"\
}],\
["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4", {\
"packageLocation": "./.yarn/__virtual__/@fullcalendar-icalendar-virtual-d4c1c240a9/0/cache/@fullcalendar-icalendar-npm-6.1.4-8f5c41e738-4ec2ed9092.zip/node_modules/@fullcalendar/icalendar/",\
"packageDependencies": [\
["@fullcalendar/icalendar", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
["@fullcalendar/core", "npm:6.1.4"],\
["@types/fullcalendar__core", null],\
["@types/ical.js", null],\
["ical.js", "npm:1.5.0"]\
],\
"packagePeers": [\
"@fullcalendar/core",\
"@types/fullcalendar__core",\
"@types/ical.js",\
"ical.js"\
],\
"linkType": "HARD"\
}]\
]],\
["@fullcalendar/interaction", [\
["npm:6.1.4", {\
"packageLocation": "./.yarn/cache/@fullcalendar-interaction-npm-6.1.4-a5a798ee1e-5e282ba36b.zip/node_modules/@fullcalendar/interaction/",\
@ -490,6 +519,18 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\
}]\
]],\
["@jridgewell/gen-mapping", [\
["npm:0.3.2", {\
"packageLocation": "./.yarn/cache/@jridgewell-gen-mapping-npm-0.3.2-c64eeb4a4e-1832707a1c.zip/node_modules/@jridgewell/gen-mapping/",\
"packageDependencies": [\
["@jridgewell/gen-mapping", "npm:0.3.2"],\
["@jridgewell/set-array", "npm:1.1.2"],\
["@jridgewell/sourcemap-codec", "npm:1.4.14"],\
["@jridgewell/trace-mapping", "npm:0.3.17"]\
],\
"linkType": "HARD"\
}]\
]],\
["@jridgewell/resolve-uri", [\
["npm:3.1.0", {\
"packageLocation": "./.yarn/cache/@jridgewell-resolve-uri-npm-3.1.0-6ff2351e61-b5ceaaf9a1.zip/node_modules/@jridgewell/resolve-uri/",\
@ -499,6 +540,26 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\
}]\
]],\
["@jridgewell/set-array", [\
["npm:1.1.2", {\
"packageLocation": "./.yarn/cache/@jridgewell-set-array-npm-1.1.2-45b82d7fb6-69a84d5980.zip/node_modules/@jridgewell/set-array/",\
"packageDependencies": [\
["@jridgewell/set-array", "npm:1.1.2"]\
],\
"linkType": "HARD"\
}]\
]],\
["@jridgewell/source-map", [\
["npm:0.3.2", {\
"packageLocation": "./.yarn/cache/@jridgewell-source-map-npm-0.3.2-6fd1f37b22-1b83f0eb94.zip/node_modules/@jridgewell/source-map/",\
"packageDependencies": [\
["@jridgewell/source-map", "npm:0.3.2"],\
["@jridgewell/gen-mapping", "npm:0.3.2"],\
["@jridgewell/trace-mapping", "npm:0.3.17"]\
],\
"linkType": "HARD"\
}]\
]],\
["@jridgewell/sourcemap-codec", [\
["npm:1.4.14", {\
"packageLocation": "./.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.14-f5f0630788-61100637b6.zip/node_modules/@jridgewell/sourcemap-codec/",\
@ -517,6 +578,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@jridgewell/sourcemap-codec", "npm:1.4.14"]\
],\
"linkType": "HARD"\
}],\
["npm:0.3.17", {\
"packageLocation": "./.yarn/cache/@jridgewell-trace-mapping-npm-0.3.17-57578fd48c-9d703b859c.zip/node_modules/@jridgewell/trace-mapping/",\
"packageDependencies": [\
["@jridgewell/trace-mapping", "npm:0.3.17"],\
["@jridgewell/resolve-uri", "npm:3.1.0"],\
["@jridgewell/sourcemap-codec", "npm:1.4.14"]\
],\
"linkType": "HARD"\
}]\
]],\
["@juggle/resize-observer", [\
@ -1249,7 +1319,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@parcel/source-map", "npm:2.1.1"],\
["@parcel/utils", "npm:2.8.3"],\
["nullthrows", "npm:1.1.1"],\
["terser", "npm:5.13.1"]\
["terser", "npm:5.16.5"]\
],\
"linkType": "HARD"\
}]\
@ -5242,10 +5312,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]\
]],\
["http-cache-semantics", [\
["npm:4.1.0", {\
"packageLocation": "./.yarn/cache/http-cache-semantics-npm-4.1.0-860520a31f-974de94a81.zip/node_modules/http-cache-semantics/",\
["npm:4.1.1", {\
"packageLocation": "./.yarn/cache/http-cache-semantics-npm-4.1.1-1120131375-83ac0bc60b.zip/node_modules/http-cache-semantics/",\
"packageDependencies": [\
["http-cache-semantics", "npm:4.1.0"]\
["http-cache-semantics", "npm:4.1.1"]\
],\
"linkType": "HARD"\
}]\
@ -5297,6 +5367,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\
}]\
]],\
["ical.js", [\
["npm:1.5.0", {\
"packageLocation": "./.yarn/cache/ical.js-npm-1.5.0-5ba1c69420-51df7a01f4.zip/node_modules/ical.js/",\
"packageDependencies": [\
["ical.js", "npm:1.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["iconv-lite", [\
["npm:0.6.3", {\
"packageLocation": "./.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip/node_modules/iconv-lite/",\
@ -5899,10 +5978,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]\
]],\
["json5", [\
["npm:1.0.1", {\
"packageLocation": "./.yarn/cache/json5-npm-1.0.1-647fc8794b-e76ea23dbb.zip/node_modules/json5/",\
["npm:1.0.2", {\
"packageLocation": "./.yarn/cache/json5-npm-1.0.2-9607f93e30-866458a8c5.zip/node_modules/json5/",\
"packageDependencies": [\
["json5", "npm:1.0.1"],\
["json5", "npm:1.0.2"],\
["minimist", "npm:1.2.6"]\
],\
"linkType": "HARD"\
@ -6120,15 +6199,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\
}]\
]],\
["lodash.sortby", [\
["npm:4.7.0", {\
"packageLocation": "./.yarn/cache/lodash.sortby-npm-4.7.0-fda8ab950d-db170c9396.zip/node_modules/lodash.sortby/",\
"packageDependencies": [\
["lodash.sortby", "npm:4.7.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["lru-cache", [\
["npm:6.0.0", {\
"packageLocation": "./.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip/node_modules/lru-cache/",\
@ -6182,7 +6252,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["make-fetch-happen", "npm:10.1.5"],\
["agentkeepalive", "npm:4.2.1"],\
["cacache", "npm:16.1.0"],\
["http-cache-semantics", "npm:4.1.0"],\
["http-cache-semantics", "npm:4.1.1"],\
["http-proxy-agent", "npm:5.0.0"],\
["https-proxy-agent", "npm:5.0.1"],\
["is-lambda", "npm:1.0.1"],\
@ -7450,6 +7520,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@fullcalendar/bootstrap5", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
["@fullcalendar/core", "npm:6.1.4"],\
["@fullcalendar/daygrid", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
["@fullcalendar/icalendar", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
["@fullcalendar/interaction", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
["@fullcalendar/list", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
["@fullcalendar/luxon2", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.4"],\
@ -7480,6 +7551,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["file-saver", "npm:2.0.5"],\
["highcharts", "npm:10.3.3"],\
["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:7.13.1"],\
["ical.js", "npm:1.5.0"],\
["jquery", "npm:3.6.3"],\
["jquery-migrate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.4.0"],\
["jquery-ui-dist", "npm:1.13.2"],\
@ -7505,6 +7577,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["shepherd.js", "npm:10.0.1"],\
["slugify", "npm:1.6.5"],\
["sortablejs", "npm:1.15.0"],\
["vanillajs-datepicker", "npm:1.3.1"],\
["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.2.5"],\
["vue", "npm:3.2.47"],\
["vue-router", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.1.6"],\
@ -7836,14 +7909,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["source-map", "npm:0.6.1"]\
],\
"linkType": "HARD"\
}],\
["npm:0.8.0-beta.0", {\
"packageLocation": "./.yarn/cache/source-map-npm-0.8.0-beta.0-688a309e94-e94169be64.zip/node_modules/source-map/",\
"packageDependencies": [\
["source-map", "npm:0.8.0-beta.0"],\
["whatwg-url", "npm:7.1.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["source-map-js", [\
@ -8063,13 +8128,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]\
]],\
["terser", [\
["npm:5.13.1", {\
"packageLocation": "./.yarn/cache/terser-npm-5.13.1-c7df10bd07-0b1f5043cf.zip/node_modules/terser/",\
["npm:5.16.5", {\
"packageLocation": "./.yarn/cache/terser-npm-5.16.5-b3f4101afe-f2c1a087fa.zip/node_modules/terser/",\
"packageDependencies": [\
["terser", "npm:5.13.1"],\
["terser", "npm:5.16.5"],\
["@jridgewell/source-map", "npm:0.3.2"],\
["acorn", "npm:8.7.1"],\
["commander", "npm:2.20.3"],\
["source-map", "npm:0.8.0-beta.0"],\
["source-map-support", "npm:0.5.21"]\
],\
"linkType": "HARD"\
@ -8142,16 +8207,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\
}]\
]],\
["tr46", [\
["npm:1.0.1", {\
"packageLocation": "./.yarn/cache/tr46-npm-1.0.1-9547f343a4-96d4ed46bc.zip/node_modules/tr46/",\
"packageDependencies": [\
["tr46", "npm:1.0.1"],\
["punycode", "npm:2.1.1"]\
],\
"linkType": "HARD"\
}]\
]],\
["treemate", [\
["npm:0.3.11", {\
"packageLocation": "./.yarn/cache/treemate-npm-0.3.11-7be66c23fc-0c6ccbc6c5.zip/node_modules/treemate/",\
@ -8167,7 +8222,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageDependencies": [\
["tsconfig-paths", "npm:3.14.1"],\
["@types/json5", "npm:0.0.29"],\
["json5", "npm:1.0.1"],\
["json5", "npm:1.0.2"],\
["minimist", "npm:1.2.6"],\
["strip-bom", "npm:3.0.0"]\
],\
@ -8296,6 +8351,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\
}]\
]],\
["vanillajs-datepicker", [\
["npm:1.3.1", {\
"packageLocation": "./.yarn/cache/vanillajs-datepicker-npm-1.3.1-75a9d66ea4-c01ea7ec70.zip/node_modules/vanillajs-datepicker/",\
"packageDependencies": [\
["vanillajs-datepicker", "npm:1.3.1"]\
],\
"linkType": "HARD"\
}]\
]],\
["vdirs", [\
["npm:0.1.8", {\
"packageLocation": "./.yarn/cache/vdirs-npm-0.1.8-59a32a98d6-a7be8ccad3.zip/node_modules/vdirs/",\
@ -8550,27 +8614,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\
}]\
]],\
["webidl-conversions", [\
["npm:4.0.2", {\
"packageLocation": "./.yarn/cache/webidl-conversions-npm-4.0.2-1d159e6409-c93d8dfe90.zip/node_modules/webidl-conversions/",\
"packageDependencies": [\
["webidl-conversions", "npm:4.0.2"]\
],\
"linkType": "HARD"\
}]\
]],\
["whatwg-url", [\
["npm:7.1.0", {\
"packageLocation": "./.yarn/cache/whatwg-url-npm-7.1.0-d6cae01571-fecb07c872.zip/node_modules/whatwg-url/",\
"packageDependencies": [\
["whatwg-url", "npm:7.1.0"],\
["lodash.sortby", "npm:4.7.0"],\
["tr46", "npm:1.0.1"],\
["webidl-conversions", "npm:4.0.2"]\
],\
"linkType": "HARD"\
}]\
]],\
["which", [\
["npm:2.0.2", {\
"packageLocation": "./.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip/node_modules/which/",\

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -74,7 +74,6 @@
size='large'
:show-arrow='true'
trigger='click'
@select='downloadIcs'
)
n-button.mt-2(
id='agenda-quickaccess-addtocal-btn'
@ -141,14 +140,26 @@ const route = useRoute()
const downloadIcsOptions = [
{
label: 'Subscribe... (webcal)',
key: 'subscribe',
icon: () => h('i', { class: 'bi bi-calendar-week text-blue' })
type: 'render',
render: () => h('a', {
class: 'agenda-quickaccess-callinks',
href: `webcal://${window.location.host}${icsLink.value}`
}, [
h('i', { class: 'bi bi-calendar-week text-blue' }),
h('span', 'Subscribe... (webcal)')
])
},
{
label: 'Download... (.ics)',
key: 'download',
icon: () => h('i', { class: 'bi bi-arrow-down-square' })
type: 'render',
render: () => h('a', {
class: 'agenda-quickaccess-callinks',
href: icsLink.value
}, [
h('i', { class: 'bi bi-arrow-down-square' }),
h('span', 'Download... (.ics)')
])
}
]
@ -158,6 +169,17 @@ const shortMode = computed(() => {
return siteStore.viewport <= 1350
})
const icsLink = computed(() => {
if (agendaStore.pickerMode) {
const sessionKeywords = agendaStore.scheduleAdjusted.map(s => s.sessionKeyword)
return `${getUrl('meetingCalIcs', { meetingNumber: agendaStore.meeting.number })}?show=${sessionKeywords.join(',')}`
} else if (agendaStore.selectedCatSubs.length > 0) {
return `${getUrl('meetingCalIcs', { meetingNumber: agendaStore.meeting.number })}?show=${agendaStore.selectedCatSubs.join(',')}`
} else {
return `${getUrl('meetingCalIcs', { meetingNumber: agendaStore.meeting.number })}`
}
})
// METHODS
function pickerStart () {
@ -177,24 +199,6 @@ function pickerDiscard () {
}
}
function downloadIcs (key) {
message.loading('Generating calendar file... Download will begin shortly.')
let icsUrl = ''
if (agendaStore.pickerMode) {
const sessionKeywords = agendaStore.scheduleAdjusted.map(s => s.sessionKeyword)
icsUrl = `${getUrl('meetingCalIcs', { meetingNumber: agendaStore.meeting.number })}?show=${sessionKeywords.join(',')}`
} else if (agendaStore.selectedCatSubs.length > 0) {
icsUrl = `${getUrl('meetingCalIcs', { meetingNumber: agendaStore.meeting.number })}?show=${agendaStore.selectedCatSubs.join(',')}`
} else {
icsUrl = `${getUrl('meetingCalIcs', { meetingNumber: agendaStore.meeting.number })}`
}
if (key === 'subscribe') {
window.location.assign(`webcal://${window.location.host}${icsUrl}`)
} else {
window.location.assign(icsUrl)
}
}
function scrollToDay (dayId, ev) {
ev.preventDefault()
document.getElementById(`agenda-day-${dayId}`)?.scrollIntoView(true)
@ -284,5 +288,24 @@ function scrollToNow (ev) {
margin-top: 15px;
margin-bottom: 15px;
}
&-callinks {
padding: 8px 16px;
display: flex;
text-decoration: none;
align-items: center;
&:hover, &:focus {
text-decoration: underline;
}
> i {
font-size: var(--n-font-size);
}
> span {
margin-left: 12px;
}
}
}
</style>

View file

@ -263,7 +263,7 @@ const meetingEvents = computed(() => {
key: `sesshd-${item.id}`,
displayType: 'session-head',
timeslot: itemTimeSlot,
name: `${item.adjustedStart.toFormat('cccc')} ${item.slotName}`,
name: `${item.adjustedStart.setZone(agendaStore.meeting.timezone).toFormat('cccc')} ${item.slotName}`,
cssClasses: 'agenda-table-display-session-head' + (isLive ? ' agenda-table-live' : '')
})
}

View file

@ -14,7 +14,7 @@
"chart.js": "3.7.1",
"chartjs-node-canvas": "4.1.6",
"lodash": "4.17.21",
"luxon": "2.3.1"
"luxon": "2.5.2"
},
"devDependencies": {
"eslint": "7.32.0",
@ -1734,9 +1734,9 @@
"dev": true
},
"node_modules/json5": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"dependencies": {
"minimist": "^1.2.0"
@ -1800,9 +1800,9 @@
}
},
"node_modules/luxon": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-2.3.1.tgz",
"integrity": "sha512-I8vnjOmhXsMSlNMZlMkSOvgrxKJl0uOsEzdGgGNZuZPaS9KlefpE9KV95QFftlJSC+1UyCC9/I69R02cz/zcCA==",
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.2.tgz",
"integrity": "sha512-Yg7/RDp4nedqmLgyH0LwgGRvMEKVzKbUdkBYyCosbHgJ+kaOUx0qzSiSatVc3DFygnirTPYnMM2P5dg2uH1WvA==",
"engines": {
"node": ">=12"
}
@ -3993,9 +3993,9 @@
"dev": true
},
"json5": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
@ -4047,9 +4047,9 @@
}
},
"luxon": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-2.3.1.tgz",
"integrity": "sha512-I8vnjOmhXsMSlNMZlMkSOvgrxKJl0uOsEzdGgGNZuZPaS9KlefpE9KV95QFftlJSC+1UyCC9/I69R02cz/zcCA=="
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.2.tgz",
"integrity": "sha512-Yg7/RDp4nedqmLgyH0LwgGRvMEKVzKbUdkBYyCosbHgJ+kaOUx0qzSiSatVc3DFygnirTPYnMM2P5dg2uH1WvA=="
},
"make-dir": {
"version": "3.1.0",

View file

@ -11,7 +11,7 @@
"chart.js": "3.7.1",
"chartjs-node-canvas": "4.1.6",
"lodash": "4.17.21",
"luxon": "2.3.1"
"luxon": "2.5.2"
},
"devDependencies": {
"eslint": "7.32.0",

View file

@ -15,7 +15,7 @@
"keypress": "^0.2.1",
"listr2": "^5.0.2",
"lodash-es": "^4.17.21",
"luxon": "^3.0.1",
"luxon": "^3.2.1",
"pretty-bytes": "^6.0.0",
"tar": "^6.1.11",
"yargs": "^17.5.1"
@ -666,9 +666,9 @@
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"node_modules/http-cache-semantics": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
"integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
},
"node_modules/http2-wrapper": {
"version": "2.1.11",
@ -1007,9 +1007,9 @@
}
},
"node_modules/luxon": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.0.1.tgz",
"integrity": "sha512-hF3kv0e5gwHQZKz4wtm4c+inDtyc7elkanAsBq+fundaCdUBNJB1dHEGUZIM6SfSBUlbVFduPwEtNjFK8wLtcw==",
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz",
"integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==",
"engines": {
"node": ">=12"
}
@ -1985,9 +1985,9 @@
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"http-cache-semantics": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
"integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
},
"http2-wrapper": {
"version": "2.1.11",
@ -2219,9 +2219,9 @@
"integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ=="
},
"luxon": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.0.1.tgz",
"integrity": "sha512-hF3kv0e5gwHQZKz4wtm4c+inDtyc7elkanAsBq+fundaCdUBNJB1dHEGUZIM6SfSBUlbVFduPwEtNjFK8wLtcw=="
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz",
"integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg=="
},
"mimic-fn": {
"version": "2.1.0",

View file

@ -11,7 +11,7 @@
"keypress": "^0.2.1",
"listr2": "^5.0.2",
"lodash-es": "^4.17.21",
"luxon": "^3.0.1",
"luxon": "^3.2.1",
"pretty-bytes": "^6.0.0",
"tar": "^6.1.11",
"yargs": "^17.5.1"

View file

@ -251,7 +251,6 @@ def prepare_document_table(request, docs, query=None, max_results=200):
if query and hasattr(query, "urlencode"): # fed a Django QueryDict
d = query.copy()
for h in meta['headers']:
h["sort_url"] = "?" + d.urlencode()
if h['key'] == sort_key:
h['sorted'] = True
if sort_reversed:
@ -262,5 +261,6 @@ def prepare_document_table(request, docs, query=None, max_results=200):
d["sort"] = "-" + h["key"]
else:
d["sort"] = h["key"]
h["sort_url"] = "?" + d.urlencode()
return (docs, meta)

View file

@ -100,8 +100,8 @@ class MilestoneTests(IetfSeleniumTestCase):
# fill in the edit milestone form
desc_input.send_keys(description)
due_input.send_keys(due_date.strftime('%m %Y\n')) # \n closes the date selector
self._search_draft_and_locate_result(draft_input, draft_search_string, draft).click()
due_input.send_keys(due_date.strftime('%m %Y'))
self._click_milestone_submit_button('Review')
result_row = self._assert_milestone_changed()
@ -165,7 +165,7 @@ class MilestoneTests(IetfSeleniumTestCase):
# modify the fields
new_due_date = (milestone.due + datetime.timedelta(days=31)).strftime('%m %Y')
due_field.clear()
due_field.send_keys(new_due_date + '\n')
due_field.send_keys(new_due_date)
self._search_draft_and_locate_result(draft_input, draft_search_string, draft).click()
@ -189,4 +189,4 @@ class MilestoneTests(IetfSeleniumTestCase):
gms = self.group.groupmilestone_set.first()
self.assertEqual(gms.desc, expected_desc)
self.assertEqual(gms.due.strftime('%m %Y'), expected_due_date)
self.assertCountEqual(expected_docs, gms.docs.all())
self.assertCountEqual(expected_docs, gms.docs.all())

View file

@ -777,7 +777,7 @@ def apikey_create(request):
@person_required
def apikey_disable(request):
person = request.user.person
choices = [ (k.hash(), str(k)) for k in person.apikeys.all() ]
choices = [ (k.hash(), str(k)) for k in person.apikeys.exclude(valid=False) ]
#
class KeyDeleteForm(forms.Form):
hash = forms.ChoiceField(label='Key', choices=choices)

View file

@ -591,7 +591,7 @@ I would like to revoke this declaration.
get_payload_text(outbox[len_before + 1]).replace('\n', ' ')
)
self.assertIn(f'{settings.IDTRACKER_BASE_URL}{urlreverse("ietf.ipr.views.showlist")}', get_payload_text(outbox[len_before]).replace('\n',' '))
self.assertIn(f'{settings.IDTRACKER_BASE_URL}{urlreverse("ietf.ipr.views.history",kwargs=dict(id=ipr.pk))}', get_payload_text(outbox[len_before+1]).replace('\n',' '))
self.assertIn(f'{settings.IDTRACKER_BASE_URL}{urlreverse("ietf.ipr.views.show",kwargs=dict(id=ipr.pk))}', get_payload_text(outbox[len_before+1]).replace('\n',' '))
def test_notify_generic(self):
RoleFactory(name_id='ad',group__acronym='gen')

View file

@ -826,7 +826,7 @@ def get_announcement_initial(meeting, is_change=False):
desc=desc,
date=meeting.date,
change=change)
body = render_to_string('meeting/interim_announcement.txt', locals())
body = render_to_string('meeting/interim_announcement.txt', locals() | {"settings": settings})
initial['body'] = body
return initial

View file

@ -298,26 +298,6 @@ class Meeting(models.Model):
self._proceedings_format_version = version # save this for later
return self._proceedings_format_version
@property
def session_constraintnames(self):
"""Gets a list of the constraint names that should be used for this meeting
Anticipated that this will soon become a many-to-many relationship with ConstraintName
(see issue #2770). Making this a @property allows use of the .all(), .filter(), etc,
so that other code should not need changes when this is replaced.
"""
try:
mtg_num = int(self.number)
except ValueError:
mtg_num = None # should not come up, but this method should not fail
if mtg_num is None or mtg_num >= 106:
# These meetings used the old 'conflic?' constraint types labeled as though
# they were the new types.
slugs = ('chair_conflict', 'tech_overlap', 'key_participant')
else:
slugs = ('conflict', 'conflic2', 'conflic3')
return ConstraintName.objects.filter(slug__in=slugs)
def base_url(self):
return "/meeting/%s" % (self.number, )

View file

@ -4510,10 +4510,11 @@ class InterimTests(TestCase):
if sess:
timeslot = sess.official_timeslotassignment().timeslot
self.assertIn(timeslot.time.strftime('%Y-%m-%d'), announcement_text)
self.assertIn(
'(%s to %s UTC)' % (
self.assertRegex(
announcement_text,
r'(%s\s+to\s+%s\s+UTC)' % (
timeslot.utc_start_time().strftime('%H:%M'),timeslot.utc_end_time().strftime('%H:%M')
), announcement_text)
))
# Count number of sessions listed
if base_session and extra_session:
expected_session_matches = 3

View file

@ -3,6 +3,7 @@
import datetime
import inflect
from collections import defaultdict, OrderedDict
from django.conf import settings
@ -105,18 +106,29 @@ def get_lock_message(meeting=None):
meeting = get_meeting(days=14)
return meeting.session_request_lock_message
def get_requester_text(person,group):
'''
This function takes a Person object and a Group object and returns the text to use in the
session request notification email, ie. Joe Smith, a Chair of the ancp working group
'''
roles = group.role_set.filter(name__in=('chair','secr'),person=person)
def get_requester_text(person, group):
"""
This function takes a Person object and a Group object and returns the text to use
in the session request notification email, ie. Joe Smith, a Chair of the ancp
working group
"""
roles = group.role_set.filter(name__in=("chair", "secr", "ad"), person=person)
if roles:
return '%s, a %s of the %s working group' % (person.ascii, roles[0].name, group.acronym)
if group.parent and group.parent.role_set.filter(name='ad',person=person):
return '%s, a %s Area Director' % (person.ascii, group.parent.acronym.upper())
if person.role_set.filter(name='secr',group__acronym='secretariat'):
return '%s, on behalf of the %s working group' % (person.ascii, group.acronym)
rolename = str(roles[0].name)
return "%s, %s of the %s %s" % (
person.name,
inflect.engine().a(rolename),
group.acronym.upper(),
group.type.verbose_name,
)
if person.role_set.filter(name="secr", group__acronym="secretariat"):
return "%s, on behalf of the %s %s" % (
person.name,
group.acronym.upper(),
group.type.verbose_name,
)
def save_conflicts(group, meeting, conflicts, name):
'''

View file

@ -1,5 +1,5 @@
{% load ams_filters %}
{{ header }} meeting session request has just been submitted by {{ requester }}.
{% filter wordwrap:78 %}{{ header }} meeting session request has just been submitted by {{ requester }}.{% endfilter %}
{% include "includes/session_info.txt" %}

View file

@ -1,683 +1,2 @@
/*!
* Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker)
*
* Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
*/
.datepicker {
border-radius: 4px;
direction: ltr;
}
.datepicker-inline {
width: 220px;
}
.datepicker-rtl {
direction: rtl;
}
.datepicker-rtl.dropdown-menu {
left: auto;
}
.datepicker-rtl table tr td span {
float: right;
}
.datepicker-dropdown {
top: 0;
left: 0;
padding: 4px;
}
.datepicker-dropdown:before {
content: '';
display: inline-block;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid rgba(0, 0, 0, 0.15);
border-top: 0;
border-bottom-color: rgba(0, 0, 0, 0.2);
position: absolute;
}
.datepicker-dropdown:after {
content: '';
display: inline-block;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid #fff;
border-top: 0;
position: absolute;
}
.datepicker-dropdown.datepicker-orient-left:before {
left: 6px;
}
.datepicker-dropdown.datepicker-orient-left:after {
left: 7px;
}
.datepicker-dropdown.datepicker-orient-right:before {
right: 6px;
}
.datepicker-dropdown.datepicker-orient-right:after {
right: 7px;
}
.datepicker-dropdown.datepicker-orient-bottom:before {
top: -7px;
}
.datepicker-dropdown.datepicker-orient-bottom:after {
top: -6px;
}
.datepicker-dropdown.datepicker-orient-top:before {
bottom: -7px;
border-bottom: 0;
border-top: 7px solid rgba(0, 0, 0, 0.15);
}
.datepicker-dropdown.datepicker-orient-top:after {
bottom: -6px;
border-bottom: 0;
border-top: 6px solid #fff;
}
.datepicker table {
margin: 0;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.datepicker table tr td,
.datepicker table tr th {
text-align: center;
width: 30px;
height: 30px;
border-radius: 4px;
border: none;
}
.table-striped .datepicker table tr td,
.table-striped .datepicker table tr th {
background-color: transparent;
}
.datepicker table tr td.old,
.datepicker table tr td.new {
color: #777777;
}
.datepicker table tr td.day:hover,
.datepicker table tr td.focused {
background: #eeeeee;
cursor: pointer;
}
.datepicker table tr td.disabled,
.datepicker table tr td.disabled:hover {
background: none;
color: #777777;
cursor: default;
}
.datepicker table tr td.highlighted {
color: #000;
background-color: #d9edf7;
border-color: #85c5e5;
border-radius: 0;
}
.datepicker table tr td.highlighted:focus,
.datepicker table tr td.highlighted.focus {
color: #000;
background-color: #afd9ee;
border-color: #298fc2;
}
.datepicker table tr td.highlighted:hover {
color: #000;
background-color: #afd9ee;
border-color: #52addb;
}
.datepicker table tr td.highlighted:active,
.datepicker table tr td.highlighted.active {
color: #000;
background-color: #afd9ee;
border-color: #52addb;
}
.datepicker table tr td.highlighted:active:hover,
.datepicker table tr td.highlighted.active:hover,
.datepicker table tr td.highlighted:active:focus,
.datepicker table tr td.highlighted.active:focus,
.datepicker table tr td.highlighted:active.focus,
.datepicker table tr td.highlighted.active.focus {
color: #000;
background-color: #91cbe8;
border-color: #298fc2;
}
.datepicker table tr td.highlighted.disabled:hover,
.datepicker table tr td.highlighted[disabled]:hover,
fieldset[disabled] .datepicker table tr td.highlighted:hover,
.datepicker table tr td.highlighted.disabled:focus,
.datepicker table tr td.highlighted[disabled]:focus,
fieldset[disabled] .datepicker table tr td.highlighted:focus,
.datepicker table tr td.highlighted.disabled.focus,
.datepicker table tr td.highlighted[disabled].focus,
fieldset[disabled] .datepicker table tr td.highlighted.focus {
background-color: #d9edf7;
border-color: #85c5e5;
}
.datepicker table tr td.highlighted.focused {
background: #afd9ee;
}
.datepicker table tr td.highlighted.disabled,
.datepicker table tr td.highlighted.disabled:active {
background: #d9edf7;
color: #777777;
}
.datepicker table tr td.today {
color: #000;
background-color: #ffdb99;
border-color: #ffb733;
}
.datepicker table tr td.today:focus,
.datepicker table tr td.today.focus {
color: #000;
background-color: #ffc966;
border-color: #b37400;
}
.datepicker table tr td.today:hover {
color: #000;
background-color: #ffc966;
border-color: #f59e00;
}
.datepicker table tr td.today:active,
.datepicker table tr td.today.active {
color: #000;
background-color: #ffc966;
border-color: #f59e00;
}
.datepicker table tr td.today:active:hover,
.datepicker table tr td.today.active:hover,
.datepicker table tr td.today:active:focus,
.datepicker table tr td.today.active:focus,
.datepicker table tr td.today:active.focus,
.datepicker table tr td.today.active.focus {
color: #000;
background-color: #ffbc42;
border-color: #b37400;
}
.datepicker table tr td.today.disabled:hover,
.datepicker table tr td.today[disabled]:hover,
fieldset[disabled] .datepicker table tr td.today:hover,
.datepicker table tr td.today.disabled:focus,
.datepicker table tr td.today[disabled]:focus,
fieldset[disabled] .datepicker table tr td.today:focus,
.datepicker table tr td.today.disabled.focus,
.datepicker table tr td.today[disabled].focus,
fieldset[disabled] .datepicker table tr td.today.focus {
background-color: #ffdb99;
border-color: #ffb733;
}
.datepicker table tr td.today.focused {
background: #ffc966;
}
.datepicker table tr td.today.disabled,
.datepicker table tr td.today.disabled:active {
background: #ffdb99;
color: #777777;
}
.datepicker table tr td.range {
color: #000;
background-color: #eeeeee;
border-color: #bbbbbb;
border-radius: 0;
}
.datepicker table tr td.range:focus,
.datepicker table tr td.range.focus {
color: #000;
background-color: #d5d5d5;
border-color: #7c7c7c;
}
.datepicker table tr td.range:hover {
color: #000;
background-color: #d5d5d5;
border-color: #9d9d9d;
}
.datepicker table tr td.range:active,
.datepicker table tr td.range.active {
color: #000;
background-color: #d5d5d5;
border-color: #9d9d9d;
}
.datepicker table tr td.range:active:hover,
.datepicker table tr td.range.active:hover,
.datepicker table tr td.range:active:focus,
.datepicker table tr td.range.active:focus,
.datepicker table tr td.range:active.focus,
.datepicker table tr td.range.active.focus {
color: #000;
background-color: #c3c3c3;
border-color: #7c7c7c;
}
.datepicker table tr td.range.disabled:hover,
.datepicker table tr td.range[disabled]:hover,
fieldset[disabled] .datepicker table tr td.range:hover,
.datepicker table tr td.range.disabled:focus,
.datepicker table tr td.range[disabled]:focus,
fieldset[disabled] .datepicker table tr td.range:focus,
.datepicker table tr td.range.disabled.focus,
.datepicker table tr td.range[disabled].focus,
fieldset[disabled] .datepicker table tr td.range.focus {
background-color: #eeeeee;
border-color: #bbbbbb;
}
.datepicker table tr td.range.focused {
background: #d5d5d5;
}
.datepicker table tr td.range.disabled,
.datepicker table tr td.range.disabled:active {
background: #eeeeee;
color: #777777;
}
.datepicker table tr td.range.highlighted {
color: #000;
background-color: #e4eef3;
border-color: #9dc1d3;
}
.datepicker table tr td.range.highlighted:focus,
.datepicker table tr td.range.highlighted.focus {
color: #000;
background-color: #c1d7e3;
border-color: #4b88a6;
}
.datepicker table tr td.range.highlighted:hover {
color: #000;
background-color: #c1d7e3;
border-color: #73a6c0;
}
.datepicker table tr td.range.highlighted:active,
.datepicker table tr td.range.highlighted.active {
color: #000;
background-color: #c1d7e3;
border-color: #73a6c0;
}
.datepicker table tr td.range.highlighted:active:hover,
.datepicker table tr td.range.highlighted.active:hover,
.datepicker table tr td.range.highlighted:active:focus,
.datepicker table tr td.range.highlighted.active:focus,
.datepicker table tr td.range.highlighted:active.focus,
.datepicker table tr td.range.highlighted.active.focus {
color: #000;
background-color: #a8c8d8;
border-color: #4b88a6;
}
.datepicker table tr td.range.highlighted.disabled:hover,
.datepicker table tr td.range.highlighted[disabled]:hover,
fieldset[disabled] .datepicker table tr td.range.highlighted:hover,
.datepicker table tr td.range.highlighted.disabled:focus,
.datepicker table tr td.range.highlighted[disabled]:focus,
fieldset[disabled] .datepicker table tr td.range.highlighted:focus,
.datepicker table tr td.range.highlighted.disabled.focus,
.datepicker table tr td.range.highlighted[disabled].focus,
fieldset[disabled] .datepicker table tr td.range.highlighted.focus {
background-color: #e4eef3;
border-color: #9dc1d3;
}
.datepicker table tr td.range.highlighted.focused {
background: #c1d7e3;
}
.datepicker table tr td.range.highlighted.disabled,
.datepicker table tr td.range.highlighted.disabled:active {
background: #e4eef3;
color: #777777;
}
.datepicker table tr td.range.today {
color: #000;
background-color: #f7ca77;
border-color: #f1a417;
}
.datepicker table tr td.range.today:focus,
.datepicker table tr td.range.today.focus {
color: #000;
background-color: #f4b747;
border-color: #815608;
}
.datepicker table tr td.range.today:hover {
color: #000;
background-color: #f4b747;
border-color: #bf800c;
}
.datepicker table tr td.range.today:active,
.datepicker table tr td.range.today.active {
color: #000;
background-color: #f4b747;
border-color: #bf800c;
}
.datepicker table tr td.range.today:active:hover,
.datepicker table tr td.range.today.active:hover,
.datepicker table tr td.range.today:active:focus,
.datepicker table tr td.range.today.active:focus,
.datepicker table tr td.range.today:active.focus,
.datepicker table tr td.range.today.active.focus {
color: #000;
background-color: #f2aa25;
border-color: #815608;
}
.datepicker table tr td.range.today.disabled:hover,
.datepicker table tr td.range.today[disabled]:hover,
fieldset[disabled] .datepicker table tr td.range.today:hover,
.datepicker table tr td.range.today.disabled:focus,
.datepicker table tr td.range.today[disabled]:focus,
fieldset[disabled] .datepicker table tr td.range.today:focus,
.datepicker table tr td.range.today.disabled.focus,
.datepicker table tr td.range.today[disabled].focus,
fieldset[disabled] .datepicker table tr td.range.today.focus {
background-color: #f7ca77;
border-color: #f1a417;
}
.datepicker table tr td.range.today.disabled,
.datepicker table tr td.range.today.disabled:active {
background: #f7ca77;
color: #777777;
}
.datepicker table tr td.selected,
.datepicker table tr td.selected.highlighted {
color: #fff;
background-color: #777777;
border-color: #555555;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker table tr td.selected:focus,
.datepicker table tr td.selected.highlighted:focus,
.datepicker table tr td.selected.focus,
.datepicker table tr td.selected.highlighted.focus {
color: #fff;
background-color: #5e5e5e;
border-color: #161616;
}
.datepicker table tr td.selected:hover,
.datepicker table tr td.selected.highlighted:hover {
color: #fff;
background-color: #5e5e5e;
border-color: #373737;
}
.datepicker table tr td.selected:active,
.datepicker table tr td.selected.highlighted:active,
.datepicker table tr td.selected.active,
.datepicker table tr td.selected.highlighted.active {
color: #fff;
background-color: #5e5e5e;
border-color: #373737;
}
.datepicker table tr td.selected:active:hover,
.datepicker table tr td.selected.highlighted:active:hover,
.datepicker table tr td.selected.active:hover,
.datepicker table tr td.selected.highlighted.active:hover,
.datepicker table tr td.selected:active:focus,
.datepicker table tr td.selected.highlighted:active:focus,
.datepicker table tr td.selected.active:focus,
.datepicker table tr td.selected.highlighted.active:focus,
.datepicker table tr td.selected:active.focus,
.datepicker table tr td.selected.highlighted:active.focus,
.datepicker table tr td.selected.active.focus,
.datepicker table tr td.selected.highlighted.active.focus {
color: #fff;
background-color: #4c4c4c;
border-color: #161616;
}
.datepicker table tr td.selected.disabled:hover,
.datepicker table tr td.selected.highlighted.disabled:hover,
.datepicker table tr td.selected[disabled]:hover,
.datepicker table tr td.selected.highlighted[disabled]:hover,
fieldset[disabled] .datepicker table tr td.selected:hover,
fieldset[disabled] .datepicker table tr td.selected.highlighted:hover,
.datepicker table tr td.selected.disabled:focus,
.datepicker table tr td.selected.highlighted.disabled:focus,
.datepicker table tr td.selected[disabled]:focus,
.datepicker table tr td.selected.highlighted[disabled]:focus,
fieldset[disabled] .datepicker table tr td.selected:focus,
fieldset[disabled] .datepicker table tr td.selected.highlighted:focus,
.datepicker table tr td.selected.disabled.focus,
.datepicker table tr td.selected.highlighted.disabled.focus,
.datepicker table tr td.selected[disabled].focus,
.datepicker table tr td.selected.highlighted[disabled].focus,
fieldset[disabled] .datepicker table tr td.selected.focus,
fieldset[disabled] .datepicker table tr td.selected.highlighted.focus {
background-color: #777777;
border-color: #555555;
}
.datepicker table tr td.active,
.datepicker table tr td.active.highlighted {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker table tr td.active:focus,
.datepicker table tr td.active.highlighted:focus,
.datepicker table tr td.active.focus,
.datepicker table tr td.active.highlighted.focus {
color: #fff;
background-color: #286090;
border-color: #122b40;
}
.datepicker table tr td.active:hover,
.datepicker table tr td.active.highlighted:hover {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.datepicker table tr td.active:active,
.datepicker table tr td.active.highlighted:active,
.datepicker table tr td.active.active,
.datepicker table tr td.active.highlighted.active {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.datepicker table tr td.active:active:hover,
.datepicker table tr td.active.highlighted:active:hover,
.datepicker table tr td.active.active:hover,
.datepicker table tr td.active.highlighted.active:hover,
.datepicker table tr td.active:active:focus,
.datepicker table tr td.active.highlighted:active:focus,
.datepicker table tr td.active.active:focus,
.datepicker table tr td.active.highlighted.active:focus,
.datepicker table tr td.active:active.focus,
.datepicker table tr td.active.highlighted:active.focus,
.datepicker table tr td.active.active.focus,
.datepicker table tr td.active.highlighted.active.focus {
color: #fff;
background-color: #204d74;
border-color: #122b40;
}
.datepicker table tr td.active.disabled:hover,
.datepicker table tr td.active.highlighted.disabled:hover,
.datepicker table tr td.active[disabled]:hover,
.datepicker table tr td.active.highlighted[disabled]:hover,
fieldset[disabled] .datepicker table tr td.active:hover,
fieldset[disabled] .datepicker table tr td.active.highlighted:hover,
.datepicker table tr td.active.disabled:focus,
.datepicker table tr td.active.highlighted.disabled:focus,
.datepicker table tr td.active[disabled]:focus,
.datepicker table tr td.active.highlighted[disabled]:focus,
fieldset[disabled] .datepicker table tr td.active:focus,
fieldset[disabled] .datepicker table tr td.active.highlighted:focus,
.datepicker table tr td.active.disabled.focus,
.datepicker table tr td.active.highlighted.disabled.focus,
.datepicker table tr td.active[disabled].focus,
.datepicker table tr td.active.highlighted[disabled].focus,
fieldset[disabled] .datepicker table tr td.active.focus,
fieldset[disabled] .datepicker table tr td.active.highlighted.focus {
background-color: #337ab7;
border-color: #2e6da4;
}
.datepicker table tr td span {
display: block;
width: 23%;
height: 54px;
line-height: 54px;
float: left;
margin: 1%;
cursor: pointer;
border-radius: 4px;
}
.datepicker table tr td span:hover,
.datepicker table tr td span.focused {
background: #eeeeee;
}
.datepicker table tr td span.disabled,
.datepicker table tr td span.disabled:hover {
background: none;
color: #777777;
cursor: default;
}
.datepicker table tr td span.active,
.datepicker table tr td span.active:hover,
.datepicker table tr td span.active.disabled,
.datepicker table tr td span.active.disabled:hover {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker table tr td span.active:focus,
.datepicker table tr td span.active:hover:focus,
.datepicker table tr td span.active.disabled:focus,
.datepicker table tr td span.active.disabled:hover:focus,
.datepicker table tr td span.active.focus,
.datepicker table tr td span.active:hover.focus,
.datepicker table tr td span.active.disabled.focus,
.datepicker table tr td span.active.disabled:hover.focus {
color: #fff;
background-color: #286090;
border-color: #122b40;
}
.datepicker table tr td span.active:hover,
.datepicker table tr td span.active:hover:hover,
.datepicker table tr td span.active.disabled:hover,
.datepicker table tr td span.active.disabled:hover:hover {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.datepicker table tr td span.active:active,
.datepicker table tr td span.active:hover:active,
.datepicker table tr td span.active.disabled:active,
.datepicker table tr td span.active.disabled:hover:active,
.datepicker table tr td span.active.active,
.datepicker table tr td span.active:hover.active,
.datepicker table tr td span.active.disabled.active,
.datepicker table tr td span.active.disabled:hover.active {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.datepicker table tr td span.active:active:hover,
.datepicker table tr td span.active:hover:active:hover,
.datepicker table tr td span.active.disabled:active:hover,
.datepicker table tr td span.active.disabled:hover:active:hover,
.datepicker table tr td span.active.active:hover,
.datepicker table tr td span.active:hover.active:hover,
.datepicker table tr td span.active.disabled.active:hover,
.datepicker table tr td span.active.disabled:hover.active:hover,
.datepicker table tr td span.active:active:focus,
.datepicker table tr td span.active:hover:active:focus,
.datepicker table tr td span.active.disabled:active:focus,
.datepicker table tr td span.active.disabled:hover:active:focus,
.datepicker table tr td span.active.active:focus,
.datepicker table tr td span.active:hover.active:focus,
.datepicker table tr td span.active.disabled.active:focus,
.datepicker table tr td span.active.disabled:hover.active:focus,
.datepicker table tr td span.active:active.focus,
.datepicker table tr td span.active:hover:active.focus,
.datepicker table tr td span.active.disabled:active.focus,
.datepicker table tr td span.active.disabled:hover:active.focus,
.datepicker table tr td span.active.active.focus,
.datepicker table tr td span.active:hover.active.focus,
.datepicker table tr td span.active.disabled.active.focus,
.datepicker table tr td span.active.disabled:hover.active.focus {
color: #fff;
background-color: #204d74;
border-color: #122b40;
}
.datepicker table tr td span.active.disabled:hover,
.datepicker table tr td span.active:hover.disabled:hover,
.datepicker table tr td span.active.disabled.disabled:hover,
.datepicker table tr td span.active.disabled:hover.disabled:hover,
.datepicker table tr td span.active[disabled]:hover,
.datepicker table tr td span.active:hover[disabled]:hover,
.datepicker table tr td span.active.disabled[disabled]:hover,
.datepicker table tr td span.active.disabled:hover[disabled]:hover,
fieldset[disabled] .datepicker table tr td span.active:hover,
fieldset[disabled] .datepicker table tr td span.active:hover:hover,
fieldset[disabled] .datepicker table tr td span.active.disabled:hover,
fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,
.datepicker table tr td span.active.disabled:focus,
.datepicker table tr td span.active:hover.disabled:focus,
.datepicker table tr td span.active.disabled.disabled:focus,
.datepicker table tr td span.active.disabled:hover.disabled:focus,
.datepicker table tr td span.active[disabled]:focus,
.datepicker table tr td span.active:hover[disabled]:focus,
.datepicker table tr td span.active.disabled[disabled]:focus,
.datepicker table tr td span.active.disabled:hover[disabled]:focus,
fieldset[disabled] .datepicker table tr td span.active:focus,
fieldset[disabled] .datepicker table tr td span.active:hover:focus,
fieldset[disabled] .datepicker table tr td span.active.disabled:focus,
fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,
.datepicker table tr td span.active.disabled.focus,
.datepicker table tr td span.active:hover.disabled.focus,
.datepicker table tr td span.active.disabled.disabled.focus,
.datepicker table tr td span.active.disabled:hover.disabled.focus,
.datepicker table tr td span.active[disabled].focus,
.datepicker table tr td span.active:hover[disabled].focus,
.datepicker table tr td span.active.disabled[disabled].focus,
.datepicker table tr td span.active.disabled:hover[disabled].focus,
fieldset[disabled] .datepicker table tr td span.active.focus,
fieldset[disabled] .datepicker table tr td span.active:hover.focus,
fieldset[disabled] .datepicker table tr td span.active.disabled.focus,
fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus {
background-color: #337ab7;
border-color: #2e6da4;
}
.datepicker table tr td span.old,
.datepicker table tr td span.new {
color: #777777;
}
.datepicker .datepicker-switch {
width: 145px;
}
.datepicker .datepicker-switch,
.datepicker .prev,
.datepicker .next,
.datepicker tfoot tr th {
cursor: pointer;
}
.datepicker .datepicker-switch:hover,
.datepicker .prev:hover,
.datepicker .next:hover,
.datepicker tfoot tr th:hover {
background: #eeeeee;
}
.datepicker .prev.disabled,
.datepicker .next.disabled {
visibility: hidden;
}
.datepicker .cw {
font-size: 10px;
width: 12px;
padding: 0 2px 0 5px;
vertical-align: middle;
}
.input-group.date .input-group-addon {
cursor: pointer;
}
.input-daterange {
width: 100%;
}
.input-daterange input {
text-align: center;
}
.input-daterange input:first-child {
border-radius: 3px 0 0 3px;
}
.input-daterange input:last-child {
border-radius: 0 3px 3px 0;
}
.input-daterange .input-group-addon {
width: auto;
min-width: 16px;
padding: 4px 5px;
line-height: 1.42857143;
border-width: 1px 0;
margin-left: -5px;
margin-right: -5px;
}
/*# sourceMappingURL=bootstrap-datepicker3.css.map */
@import "vanillajs-datepicker/sass/index-bs5";
@import "vanillajs-datepicker/sass/datepicker-bs5";

File diff suppressed because it is too large Load diff

View file

@ -134,6 +134,11 @@ $(document)
window.setupSelect2Field($(this)); // from select2-field.js
});
new_edit_milestone.find("[data-provide='datepicker']")
.each(function () {
enable_datepicker($(this)[0]); // from datepicker.js
});
if (!group_uses_milestone_dates) {
setOrderControlValue();
}
@ -231,4 +236,4 @@ $(document)
var el = document.getElementById('dragdropcontainer');
Sortable.create(el, options);
}
});
});

View file

@ -1,7 +1,9 @@
import { Calendar } from '@fullcalendar/core';
import dayGridPlugin from '@fullcalendar/daygrid';
import bootstrap5Plugin from '@fullcalendar/bootstrap5'
import iCalendarPlugin from '@fullcalendar/icalendar';
import bootstrap5Plugin from '@fullcalendar/bootstrap5';
global.FullCalendar = Calendar;
global.dayGridPlugin = dayGridPlugin;
global.iCalendarPlugin = iCalendarPlugin;
global.bootstrap5Plugin = bootstrap5Plugin;

View file

@ -13,7 +13,7 @@
title="Document changes"
href="/feed/document-changes/{{ name }}/">
<meta name="description"
content="{{ doc.title }} {% if doc.get_state_slug == 'rfc' and not snapshot %}(RFC {{ rfc_number }}{% if published %}, {{ doc.pub_date|date:'F Y' }}{% endif %}{% if obsoleted_by %}; obsoleted by {{ obsoleted_by|join:', ' }}{% endif %}){% else %}(Internet-Draft, {{ doc.time|date:'Y' }}){% endif %}">
content="{{ doc.title }} {% if doc.get_state_slug == 'rfc' and not snapshot %}(RFC {{ rfc_number }}{% if published %}, {{ doc.pub_date|date:'F Y' }}{% endif %}{% if obsoleted_by %}; obsoleted by {% for rel in obsoleted_by %}{{ rel.source.canonical_name|prettystdname}}{% if not forloop.last%}, {% endif %}{% endfor %}{% endif %}){% endif %}">
{% endblock %}
{% block morecss %}.inline { display: inline; }{% endblock %}
{% block title %}

View file

@ -34,7 +34,7 @@
href="/feed/document-changes/{{ doc.name }}/">
<meta name="description"
{% if not snapshot and doc.get_state_slug == 'rfc' %}
content="{{ doc.title }} (RFC {{ doc.rfc_number }}{% if published %}, {{ published.time|date:'F Y' }}{% endif %}{% if obsoleted_by %}; obsoleted by {{ obsoleted_by|join:', ' }}{% endif %}"
content="{{ doc.title }} (RFC {{ doc.rfc_number }}{% if published %}, {{ published.time|date:'F Y' }}{% endif %}{% if obsoleted_by %}; obsoleted by {% for rel in obsoleted_by %}{{ rel.source.canonical_name|prettystdname}}{% if not forloop.last%}, {% endif %}{% endfor %}{% endif %})"
{% else %}
content="{{ doc.title }} (Internet-Draft, {{ doc.time|date:'Y' }})"
{% endif %}>

View file

@ -55,7 +55,7 @@
<br>
Action holder{{ doc.documentactionholder_set.all|pluralize }}:
{% for action_holder in doc.documentactionholder_set.all %}
{% person_link action_holder.person title=action_holder.role_for_doc %} {{ action_holder|action_holder_badge }}{% if not forloop.last %},{% endif %}
{% person_link action_holder.person title=action_holder.role_for_doc %}{% if action_holder|action_holder_badge %} {{ action_holder|action_holder_badge }}{% endif %}{% if not forloop.last %},{% endif %}
{% endfor %}
{% endif %}
{% if doc.note %}

View file

@ -37,9 +37,9 @@
<td>{{ key.created }}</td>
<td>{{ key.latest }}</td>
<td>{{ key.count }}</td>
<td>{{ key.valid }}</td>
<td class="{{ key.valid|yesno:'text-success,text-danger'}}">{{ key.valid }}</td>
<td>
<code>{{ key.hash }}</code>
<code {% if not key.valid %}class="text-decoration-line-through"{% endif %}>{{ key.hash }}</code>
</td>
<td >
{% if key.valid %}
@ -63,4 +63,4 @@
{% endblock %}
{% block js %}
<script src="{% static "ietf/js/list.js" %}"></script>
{% endblock %}
{% endblock %}

View file

@ -6,7 +6,7 @@ Cc: {{ cc_email }}
Dear {{ to_name }}:
{% filter wordwrap:78 %}
An IPR disclosure that pertains to your {{ doc_info }} was submitted to the IETF Secretariat on {{ ipr.get_latest_event_submitted.time|date:"Y-m-d" }} and has been posted on the "IETF Page of Intellectual Property Rights Disclosures" ({{ settings.IDTRACKER_BASE_URL }}{% url "ietf.ipr.views.history" id=ipr.pk %}). The title of the IPR disclosure is "{{ ipr.title }}"
An IPR disclosure that pertains to your {{ doc_info }} was submitted to the IETF Secretariat on {{ ipr.get_latest_event_submitted.time|date:"Y-m-d" }} and has been posted on the "IETF Page of Intellectual Property Rights Disclosures" ({{ settings.IDTRACKER_BASE_URL }}{% url "ietf.ipr.views.show" id=ipr.pk %}). The title of the IPR disclosure is "{{ ipr.title }}"
{% endfilter %}
Thank you

View file

@ -23,7 +23,7 @@
{% endif %}{% if item.slot_type.slug == 'regular' %}{% ifchanged %}
{{ item.timeslot.time|date:"Hi" }}-{{ item.timeslot.end_time|date:"Hi" }} {{ item.timeslot.name }}
{% endifchanged %}{{ item.timeslot.location.name|ljust:14 }} {{ item.session.group_parent_at_the_time.acronym|upper|ljust:4 }} {{ item.session.group_at_the_time.acronym|ljust:10 }} {{ item.session.group_at_the_time.name }} {% if item.session.group_at_the_time.state_id == "bof" %}BOF{% elif item.session.group_at_the_time.type_id == "wg" %}WG{% endif %}{% if item.session.agenda_note %} - {{ item.session.agenda_note }}{% endif %}{% if item.session.current_status == 'canceled' %} *** CANCELLED ***{% elif item.session.current_status == 'resched' %} *** RESCHEDULED{% if item.session.rescheduled_to %} TO {{ item.session.rescheduled_to.time|date:"l G:i"|upper }}-{{ item.session.rescheduled_to.end_time|date:"G:i" }}{% endif %} ***{% endif %}
{% endifchanged %}{{ item.timeslot.location.name|truncatechars:18|ljust:18 }} {% if item.session.group_parent_at_the_time %}{{ item.session.group_parent_at_the_time.acronym|upper|truncatechars:6|ljust:6 }}{% else %} {% endif %} {{ item.session.group_at_the_time.acronym|truncatechars:12|ljust:12 }} {{ item.session.group_at_the_time.name }} {% if item.session.group_at_the_time.state_id == "bof" %}BOF{% elif item.session.group_at_the_time.type_id == "wg" %}WG{% endif %}{% if item.session.agenda_note %} - {{ item.session.agenda_note }}{% endif %}{% if item.session.current_status == 'canceled' %} *** CANCELLED ***{% elif item.session.current_status == 'resched' %} *** RESCHEDULED{% if item.session.rescheduled_to %} TO {{ item.session.rescheduled_to.time|date:"l G:i"|upper }}-{{ item.session.rescheduled_to.end_time|date:"G:i" }}{% endif %} ***{% endif %}
{% endif %}{% if item.slot_type.slug == "break" %}
{{ item.timeslot.time|date:"Hi" }}-{{ item.timeslot.end_time|date:"Hi" }} {{ item.timeslot.name }}{% if schedule.meeting.break_area and item.timeslot.show_location %} - {{ schedule.meeting.break_area }}{% endif %}{% endif %}{% if item.slot_type.slug == "other" %}
{{ item.timeslot.time|date:"Hi" }}-{{ item.timeslot.end_time|date:"Hi" }} {{ item.timeslot.name }} - {{ item.timeslot.location.name }}{% endif %}{% endfor %}

View file

@ -81,7 +81,30 @@
</table>
{% endif %}
{% endfor %}
<div id="cal" class="mt-5"></div>
{% endblock %}
{% block js %}
<script src="{% static "ietf/js/list.js" %}"></script>
<script src="{% static 'ietf/js/fullcalendar.js' %}"></script>
<script>
document.addEventListener("DOMContentLoaded", function (event) {
const el = document.getElementById("cal");
var calendar = new FullCalendar(el, {
plugins: [dayGridPlugin, bootstrap5Plugin, iCalendarPlugin],
themeSystem: 'bootstrap5',
displayEventTime: false,
eventDidMount: function (info) {
$(info.el)
.tooltip({
title: info.event.title + ": " + info.event.extendedProps.description
});
},
events: {
url: "{% url 'ietf.meeting.views.important_dates' output_format='ics' %}",
format: "ics"
}
});
calendar.render();
});
</script>
{% endblock %}

View file

@ -1,8 +1,6 @@
{% load ietf_filters tz %}{% timezone meeting.tz %}{% if is_change %}MEETING DETAILS HAVE CHANGED. SEE LATEST DETAILS BELOW.
{% endif %}The {{ group.name }} ({{ group.acronym }}) {% if group.type.slug == 'wg' and group.state.slug == 'bof' %}BOF{% else %}{{group.type.name}}{% endif %} will hold
{% if assignments.count == 1 %}a{% if meeting.city %}n {% else %} virtual {% endif %}interim meeting on {{ meeting.date }} from {{ assignments.first.timeslot.time | date:"H:i" }} to {{ assignments.first.timeslot.end_time | date:"H:i" }} {{ meeting.time_zone}}{% if meeting.time_zone != 'UTC' %} ({{ assignments.first.timeslot.time | utc | date:"H:i" }} to {{ assignments.first.timeslot.end_time | utc | date:"H:i" }} UTC){% endif %}.
{% else %}a multi-day {% if not meeting.city %}virtual {% endif %}interim meeting.
{% endif %}{% filter wordwrap:78 %}The {{ group.name }} ({{ group.acronym }}) {% if group.type.slug == 'wg' and group.state.slug == 'bof' %}BOF{% else %}{{group.type.name}}{% endif %} will hold {% if assignments.count == 1 %}a{% if meeting.city %}n {% else %} virtual {% endif %}interim meeting on {{ meeting.date }} from {{ assignments.first.timeslot.time | date:"H:i" }} to {{ assignments.first.timeslot.end_time | date:"H:i" }} {{ meeting.time_zone}}{% if meeting.time_zone != 'UTC' %} ({{ assignments.first.timeslot.time | utc | date:"H:i" }} to {{ assignments.first.timeslot.end_time | utc | date:"H:i" }} UTC){% endif %}.{% else %}a multi-day {% if not meeting.city %}virtual {% endif %}interim meeting.
{% for assignment in assignments %}Session {{ forloop.counter }}:
{{ assignment.timeslot.time | date:"Y-m-d" }} {{ assignment.timeslot.time | date:"H:i" }} to {{ assignment.timeslot.end_time | date:"H:i" }} {{ meeting.time_zone }}{% if meeting.time_zone != 'UTC' %}({{ assignment.timeslot.time | utc | date:"H:i" }} to {{ assignment.timeslot.end_time | utc | date:"H:i" }} UTC){% endif %}
@ -10,11 +8,15 @@
{% if meeting.city %}Meeting Location:
{{ meeting.city }}, {{ meeting.country }}
{% endif %}Agenda:
{% endif %}{% endfilter %}
Agenda:
{{ meeting.session_set.first.agenda | document_content | default_if_none:"(No agenda submitted)" }}
Information about remote participation:
{{ meeting.session_set.first.remote_instructions }}
{{ meeting.session_set.first.remote_instructions.rstrip }}
{{ meeting.session_set.first.agenda_note }}
{% endtimezone %}
{{ meeting.session_set.first.agenda_note.rstrip|wordwrap:78 }}{% endtimezone %}
--
A calendar subscription for all {{ group.acronym }} meetings is available at
{{ settings.IDTRACKER_BASE_URL }}{% url 'ietf.meeting.views.upcoming_ical' %}?show={{ group.acronym }}

View file

@ -1,16 +1,15 @@
{% autoescape off %}
A New Internet-Draft is available from the on-line Internet-Drafts directories.
{% if submission.group %}This Internet-Draft is a work item of the {{ submission.group.name }}{% if submission.group.type.name %} {{ submission.group.type.name }}{% endif %} of the {% if submission.group.type_id == "rg" %}IRTF{% else %}IETF{% endif %}.{% endif %}
{% filter wordwrap:78 %}A New Internet-Draft is available from the on-line Internet-Drafts directories.{% if submission.group %} This Internet-Draft is a work item of the {{ submission.group.name }} ({{ submission.group.acronym|upper }}){% if submission.group.type.name %} {{ submission.group.type.name }}{% endif %} of the {% if submission.group.type_id == "rg" %}IRTF{% else %}IETF{% endif %}.{% endif %}{% endfilter %}
Title : {{ submission.title }}
Author{{ submission.authors|pluralize:" ,s" }} : {% for author in submission.authors %}{{ author.name }}{% if not forloop.last %}
{% endif %}{% endfor %}
Filename : {{ submission.name }}-{{ submission.rev }}.txt
Pages : {{ submission.pages }}
Date : {{ submission.submission_date|date:"Y-m-d" }}
Title : {{ submission.title }}
Author{{ submission.authors|pluralize:" ,s" }} : {% for author in submission.authors %}{{ author.name }}{% if not forloop.last %}
{% endif %}{% endfor %}
Filename : {{ submission.name }}-{{ submission.rev }}.txt
Pages : {{ submission.pages }}
Date : {{ submission.submission_date|date:"Y-m-d" }}
Abstract:
{{ submission.abstract }}
{{ submission.abstract.rstrip }}
The IETF datatracker status page for this Internet-Draft is:
{{ settings.IDTRACKER_BASE_URL }}{% url 'ietf.doc.views_doc.document_main' name=submission.name %}
@ -23,6 +22,5 @@ There is also an htmlized version available at:
A diff from the previous version is available at:
{{settings.RFCDIFF_BASE_URL}}?url2={{ submission.name }}-{{ submission.rev }}
{% endif %}
Internet-Drafts are also available by rsync at rsync.ietf.org::internet-drafts
{% endautoescape %}

View file

@ -10,6 +10,7 @@
"@fullcalendar/bootstrap5": "6.1.4",
"@fullcalendar/core": "6.1.4",
"@fullcalendar/daygrid": "6.1.4",
"@fullcalendar/icalendar": "6.1.4",
"@fullcalendar/interaction": "6.1.4",
"@fullcalendar/list": "6.1.4",
"@fullcalendar/luxon2": "6.1.4",
@ -24,6 +25,7 @@
"d3": "7.8.2",
"file-saver": "2.0.5",
"highcharts": "10.3.3",
"ical.js": "1.5.0",
"jquery": "3.6.3",
"jquery-ui-dist": "1.13.2",
"js-cookie": "3.0.1",
@ -44,6 +46,7 @@
"shepherd.js": "10.0.1",
"slugify": "1.6.5",
"sortablejs": "1.15.0",
"vanillajs-datepicker": "1.3.1",
"vue": "3.2.47",
"vue-router": "4.1.6",
"zxcvbn": "4.4.2"

View file

@ -121,6 +121,7 @@ let lastSessionId = 25000
let lastRecordingId = 150000
function createEvent ({
name = '',
slotName = '',
startDateTime,
duration = '1h',
area,
@ -152,6 +153,7 @@ function createEvent ({
acronym: group.keyword,
duration: typeof duration === 'string' ? ms(duration) / 1000 : duration,
name: eventName,
slotName: slotName,
startDateTime: startDateTime.toISO({ includeOffset: false, suppressMilliseconds: true }),
status,
type,
@ -514,7 +516,7 @@ module.exports = {
_.times(8, () => { // 8 lanes per session time
const { area, ...group } = daySessions.pop()
schedule.push(createEvent({
name: 'Session I',
slotName: 'Session I',
startDateTime: curDay.set({ hour: 10 }),
duration: '2h',
type: 'regular',
@ -543,7 +545,7 @@ module.exports = {
_.times(8, () => { // 8 lanes per session time
const { area, ...group } = daySessions.pop()
schedule.push(createEvent({
name: 'Session II',
slotName: 'Session II',
startDateTime: curDay.set({ hour: 13, minute: 30 }),
duration: '1h',
type: 'regular',
@ -574,7 +576,7 @@ module.exports = {
_.times(8, () => { // 8 lanes per session time
const { area, ...group } = daySessions.pop()
schedule.push(createEvent({
name: 'Session III',
slotName: 'Session III',
startDateTime: curDay.set({ hour: 15 }),
duration: '2h',
type: 'regular',

View file

@ -9,7 +9,7 @@
"@faker-js/faker": "7.6.0",
"lodash": "4.17.21",
"lodash-es": "4.17.21",
"luxon": "3.1.0",
"luxon": "3.2.1",
"ms": "2.1.3",
"seedrandom": "3.0.5",
"slugify": "1.6.5"
@ -2243,9 +2243,9 @@
}
},
"node_modules/http-cache-semantics": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
"integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
"dev": true
},
"node_modules/http-proxy-agent": {
@ -2795,9 +2795,9 @@
"dev": true
},
"node_modules/json5": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"dependencies": {
"minimist": "^1.2.0"
@ -2923,9 +2923,9 @@
}
},
"node_modules/luxon": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.1.0.tgz",
"integrity": "sha512-7w6hmKC0/aoWnEsmPCu5Br54BmbmUp5GfcqBxQngRcXJ+q5fdfjEzn7dxmJh2YdDhgW8PccYtlWKSv4tQkrTQg==",
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz",
"integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==",
"engines": {
"node": ">=12"
}
@ -4035,9 +4035,9 @@
}
},
"node_modules/rc-config-loader/node_modules/json5": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
"integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
"bin": {
"json5": "lib/cli.js"
@ -6781,9 +6781,9 @@
}
},
"http-cache-semantics": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
"integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
"dev": true
},
"http-proxy-agent": {
@ -7191,9 +7191,9 @@
"dev": true
},
"json5": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
@ -7286,9 +7286,9 @@
}
},
"luxon": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.1.0.tgz",
"integrity": "sha512-7w6hmKC0/aoWnEsmPCu5Br54BmbmUp5GfcqBxQngRcXJ+q5fdfjEzn7dxmJh2YdDhgW8PccYtlWKSv4tQkrTQg=="
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz",
"integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg=="
},
"make-fetch-happen": {
"version": "10.2.1",
@ -8124,9 +8124,9 @@
},
"dependencies": {
"json5": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
"integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true
}
}

View file

@ -20,7 +20,7 @@
"@faker-js/faker": "7.6.0",
"lodash": "4.17.21",
"lodash-es": "4.17.21",
"luxon": "3.1.0",
"luxon": "3.2.1",
"ms": "2.1.3",
"seedrandom": "3.0.5",
"slugify": "1.6.5"

View file

@ -138,6 +138,7 @@ test.describe('past - desktop', () => {
.setLocale(BROWSER_LOCALE)
.toFormat('DD \'at\' T ZZZZ')
await expect(page.locator('.agenda h6').first()).toContainText(localDateTime)
await expect(page.locator('.agenda .agenda-table-display-session-head .agenda-table-cell-name').first()).toContainText('Monday Session I')
// Switch to UTC
await tzUtcBtnLocator.click()
await expect(tzUtcBtnLocator).toHaveClass(/n-button--primary-type/)
@ -148,10 +149,12 @@ test.describe('past - desktop', () => {
.toFormat('DD \'at\' T ZZZZ')
await expect(page.locator('.agenda h6').first()).toContainText(utcDateTime)
await expect(page.locator('.agenda .agenda-timezone-ddn')).toContainText('UTC')
await expect(page.locator('.agenda .agenda-table-display-session-head .agenda-table-cell-name').first()).toContainText('Monday Session I')
// Switch back to meeting timezone
await tzMeetingBtnLocator.click()
await expect(tzMeetingBtnLocator).toHaveClass(/n-button--primary-type/)
await expect(page.locator('.agenda .agenda-timezone-ddn')).toContainText('Tokyo')
await expect(page.locator('.agenda .agenda-table-display-session-head .agenda-table-cell-name').first()).toContainText('Monday Session I')
})
})
@ -925,7 +928,7 @@ test.describe('past - desktop', () => {
test('agenda add to calendar', async ({ page }) => {
await expect(page.locator('#agenda-quickaccess-addtocal-btn')).toContainText('Add to your calendar')
await page.locator('#agenda-quickaccess-addtocal-btn').click()
const ddnLocator = page.locator('.n-dropdown-menu > .n-dropdown-option')
const ddnLocator = page.locator('.n-dropdown-menu > div > a.agenda-quickaccess-callinks')
await expect(ddnLocator).toHaveCount(2)
await expect(ddnLocator.first()).toContainText('Subscribe')
await expect(ddnLocator.last()).toContainText('Download')

View file

@ -35,6 +35,7 @@ gunicorn>=20.1.0
hashids>=1.3.1
html2text>=2020.1.16 # Used only to clean comment field of secr/sreq
html5lib>=1.1 # Only used in tests
inflect>= 6.0.2
jsonfield>=3.1.0 # for SubmissionCheck. This is https://github.com/bradjasper/django-jsonfield/.
jwcrypto>=1.2 # for signed notifications - this is aspirational, and is not really used.
logging_tree>=1.9 # Used only by the showloggers management command

132
yarn.lock
View file

@ -148,6 +148,16 @@ __metadata:
languageName: node
linkType: hard
"@fullcalendar/icalendar@npm:6.1.4":
version: 6.1.4
resolution: "@fullcalendar/icalendar@npm:6.1.4"
peerDependencies:
"@fullcalendar/core": ~6.1.4
ical.js: ^1.4.0
checksum: 4ec2ed9092bf963dd889ffb01dd5ec6c956810e3b791a16a3d5c4bd0b303850757ad03b000c79d026ed8f7a9dbc53b673743c4eec0b8901bc4030a56d718f94c
languageName: node
linkType: hard
"@fullcalendar/interaction@npm:6.1.4":
version: 6.1.4
resolution: "@fullcalendar/interaction@npm:6.1.4"
@ -245,14 +255,42 @@ __metadata:
languageName: node
linkType: hard
"@jridgewell/resolve-uri@npm:^3.0.3":
"@jridgewell/gen-mapping@npm:^0.3.0":
version: 0.3.2
resolution: "@jridgewell/gen-mapping@npm:0.3.2"
dependencies:
"@jridgewell/set-array": ^1.0.1
"@jridgewell/sourcemap-codec": ^1.4.10
"@jridgewell/trace-mapping": ^0.3.9
checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882
languageName: node
linkType: hard
"@jridgewell/resolve-uri@npm:3.1.0, @jridgewell/resolve-uri@npm:^3.0.3":
version: 3.1.0
resolution: "@jridgewell/resolve-uri@npm:3.1.0"
checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267
languageName: node
linkType: hard
"@jridgewell/sourcemap-codec@npm:^1.4.10":
"@jridgewell/set-array@npm:^1.0.1":
version: 1.1.2
resolution: "@jridgewell/set-array@npm:1.1.2"
checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e
languageName: node
linkType: hard
"@jridgewell/source-map@npm:^0.3.2":
version: 0.3.2
resolution: "@jridgewell/source-map@npm:0.3.2"
dependencies:
"@jridgewell/gen-mapping": ^0.3.0
"@jridgewell/trace-mapping": ^0.3.9
checksum: 1b83f0eb944e77b70559a394d5d3b3f98a81fcc186946aceb3ef42d036762b52ef71493c6c0a3b7c1d2f08785f53ba2df1277fe629a06e6109588ff4cdcf7482
languageName: node
linkType: hard
"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10":
version: 1.4.14
resolution: "@jridgewell/sourcemap-codec@npm:1.4.14"
checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97
@ -269,6 +307,16 @@ __metadata:
languageName: node
linkType: hard
"@jridgewell/trace-mapping@npm:^0.3.9":
version: 0.3.17
resolution: "@jridgewell/trace-mapping@npm:0.3.17"
dependencies:
"@jridgewell/resolve-uri": 3.1.0
"@jridgewell/sourcemap-codec": 1.4.14
checksum: 9d703b859cff5cd83b7308fd457a431387db5db96bd781a63bf48e183418dd9d3d44e76b9e4ae13237f6abeeb25d739ec9215c1d5bfdd08f66f750a50074a339
languageName: node
linkType: hard
"@juggle/resize-observer@npm:^3.3.1":
version: 3.3.1
resolution: "@juggle/resize-observer@npm:3.3.1"
@ -4163,9 +4211,9 @@ browserlist@latest:
linkType: hard
"http-cache-semantics@npm:^4.1.0":
version: 4.1.0
resolution: "http-cache-semantics@npm:4.1.0"
checksum: 974de94a81c5474be07f269f9fd8383e92ebb5a448208223bfb39e172a9dbc26feff250192ecc23b9593b3f92098e010406b0f24bd4d588d631f80214648ed42
version: 4.1.1
resolution: "http-cache-semantics@npm:4.1.1"
checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236
languageName: node
linkType: hard
@ -4212,6 +4260,13 @@ browserlist@latest:
languageName: node
linkType: hard
"ical.js@npm:1.5.0":
version: 1.5.0
resolution: "ical.js@npm:1.5.0"
checksum: 51df7a01f462dc8a02b3c3c28acb288756071044c4a8b56ff5179995bb219e569e72cfedac6f4ab03dc643be34f5d88c09a7d79c4be6ba8a7623b7336eecb110
languageName: node
linkType: hard
"iconv-lite@npm:0.6, iconv-lite@npm:^0.6.2":
version: 0.6.3
resolution: "iconv-lite@npm:0.6.3"
@ -4720,13 +4775,13 @@ browserlist@latest:
linkType: hard
"json5@npm:^1.0.1":
version: 1.0.1
resolution: "json5@npm:1.0.1"
version: 1.0.2
resolution: "json5@npm:1.0.2"
dependencies:
minimist: ^1.2.0
bin:
json5: lib/cli.js
checksum: e76ea23dbb8fc1348c143da628134a98adf4c5a4e8ea2adaa74a80c455fc2cdf0e2e13e6398ef819bfe92306b610ebb2002668ed9fc1af386d593691ef346fc3
checksum: 866458a8c58a95a49bef3adba929c625e82532bcff1fe93f01d29cb02cac7c3fe1f4b79951b7792c2da9de0b32871a8401a6e3c5b36778ad852bf5b8a61165d7
languageName: node
linkType: hard
@ -4935,13 +4990,6 @@ browserlist@latest:
languageName: node
linkType: hard
"lodash.sortby@npm:^4.7.0":
version: 4.7.0
resolution: "lodash.sortby@npm:4.7.0"
checksum: db170c9396d29d11fe9a9f25668c4993e0c1331bcb941ddbd48fb76f492e732add7f2a47cfdf8e9d740fa59ac41bbfaf931d268bc72aab3ab49e9f89354d718c
languageName: node
linkType: hard
"lodash@npm:4.17.21, lodash@npm:^4.17.21":
version: 4.17.21
resolution: "lodash@npm:4.17.21"
@ -6143,6 +6191,7 @@ browserlist@latest:
"@fullcalendar/bootstrap5": 6.1.4
"@fullcalendar/core": 6.1.4
"@fullcalendar/daygrid": 6.1.4
"@fullcalendar/icalendar": 6.1.4
"@fullcalendar/interaction": 6.1.4
"@fullcalendar/list": 6.1.4
"@fullcalendar/luxon2": 6.1.4
@ -6173,6 +6222,7 @@ browserlist@latest:
file-saver: 2.0.5
highcharts: 10.3.3
html-validate: 7.13.1
ical.js: 1.5.0
jquery: 3.6.3
jquery-migrate: 3.4.0
jquery-ui-dist: 1.13.2
@ -6198,6 +6248,7 @@ browserlist@latest:
shepherd.js: 10.0.1
slugify: 1.6.5
sortablejs: 1.15.0
vanillajs-datepicker: 1.3.1
vite: 3.2.5
vue: 3.2.47
vue-router: 4.1.6
@ -6518,15 +6569,6 @@ browserlist@latest:
languageName: node
linkType: hard
"source-map@npm:~0.8.0-beta.0":
version: 0.8.0-beta.0
resolution: "source-map@npm:0.8.0-beta.0"
dependencies:
whatwg-url: ^7.0.0
checksum: e94169be6461ab0ac0913313ad1719a14c60d402bd22b0ad96f4a6cffd79130d91ab5df0a5336a326b04d2df131c1409f563c9dc0d21a6ca6239a44b6c8dbd92
languageName: node
linkType: hard
"sourcemap-codec@npm:^1.4.8":
version: 1.4.8
resolution: "sourcemap-codec@npm:1.4.8"
@ -6700,16 +6742,16 @@ browserlist@latest:
linkType: hard
"terser@npm:^5.2.0":
version: 5.13.1
resolution: "terser@npm:5.13.1"
version: 5.16.5
resolution: "terser@npm:5.16.5"
dependencies:
"@jridgewell/source-map": ^0.3.2
acorn: ^8.5.0
commander: ^2.20.0
source-map: ~0.8.0-beta.0
source-map-support: ~0.5.20
bin:
terser: bin/terser
checksum: 0b1f5043cf5c3973005fe2ae4ff3be82511c336a6430599dacd4e2acf77c974d4474b0f1eec4823977c1f33823147e736ff712ca8e098bee3db25946480fa29d
checksum: f2c1a087fac7f4ff04b1b4e79bffc52e2fc0b068b98912bfcc0b341184c284c30c19ed73f76ac92b225b71668f7f8fc586d99a7e50a29cdc1c916cb1265522ec
languageName: node
linkType: hard
@ -6768,15 +6810,6 @@ browserlist@latest:
languageName: node
linkType: hard
"tr46@npm:^1.0.1":
version: 1.0.1
resolution: "tr46@npm:1.0.1"
dependencies:
punycode: ^2.1.0
checksum: 96d4ed46bc161db75dbf9247a236ea0bfcaf5758baae6749e92afab0bc5a09cb59af21788ede7e55080f2bf02dce3e4a8f2a484cc45164e29f4b5e68f7cbcc1a
languageName: node
linkType: hard
"treemate@npm:^0.3.11":
version: 0.3.11
resolution: "treemate@npm:0.3.11"
@ -6901,6 +6934,13 @@ browserlist@latest:
languageName: node
linkType: hard
"vanillajs-datepicker@npm:1.3.1":
version: 1.3.1
resolution: "vanillajs-datepicker@npm:1.3.1"
checksum: c01ea7ec70de94441a3b7760ff6ce8a06b38c6197c2cc68568e69afc8c80f4e45419358ab99e328daf58663ff2a42bb818314f4279095db7aaec18a9e995d5f2
languageName: node
linkType: hard
"vdirs@npm:^0.1.4, vdirs@npm:^0.1.8":
version: 0.1.8
resolution: "vdirs@npm:0.1.8"
@ -7065,24 +7105,6 @@ browserlist@latest:
languageName: node
linkType: hard
"webidl-conversions@npm:^4.0.2":
version: 4.0.2
resolution: "webidl-conversions@npm:4.0.2"
checksum: c93d8dfe908a0140a4ae9c0ebc87a33805b416a33ee638a605b551523eec94a9632165e54632f6d57a39c5f948c4bab10e0e066525e9a4b87a79f0d04fbca374
languageName: node
linkType: hard
"whatwg-url@npm:^7.0.0":
version: 7.1.0
resolution: "whatwg-url@npm:7.1.0"
dependencies:
lodash.sortby: ^4.7.0
tr46: ^1.0.1
webidl-conversions: ^4.0.2
checksum: fecb07c87290b47d2ec2fb6d6ca26daad3c9e211e0e531dd7566e7ff95b5b3525a57d4f32640ad4adf057717e0c215731db842ad761e61d947e81010e05cf5fd
languageName: node
linkType: hard
"which-boxed-primitive@npm:^1.0.2":
version: 1.0.2
resolution: "which-boxed-primitive@npm:1.0.2"