Release v2.6.19

This commit is contained in:
2026-08-09 11:57:40 +01:00
parent 49c72923b4
commit 459f84ed94
34 changed files with 1650 additions and 256 deletions
+21 -9
View File
@@ -10,15 +10,29 @@
<div class="card-header">
<h3 class="card-title">Timetable group details</h3>
</div>
<div class="card-body d-grid gap-4">
<div class="card-body d-grid gap-4 pb-0">
<div class="row g-3">
<div class="col-12 col-lg-4">
<label for="timetable-group-name" class="form-label">Name</label>
<input id="timetable-group-name" name="name" class="form-control" value="{{timetableGroup.name}}" maxlength="128" data-limit-text-length required />
</div>
<div class="col-12 col-lg-8">
<label for="timetable-group-short-description" class="form-label">Short description</label>
<input id="timetable-group-short-description" name="short_description" class="form-control" value="{{timetableGroup.shortDescription}}" maxlength="255" data-limit-text-length placeholder="Morning events" />
<div class="row g-3">
<div class="col-12 col-lg-7">
<label for="timetable-group-short-description" class="form-label">Short description</label>
<input id="timetable-group-short-description" name="short_description" class="form-control" value="{{timetableGroup.shortDescription}}" maxlength="255" data-limit-text-length placeholder="Morning events" />
</div>
<div class="col-12 col-lg-5">
<label for="timetable-group-timezone" class="form-label">Time zone</label>
<input id="timetable-group-timezone" name="timezone" class="form-control" value="{{timetableGroup.timezone}}" list="timetable-group-timezones" placeholder="Europe/Berlin" autocomplete="off" required />
<datalist id="timetable-group-timezones">
{{#each timeZoneOptions}}
<option value="{{this}}"></option>
{{/each}}
</datalist>
<div class="form-text">Entries are stored and displayed using this IANA time zone.</div>
</div>
</div>
</div>
</div>
</div>
@@ -32,9 +46,9 @@
<h3 class="card-title mb-0 flex-grow-1">Entries</h3>
<button type="button" class="btn btn-primary btn-sm ms-auto" data-add-timetable-entry>Add entry</button>
</div>
<div class="card-body d-grid">
<div class="card-body p-0 timetable-entries-table-shell">
<div class="table-responsive">
<table class="table table-bordered align-middle schedule-entries-table mb-0">
<table class="table table-bordered align-middle timetable-entries-table mb-0">
<thead>
<tr>
<th style="width: 18rem;">Title</th>
@@ -59,10 +73,9 @@
</td>
<td>
<input type="datetime-local" name="entry_end_datetime[]" class="form-control" value="{{endValue}}" />
<div class="invalid-feedback">End time must be at least 1 minute after the start time.</div>
</td>
<td>
<button type="button" class="btn btn-outline-danger btn-sm" data-remove-timetable-entry>Remove</button>
<button type="button" class="btn btn-danger btn-sm" data-remove-timetable-entry>Remove</button>
</td>
</tr>
{{/each}}
@@ -87,10 +100,9 @@
</td>
<td>
<input type="datetime-local" name="entry_end_datetime[]" class="form-control" value="" />
<div class="invalid-feedback">End time must be at least 1 minute after the start time.</div>
</td>
<td>
<button type="button" class="btn btn-outline-danger btn-sm" data-remove-timetable-entry>Remove</button>
<button type="button" class="btn btn-danger btn-sm" data-remove-timetable-entry>Remove</button>
</td>
</tr>
</template>
@@ -24,6 +24,7 @@
<tr>
<th data-table-sort-key="name">Name</th>
<th data-table-sort-key="description">Description</th>
<th data-table-sort-key="timezone">Time zone</th>
<th data-table-sort-key="entries">Entries</th>
<th data-table-sort-key="next_start">Next start</th>
<th>Actions</th>
@@ -35,10 +36,11 @@
<tr data-table-search-row>
<td data-label="Name">{{name}}</td>
<td data-label="Description" class="text-break">{{short_description}}</td>
<td data-label="Time zone">{{timeZone}}</td>
<td data-label="Entries">{{entry_count}}</td>
<td data-label="Next start">
{{#if nextStartValue}}
<time data-local-datetime datetime="{{nextStartValue}}">{{nextStartLabel}}</time>
<time datetime="{{nextStartValue}}">{{nextStartLabel}}</time>
{{else}}
{{nextStartLabel}}
{{/if}}
@@ -69,7 +71,7 @@
</tr>
{{/each}}
{{else}}
<tr data-table-search-empty-default><td colspan="5" class="empty">No timetable groups yet.</td></tr>
<tr data-table-search-empty-default><td colspan="6" class="empty">No timetable groups yet.</td></tr>
{{/if}}
</tbody>
</table>