Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
25 / 25
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
CoreUiHintHtml
100.00% covered (success)
100.00%
25 / 25
100.00% covered (success)
100.00%
2 / 2
2
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getHtml
100.00% covered (success)
100.00%
24 / 24
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace TwoColConflict\Html;
4
5use MediaWiki\Html\Html;
6use MessageLocalizer;
7use OOUI\HtmlSnippet;
8use OOUI\IconWidget;
9use OOUI\MessageWidget;
10use TwoColConflict\SplitConflictUtils;
11
12/**
13 * @license GPL-2.0-or-later
14 */
15class CoreUiHintHtml {
16
17    private MessageLocalizer $messageLocalizer;
18
19    public function __construct( MessageLocalizer $messageLocalizer ) {
20        $this->messageLocalizer = $messageLocalizer;
21    }
22
23    public function getHtml(): string {
24        $closeIcon = new IconWidget( [
25            'icon' => 'close',
26            'title' => $this->messageLocalizer->msg( 'twocolconflict-core-ui-hint-close' )->text(),
27        ] );
28        $hintMessage = $this->messageLocalizer->msg( 'twocolconflict-core-ui-hint' )->parse();
29
30        return Html::rawElement(
31            'div',
32            [ 'class' => 'mw-twocolconflict-core-ui-hint' ],
33            Html::check(
34                'mw-twocolconflict-disable-core-hint',
35                false,
36                [ 'id' => 'mw-twocolconflict-disable-core-hint' ]
37            ) .
38            new MessageWidget( [
39                'label' => new HtmlSnippet(
40                    SplitConflictUtils::addTargetBlankToLinks( $hintMessage ) .
41                    Html::rawElement(
42                        'label',
43                        [ 'for' => 'mw-twocolconflict-disable-core-hint' ],
44                        $closeIcon
45                    )
46                )
47            ] )
48        );
49    }
50
51}