feat: update wording
This commit is contained in:
1 parent
5e5bf00f8f
commit
84724879c7
10 files changed
+19
-19
No files matched your search
@@ -143,7 +143,7 @@ final class CreateController extends AbstractController
|
|||||||
private function flashSeriesResult(SeriesResult $result, Resource $resource): void
|
private function flashSeriesResult(SeriesResult $result, Resource $resource): void
|
||||||
{
|
{
|
||||||
if ($result->isCompletelyBlocked()) {
|
if ($result->isCompletelyBlocked()) {
|
||||||
$this->addFlash('warning', \sprintf('%s ist an keinem Tag der Serie frei.', $resource->getLabel()));
|
$this->addFlash('warning', \sprintf('%s ist an keinem der Tage frei.', $resource->getLabel()));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ final class EndController extends AbstractController
|
|||||||
$removed = $this->manager->endSeries($series, new \DateTimeImmutable('today'));
|
$removed = $this->manager->endSeries($series, new \DateTimeImmutable('today'));
|
||||||
|
|
||||||
$this->addFlash('success', $onBehalf
|
$this->addFlash('success', $onBehalf
|
||||||
? \sprintf('Serie von %s beendet, %d Termine entfernt.', $series->getUser()->getName(), $removed)
|
? \sprintf('Wiederholung von %s beendet, %d Termine entfernt.', $series->getUser()->getName(), $removed)
|
||||||
: \sprintf('Serie beendet, %d Termine entfernt.', $removed));
|
: \sprintf('Wiederholung beendet, %d Termine entfernt.', $removed));
|
||||||
|
|
||||||
// A series is only ever ended from a list, so this always navigates.
|
// A series is only ever ended from a list, so this always navigates.
|
||||||
return $this->htmxRedirect($request, $this->generateUrl($this->returnRoute($request) ?? 'app_booking'));
|
return $this->htmxRedirect($request, $this->generateUrl($this->returnRoute($request) ?? 'app_booking'));
|
||||||
|
|||||||
@@ -99,19 +99,19 @@ final class BookingRequest
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (null === $this->until) {
|
if (null === $this->until) {
|
||||||
$context->buildViolation('Bitte ein Enddatum für die Serie angeben.')->atPath('until')->addViolation();
|
$context->buildViolation('Bitte angeben, bis wann wiederholt wird.')->atPath('until')->addViolation();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (null !== $this->date && $this->until < $this->date) {
|
if (null !== $this->date && $this->until < $this->date) {
|
||||||
$context->buildViolation('Das Serienende muss nach dem Beginn liegen.')->atPath('until')->addViolation();
|
$context->buildViolation('Das Ende muss nach dem Beginn liegen.')->atPath('until')->addViolation();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$this->unlimitedHorizon && $this->until > BookingHorizon::latest()) {
|
if (!$this->unlimitedHorizon && $this->until > BookingHorizon::latest()) {
|
||||||
$context->buildViolation(\sprintf('Eine Serie darf höchstens %d Monate in die Zukunft laufen.', BookingHorizon::MONTHS))
|
$context->buildViolation(\sprintf('Eine Wiederholung darf höchstens %d Monate in die Zukunft laufen.', BookingHorizon::MONTHS))
|
||||||
->atPath('until')
|
->atPath('until')
|
||||||
->addViolation();
|
->addViolation();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ final class BookingType extends AbstractType
|
|||||||
'choice_label' => static fn (RecurrenceRule $rule): string => $rule->label(),
|
'choice_label' => static fn (RecurrenceRule $rule): string => $rule->label(),
|
||||||
])
|
])
|
||||||
->add('until', DateType::class, [
|
->add('until', DateType::class, [
|
||||||
'label' => 'Serie bis',
|
'label' => 'Wiederholen bis',
|
||||||
'widget' => 'single_text',
|
'widget' => 'single_text',
|
||||||
'input' => 'datetime_immutable',
|
'input' => 'datetime_immutable',
|
||||||
'required' => false,
|
'required' => false,
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
<div class="text-sm text-gray-500">
|
<div class="text-sm text-gray-500">
|
||||||
{{ booking.timeRange }}
|
{{ booking.timeRange }}
|
||||||
{% if booking.partOfSeries %}
|
{% if booking.partOfSeries %}
|
||||||
<span class="badge bg-gray-100 text-gray-600 ml-1">Serie</span>
|
<span class="badge bg-gray-100 text-gray-600 ml-1">wiederkehrend</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
{{ form_end(form) }}
|
{{ form_end(form) }}
|
||||||
|
|
||||||
{% if series is not empty %}
|
{% if series is not empty %}
|
||||||
<h2 class="pt-8">Serien</h2>
|
<h2 class="pt-8">Wiederkehrende Buchungen</h2>
|
||||||
<ul class="divide-y divide-gray-200 border-y border-gray-200">
|
<ul class="divide-y divide-gray-200 border-y border-gray-200">
|
||||||
{% for entry in series %}
|
{% for entry in series %}
|
||||||
<li class="flex items-center justify-between gap-4 py-3">
|
<li class="flex items-center justify-between gap-4 py-3">
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
hx-get="{{ path('app_series_end', { id: entry.id, return: 'admin' }) }}"
|
hx-get="{{ path('app_series_end', { id: entry.id, return: 'admin' }) }}"
|
||||||
hx-target="body"
|
hx-target="body"
|
||||||
hx-swap="beforeend">
|
hx-swap="beforeend">
|
||||||
Serie beenden
|
Wiederholung beenden
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
{{ booking.resource.type.label }} · {{ booking.resource.label }}
|
{{ booking.resource.type.label }} · {{ booking.resource.label }}
|
||||||
{%- if booking.resource.group %} · {{ booking.resource.group.label }}{% endif %}
|
{%- if booking.resource.group %} · {{ booking.resource.group.label }}{% endif %}
|
||||||
{% if booking.partOfSeries %}
|
{% if booking.partOfSeries %}
|
||||||
<span class="badge bg-gray-100 text-gray-600 ml-1">Serie</span>
|
<span class="badge bg-gray-100 text-gray-600 ml-1">wiederkehrend</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if booking.overridden %}
|
{% if booking.overridden %}
|
||||||
<span class="badge bg-amber-100 text-amber-800 ml-1">abweichend</span>
|
<span class="badge bg-amber-100 text-amber-800 ml-1">abweichend</span>
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
{% extends 'htmx_confirmation_modal.html.twig' %}
|
{% extends 'htmx_confirmation_modal.html.twig' %}
|
||||||
|
|
||||||
{% block title %}Serie beenden?{% endblock %}
|
{% block title %}Wiederholung beenden?{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<p>
|
<p>
|
||||||
{{ series.resource.label }} · {{ series.describe }}
|
{{ series.resource.label }} · {{ series.describe }}
|
||||||
{% if series.user.id != app.user.id %}
|
{% if series.user.id != app.user.id %}
|
||||||
— Serie von <em>{{ series.user.name }}</em>
|
— Wiederkehrende Buchung von <em>{{ series.user.name }}</em>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</p>
|
</p>
|
||||||
<p class="pt-3 text-sm text-gray-500">
|
<p class="pt-3 text-sm text-gray-500">
|
||||||
@@ -14,4 +14,4 @@
|
|||||||
</p>
|
</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block button_confirm %}Serie beenden{% endblock %}
|
{% block button_confirm %}Wiederholung beenden{% endblock %}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
<p class="subline">Alles, was ab heute für dich reserviert ist.</p>
|
<p class="subline">Alles, was ab heute für dich reserviert ist.</p>
|
||||||
|
|
||||||
{% if series is not empty %}
|
{% if series is not empty %}
|
||||||
<h2 class="pt-8">Serien</h2>
|
<h2 class="pt-8">Wiederkehrende Buchungen</h2>
|
||||||
<ul class="divide-y divide-gray-200 border-y border-gray-200">
|
<ul class="divide-y divide-gray-200 border-y border-gray-200">
|
||||||
{% for entry in series %}
|
{% for entry in series %}
|
||||||
<li class="flex items-center justify-between gap-4 py-3">
|
<li class="flex items-center justify-between gap-4 py-3">
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
hx-get="{{ path('app_series_end', { id: entry.id, return: 'bookings' }) }}"
|
hx-get="{{ path('app_series_end', { id: entry.id, return: 'bookings' }) }}"
|
||||||
hx-target="body"
|
hx-target="body"
|
||||||
hx-swap="beforeend">
|
hx-swap="beforeend">
|
||||||
Serie beenden
|
Wiederholung beenden
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
{{ booking.resource.type.label }} · {{ booking.resource.label }}
|
{{ booking.resource.type.label }} · {{ booking.resource.label }}
|
||||||
{%- if booking.resource.group %} · {{ booking.resource.group.label }}{% endif %}
|
{%- if booking.resource.group %} · {{ booking.resource.group.label }}{% endif %}
|
||||||
{% if booking.partOfSeries %}
|
{% if booking.partOfSeries %}
|
||||||
<span class="badge bg-gray-100 text-gray-600 ml-1">Serie</span>
|
<span class="badge bg-gray-100 text-gray-600 ml-1">wiederkehrend</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if booking.overridden %}
|
{% if booking.overridden %}
|
||||||
<span class="badge bg-amber-100 text-amber-800 ml-1">abweichend</span>
|
<span class="badge bg-amber-100 text-amber-800 ml-1">abweichend</span>
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
{{ ux_icon('lucide:calendar-days', { class: 'h-6 w-6 shrink-0 text-primary' }) }}
|
{{ ux_icon('lucide:calendar-days', { class: 'h-6 w-6 shrink-0 text-primary' }) }}
|
||||||
<span class="text-lg font-bold">Meine Buchungen</span>
|
<span class="text-lg font-bold">Meine Buchungen</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-sm text-gray-500 pb-4">Alle Termine und Serien verwalten.</p>
|
<p class="text-sm text-gray-500 pb-4">Alle Buchungen verwalten.</p>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
{#
|
{#
|
||||||
|
|||||||
@@ -372,7 +372,7 @@ class BookingControllerTest extends WebTestCase
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
self::assertSame(Response::HTTP_UNPROCESSABLE_ENTITY, $response->getStatusCode());
|
self::assertSame(Response::HTTP_UNPROCESSABLE_ENTITY, $response->getStatusCode());
|
||||||
self::assertStringContainsString('Bitte ein Enddatum für die Serie angeben.', (string) $response->getContent());
|
self::assertStringContainsString('Bitte angeben, bis wann wiederholt wird.', (string) $response->getContent());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testASeriesRunningTooFarOutIsRejected(): void
|
public function testASeriesRunningTooFarOutIsRejected(): void
|
||||||
|
|||||||
Reference in new issue
Block a user