From 2328ba2840c7d13e76afccfd1e6cebded371ad32 Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 12 Mar 2026 19:33:36 +0100 Subject: [PATCH] refactor: migrace vsech formularu na FormField komponentu + JWT upgrade - FormField.jsx: pridana podpora style prop - 23 stranek migrovano na FormField (166 vyskytu, -246 radku) - firebase/php-jwt upgrade v6.11 -> v7.0.3 (security advisory fix) Co-Authored-By: Claude Opus 4.6 --- composer.json | 2 +- composer.lock | 85 ++------------------- src/admin/components/FormField.jsx | 5 +- src/admin/pages/Attendance.jsx | 21 +++-- src/admin/pages/AttendanceAdmin.jsx | 11 ++- src/admin/pages/AttendanceBalances.jsx | 16 ++-- src/admin/pages/AttendanceCreate.jsx | 66 +++++++--------- src/admin/pages/AttendanceHistory.jsx | 6 +- src/admin/pages/CompanySettings.jsx | 101 ++++++++++--------------- src/admin/pages/InvoiceCreate.jsx | 55 +++++--------- src/admin/pages/InvoiceDetail.jsx | 51 +++++-------- src/admin/pages/LeaveApproval.jsx | 6 +- src/admin/pages/Login.jsx | 22 ++---- src/admin/pages/OfferDetail.jsx | 53 +++++-------- src/admin/pages/Offers.jsx | 11 ++- src/admin/pages/OffersCustomers.jsx | 46 +++++------ src/admin/pages/OffersTemplates.jsx | 47 +++++------- src/admin/pages/OrderDetail.jsx | 40 +++++----- src/admin/pages/ProjectCreate.jsx | 23 +++--- src/admin/pages/ProjectDetail.jsx | 41 +++++----- src/admin/pages/ReceivedInvoices.jsx | 92 +++++++++------------- src/admin/pages/Settings.jsx | 16 ++-- src/admin/pages/Trips.jsx | 52 +++++-------- src/admin/pages/TripsAdmin.jsx | 66 +++++++--------- src/admin/pages/TripsHistory.jsx | 11 ++- src/admin/pages/Users.jsx | 33 ++++---- 26 files changed, 366 insertions(+), 612 deletions(-) diff --git a/composer.json b/composer.json index e7b89ed..473f194 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "type": "project", "require": { "php": ">=8.1", - "firebase/php-jwt": "^6.11", + "firebase/php-jwt": "^7.0", "robthree/twofactorauth": "^3.0", "chillerlan/php-qrcode": "^5.0" }, diff --git a/composer.lock b/composer.lock index 89f8e34..16e136c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "452831f603fe18144b4f4557d0c4ea01", + "content-hash": "081e51355832fa208c1fe8833cb07d49", "packages": [ { "name": "chillerlan/php-qrcode", @@ -167,16 +167,16 @@ }, { "name": "firebase/php-jwt", - "version": "v6.11.1", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "d1e91ecf8c598d073d0995afa8cd5c75c6e19e66" + "reference": "28aa0694bcfdfa5e2959c394d5a1ee7a5083629e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/d1e91ecf8c598d073d0995afa8cd5c75c6e19e66", - "reference": "d1e91ecf8c598d073d0995afa8cd5c75c6e19e66", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/28aa0694bcfdfa5e2959c394d5a1ee7a5083629e", + "reference": "28aa0694bcfdfa5e2959c394d5a1ee7a5083629e", "shasum": "" }, "require": { @@ -224,9 +224,9 @@ ], "support": { "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v6.11.1" + "source": "https://github.com/firebase/php-jwt/tree/v7.0.3" }, - "time": "2025-04-09T20:32:01+00:00" + "time": "2026-02-25T22:16:40+00:00" }, { "name": "robthree/twofactorauth", @@ -308,77 +308,6 @@ } ], "time": "2026-01-05T13:17:41+00:00" - }, - { - "name": "tecnickcom/tcpdf", - "version": "6.11.2", - "source": { - "type": "git", - "url": "https://github.com/tecnickcom/TCPDF.git", - "reference": "e1e2ade18e574e963473f53271591edd8c0033ec" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/e1e2ade18e574e963473f53271591edd8c0033ec", - "reference": "e1e2ade18e574e963473f53271591edd8c0033ec", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "php": ">=7.1.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "config", - "include", - "tcpdf.php", - "tcpdf_barcodes_1d.php", - "tcpdf_barcodes_2d.php", - "include/tcpdf_colors.php", - "include/tcpdf_filters.php", - "include/tcpdf_font_data.php", - "include/tcpdf_fonts.php", - "include/tcpdf_images.php", - "include/tcpdf_static.php", - "include/barcodes/datamatrix.php", - "include/barcodes/pdf417.php", - "include/barcodes/qrcode.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-3.0-or-later" - ], - "authors": [ - { - "name": "Nicola Asuni", - "email": "info@tecnick.com", - "role": "lead" - } - ], - "description": "TCPDF is a PHP class for generating PDF documents and barcodes.", - "homepage": "http://www.tcpdf.org/", - "keywords": [ - "PDFD32000-2008", - "TCPDF", - "barcodes", - "datamatrix", - "pdf", - "pdf417", - "qrcode" - ], - "support": { - "issues": "https://github.com/tecnickcom/TCPDF/issues", - "source": "https://github.com/tecnickcom/TCPDF/tree/6.11.2" - }, - "funding": [ - { - "url": "https://www.paypal.com/donate/?hosted_button_id=NZUEC5XS8MFBJ", - "type": "custom" - } - ], - "time": "2026-03-03T08:58:10+00:00" } ], "packages-dev": [ diff --git a/src/admin/components/FormField.jsx b/src/admin/components/FormField.jsx index 59597bf..9d8c6eb 100644 --- a/src/admin/components/FormField.jsx +++ b/src/admin/components/FormField.jsx @@ -6,13 +6,14 @@ * @param {string} [error] - Chybova zprava (zobrazi se pod inputem) * @param {boolean} [required] - Zobrazi cervenu hvezdicku * @param {string} [className] - Extra CSS trida na wrapperu + * @param {object} [style] - Inline styly na wrapperu * @param {React.ReactNode} children - Input/select/textarea element */ -export default function FormField({ label, error, required, className, children }) { +export default function FormField({ label, error, required, className, style, children }) { const groupClass = `admin-form-group${error ? ' has-error' : ''}${className ? ` ${className}` : ''}` return ( -
+
diff --git a/src/admin/pages/Attendance.jsx b/src/admin/pages/Attendance.jsx index 4e66ec9..1ffea0e 100644 --- a/src/admin/pages/Attendance.jsx +++ b/src/admin/pages/Attendance.jsx @@ -7,6 +7,7 @@ import AdminDatePicker from '../components/AdminDatePicker' import ConfirmModal from '../components/ConfirmModal' import useModalLock from '../hooks/useModalLock' import { formatTime, calculateWorkMinutes, formatMinutes } from '../utils/attendanceHelpers' +import FormField from '../components/FormField' import Forbidden from '../components/Forbidden' import apiFetch from '../utils/api' @@ -767,8 +768,7 @@ export default function Attendance() {
-
- + -
+
-
- + -
-
- + + setLeaveForm({ ...leaveForm, date_to: val })} /> -
+
{leaveForm.date_from && leaveForm.date_to && ( @@ -832,8 +830,7 @@ export default function Attendance() {
)} -
- +