Erweitere VoTiAn NG um Fachfunktionen und verbessere die Listenoberfläche

Ergänze Auftragsbearbeitung, Disposition, Stammdaten, Kunden- und
Transporteurportale, Lagerverwaltung, Abrechnung, Exporte und Statistik.
Füge Kontoeinstellungen, Mitteilungen, Automatikdienste und Betriebsstatus
sowie die zugehörigen Tests und PHP-Abgleichsdokumentation hinzu.

Vergrößere die persönlichen Auftragslisten auf einheitliche Höhen und
richte Statusanzeigen sowie die Ranking-Vorschau-Steuerelemente bündig aus.

Validierung: 44 Frontendtests und Produktionsbuild erfolgreich.
Backend funktional unverändert gegenüber dem vollständigen Lauf mit 1.624
erfolgreichen und drei übersprungenen Tests. Layout im Browser und lokale
Bereitstellung geprüft.
This commit is contained in:
Sven committed 2026-10-20 11:19:43 +02:00
1 parent 363bc27c26
commit 781a2b82dc
1165 files changed
+74986 -1028

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
import test from 'node:test';
import assert from 'node:assert/strict';
import {contactEmails,isContactEmail} from '../src/contactEmails.mjs';
test('each recipient gets a separate vCard mail value',()=>{
const raw=' eins@example.test, zwei+tag@example.org, dritt@[127.0.0.1] ';
assert.deepEqual(contactEmails(raw),['eins@example.test','zwei+tag@example.org','dritt@[127.0.0.1]']);
assert.equal(raw,' eins@example.test, zwei+tag@example.org, dritt@[127.0.0.1] ');
});
test('empty mail values add no empty vCard property',()=>{
for(const raw of [null,undefined,'',' ', ', ,'])assert.deepEqual(contactEmails(raw),[]);
});
test('mail aliases include generic fields and exclude ordinary notes',()=>{
for(const type of ['mail','email','mail_business','mail_private','email_business','email_private'])assert.equal(isContactEmail(type),true);
for(const type of ['text','phone_business','mail_note'])assert.equal(isContactEmail(type),false);
});