Some checks failed
Deploy mahnung / deploy (push) Failing after 4s
Datenmodell: - Neue Tabelle llx_mahnung_trackingpattern (provider, label, regex, url_template, priority, active). Auto-Anlage + Default-Seed im setup.php und in modMahnung::init() — idempotent. Default-Patterns (priority hoeher = spezifischer, zuerst gepruef): - DHL Paket 20-stellig (90), DPAG Einschreiben RR...DE (85), UPS 1Z... (80), - DHL 11-stellig Online-Frankierung (30), Hermes 14-stellig (25), DPD (20). Setup-Seite admin/tracking_patterns.php: - CRUD (Anlegen/Bearbeiten/Aktivieren-Deaktivieren/Loeschen) - Live-Vorschau: Regex + Beispieltext + URL-Template werden waehrend des Tippens (debounce 300ms) via ajax/regex_preview.php ausgewertet. UI zeigt: Regex-Syntax-Status, gefundene Sendungsnummer, vollstaendige Tracking-URL (anklickbar). - Validierung: Delimiter / # ~ Whitelist, https://-Pflicht, {nr}-Platzhalter, max 255 Zeichen Regex. AJAX-Endpoint ajax/regex_preview.php: - ReDoS-Schutz: max 10 KB Sample, pcre.backtrack_limit=100k. - POST-only (mit Setup-Recht), JSON-Response. card.php: - tracking-URL kommt jetzt aus MahnungTrackingPattern::urlFor() (DB-Lookup nach Provider) statt hardcoded Mahnung::trackingUrl() — letztere bleibt als Fallback. Setup-Seite: neuer Button "Tracking-Muster (Regex)" oben rechts. Lang-Keys: 23 neue (de_DE + en_US) fuer Pattern-CRUD + Live-Vorschau. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
21 lines
846 B
SQL
21 lines
846 B
SQL
-- Copyright (C) 2026 Eduard Wisch <data@data-it-solution.de>
|
|
--
|
|
-- This program is free software: you can redistribute it and/or modify
|
|
-- it under the terms of the GNU General Public License as published by
|
|
-- the Free Software Foundation, either version 3 of the License, or
|
|
-- (at your option) any later version.
|
|
|
|
-- Konfigurierbare Tracking-Pattern (Regex + URL-Template) pro Versand-Provider.
|
|
|
|
CREATE TABLE llx_mahnung_trackingpattern (
|
|
rowid INTEGER AUTO_INCREMENT PRIMARY KEY,
|
|
entity INTEGER DEFAULT 1 NOT NULL,
|
|
provider VARCHAR(20) NOT NULL,
|
|
label VARCHAR(80) NOT NULL,
|
|
regex VARCHAR(255) NOT NULL,
|
|
url_template VARCHAR(255) NOT NULL,
|
|
priority INTEGER DEFAULT 100,
|
|
active TINYINT DEFAULT 1,
|
|
datec DATETIME,
|
|
tms TIMESTAMP
|
|
) ENGINE=InnoDB;
|