feat: nápověda k admin heslu u obnovení nabídky
CI / Generate TypeScript types (push) Successful in 10s
CI / Server unit tests (push) Successful in 25s
CI / Build server (push) Successful in 32s
CI / Build client (push) Successful in 42s
CI / Playwright E2E tests (push) Successful in 1m53s
CI / Build and push Docker image (push) Successful in 46s
CI / Notify (push) Successful in 1s
CI / Generate TypeScript types (push) Successful in 10s
CI / Server unit tests (push) Successful in 25s
CI / Build server (push) Successful in 32s
CI / Build client (push) Successful in 42s
CI / Playwright E2E tests (push) Successful in 1m53s
CI / Build and push Docker image (push) Successful in 46s
CI / Notify (push) Successful in 1s
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { Modal, Button, Form, ListGroup, Alert } from "react-bootstrap";
|
import { Modal, Button, Form, ListGroup, Alert, OverlayTrigger, Tooltip } from "react-bootstrap";
|
||||||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||||
import { faTrashCan } from "@fortawesome/free-regular-svg-icons";
|
import { faTrashCan } from "@fortawesome/free-regular-svg-icons";
|
||||||
import { faArrowsRotate, faPen, faPlus, faUpRightFromSquare, faXmark } from "@fortawesome/free-solid-svg-icons";
|
import { faArrowsRotate, faPen, faPlus, faUpRightFromSquare, faXmark } from "@fortawesome/free-solid-svg-icons";
|
||||||
@@ -218,6 +218,9 @@ export default function StoreAdminModal({ isOpen, onClose, stores, onStoresChang
|
|||||||
onChange={e => setHeslo(e.target.value)}
|
onChange={e => setHeslo(e.target.value)}
|
||||||
onKeyDown={e => e.stopPropagation()}
|
onKeyDown={e => e.stopPropagation()}
|
||||||
/>
|
/>
|
||||||
|
<Form.Text className="text-muted">
|
||||||
|
Potřeba pro přidání, úpravu a odebrání obchodu i pro obnovení nabídky (<FontAwesomeIcon icon={faArrowsRotate} />).
|
||||||
|
</Form.Text>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
@@ -303,16 +306,31 @@ export default function StoreAdminModal({ isOpen, onClose, stores, onStoresChang
|
|||||||
<small className="d-flex align-items-baseline gap-2 mt-1">
|
<small className="d-flex align-items-baseline gap-2 mt-1">
|
||||||
<span className="text-nowrap text-muted">Menu {PROVIDER_LABELS[p.provider]}:</span>
|
<span className="text-nowrap text-muted">Menu {PROVIDER_LABELS[p.provider]}:</span>
|
||||||
<span className={className} title={title}>{text}</span>
|
<span className={className} title={title}>{text}</span>
|
||||||
<Button
|
{/* Zakázané tlačítko nezobrazí tooltip — obalení do span ho zobrazí i bez hesla */}
|
||||||
variant="link"
|
<OverlayTrigger
|
||||||
size="sm"
|
placement="top"
|
||||||
className="p-0"
|
overlay={
|
||||||
disabled={!heslo || refreshing != null}
|
<Tooltip>
|
||||||
title={heslo ? `Znovu stáhnout nabídku z ${PROVIDER_LABELS[p.provider]}` : 'Pro obnovení zadejte admin heslo'}
|
{heslo
|
||||||
onClick={() => handleRefreshMenu(s.name, p.provider)}
|
? `Znovu stáhnout nabídku z ${PROVIDER_LABELS[p.provider]}`
|
||||||
|
: 'Pro obnovení nabídky zadejte nahoře admin heslo'}
|
||||||
|
</Tooltip>
|
||||||
|
}
|
||||||
>
|
>
|
||||||
<FontAwesomeIcon icon={faArrowsRotate} spin={refreshing === key} />
|
<span className="d-inline-block" style={{ cursor: heslo ? undefined : 'not-allowed' }}>
|
||||||
</Button>
|
<Button
|
||||||
|
variant="link"
|
||||||
|
size="sm"
|
||||||
|
className="p-0"
|
||||||
|
disabled={!heslo || refreshing != null}
|
||||||
|
style={heslo ? undefined : { pointerEvents: 'none' }}
|
||||||
|
aria-label={`Znovu stáhnout nabídku z ${PROVIDER_LABELS[p.provider]}`}
|
||||||
|
onClick={() => handleRefreshMenu(s.name, p.provider)}
|
||||||
|
>
|
||||||
|
<FontAwesomeIcon icon={faArrowsRotate} spin={refreshing === key} />
|
||||||
|
</Button>
|
||||||
|
</span>
|
||||||
|
</OverlayTrigger>
|
||||||
{p.dishCount > 0 && (
|
{p.dishCount > 0 && (
|
||||||
<Button variant="link" size="sm" className="p-0 text-nowrap"
|
<Button variant="link" size="sm" className="p-0 text-nowrap"
|
||||||
onClick={() => setHistoryOpen(historyOpen === key ? null : key)}>
|
onClick={() => setHistoryOpen(historyOpen === key ? null : key)}>
|
||||||
|
|||||||
Reference in New Issue
Block a user