Skip to content

Commit 74c9543

Browse files
committed
rewrite community session layout
1 parent 56089d6 commit 74c9543

File tree

4 files changed

+38
-11
lines changed

4 files changed

+38
-11
lines changed

src/assets/js/agenda.js

+7-5
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ $('.agenda-session[data-id]').on('click', function (e) {
107107
$('.agenda-description', bodyTmplDom).html(marked.parse(session[currentLang]['description']))
108108
$('#modal .head-group h4').text(session[currentLang]['title'])
109109
let tagGroup = $('.tag-group', this)
110-
$('#modal .tag-group').html(tagGroup.clone())
110+
$('#modal .tag-group').html(tagGroup.clone().removeClass('hidden'))
111111
$('#modal .btn-group').html('')
112112
if (session['qa']) {
113113
$('#modal .btn-group').append(`<a href="${session['qa']}" class="btn btn-primary" target="_blank" data-i18n="agenda.btn.qa">線上提問</a>`)
@@ -124,10 +124,12 @@ $('.agenda-session[data-id]').on('click', function (e) {
124124
let startMinutes = String(start.getMinutes()).padStart(2, '0');
125125
let endHours = String(end.getHours()).padStart(2, '0');
126126
let endMinutes = String(end.getMinutes()).padStart(2, '0');
127-
128-
let info = `<div>${start.getMonth() + 1}/${start.getDate()} ${startHours}:${startMinutes} ~ ${endHours}:${endMinutes} @ ${
129-
session['broadcast']?session['broadcast'].join(','):session['room']
130-
}</div>`;
127+
let info = '';
128+
if (session['start'] !== session['end']) {
129+
info = `<div>${start.getMonth() + 1}/${start.getDate()} ${startHours}:${startMinutes} ~ ${endHours}:${endMinutes} @ ${session['broadcast'] ? session['broadcast'].join(',') : session['room']}</div>`;
130+
} else {
131+
info = `<div>${start.getMonth() + 1}/${start.getDate()} ${startHours}:${startMinutes} ~ @ ${session['broadcast'] ? session['broadcast'].join(',') : session['room']}</div>`;
132+
}
131133
$('#modal .info-group').html(info)
132134
$('#modal .modal-body').html(bodyTmplDom)
133135
$('#modal .modal-body').scrollTop(0)

src/locale/en.yml

+1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ agenda.day-2.text: Sun., May 5
8484
agenda.btn.qa: Q&A
8585
agenda.btn.slide: Slides
8686
agenda.btn.cowrite: Collab Notes
87+
agenda.moderator: Moderator
8788

8889
language.zh: Mandarin
8990
language.en: English

src/pcss/agenda.pcss

-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@
6767
}
6868
}
6969

70-
7170
#tag-group {
7271
@apply fixed right-0 bottom-0 w-full h-auto z-30 bg-slate-100 pe-12;
7372
transition: all 0.3s ease;

src/pug/agenda/index.pug

+30-5
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,34 @@ block main
5757

5858
.mt-10.mb-20
5959
h2.mb-8#day Day 1
60-
61-
mixin agenda-session(session)
60+
mixin agenda-session(session, current_ct_session = null)
6261
if session.type == 'R'
6362
.agenda-session.items-center.justify-center.bg-neutral-300.rounded-xl.p-4.z-10.relative
6463
.font-bold.text-neutral-900(data-i18n=`session.${session.id}.title`)= session.zh.title
64+
else if session.type == 'E'
65+
.agenda-session.items-center.justify-center.bg-neutral-100.rounded-xl.p-4.z-10.relative
66+
.font-bold.text-neutral-900(data-i18n=`session.${session.id}.title`)= session.zh.title
67+
- let speaker_id = session.speakers[0]
68+
.text-sm.text-neutral-700(data-i18n=`speakers.${speaker_id}.name`)= speakers[speaker_id].zh.name
6569
else
70+
if session.tags.filter((t) => t.startsWith('CT')).length > 0 && current_ct_session && session.start_t === current_ct_session.start_t
71+
.agenda-session.bg-tertiary.px-4.py-3.rounded-t-xl(data-id=current_ct_session.id,
72+
data-tags=([...current_ct_session.tags, current_ct_session.type, current_ct_session.language].filter((t) => !!t).join(',')))
73+
.font-bold.text-neutral-800(data-i18n=`session.${current_ct_session.id}.title`)= current_ct_session.zh.title
74+
.text-neutral-600.text-sm
75+
span(data-i18n='agenda.moderator') 主持
76+
span.mx-1 /
77+
each speaker_id in current_ct_session.speakers
78+
span.text-sm.text-neutral-700(data-i18n=`speakers.${speaker_id}.name`)= speakers[speaker_id].zh.name
79+
.text-xs.text-white.my-2.flex.flex-wrap.gap-1.tag-group.hidden
80+
span.bg-secondary.rounded-full.px-2(data-i18n=`session_type.${session.type}`)= session_types[session.type].zh.name
81+
if session.language
82+
span.bg-neutral-500.rounded-full.px-2(data-i18n=`language.${session.language}`)= session.language === 'en' ? '英語' : '華語'
83+
if session.tags[0]
84+
each tag_id in session.tags
85+
span.bg-neutral-400.rounded-full.px-2(data-i18n=`tag.${tag_id}`)= tags[tag_id].zh.name
6686
.agenda-session.bg-neutral-100.p-4.z-10.relative.grow.shrink-0(
67-
class=is_community ? 'border-l-4 border-secondary' : '',
87+
class= current_ct_session ? 'border-r-4 border-tertiary' : '',
6888
data-id=session.id, data-tags=([...session.tags, session.type, session.language].filter((t) => !!t).join(','))
6989
): .sticky(class="lg:top-40")
7090
.font-bold.text-neutral-800.mb-1(data-i18n=`session.${session.id}.title`)= session.zh.title
@@ -85,12 +105,17 @@ block main
85105
- let styles = `grid-area: ${key} / time`
86106
.block.agenda-timeline.z-0(style=styles, data-day=key < 1440 ? '1' : '2')
87107
.font-medium(class="translate-y-[-50%]")= time
88-
108+
- let current_ct_session = null
89109
each sessions, start_t in schedule.sessions_by_t
90110
each session in sessions.sessions
111+
if session.start_t === session.end_t || session.type === 'C'
112+
- current_ct_session = session
91113
- let styles = `grid-area: ${session.start_t} / ${session.room} / ${session.end_t} / ${session.type == 'R' ? 'end' : (session.broadcast ? 'RH' : session.room)};`
92114
.flex.flex-col.p-3.session-block(style=styles, data-room=session.room, data-broadcast=(session.broadcast ? 'true' : 'false'), data-day=(session.start_t < 1440 ? '1' : '2'))
93-
+agenda-session(session)
115+
if session.type === 'C' || session.tags.filter((t) => t.startsWith('CT')).length > 0
116+
+agenda-session(session, current_ct_session)
117+
else
118+
+agenda-session(session)
94119

95120
.flex.flex-col.agenda-list(class="lg:hidden")
96121
each sessions, start_t in schedule.sessions_by_t

0 commit comments

Comments
 (0)