feat: add wiki button to agenda list for hackathon sessions (#8133)
* feat: add wiki button to agenda list for hackathon sessions * fix: update client/agenda/AgendaScheduleList.vue Co-authored-by: Matthew Holloway <matthew@holloway.co.nz> * fix: broken tests --------- Co-authored-by: Matthew Holloway <matthew@holloway.co.nz> Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
This commit is contained in:
parent
98b251487d
commit
4a1d29e86c
client
ietf/templates/meeting
playwright/tests/meeting
|
@ -284,6 +284,7 @@ const meetingEvents = computed(() => {
|
||||||
const purposesWithoutLinks = ['admin', 'closed_meeting', 'officehours', 'social']
|
const purposesWithoutLinks = ['admin', 'closed_meeting', 'officehours', 'social']
|
||||||
if (item.flags.showAgenda || (typesWithLinks.includes(item.type) && !purposesWithoutLinks.includes(item.purpose))) {
|
if (item.flags.showAgenda || (typesWithLinks.includes(item.type) && !purposesWithoutLinks.includes(item.purpose))) {
|
||||||
if (item.flags.agenda) {
|
if (item.flags.agenda) {
|
||||||
|
// -> Meeting Materials
|
||||||
links.push({
|
links.push({
|
||||||
id: `lnk-${item.id}-tar`,
|
id: `lnk-${item.id}-tar`,
|
||||||
label: 'Download meeting materials as .tar archive',
|
label: 'Download meeting materials as .tar archive',
|
||||||
|
@ -305,7 +306,18 @@ const meetingEvents = computed(() => {
|
||||||
color: 'red'
|
color: 'red'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (agendaStore.usesNotes) {
|
// -> Point to Wiki for Hackathon sessions, HedgeDocs otherwise
|
||||||
|
if (item.name.toLowerCase().includes('hackathon')) {
|
||||||
|
links.push({
|
||||||
|
id: `lnk-${item.id}-wiki`,
|
||||||
|
label: 'Wiki',
|
||||||
|
icon: 'book',
|
||||||
|
href: getUrl('hackathonWiki', {
|
||||||
|
meetingNumber: agendaStore.meeting.number
|
||||||
|
}),
|
||||||
|
color: 'blue'
|
||||||
|
})
|
||||||
|
} else if (agendaStore.usesNotes) {
|
||||||
links.push({
|
links.push({
|
||||||
id: `lnk-${item.id}-note`,
|
id: `lnk-${item.id}-note`,
|
||||||
label: 'Notepad for note-takers',
|
label: 'Notepad for note-takers',
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"bofDefinition": "https://www.ietf.org/how/bofs/",
|
"bofDefinition": "https://www.ietf.org/how/bofs/",
|
||||||
|
"hackathonWiki": "https://wiki.ietf.org/meeting/{meetingNumber}/hackathon",
|
||||||
"meetingCalIcs": "/meeting/{meetingNumber}/agenda.ics",
|
"meetingCalIcs": "/meeting/{meetingNumber}/agenda.ics",
|
||||||
"meetingDetails": "/meeting/{meetingNumber}/session/{eventAcronym}/",
|
"meetingDetails": "/meeting/{meetingNumber}/session/{eventAcronym}/",
|
||||||
"meetingMaterialsPdf": "/meeting/{meetingNumber}/agenda/{eventAcronym}-drafts.pdf",
|
"meetingMaterialsPdf": "/meeting/{meetingNumber}/agenda/{eventAcronym}-drafts.pdf",
|
||||||
|
|
|
@ -101,7 +101,7 @@
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<div id="app-loading">
|
<div id="app-loading">
|
||||||
<div id="app-loading-footer">
|
<div id="app-loading-footer">
|
||||||
<a class="btn btn-light text-body-secondary mb-3" href="/meeting/{{ meetingData.meetingNumber }}/agenda.txt"><small>Switch to text-only version ⮞</small></a>
|
<a class="btn btn-light text-body-secondary mb-3" href="/meeting/{{ meetingData.meetingNumber }}/agenda.txt"><small>Switch to text-only version »</small></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -286,10 +286,17 @@ test.describe('past - desktop', () => {
|
||||||
// No meeting materials yet warning badge
|
// No meeting materials yet warning badge
|
||||||
await expect(eventButtons.locator('.no-meeting-materials')).toBeVisible()
|
await expect(eventButtons.locator('.no-meeting-materials')).toBeVisible()
|
||||||
}
|
}
|
||||||
// Notepad button
|
if (event.name.toLowerCase().includes('hackathon')) {
|
||||||
const hedgeDocLink = `https://notes.ietf.org/notes-ietf-${meetingData.meeting.number}-${event.type === 'plenary' ? 'plenary' : event.acronym}`
|
// Hackathon Wiki button
|
||||||
await expect(eventButtons.locator(`#btn-lnk-${event.id}-note`)).toHaveAttribute('href', hedgeDocLink)
|
const hackathonWikiLink = `https://wiki.ietf.org/meeting/${meetingData.meeting.number}/hackathon`
|
||||||
await expect(eventButtons.locator(`#btn-lnk-${event.id}-note > i.bi`)).toBeVisible()
|
await expect(eventButtons.locator(`#btn-lnk-${event.id}-wiki`)).toHaveAttribute('href', hackathonWikiLink)
|
||||||
|
await expect(eventButtons.locator(`#btn-lnk-${event.id}-wiki > i.bi`)).toBeVisible()
|
||||||
|
} else {
|
||||||
|
// Notepad button
|
||||||
|
const hedgeDocLink = `https://notes.ietf.org/notes-ietf-${meetingData.meeting.number}-${event.type === 'plenary' ? 'plenary' : event.acronym}`
|
||||||
|
await expect(eventButtons.locator(`#btn-lnk-${event.id}-note`)).toHaveAttribute('href', hedgeDocLink)
|
||||||
|
await expect(eventButtons.locator(`#btn-lnk-${event.id}-note > i.bi`)).toBeVisible()
|
||||||
|
}
|
||||||
// Chat logs
|
// Chat logs
|
||||||
await expect(eventButtons.locator(`#btn-lnk-${event.id}-logs`)).toHaveAttribute('href', event.links.chatArchive)
|
await expect(eventButtons.locator(`#btn-lnk-${event.id}-logs`)).toHaveAttribute('href', event.links.chatArchive)
|
||||||
await expect(eventButtons.locator(`#btn-lnk-${event.id}-logs > i.bi`)).toBeVisible()
|
await expect(eventButtons.locator(`#btn-lnk-${event.id}-logs > i.bi`)).toBeVisible()
|
||||||
|
@ -1162,10 +1169,17 @@ test.describe('future - desktop', () => {
|
||||||
// No meeting materials yet warning badge
|
// No meeting materials yet warning badge
|
||||||
await expect(eventButtons.locator('.no-meeting-materials')).toBeVisible()
|
await expect(eventButtons.locator('.no-meeting-materials')).toBeVisible()
|
||||||
}
|
}
|
||||||
// Notepad button
|
if (event.name.toLowerCase().includes('hackathon')) {
|
||||||
const hedgeDocLink = `https://notes.ietf.org/notes-ietf-${meetingData.meeting.number}-${event.type === 'plenary' ? 'plenary' : event.acronym}`
|
// Hackathon Wiki button
|
||||||
await expect(eventButtons.locator(`#btn-lnk-${event.id}-note`)).toHaveAttribute('href', hedgeDocLink)
|
const hackathonWikiLink = `https://wiki.ietf.org/meeting/${meetingData.meeting.number}/hackathon`
|
||||||
await expect(eventButtons.locator(`#btn-lnk-${event.id}-note > i.bi`)).toBeVisible()
|
await expect(eventButtons.locator(`#btn-lnk-${event.id}-wiki`)).toHaveAttribute('href', hackathonWikiLink)
|
||||||
|
await expect(eventButtons.locator(`#btn-lnk-${event.id}-wiki > i.bi`)).toBeVisible()
|
||||||
|
} else {
|
||||||
|
// Notepad button
|
||||||
|
const hedgeDocLink = `https://notes.ietf.org/notes-ietf-${meetingData.meeting.number}-${event.type === 'plenary' ? 'plenary' : event.acronym}`
|
||||||
|
await expect(eventButtons.locator(`#btn-lnk-${event.id}-note`)).toHaveAttribute('href', hedgeDocLink)
|
||||||
|
await expect(eventButtons.locator(`#btn-lnk-${event.id}-note > i.bi`)).toBeVisible()
|
||||||
|
}
|
||||||
// Chat room
|
// Chat room
|
||||||
await expect(eventButtons.locator(`#btn-lnk-${event.id}-room`)).toHaveAttribute('href', event.links.chat)
|
await expect(eventButtons.locator(`#btn-lnk-${event.id}-room`)).toHaveAttribute('href', event.links.chat)
|
||||||
await expect(eventButtons.locator(`#btn-lnk-${event.id}-room > i.bi`)).toBeVisible()
|
await expect(eventButtons.locator(`#btn-lnk-${event.id}-room > i.bi`)).toBeVisible()
|
||||||
|
|
Loading…
Reference in a new issue