From ad12dd8c3542196348754b8813f94efd0d00750f Mon Sep 17 00:00:00 2001 From: E98Developer Date: Sat, 28 Feb 2026 10:23:20 +0100 Subject: [PATCH] make legacy and modern separation --- .junie/guidelines.md | 85 + config/view.php | 1 + package-lock.json | 12592 +- package.json | 47 +- public/css/app.css | 24788 +-- public/css/app.css.map | 1 + .../fontawesome-free/webfa-brands-400.eot | Bin 134346 -> 134294 bytes .../fontawesome-free/webfa-brands-400.svg | 82 +- .../fontawesome-free/webfa-brands-400.ttf | Bin 134040 -> 133988 bytes .../fontawesome-free/webfa-brands-400.woff | Bin 90060 -> 89988 bytes .../fontawesome-free/webfa-brands-400.woff2 | Bin 76764 -> 76736 bytes .../fontawesome-free/webfa-regular-400.eot | Bin 34034 -> 34034 bytes .../fontawesome-free/webfa-regular-400.svg | 4 +- .../fontawesome-free/webfa-regular-400.ttf | Bin 33736 -> 33736 bytes .../fontawesome-free/webfa-regular-400.woff | Bin 16276 -> 16276 bytes .../fontawesome-free/webfa-regular-400.woff2 | Bin 13276 -> 13224 bytes .../fontawesome-free/webfa-solid-900.eot | Bin 203030 -> 203030 bytes .../fontawesome-free/webfa-solid-900.svg | 4 +- .../fontawesome-free/webfa-solid-900.ttf | Bin 202744 -> 202744 bytes .../fontawesome-free/webfa-solid-900.woff | Bin 101652 -> 101648 bytes .../fontawesome-free/webfa-solid-900.woff2 | Bin 78196 -> 78268 bytes .../bootstrap-icons/bootstrap-icons.woff | Bin 120468 -> 180288 bytes .../bootstrap-icons/bootstrap-icons.woff2 | Bin 90528 -> 134044 bytes .../themes/base/ui-icons_444444_256x240.png | Bin 3756 -> 3266 bytes .../themes/base/ui-icons_555555_256x240.png | Bin 3756 -> 3274 bytes .../themes/base/ui-icons_777620_256x240.png | Bin 3756 -> 3262 bytes .../themes/base/ui-icons_777777_256x240.png | Bin 3756 -> 3266 bytes .../themes/base/ui-icons_cc0000_256x240.png | Bin 3756 -> 3262 bytes .../themes/base/ui-icons_ffffff_256x240.png | Bin 3756 -> 3264 bytes public/js/admin.js | 89 +- public/js/admin.js.map | 1 + public/js/app.js | 537 +- public/js/app.js.LICENSE.txt | 19 + public/js/app.js.map | 1 + public/js/components.js | 45 +- public/js/components.js.map | 1 + public/js/customize.js | 125702 +-------------- public/js/module.js | 78 +- public/js/module.js.map | 1 + public/mix-manifest.json | 56 +- resources/modern/css/app.css | 4 + resources/modern/js/app.js | 3 + resources/modern/js/bootstrap.js | 4 + vite.config.js | 2 +- webpack.mix.js | 76 + 45 files changed, 13039 insertions(+), 151184 deletions(-) create mode 100644 .junie/guidelines.md create mode 100644 public/css/app.css.map create mode 100644 public/js/admin.js.map create mode 100644 public/js/app.js.LICENSE.txt create mode 100644 public/js/app.js.map create mode 100644 public/js/components.js.map create mode 100644 public/js/module.js.map create mode 100644 resources/modern/css/app.css create mode 100644 resources/modern/js/app.js create mode 100644 resources/modern/js/bootstrap.js create mode 100644 webpack.mix.js diff --git a/.junie/guidelines.md b/.junie/guidelines.md new file mode 100644 index 0000000..450cc32 --- /dev/null +++ b/.junie/guidelines.md @@ -0,0 +1,85 @@ +### Irányelvek és Konvenciók + +Ez a fájl tartalmazza a projekt fejlesztési irányelveit a hatékony és tiszta kód érdekében. + +#### Általános elvek +* **Tisztaság (Clean Code)**: A kódot úgy írd, hogy az emberi olvasó számára is egyértelmű legyen. Használj beszédes változó- és függvényneveket. +* **SOLID**: Kövesd az objektumorientált programozás elveit. +* **DRY (Don't Repeat Yourself)**: Kerüld a kódismétlést, használj segédfüggvényeket, Trait-eket vagy Service-eket. + +#### Technológiai keretrendszer +* **PHP**: Legalább 8.2-es verziót használunk. Kötelező a típusok (type hinting) használata mindenütt (függvény paramétereknél és visszatérési értékeknél is). +* **Laravel**: A legújabb stabil Laravel verziókkal kompatibilis kódírás (L12 supportra való felkészülés). +* **Blade**: UI fejlesztéshez Laravel Blade sablonmotort használunk. +* **Eloquence**: Az adatbázis eléréshez és kezeléshez elsődlegesen az Eloquent ORM-et használjuk. + +#### Architektúra és Struktúra +* **Controller**: A kontrollerek maradjanak vékonyak (thin controllers). Az üzleti logika kerüljön a Service-ekbe. +* **Service réteg**: Az összetett műveleteket Service osztályokban valósítsd meg (`app/Services/` alatt). Használj Dependency Injection-t a Service-ek bevezetéséhez a kontrollerekbe. +* **Route**: Használj névvel ellátott útvonalakat (named routes). +* **Requests**: Form Validation-re használd a Laravel FormRequest osztályait a kontrollerek metódusain belül. +* **DTO (Data Transfer Objects)**: Használj DTO-kat vagy Typed Array-eket nagyobb adatszerkezetek továbbításakor (pl. `Extra` library). + +##### Modellek és Auditálás +- Minden fő modellnek a `App\Models\BaseAuditable` osztályból kell származnia. +- Ez biztosítja a `created_by`, `updated_by` és `deleted_by` mezők automatikus töltését a `ModelUserIdAppenderTrait` segítségével. +- Használjunk `SoftDeletes`-t, ahol az adatok megőrzése fontos. + +##### Hibrid Frontend Architektúra (Mix & Vite) +A projekt fokozatos modernizáció alatt áll, ezért két párhuzamos build rendszert használunk: +- **Legacy (Laravel Mix)**: A meglévő jQuery, Bootstrap 4 és AdminLTE alapú kódokhoz. + - Forrásfájlok: `resources/js/`, `resources/sass/`, `resources/css/`. +- **Modern (Vite)**: Új funkciókhoz, Tailwind CSS-hez és reaktív komponensekhez. + - Forrásfájlok: `resources/modern/js/`, `resources/modern/css/`. + - Nézetek: `resources/modern/views/`. + - Használat Blade-ben: `@vite(['resources/modern/css/app.css', 'resources/modern/js/app.js'])`. +- A modern nézeteket a Laravel automatikusan felismeri a `config/view.php` konfigurációja alapján. + +##### JavaScript Architektúra és Modulok +- A JS kód alapja egy egyedi objektumorientált rendszer. +- **Osztály-alapú felépítés**: Minden adminisztrációs felülethez (vagy összetettebb modulhoz) tartozzon egy specifikus JavaScript osztály (pl. `ProductAdmin`), amely a `resources/js/admin/` könyvtárban kap helyet. +- **DataModel használata**: Az adatok kliensoldali reprezentációjához használjunk a globális `DataModel` osztályból származtatott modelleket. +- **Globális APP objektum**: A példányosított modulokat és a globális beállításokat a `window.APP` objektumban tároljuk (pl. `APP.ProductAdmin`). Ez biztosítja a modulok közötti átjárhatóságot. + +##### Felhasználói Felület (UI) és Komponensek +- **DataTables Konvenciók**: + - Használjuk a `$.fn.dataTable.defaults`-ban definiált globális magyar nyelvű és formázási beállításokat. + - A táblázat sorvégi műveletgombjait (Szerkesztés, Törlés, Megtekintés) az `APP.datatableAddRowEditButton()`, `APP.datatableAddRowTrashButton()` stb. segédfüggvényekkel generáljuk a konzisztencia érdekében. +- **Mustache.js Sablonozás**: + - Dinamikus HTML tartalmak (pl. popupok, egyedi táblázat sorok) generálásához Mustache.js-t használunk. + - A sablonokat a Blade fájlokban a `