Preserve state labels in plugin output copies

This commit is contained in:
Fabian Salomon 2026-04-26 14:07:18 +02:00
parent 4917819eb0
commit 38ec7e06cb
3 changed files with 32 additions and 17 deletions

View file

@ -34,13 +34,13 @@ class PluginOutput extends HtmlString
protected const TEXT_REPLACEMENTS = [
"\t",
"\n",
'<span class="state-ball ball-size-m state-ok"></span>',
'<span class="state-ball ball-size-m state-warning"></span>',
'<span class="state-ball ball-size-m state-critical"></span>',
'<span class="state-ball ball-size-m state-unknown"></span>',
'<span class="state-ball ball-size-m state-up"></span>',
'<span class="state-ball ball-size-m state-down"></span>',
'<span class="state-ball ball-size-m state-info"></span>',
'<span class="state-ball ball-size-m state-ok">[OK]</span>',
'<span class="state-ball ball-size-m state-warning">[WARNING]</span>',
'<span class="state-ball ball-size-m state-critical">[CRITICAL]</span>',
'<span class="state-ball ball-size-m state-unknown">[UNKNOWN]</span>',
'<span class="state-ball ball-size-m state-up">[UP]</span>',
'<span class="state-ball ball-size-m state-down">[DOWN]</span>',
'<span class="state-ball ball-size-m state-info">[INFO]</span>',
'@@@@@@'
];

View file

@ -13,6 +13,12 @@
.plugin-output {
.monospace();
word-break: break-word;
.state-ball {
color: transparent;
overflow: hidden;
white-space: nowrap;
}
}
div.show-more {

View file

@ -38,9 +38,9 @@ class PluginOutputTest extends TestCase
INPUT;
$expectedOutput = <<<'EXPECTED_OUTPUT'
<span class="state-ball ball-size-m state-ok"></span> Dummy state
\_ <span class="state-ball ball-size-m state-ok"></span> Fake &quot;state&quot;
\_ <span class="state-ball ball-size-m state-warning"></span> Fake state again
<span class="state-ball ball-size-m state-ok">[OK]</span> Dummy state
\_ <span class="state-ball ball-size-m state-ok">[OK]</span> Fake &quot;state&quot;
\_ <span class="state-ball ball-size-m state-warning">[WARNING]</span> Fake state again
EXPECTED_OUTPUT;
$this->checkOutput($expectedOutput, $input);
@ -55,7 +55,7 @@ EXPECTED_OUTPUT;
INPUT;
$expectedOutput = <<<'EXPECTED_OUTPUT'
<span class="state-ball ball-size-m state-ok"></span> Dummy
<span class="state-ball ball-size-m state-ok">[OK]</span> Dummy
EXPECTED_OUTPUT;
$this->checkOutput($expectedOutput, $input, 10);
@ -86,9 +86,9 @@ INPUT;
$expectedOutput = <<<'EXPECTED_OUTPUT'
Hello <h3>World</h3>, this "is" a <strong>test</strong>.
<span class="state-ball ball-size-m state-ok"></span> Dummy state
\_ <span class="state-ball ball-size-m state-ok"></span> Fake "state"
\_ <span class="state-ball ball-size-m state-warning"></span> Fake state again
<span class="state-ball ball-size-m state-ok">[OK]</span> Dummy state
\_ <span class="state-ball ball-size-m state-ok">[OK]</span> Fake "state"
\_ <span class="state-ball ball-size-m state-warning">[WARNING]</span> Fake state again
text <span> ends </span> here
EXPECTED_OUTPUT;
@ -106,7 +106,7 @@ INPUT;
$expectedOutput = <<<'EXPECTED_OUTPUT'
Hello <h3>World</h3>, this "is" a <strong>test</strong>.
<span class="state-ball ball-size-m state-ok"></span> Dummy state
<span class="state-ball ball-size-m state-ok">[OK]</span> Dummy state
special chars: !@#$%^&amp;*()_+{}|:"&lt;&gt;?`-=[]\;',&#8203;./
text <span> ends </span> here
EXPECTED_OUTPUT;
@ -149,7 +149,11 @@ EXPECTED_OUTPUT;
$l = strtolower($s);
$input = sprintf('[%s] Test', $s);
$expectedOutput = sprintf('<span class="state-ball ball-size-m state-%s"></span> Test', $l);
$expectedOutput = sprintf(
'<span class="state-ball ball-size-m state-%s">[%s]</span> Test',
$l,
$s
);
$this->checkOutput($expectedOutput, $input);
@ -167,7 +171,12 @@ EXPECTED_OUTPUT;
$l = strtolower($s);
$input = sprintf('%s [%s] Test', $dummyHtml, $s);
$expectedOutput = sprintf('%s <span class="state-ball ball-size-m state-%s"></span> Test', $dummyHtml, $l);
$expectedOutput = sprintf(
'%s <span class="state-ball ball-size-m state-%s">[%s]</span> Test',
$dummyHtml,
$l,
$s
);
$this->checkOutput($expectedOutput, $input);