fix: Admin-UX aus dem Review – Live-Gruppenfeedback, Protokollfilter, Divi-Hinweis, Rollen-Rückfrage
- Tools: „Ganze Gruppe“ und „Nur lesen“ wirken sofort auf die Zeilen (Option „wie Gruppe (…)“, gesperrte Selects mit Hinweis), der Server bleibt die Wahrheit; Markup trägt die nötigen data-Attribute. - Protokoll: Filter in eigenem Block über der Tabelle (Core blendet .tablenav .actions auf Telefonen aus); „Protokoll leeren“ nur bei Einträgen, rechtsbündig, mit Gesamtzahl über ChangeLog::count(). - Divi: Beschreibung unter „Prüfung starten“, Button primär solange ungetestet ohne frischen Bericht. - Zugriff: Rückfrage vor dem Speichern ohne Rolle oder ohne eigene Rolle. - Verbindung: HTTPS-Hinweis nicht doppelt neben der Statusliste. - Mobil: breitere Einstellungs-Spalte im Tools-Reiter. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
cc72f9b946
commit
1b73f0652a
@@ -200,7 +200,7 @@ final class ToolsTabTest extends TestCase
|
||||
|
||||
self::assertStringContainsString('name="lit_mcp_exposure[@readonly:divi]" value="1" checked="checked"', $html);
|
||||
$update = $this->row($html, 'lit/divi-update');
|
||||
self::assertStringContainsString('<select name="lit_mcp_exposure[lit/divi-update]" disabled', $update);
|
||||
self::assertMatchesRegularExpression('#<select name="lit_mcp_exposure\[lit/divi-update\]"[^>]* disabled#', $update);
|
||||
self::assertStringContainsString('Durch „Nur lesen“ aus', $update);
|
||||
self::assertStringContainsString(
|
||||
'<input type="hidden" name="lit_mcp_exposure[lit/divi-update]" value="indirect">',
|
||||
@@ -211,6 +211,36 @@ final class ToolsTabTest extends TestCase
|
||||
self::assertStringNotContainsString('Nur lesen', $outline);
|
||||
}
|
||||
|
||||
/** The admin script mirrors a group's mode and "nur lesen" switch onto its rows before saving. */
|
||||
public function testMarkupCarriesWhatTheScriptNeedsForLiveGroupFeedback(): void
|
||||
{
|
||||
$html = $this->render([]);
|
||||
|
||||
self::assertStringContainsString('<div class="lit-mcp-groups" data-like-group="wie Gruppe (%s)">', $html);
|
||||
self::assertStringContainsString('class="lit-mcp-group-mode"', $this->select($html, '@group:divi'));
|
||||
self::assertStringContainsString('class="lit-mcp-group-readonly"', $this->group($html, 'Divi'));
|
||||
$update = $this->select($html, 'lit/divi-update');
|
||||
self::assertStringContainsString('class="lit-mcp-tool-mode"', $update);
|
||||
self::assertStringContainsString('data-default-label="Standard (direkt)"', $update);
|
||||
self::assertStringContainsString('data-writes="1"', $update);
|
||||
self::assertStringNotContainsString('data-writes', $this->select($html, 'lit/divi-outline'));
|
||||
self::assertStringContainsString('data-required="1"', $this->select($html, 'lit/guide'));
|
||||
self::assertStringContainsString('data-direct-only="1"', $this->select($html, 'lit/media-preview'));
|
||||
self::assertStringNotContainsString('data-direct-only', $update);
|
||||
// Every write row carries the "nur lesen" note, hidden until the switch is on.
|
||||
self::assertStringContainsString(
|
||||
'<p class="description lit-mcp-readonly-note" hidden>Durch „Nur lesen“ aus</p>',
|
||||
$this->row($html, 'lit/divi-update')
|
||||
);
|
||||
self::assertStringNotContainsString('lit-mcp-readonly-note', $this->row($html, 'lit/divi-outline'));
|
||||
|
||||
$locked = $this->render(['@readonly:divi' => true]);
|
||||
self::assertStringContainsString(
|
||||
'<p class="description lit-mcp-readonly-note">Durch „Nur lesen“ aus</p>',
|
||||
$this->row($locked, 'lit/divi-update')
|
||||
);
|
||||
}
|
||||
|
||||
public function testCountsDirectToolsUnderTheSavedSettings(): void
|
||||
{
|
||||
$html = $this->render(['@group:divi' => 'disabled']);
|
||||
@@ -338,7 +368,7 @@ final class ToolsTabTest extends TestCase
|
||||
$html = $this->render([]);
|
||||
$divi = $this->group($html, 'Divi');
|
||||
|
||||
self::assertStringContainsString('<div id="lit-mcp-group-divi" class="postbox lit-mcp-group">', $divi);
|
||||
self::assertStringContainsString('<div id="lit-mcp-group-divi" class="postbox lit-mcp-group" data-group="divi">', $divi);
|
||||
self::assertStringContainsString('<div class="postbox-header">', $divi);
|
||||
self::assertStringContainsString('<button type="button" class="handlediv" aria-expanded="true">', $divi);
|
||||
self::assertStringContainsString('<span class="screen-reader-text">Gruppe ein-/ausblenden: Divi</span>', $divi);
|
||||
@@ -367,11 +397,11 @@ final class ToolsTabTest extends TestCase
|
||||
$default = $this->render(['@group:divi' => 'disabled']);
|
||||
$saved = $this->render(['@group:divi' => 'disabled'], null, ['lit-mcp-group-media']);
|
||||
|
||||
self::assertStringContainsString('<div id="lit-mcp-group-divi" class="postbox lit-mcp-group closed">', $default);
|
||||
self::assertStringContainsString('<div id="lit-mcp-group-divi" class="postbox lit-mcp-group closed" data-group="divi">', $default);
|
||||
self::assertStringContainsString('<button type="button" class="handlediv" aria-expanded="false">', $this->group($default, 'Divi'));
|
||||
self::assertStringContainsString('<div id="lit-mcp-group-media" class="postbox lit-mcp-group">', $default);
|
||||
self::assertStringContainsString('<div id="lit-mcp-group-media" class="postbox lit-mcp-group" data-group="media">', $default);
|
||||
|
||||
self::assertStringContainsString('<div id="lit-mcp-group-divi" class="postbox lit-mcp-group">', $saved);
|
||||
self::assertStringContainsString('<div id="lit-mcp-group-media" class="postbox lit-mcp-group closed">', $saved);
|
||||
self::assertStringContainsString('<div id="lit-mcp-group-divi" class="postbox lit-mcp-group" data-group="divi">', $saved);
|
||||
self::assertStringContainsString('<div id="lit-mcp-group-media" class="postbox lit-mcp-group closed" data-group="media">', $saved);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user