Compare commits
No commits in common. "9bea09845fd9e3f6bfb28e2cdbfe0499888cce3b" and "8fc35948ee64737c55137483ba99ebf96a7222b0" have entirely different histories.
9bea09845f
...
8fc35948ee
4 changed files with 1 additions and 120 deletions
24
ChangeLog.md
24
ChangeLog.md
|
|
@ -1,29 +1,5 @@
|
||||||
# Changelog NetDiag
|
# Changelog NetDiag
|
||||||
|
|
||||||
## 1.1.7 — 2026-08-17
|
|
||||||
|
|
||||||
### PDF-Zweig und Feldtabelle für den Geräte-Vergleich
|
|
||||||
|
|
||||||
`netdiagPdfGeraeteDiff()` gibt die drei Listen getrennt aus: neu hinzugekommen,
|
|
||||||
nicht mehr erreichbar, mit neuer IP-Adresse — plus „Gleiche Adresse, andere
|
|
||||||
offene Ports". Beim Wiederholungstermin zählt, WELCHES Gerät neu ist, nicht nur
|
|
||||||
wie viele; als `|`-Kette in einer Zelle wäre das vorhanden, aber nicht lesbar.
|
|
||||||
|
|
||||||
An jeder Zeile steht, worüber das Gerät wiedererkannt wurde. „Erkannt über IP
|
|
||||||
und Portmuster" ist eine schwächere Aussage als „über Netzwerkname", und dieser
|
|
||||||
Unterschied gehört ins Dokument statt in eine Fußnote — die Wiedererkennung
|
|
||||||
läuft bewusst nicht über MAC-Adressen, die Android seit Version 10 nicht mehr
|
|
||||||
herausgibt.
|
|
||||||
|
|
||||||
Neu in der Whitelist: `verglichenMit`, `geraeteVorher`, `geraeteJetzt`,
|
|
||||||
`mitNeuerAdresse`, `andereOffenePorts`, `unveraendert`; Werkzeugname
|
|
||||||
`geraetediff` → „Geräte-Vergleich". `neu` und `nichtMehrErreichbar` standen
|
|
||||||
bereits drin (der IP-Scan nutzt dieselben Schlüssel).
|
|
||||||
|
|
||||||
Geprüft im Durchstich: in der App gegen echte Serverdaten gemessen
|
|
||||||
(Vergleich ND2026-0016 gegen ND2026-0006), synchronisiert, PDF erzeugt und
|
|
||||||
angesehen.
|
|
||||||
|
|
||||||
## 1.1.6 — 2026-08-17
|
## 1.1.6 — 2026-08-17
|
||||||
|
|
||||||
### PDF-Zweig für die DNS-Prüfung
|
### PDF-Zweig für die DNS-Prüfung
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ class modNetDiag extends DolibarrModules
|
||||||
$this->editor_url = '';
|
$this->editor_url = '';
|
||||||
$this->editor_squarred_logo = '';
|
$this->editor_squarred_logo = '';
|
||||||
|
|
||||||
$this->version = '1.1.7';
|
$this->version = '1.1.6';
|
||||||
|
|
||||||
// Konstanten-Name in llx_const für Modul-Status
|
// Konstanten-Name in llx_const für Modul-Status
|
||||||
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
|
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
|
||||||
|
|
|
||||||
|
|
@ -358,14 +358,6 @@ function netdiagKundenfelder()
|
||||||
// eigentliche Aussage — welcher Server antwortet und welcher nicht.
|
// eigentliche Aussage — welcher Server antwortet und welcher nicht.
|
||||||
'gefragteServer' => array('Befragte DNS-Server', ''),
|
'gefragteServer' => array('Befragte DNS-Server', ''),
|
||||||
'antworten' => array('Antworten der Server', ''),
|
'antworten' => array('Antworten der Server', ''),
|
||||||
// Geräte-Vergleich zweier Protokolle. `neu` und `nichtMehrErreichbar`
|
|
||||||
// stehen schon weiter oben (IP-Scan nutzt dieselben Schlüssel).
|
|
||||||
'verglichenMit' => array('Verglichen mit', ''),
|
|
||||||
'geraeteVorher' => array('Geräte beim letzten Besuch', ''),
|
|
||||||
'geraeteJetzt' => array('Geräte jetzt', ''),
|
|
||||||
'mitNeuerAdresse' => array('Mit neuer IP-Adresse', ''),
|
|
||||||
'andereOffenePorts' => array('Gleiche Adresse, andere offene Ports', ''),
|
|
||||||
'unveraendert' => array('Unverändert', ''),
|
|
||||||
// Netz/DHCP
|
// Netz/DHCP
|
||||||
'server' => array('DHCP-Server', ''),
|
'server' => array('DHCP-Server', ''),
|
||||||
'lease' => array('Lease-Dauer', 's'),
|
'lease' => array('Lease-Dauer', 's'),
|
||||||
|
|
@ -660,7 +652,6 @@ function netdiagToolName($tool)
|
||||||
'iptest' => 'IP-Test (Dose)',
|
'iptest' => 'IP-Test (Dose)',
|
||||||
'wifitrack' => 'WLAN-Empfang',
|
'wifitrack' => 'WLAN-Empfang',
|
||||||
'dnscheck' => 'DNS-Prüfung',
|
'dnscheck' => 'DNS-Prüfung',
|
||||||
'geraetediff' => 'Geräte-Vergleich',
|
|
||||||
// nicht mehr vorhandene Werkzeuge, aber in Altprotokollen enthalten
|
// nicht mehr vorhandene Werkzeuge, aber in Altprotokollen enthalten
|
||||||
'dhcpcheck' => 'DHCP-Prüfung',
|
'dhcpcheck' => 'DHCP-Prüfung',
|
||||||
'wifiscan' => 'WLAN-Scan',
|
'wifiscan' => 'WLAN-Scan',
|
||||||
|
|
|
||||||
|
|
@ -222,8 +222,6 @@ function netdiagGeneratePdf($db, $protocol, $outputlangs)
|
||||||
netdiagPdfKette($pdf, $m->result);
|
netdiagPdfKette($pdf, $m->result);
|
||||||
} elseif ($m->tool === 'dnscheck') {
|
} elseif ($m->tool === 'dnscheck') {
|
||||||
netdiagPdfDns($pdf, $m->result);
|
netdiagPdfDns($pdf, $m->result);
|
||||||
} elseif ($m->tool === 'geraetediff') {
|
|
||||||
netdiagPdfGeraeteDiff($pdf, $m->result);
|
|
||||||
} else {
|
} else {
|
||||||
$pdf->MultiCell(180, 5, netdiagPdfFlattenResult($m->result), 1, 'L');
|
$pdf->MultiCell(180, 5, netdiagPdfFlattenResult($m->result), 1, 'L');
|
||||||
}
|
}
|
||||||
|
|
@ -439,90 +437,6 @@ function netdiagPdfStressTest($pdf, $json)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Geräte-Vergleich ins PDF schreiben: drei getrennte Listen.
|
|
||||||
*
|
|
||||||
* „Was hat sich seit dem letzten Besuch geändert" ist beim Wiederholungstermin
|
|
||||||
* die erste Frage des Kunden. Als `|`-Kette in einer Zelle wäre die Antwort
|
|
||||||
* vorhanden, aber nicht lesbar — und gerade hier zählt, WELCHES Gerät neu ist
|
|
||||||
* und welches fehlt, nicht nur wie viele.
|
|
||||||
*
|
|
||||||
* Die Angabe, worüber ein Gerät wiedererkannt wurde, bleibt bewusst an jeder
|
|
||||||
* Zeile stehen: „erkannt über IP und Portmuster" ist eine schwächere Aussage
|
|
||||||
* als „erkannt über Netzwerkname", und der Unterschied gehört ins Dokument
|
|
||||||
* statt in eine Fußnote.
|
|
||||||
*
|
|
||||||
* @param TCPDF $pdf PDF-Objekt (Cursor steht direkt hinter der Titelzeile)
|
|
||||||
* @param string $json result-JSON der Messung
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function netdiagPdfGeraeteDiff($pdf, $json)
|
|
||||||
{
|
|
||||||
$data = json_decode((string) $json, true);
|
|
||||||
if (!is_array($data)) {
|
|
||||||
$pdf->MultiCell(180, 5, netdiagPdfFlattenResult($json), 1, 'L');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$sum = array();
|
|
||||||
if (!empty($data['verglichenMit'])) {
|
|
||||||
$sum[] = 'Verglichen mit '.$data['verglichenMit'];
|
|
||||||
}
|
|
||||||
if (isset($data['geraeteVorher'])) {
|
|
||||||
$sum[] = 'damals '.$data['geraeteVorher'].' Geräte';
|
|
||||||
}
|
|
||||||
if (isset($data['geraeteJetzt'])) {
|
|
||||||
$sum[] = 'jetzt '.$data['geraeteJetzt'];
|
|
||||||
}
|
|
||||||
if (isset($data['unveraendert'])) {
|
|
||||||
$sum[] = $data['unveraendert'].' unverändert';
|
|
||||||
}
|
|
||||||
if (!empty($sum)) {
|
|
||||||
$pdf->MultiCell(180, 5, netdiagPdfText(implode(' | ', $sum)), 1, 'L');
|
|
||||||
}
|
|
||||||
|
|
||||||
$listen = array(
|
|
||||||
'neu' => 'Neu hinzugekommen',
|
|
||||||
'nichtMehrErreichbar' => 'Nicht mehr erreichbar',
|
|
||||||
'mitNeuerAdresse' => 'Mit neuer IP-Adresse',
|
|
||||||
'andereOffenePorts' => 'Gleiche Adresse, andere offene Ports',
|
|
||||||
);
|
|
||||||
$etwasGefunden = false;
|
|
||||||
foreach ($listen as $feld => $titel) {
|
|
||||||
$eintraege = (isset($data[$feld]) && is_array($data[$feld])) ? $data[$feld] : array();
|
|
||||||
if (empty($eintraege)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$etwasGefunden = true;
|
|
||||||
netdiagPdfEnsureSpace($pdf, 10);
|
|
||||||
$pdf->SetFont('', 'B', 8);
|
|
||||||
$pdf->Cell(180, 5, $titel.' ('.count($eintraege).')', 1, 1, 'L');
|
|
||||||
$pdf->SetFont('', '', 8);
|
|
||||||
foreach ($eintraege as $line) {
|
|
||||||
netdiagPdfEnsureSpace($pdf, 5, function ($p) use ($titel) {
|
|
||||||
$p->SetFont('', 'B', 8);
|
|
||||||
$p->Cell(180, 5, $titel.' — Fortsetzung', 1, 1, 'L');
|
|
||||||
$p->SetFont('', '', 8);
|
|
||||||
});
|
|
||||||
$pdf->MultiCell(180, 5, netdiagPdfText(netdiagKundentext((string) $line)), 1, 'L');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!$etwasGefunden) {
|
|
||||||
$pdf->SetFont('', 'I', 8);
|
|
||||||
$pdf->Cell(180, 5, 'Keine Veränderung gegenüber dem letzten Protokoll.', 1, 1, 'L');
|
|
||||||
$pdf->SetFont('', '', 8);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (array('hinweis', 'verfahren') as $feld) {
|
|
||||||
if (!empty($data[$feld])) {
|
|
||||||
netdiagPdfEnsureSpace($pdf, 8);
|
|
||||||
$pdf->SetFont('', 'I', 7);
|
|
||||||
$pdf->MultiCell(180, 4, netdiagPdfText(netdiagKundentext((string) $data[$feld])), 1, 'L');
|
|
||||||
$pdf->SetFont('', '', 8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DNS-Prüfung ins PDF schreiben: je Server eine eigene Zeile.
|
* DNS-Prüfung ins PDF schreiben: je Server eine eigene Zeile.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue