diff --git a/client/src/pages/OrderGroupsPage.tsx b/client/src/pages/OrderGroupsPage.tsx
index 321ff71..6e3a1e3 100644
--- a/client/src/pages/OrderGroupsPage.tsx
+++ b/client/src/pages/OrderGroupsPage.tsx
@@ -2,7 +2,7 @@ import { useCallback, useContext, useEffect, useRef, useState } from 'react';
import { Alert, Badge, Button, Card, Form, Modal, OverlayTrigger, Table, Tooltip } from 'react-bootstrap';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faTrashCan } from '@fortawesome/free-regular-svg-icons';
-import { faBasketShopping, faChevronLeft, faChevronRight, faCircleCheck, faClockRotateLeft, faGear, faLock, faLockOpen, faSearch, faUserPlus } from '@fortawesome/free-solid-svg-icons';
+import { faBasketShopping, faChevronLeft, faChevronRight, faCircleCheck, faClockRotateLeft, faGear, faLock, faLockOpen, faPen, faSearch, faUserPlus } from '@fortawesome/free-solid-svg-icons';
import DatePicker, { registerLocale } from 'react-datepicker';
import { cs } from 'date-fns/locale';
import 'react-datepicker/dist/react-datepicker.css';
@@ -43,6 +43,14 @@ function extractBoltToken(input: string): string | null {
}
}
+/** Zkrátí dlouhý odkaz pro zobrazení v řádku (zachová začátek i konec). */
+function shortenUrl(url: string, max = 48): string {
+ if (url.length <= max) return url;
+ const head = Math.ceil((max - 1) / 2);
+ const tail = Math.floor((max - 1) / 2);
+ return `${url.slice(0, head)}…${url.slice(url.length - tail)}`;
+}
+
// Český lokál pro date picker (názvy měsíců/dnů, pondělí jako první den)
registerLocale('cs', cs);
@@ -706,7 +714,7 @@ export default function OrderGroupsPage() {
/>
- Bolt odkaz:
+ Bolt odkaz pro sledování:
setEditTimes(prev => { const n = { ...prev }; delete n[group.id]; return n; })}>Zrušit
) : (
- !isReadOnly && isCreator && setEditTimes(prev => ({ ...prev, [group.id]: { orderedAt: group.orderedAt ?? '', deliveryAt: group.deliveryAt ?? '', boltUrl: group.boltTrackingToken ? `${BOLT_SHARE_URL_PREFIX}${group.boltTrackingToken}` : '' } }))}
- title={!isReadOnly && isCreator ? 'Klikněte pro úpravu časů' : undefined}
- >
-
- Objednáno v: {group.orderedAt ?? '—'}
-
-
- Doručení v: {group.deliveryAt ?? '—'}
- {group.boltTrackingToken && (
- Čas doručení se aktualizuje automaticky z Bolt Food}>
- Bolt
-
- )}
-
+
+ {(() => {
+ const canEdit = !isReadOnly && isCreator;
+ // Aktivace editačního režimu – stejné chování jako tlačítko s tužkou
+ const startEdit = () => canEdit && setEditTimes(prev => ({ ...prev, [group.id]: { orderedAt: group.orderedAt ?? '', deliveryAt: group.deliveryAt ?? '', boltUrl: group.boltTrackingToken ? `${BOLT_SHARE_URL_PREFIX}${group.boltTrackingToken}` : '' } }));
+ const trackingUrl = group.boltTrackingToken ? `${BOLT_SHARE_URL_PREFIX}${group.boltTrackingToken}` : null;
+ return (
+ <>
+ {canEdit && (
+
+ )}
+
+ Objednáno v: {group.orderedAt ?? '—'}
+
+
+ Doručení v: {group.deliveryAt ?? '—'}
+ {group.boltTrackingToken && (
+ Čas doručení se aktualizuje automaticky z Bolt Food}>
+ Bolt
+
+ )}
+
+
+ URL pro sledování:{' '}
+ {trackingUrl ? (
+ e.stopPropagation()}
+ >
+ {shortenUrl(trackingUrl)}
+
+ ) : (
+ —
+ )}
+
+ >
+ );
+ })()}
)}
diff --git a/server/changelogs/2026-06-11.json b/server/changelogs/2026-06-11.json
index f80e466..b6e4135 100644
--- a/server/changelogs/2026-06-11.json
+++ b/server/changelogs/2026-06-11.json
@@ -1,3 +1,5 @@
[
- "Proklik na nabídku podniku ze stránky objednávek"
+ "Proklik na nabídku podniku ze stránky objednávek",
+ "Možnost přidat URL pro sledování stavu doručení pro Bolt Food",
+ "Automatická aktualizace času doručení na základě sledovací URL pro Bolt Food"
]