feat(admin): Einstellungsseite überarbeitet, auch für das Handy

Verbindung: Probleme vor der Anleitung. Tools: Suche, Filter, Alle ein-/ausklappen, Zurücksetzen je Gruppe.
Divi-Reiter in Klartext mit Statussymbolen. Rollenhinweise, Hilfe-Tab, Reiter als Raster und Karten auf dem Handy,
Kontrast, Tippflächen, einheitliche Du-Anrede. Bestätigungen über data-lit-mcp-confirm statt Inline-onclick.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Jan-Niclas Loosen
2026-11-05 16:36:16 +01:00
co-authored by Claude Sonnet 5.5
parent 165e61d7fe
commit 96fa58188b
16 changed files with 865 additions and 84 deletions
+29 -1
View File
@@ -51,7 +51,7 @@ final class ConnectionTabTest extends TestCase
);
self::assertStringContainsString('<label for="lit-mcp-url"', $html);
self::assertStringContainsString(
'<button type="button" class="button lit-mcp-copy" data-clipboard-target="#lit-mcp-url">URL kopieren</button>',
'<button type="button" class="button lit-mcp-copy hide-if-no-js" data-clipboard-target="#lit-mcp-url">URL kopieren</button>',
$html
);
self::assertStringContainsString('<span class="success hidden" aria-hidden="true">Kopiert!</span>', $html);
@@ -74,4 +74,32 @@ final class ConnectionTabTest extends TestCase
self::assertStringContainsString('<span class="screen-reader-text">Problem:</span>', $html);
self::assertStringContainsString('href="https://kunde.de/wp-admin/site-health.php"', $html);
}
public function testAFailedCheckShowsAboveTheStepsNotOnlyInTheList(): void
{
$html = $this->render([
['label' => 'HTTPS', 'ok' => false, 'message' => 'Die Website läuft ohne HTTPS.'],
['label' => 'Discovery', 'ok' => null, 'message' => 'noch nicht geprüft'],
]);
self::assertStringContainsString('<div class="notice notice-error inline">', $html);
self::assertStringContainsString('<li>HTTPS: Die Website läuft ohne HTTPS.</li>', $html);
self::assertStringNotContainsString('<li>Discovery:', $html);
self::assertLessThan(strpos($html, '<ol class="lit-mcp-steps">'), strpos($html, 'notice-error'));
}
public function testNoProblemNoticeWhenNothingFailed(): void
{
$html = $this->render([['label' => 'HTTPS', 'ok' => true, 'message' => 'aktiv']]);
self::assertStringNotContainsString('notice-error', $html);
}
public function testExplainsWhereTheAssistantMenuIsWithoutNamingAProduct(): void
{
$html = $this->render([]);
self::assertStringContainsString('<details class="lit-mcp-hint"><summary>Wo finde ich das?</summary>', $html);
self::assertStringContainsString('<label for="lit-mcp-url">Server-URL</label>', $html);
}
}