| 28.04.2026 13:07:43 |
getraenkeDB |
edit |
|
|
/srv/getraenkeDB/app/app/Http/Controllers/Frontend/PublicCategoryController.php
|
Apply MediaRightsService filter to tradeItems.mediaAssets eager load |
|
|
| 28.04.2026 13:07:43 |
getraenkeDB |
edit |
|
|
/srv/getraenkeDB/app/app/Http/Controllers/Frontend/PublicHomeController.php
|
Apply MediaRightsService filter to tradeItems.mediaAssets eager load |
|
|
| 28.04.2026 12:19:31 |
getraenkeDB |
edit |
DB
|
|
/srv/getraenkeDB/app/database/migrations/2026_04_28_000003_create_brand_authorizations_table.php
|
Shorten composite index name to ba_mfr_status_type_idx — MySQL 64-char identifier limit |
|
|
| 28.04.2026 12:12:04 |
getraenkeDB |
edit |
|
|
/srv/getraenkeDB/app/app/Services/MediaRightsService.php
|
Remove Builder type hint from publicScope/applyPublicScope/withPublic closure — MorphToMany passes Relation not Builder to eager-load closures |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
create |
|
|
/srv/getraenkeDB/app/docs/RIGHTS_AND_PUBLIC_FRONTEND.md
|
Dokumentation: Rights-First Frontend-Konzept |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
create |
|
|
/srv/getraenkeDB/app/resources/views/public/partials/media-placeholder.blade.php
|
Blade-Partial: konsistenter Medienplatzhalter |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
edit |
|
|
/srv/getraenkeDB/app/app/Http/Controllers/Frontend/PublicTradeItemController.php
|
Public Controller: mediaLoader für Rights-First |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
edit |
|
|
/srv/getraenkeDB/app/app/Http/Controllers/Frontend/PublicProductFamilyController.php
|
Public Controller: mediaLoader für Rights-First |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
edit |
|
|
/srv/getraenkeDB/app/app/Http/Controllers/Frontend/PublicBrandController.php
|
Public Controller: mediaLoader für Rights-First |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
edit |
|
|
/srv/getraenkeDB/app/app/Http/Controllers/Frontend/PublicManufacturerController.php
|
Public Controller: mediaLoader für Rights-First |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
edit |
|
|
/srv/getraenkeDB/app/app/Models/MediaAsset.php
|
MediaAsset: Rights-First Konstanten, Felder, Scope, Helper |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
create |
|
|
/srv/getraenkeDB/app/app/Models/MediaRightGrant.php
|
Model: MediaRightGrant |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
create |
|
|
/srv/getraenkeDB/app/app/Models/BrandAuthorization.php
|
Model: BrandAuthorization |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
create |
|
|
/srv/getraenkeDB/app/app/Models/ManufacturerClaim.php
|
Model: ManufacturerClaim |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
create |
|
|
/srv/getraenkeDB/app/app/Services/MediaRightsService.php
|
MediaRightsService: zentrale Rechteprüfungslogik |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
create |
DB
|
|
/srv/getraenkeDB/app/database/migrations/2026_04_28_000004_create_media_right_grants_table.php
|
Migration: media_right_grants Tabelle |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
create |
DB
|
|
/srv/getraenkeDB/app/database/migrations/2026_04_28_000003_create_brand_authorizations_table.php
|
Migration: brand_authorizations Tabelle |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
create |
DB
|
|
/srv/getraenkeDB/app/database/migrations/2026_04_28_000002_create_manufacturer_claims_table.php
|
Migration: manufacturer_claims Tabelle |
|
|
| 28.04.2026 10:22:54 |
getraenkeDB |
create |
DB
|
|
/srv/getraenkeDB/app/database/migrations/2026_04_28_000001_add_rights_fields_to_media_assets.php
|
Migration: Rights-First Felder zu media_assets |
|
|
| 28.04.2026 08:13:23 |
getraenkeDB |
create |
|
|
/srv/getraenkeDB/app/docs/NEXT_PROMPT_FOR_CHATGPT.md
|
Projekt-Übergabedokumentation für ChatGPT erstellt |
|
|
| 28.04.2026 08:13:23 |
getraenkeDB |
create |
|
|
/srv/getraenkeDB/app/docs/IMPLEMENTATION_STATUS_MATRIX.md
|
Projekt-Übergabedokumentation für ChatGPT erstellt |
|
|
| 28.04.2026 08:13:23 |
getraenkeDB |
create |
|
|
/srv/getraenkeDB/app/docs/PROJECT_HANDOFF_FOR_CHATGPT.md
|
Projekt-Übergabedokumentation für ChatGPT erstellt |
|
|
| 23.04.2026 18:47:34 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/pdf/open_items.blade.php
|
Tabelle: table-layout:fixed, explizite Spaltenbreiten (15/13/12/10/14/13/10/13%), padding reduziert, font 8pt |
|
|
| 23.04.2026 18:45:24 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/pdf/open_items.blade.php
|
DIN 5008 Layout: explizite Höhen-Zonen (Zone1=45mm Header, Zone2=45mm Anschriftfeld, Zone3=Inhalt) statt position:fixed+padding-top. Footer+Falzmarken bleiben fixed (dompdf-kompatibel). |
|
|
| 23.04.2026 18:42:19 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/pdf/open_items.blade.php
|
Template komplett neu: position:fixed-Ansatz durch normalen Dokumentfluss ersetzt (dompdf-kompatibel, wie invoice.blade.php). Kein padding-top-Hack mehr. |
|
|
| 23.04.2026 18:35:42 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/pdf/open_items.blade.php
|
Anschreiben (Begrüßung + Grußformel) aus PDF entfernt — gehört in E-Mail-Body, nicht in Anhang. Stattdessen kompakte Notice-Box. |
|
|
| 23.04.2026 18:31:00 |
shoptour2 |
edit |
|
|
/srv/shoptour2/app/Services/Integrations/LexofficeImport.php
|
importVouchers: toIso8601String() → toDateString() — Lexoffice akzeptiert nur YYYY-MM-DD für updatedDateFrom, kein Timezone-Offset |
|
|
| 22.04.2026 17:51:05 |
shoptour2 |
edit |
|
|
/srv/shoptour2/app/Http/Controllers/Admin/AdminIntegrationController.php
|
lexofficeRunSync: async via exec+& statt synchron — kein Gateway-Timeout mehr, Log in storage/logs/lexoffice-sync-manual.log |
|
|
| 22.04.2026 17:47:56 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/integrations/lexoffice.blade.php
|
Sync-Button oben auf der Seite: Jetzt synchronisieren (stündlicher Cron manuell vorziehen) |
|
|
| 22.04.2026 17:47:56 |
shoptour2 |
edit |
|
|
/srv/shoptour2/app/Http/Controllers/Admin/AdminIntegrationController.php
|
lexofficeRunSync(): manueller Trigger für stündlichen Cron (Contacts + Vouchers inkrementell) |
|
|
| 22.04.2026 17:47:56 |
shoptour2 |
edit |
|
|
/srv/shoptour2/routes/web.php
|
Route admin.integrations.lexoffice.run-sync hinzugefügt |
|
|
| 22.04.2026 17:44:49 |
shoptour2 |
edit |
|
|
/srv/shoptour2/app/Services/Integrations/LexofficeImport.php
|
importAll: fullResync=true für importVouchers — Sämtliche-Daten-Button ignoriert jetzt den inkrementellen Cursor |
|
|
| 21.04.2026 16:44:01 |
shoptour2 |
edit |
|
|
/srv/shoptour2/public/admin/admin.css
|
.content padding-bottom 28px für Footer-Clearance |
|
|
| 21.04.2026 16:44:01 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/layout.blade.php
|
Page-Debug-Footer hinzugefügt (Route, Pfad, User, Zeit) |
|
|
| 21.04.2026 16:44:01 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/einkauf/edit.blade.php
|
Col-group geändert: einkauf-items → einkauf-items-edit (trennt localStorage von show) |
|
|
| 21.04.2026 16:44:01 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/einkauf/show.blade.php
|
Col-group geändert: einkauf-items → einkauf-items-show (fix Pos.-Spalte) |
|
|
| 21.04.2026 16:22:46 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/einkauf/show.blade.php
|
Dark mode fixes: dropdown-portal class, clearTimeout timer, var(--c-bg) hover colors, wawi-badge class |
|
|
| 21.04.2026 16:22:46 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/einkauf/create.blade.php
|
Dark mode fixes: dropdown-portal class, clearTimeout timer, wawi-badge class, removed inline style block |
|
|
| 21.04.2026 11:35:30 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/einkauf/show.blade.php
|
Inline-editable EK prices in items table with AJAX save |
|
|
| 21.04.2026 11:35:30 |
shoptour2 |
edit |
|
|
/srv/shoptour2/app/Http/Controllers/Admin/AdminEinkaufController.php
|
Add updateItemPrice method for inline EK price editing |
|
|
| 21.04.2026 11:35:30 |
shoptour2 |
edit |
|
|
/srv/shoptour2/routes/web.php
|
Add PATCH route for inline EK price update |
|
|
| 21.04.2026 00:53:31 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/einkauf/edit.blade.php
|
Suppress browser autocomplete on product search inputs (autocomplete=new-password) |
|
|
| 21.04.2026 00:53:31 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/einkauf/create.blade.php
|
Suppress browser autocomplete on product search inputs (autocomplete=new-password) |
|
|
| 21.04.2026 00:53:31 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/einkauf/show.blade.php
|
Suppress browser autocomplete on product search inputs (autocomplete=new-password) |
|
|
| 21.04.2026 00:47:38 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/einkauf/edit.blade.php
|
Product search: hide portal on no results instead of popup; WaWi items clickable directly (no Uebernehmen button) |
|
|
| 21.04.2026 00:47:38 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/einkauf/create.blade.php
|
Product search: hide portal on no results instead of popup; WaWi items clickable directly (no Uebernehmen button) |
|
|
| 21.04.2026 00:47:38 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/einkauf/show.blade.php
|
Product search: hide portal on no results instead of popup; WaWi items clickable directly (no Uebernehmen button) |
|
|
| 21.04.2026 00:39:27 |
shoptour2 |
edit |
|
|
/srv/shoptour2/app/Http/Controllers/Admin/AdminEinkaufController.php
|
productSearch: also search by supplier article number (wawi_dbo_tliefartikel.cLiefArtNr) with leading-zero stripping; show matched Lief-ArtNr in result label |
|
|
| 20.04.2026 23:05:31 |
shoptour2 |
edit |
|
|
/srv/shoptour2/resources/views/admin/einkauf/edit.blade.php
|
Flip dropdown above input near bottom of viewport; skip WaWi items on Enter key |
|
|
| 20.04.2026 23:05:31 |
shoptour2 |
edit |
|
|
/srv/shoptour2/app/Http/Requests/Admin/StorePurchaseOrderRequest.php
|
Filter out non-integer product_id values (including 'undefined' from WaWi items selected via Enter) |
|
|