Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
PageTriageAddDeletionTagPresentationModel
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 4
42
0.00% covered (danger)
0.00%
0 / 1
 getIconType
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getSecondaryLinks
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
6
 getHeaderMessage
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 getDiscussionLink
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3namespace MediaWiki\Extension\PageTriage\Notifications;
4
5use MediaWiki\Title\Title;
6
7class PageTriageAddDeletionTagPresentationModel extends PageTriagePresentationModel {
8    /**
9     * @inheritDoc
10     */
11    public function getIconType() {
12        return 'trash';
13    }
14
15    /**
16     * @inheritDoc
17     */
18    public function getSecondaryLinks() {
19        $links = [ $this->getAgentLink() ];
20        $discussionLink = $this->getDiscussionLink();
21        if ( $discussionLink ) {
22            $links[] = $discussionLink;
23        }
24        return $links;
25    }
26
27    /**
28     * @inheritDoc
29     */
30    public function getHeaderMessage() {
31        $msg = parent::getHeaderMessage();
32
33        // parent adds agent & gender, this adds title as 3rd param, tag list as
34        // 4th & amount of tags as 5th (for PLURAL)
35        $msg->params( $this->getTruncatedTitleText( $this->event->getTitle(), true ) );
36        $msg->params( $this->getTagsForOutput() );
37
38        return $msg;
39    }
40
41    /**
42     * @return array|false
43     */
44    private function getDiscussionLink() {
45        if ( !in_array( 'afd', $this->getTags() ) ) {
46            return false;
47        }
48
49        $pageName = $this->event->getTitle()->getText();
50        $discussionPage = Title::newFromText( "Wikipedia:Articles for deletion/$pageName" );
51        $user = $this->getViewingUserForGender();
52        $labelMsg = $this->msg( 'pagetriage-discuss-link' )->params( $user );
53        $descMsg = $this->msg( 'pagetriage-discuss-link-title' )->params( $user );
54        return [
55            'label' => $labelMsg->text(),
56            'url' => $discussionPage->getFullURL(),
57            'icon' => 'speechBubbles',
58            'description' => $descMsg->text(),
59            'prioritized' => true,
60        ];
61    }
62}