Tighten Jitsi report table padding
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -561,6 +561,8 @@ Collapsible panel, visible to `trusted_access` users only. Generates properly-fo
|
|||||||
|
|
||||||
Trusted Access users now get a footer link on the Video Conferences page that jumps back to the Jitsi Reports page. It preserves the current iframe context so the staff workflow stays inside the Novi embed.
|
Trusted Access users now get a footer link on the Video Conferences page that jumps back to the Jitsi Reports page. It preserves the current iframe context so the staff workflow stays inside the Novi embed.
|
||||||
|
|
||||||
|
**Future idea:** make that link include a `room=` query param for the current meeting so Jitsi Reports can auto-filter to that meeting instance, and have Reset clear that param again.
|
||||||
|
|
||||||
### Export
|
### Export
|
||||||
|
|
||||||
CSV and JSON export buttons in the page header export the **currently filtered + exclusion-applied** data set.
|
CSV and JSON export buttons in the page header export the **currently filtered + exclusion-applied** data set.
|
||||||
|
|||||||
@@ -787,22 +787,28 @@ function export_json() {
|
|||||||
<tr
|
<tr
|
||||||
class="bg-surface-100-900 border-surface-200-800 border-b">
|
class="bg-surface-100-900 border-surface-200-800 border-b">
|
||||||
<th
|
<th
|
||||||
class="px-3 py-2 text-left font-medium whitespace-nowrap opacity-60"
|
class="text-left font-medium whitespace-nowrap opacity-60"
|
||||||
|
style="padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem;"
|
||||||
>Date</th>
|
>Date</th>
|
||||||
<th
|
<th
|
||||||
class="px-3 py-2 text-left font-medium whitespace-nowrap opacity-60"
|
class="text-left font-medium whitespace-nowrap opacity-60"
|
||||||
|
style="padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem;"
|
||||||
>Start</th>
|
>Start</th>
|
||||||
<th
|
<th
|
||||||
class="px-3 py-2 text-left font-medium whitespace-nowrap opacity-60"
|
class="text-left font-medium whitespace-nowrap opacity-60"
|
||||||
|
style="padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem;"
|
||||||
>End</th>
|
>End</th>
|
||||||
<th
|
<th
|
||||||
class="px-3 py-2 text-left font-medium whitespace-nowrap opacity-60"
|
class="text-left font-medium whitespace-nowrap opacity-60"
|
||||||
|
style="padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem;"
|
||||||
>Duration</th>
|
>Duration</th>
|
||||||
<th
|
<th
|
||||||
class="px-3 py-2 text-center font-medium whitespace-nowrap opacity-60"
|
class="text-center font-medium whitespace-nowrap opacity-60"
|
||||||
|
style="padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem;"
|
||||||
title="Participant count (after staff exclusion)">#</th>
|
title="Participant count (after staff exclusion)">#</th>
|
||||||
<th
|
<th
|
||||||
class="px-3 py-2 text-left font-medium opacity-60"
|
class="text-left font-medium opacity-60"
|
||||||
|
style="padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem;"
|
||||||
>Participants</th>
|
>Participants</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -814,13 +820,15 @@ function export_json() {
|
|||||||
<tr
|
<tr
|
||||||
class="border-surface-200-800 bg-surface-50-900 text-surface-950 hover:bg-surface-100-900 dark:bg-surface-900 dark:text-surface-50 border-b transition-colors duration-200">
|
class="border-surface-200-800 bg-surface-50-900 text-surface-950 hover:bg-surface-100-900 dark:bg-surface-900 dark:text-surface-50 border-b transition-colors duration-200">
|
||||||
<td
|
<td
|
||||||
class="px-3 py-2 whitespace-nowrap">
|
class="whitespace-nowrap"
|
||||||
|
style="padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem;">
|
||||||
{new Date(
|
{new Date(
|
||||||
m.start_time
|
m.start_time
|
||||||
).toLocaleDateString()}
|
).toLocaleDateString()}
|
||||||
</td>
|
</td>
|
||||||
<td
|
<td
|
||||||
class="px-3 py-2 whitespace-nowrap">
|
class="whitespace-nowrap"
|
||||||
|
style="padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem;">
|
||||||
{new Date(
|
{new Date(
|
||||||
m.start_time
|
m.start_time
|
||||||
).toLocaleTimeString(
|
).toLocaleTimeString(
|
||||||
@@ -832,19 +840,24 @@ function export_json() {
|
|||||||
)}
|
)}
|
||||||
</td>
|
</td>
|
||||||
<td
|
<td
|
||||||
class="px-3 py-2 whitespace-nowrap">
|
class="whitespace-nowrap"
|
||||||
|
style="padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem;">
|
||||||
{compute_end_time(m.start_time, m.final_duration)}
|
{compute_end_time(m.start_time, m.final_duration)}
|
||||||
</td>
|
</td>
|
||||||
<td
|
<td
|
||||||
class="px-3 py-2 font-mono whitespace-nowrap">
|
class="font-mono whitespace-nowrap"
|
||||||
|
style="padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem;">
|
||||||
{m.final_duration}
|
{m.final_duration}
|
||||||
</td>
|
</td>
|
||||||
<td
|
<td
|
||||||
class="px-3 py-2 text-center"
|
class="text-center"
|
||||||
|
style="padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem;"
|
||||||
title={all_names || 'No participants'}>
|
title={all_names || 'No participants'}>
|
||||||
{m.real_participant_count}
|
{m.real_participant_count}
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 py-2" title={all_names || 'No participants'}>
|
<td
|
||||||
|
title={all_names || 'No participants'}
|
||||||
|
style="padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem;">
|
||||||
{#if m.real_participant_count === 0}
|
{#if m.real_participant_count === 0}
|
||||||
<span class="opacity-40">—</span>
|
<span class="opacity-40">—</span>
|
||||||
{:else}
|
{:else}
|
||||||
@@ -1076,20 +1089,24 @@ function export_json() {
|
|||||||
<tr
|
<tr
|
||||||
class="border-surface-200-800 border-b">
|
class="border-surface-200-800 border-b">
|
||||||
<th
|
<th
|
||||||
class="py-1 text-left font-medium opacity-60"
|
class="text-left font-medium opacity-60"
|
||||||
|
style="padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.25rem; padding-bottom: 0.25rem;"
|
||||||
>Name</th>
|
>Name</th>
|
||||||
<th
|
<th
|
||||||
class="py-1 text-left font-medium opacity-60"
|
class="text-left font-medium opacity-60"
|
||||||
|
style="padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.25rem; padding-bottom: 0.25rem;"
|
||||||
>Role</th>
|
>Role</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{#each meeting.real_participants as participant (participant.displayName)}
|
{#each meeting.real_participants as participant (participant.displayName)}
|
||||||
<tr
|
<tr
|
||||||
class="border-surface-200-800 bg-surface-50-900 text-surface-950 hover:bg-surface-100-900 dark:bg-surface-900 dark:text-surface-50 border-b transition-colors duration-200">
|
class="border-surface-200-800 bg-surface-50-900 text-surface-950 hover:bg-surface-100-900 dark:bg-surface-900 dark:text-surface-50 border-b transition-colors duration-200">
|
||||||
<td class="py-1"
|
<td
|
||||||
|
style="padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.25rem; padding-bottom: 0.25rem;"
|
||||||
>{participant.displayName}</td>
|
>{participant.displayName}</td>
|
||||||
<td class="py-1"
|
<td
|
||||||
|
style="padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.25rem; padding-bottom: 0.25rem;"
|
||||||
>{ae_util.to_title_case(
|
>{ae_util.to_title_case(
|
||||||
participant.role
|
participant.role
|
||||||
)}</td>
|
)}</td>
|
||||||
|
|||||||
Reference in New Issue
Block a user