chore(version): update version and changelog for release 0.8.124
All checks were successful
Deploy Development / deploy (push) Successful in 39s
Test Suite / pytest-backend (push) Successful in 36s
Test Suite / lint-backend (push) Successful in 1s
Test Suite / build-frontend (push) Successful in 11s
Test Suite / k6 /health Baseline (push) Successful in 33s
Test Suite / playwright-tests (push) Successful in 1m1s
All checks were successful
Deploy Development / deploy (push) Successful in 39s
Test Suite / pytest-backend (push) Successful in 36s
Test Suite / lint-backend (push) Successful in 1s
Test Suite / build-frontend (push) Successful in 11s
Test Suite / k6 /health Baseline (push) Successful in 33s
Test Suite / playwright-tests (push) Successful in 1m1s
- Bumped APP_VERSION to 0.8.124 and updated the changelog to reflect recent changes. - Introduced the ExerciseListBulkToolbar component in ExercisesListPage for improved bulk action handling. - Enhanced the user interface for selecting and managing exercises in bulk.
This commit is contained in:
parent
2e105a99b8
commit
1631bd2e02
|
|
@ -1,6 +1,6 @@
|
||||||
# Shinkan Jinkendo Version Information
|
# Shinkan Jinkendo Version Information
|
||||||
|
|
||||||
APP_VERSION = "0.8.123"
|
APP_VERSION = "0.8.124"
|
||||||
BUILD_DATE = "2026-05-12"
|
BUILD_DATE = "2026-05-12"
|
||||||
DB_SCHEMA_VERSION = "20260514062"
|
DB_SCHEMA_VERSION = "20260514062"
|
||||||
|
|
||||||
|
|
@ -36,6 +36,13 @@ MODULE_VERSIONS = {
|
||||||
}
|
}
|
||||||
|
|
||||||
CHANGELOG = [
|
CHANGELOG = [
|
||||||
|
{
|
||||||
|
"version": "0.8.124",
|
||||||
|
"date": "2026-05-13",
|
||||||
|
"changes": [
|
||||||
|
"Frontend Phase 3 (Teil): ExerciseListBulkToolbar-Komponente; Übungsliste nur Verdrahtung.",
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "0.8.123",
|
"version": "0.8.123",
|
||||||
"date": "2026-05-13",
|
"date": "2026-05-13",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
export default function ExerciseListBulkToolbar({
|
||||||
|
selectedCount,
|
||||||
|
bulkMaxIds,
|
||||||
|
onClearSelection,
|
||||||
|
onOpenBulkModal,
|
||||||
|
}) {
|
||||||
|
if (selectedCount < 1) return null
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="card exercise-bulk-toolbar">
|
||||||
|
<strong>{selectedCount} ausgewählt</strong>
|
||||||
|
<button type="button" className="btn btn-secondary btn-small" onClick={onClearSelection}>
|
||||||
|
Auswahl aufheben
|
||||||
|
</button>
|
||||||
|
<button type="button" className="btn btn-primary btn-small" onClick={onOpenBulkModal}>
|
||||||
|
Massenänderung…
|
||||||
|
</button>
|
||||||
|
<span className="exercise-bulk-toolbar__meta">
|
||||||
|
Bis zu {bulkMaxIds} pro Anfrage. Für „Verein“ ohne Auswahl: aktiver Vereinskontext (
|
||||||
|
<code>X-Active-Club-Id</code>
|
||||||
|
).
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
@ -8,6 +8,7 @@ import ExerciseListCard from '../components/exercises/ExerciseListCard'
|
||||||
import ExerciseListFilterModal from '../components/exercises/ExerciseListFilterModal'
|
import ExerciseListFilterModal from '../components/exercises/ExerciseListFilterModal'
|
||||||
import ExerciseListBulkModal from '../components/exercises/ExerciseListBulkModal'
|
import ExerciseListBulkModal from '../components/exercises/ExerciseListBulkModal'
|
||||||
import ExerciseListSearchBar from '../components/exercises/ExerciseListSearchBar'
|
import ExerciseListSearchBar from '../components/exercises/ExerciseListSearchBar'
|
||||||
|
import ExerciseListBulkToolbar from '../components/exercises/ExerciseListBulkToolbar'
|
||||||
import { buildExerciseListFilterChips } from '../utils/exerciseListFilterChips'
|
import { buildExerciseListFilterChips } from '../utils/exerciseListFilterChips'
|
||||||
import { applyDashboardExerciseListUrl, buildExerciseListQueryBase } from '../utils/exerciseListQuery'
|
import { applyDashboardExerciseListUrl, buildExerciseListQueryBase } from '../utils/exerciseListQuery'
|
||||||
import { useExerciseListCatalogsAndQuery } from '../hooks/useExerciseListCatalogsAndQuery'
|
import { useExerciseListCatalogsAndQuery } from '../hooks/useExerciseListCatalogsAndQuery'
|
||||||
|
|
@ -474,22 +475,12 @@ function ExercisesListPage() {
|
||||||
onToggleSelectAllPage={toggleSelectAllPage}
|
onToggleSelectAllPage={toggleSelectAllPage}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{selectedIds.size > 0 ? (
|
<ExerciseListBulkToolbar
|
||||||
<div className="card exercise-bulk-toolbar">
|
selectedCount={selectedIds.size}
|
||||||
<strong>{selectedIds.size} ausgewählt</strong>
|
bulkMaxIds={BULK_MAX_IDS}
|
||||||
<button type="button" className="btn btn-secondary btn-small" onClick={clearSelection}>
|
onClearSelection={clearSelection}
|
||||||
Auswahl aufheben
|
onOpenBulkModal={openBulkModal}
|
||||||
</button>
|
/>
|
||||||
<button type="button" className="btn btn-primary btn-small" onClick={openBulkModal}>
|
|
||||||
Massenänderung…
|
|
||||||
</button>
|
|
||||||
<span className="exercise-bulk-toolbar__meta">
|
|
||||||
Bis zu {BULK_MAX_IDS} pro Anfrage. Für „Verein“ ohne Auswahl: aktiver Vereinskontext (
|
|
||||||
<code>X-Active-Club-Id</code>
|
|
||||||
).
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
) : null}
|
|
||||||
|
|
||||||
<ExerciseListFilterModal
|
<ExerciseListFilterModal
|
||||||
open={filterModalOpen}
|
open={filterModalOpen}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user