Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 87
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
SpecialNetNeutrality
0.00% covered (danger)
0.00%
0 / 87
0.00% covered (danger)
0.00%
0 / 2
6
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 execute
0.00% covered (danger)
0.00%
0 / 86
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace MediaWiki\Extension\CongressLookup;
4
5use Html;
6use OOUI\ButtonInputWidget;
7use OOUI\DropdownInputWidget;
8use OOUI\FormLayout;
9use OOUI\HorizontalLayout;
10use OOUI\LabelWidget;
11use UnlistedSpecialPage;
12
13/**
14 * This class creates a page which asks the user for their state. It then sends them to
15 * the Special:SenatorLookup page with the appropriate state info.
16 */
17class SpecialNetNeutrality extends UnlistedSpecialPage {
18
19    public function __construct() {
20        // Register special page
21        parent::__construct( 'NetNeutrality' );
22    }
23
24    /**
25     * Shows the page to the user.
26     * @param string $sub The subpage string argument (if any).
27     */
28    public function execute( $sub ) {
29        $out = $this->getOutput();
30        $out->enableOOUI();
31        $out->addModuleStyles( 'ext.congresslookup.styles' );
32        $out->setPageTitle( $this->msg( 'congresslookup-net-neutrality' ) );
33
34        $parsedHeaderMessage = $this->msg( 'net-neutrality-header' )->parse();
35        $out->addHTML( Html::rawElement( 'div', [ 'class' => 'plainlinks' ], $parsedHeaderMessage ) );
36
37        $form = new FormLayout( [
38            'method' => 'POST',
39            'action' => 'Special:SenateLookup',
40            'items' => [
41                new HorizontalLayout( [
42                    'items' => [
43                        new LabelWidget( [
44                            'label' => 'Contact your senators:'
45                        ] ),
46                        new DropdownInputWidget( [
47                            'name' => 'state',
48                            'infusable' => true,
49                            'options' => [
50                                [ 'data' => 'AK', 'label' => 'Alaska' ],
51                                [ 'data' => 'AL', 'label' => 'Alabama' ],
52                                [ 'data' => 'AR', 'label' => 'Arkansas' ],
53                                [ 'data' => 'AZ', 'label' => 'Arizona' ],
54                                [ 'data' => 'CA', 'label' => 'California' ],
55                                [ 'data' => 'CO', 'label' => 'Colorado' ],
56                                [ 'data' => 'CT', 'label' => 'Connecticut' ],
57                                [ 'data' => 'DE', 'label' => 'Delaware' ],
58                                [ 'data' => 'FL', 'label' => 'Florida' ],
59                                [ 'data' => 'GA', 'label' => 'Georgia' ],
60                                [ 'data' => 'HI', 'label' => 'Hawaii' ],
61                                [ 'data' => 'IA', 'label' => 'Iowa' ],
62                                [ 'data' => 'ID', 'label' => 'Idaho' ],
63                                [ 'data' => 'IL', 'label' => 'Illinois' ],
64                                [ 'data' => 'IN', 'label' => 'Indiana' ],
65                                [ 'data' => 'KS', 'label' => 'Kansas' ],
66                                [ 'data' => 'KY', 'label' => 'Kentucky' ],
67                                [ 'data' => 'LA', 'label' => 'Louisiana' ],
68                                [ 'data' => 'MA', 'label' => 'Massachusetts' ],
69                                [ 'data' => 'MD', 'label' => 'Maryland' ],
70                                [ 'data' => 'ME', 'label' => 'Maine' ],
71                                [ 'data' => 'MI', 'label' => 'Michigan' ],
72                                [ 'data' => 'MN', 'label' => 'Minnesota' ],
73                                [ 'data' => 'MO', 'label' => 'Missouri' ],
74                                [ 'data' => 'MS', 'label' => 'Mississippi' ],
75                                [ 'data' => 'MT', 'label' => 'Montana' ],
76                                [ 'data' => 'NC', 'label' => 'North Carolina' ],
77                                [ 'data' => 'ND', 'label' => 'North Dakota' ],
78                                [ 'data' => 'NE', 'label' => 'Nebraska' ],
79                                [ 'data' => 'NH', 'label' => 'New Hampshire' ],
80                                [ 'data' => 'NJ', 'label' => 'New Jersey' ],
81                                [ 'data' => 'NM', 'label' => 'New Mexico' ],
82                                [ 'data' => 'NV', 'label' => 'Nevada' ],
83                                [ 'data' => 'NY', 'label' => 'New York' ],
84                                [ 'data' => 'OH', 'label' => 'Ohio' ],
85                                [ 'data' => 'OK', 'label' => 'Oklahoma' ],
86                                [ 'data' => 'OR', 'label' => 'Oregon' ],
87                                [ 'data' => 'PA', 'label' => 'Pennsylvania' ],
88                                [ 'data' => 'RI', 'label' => 'Rhode Island' ],
89                                [ 'data' => 'SC', 'label' => 'South Carolina' ],
90                                [ 'data' => 'SD', 'label' => 'South Dakota' ],
91                                [ 'data' => 'TN', 'label' => 'Tennessee' ],
92                                [ 'data' => 'TX', 'label' => 'Texas' ],
93                                [ 'data' => 'UT', 'label' => 'Utah' ],
94                                [ 'data' => 'VA', 'label' => 'Virginia' ],
95                                [ 'data' => 'VT', 'label' => 'Vermont' ],
96                                [ 'data' => 'WA', 'label' => 'Washington' ],
97                                [ 'data' => 'WI', 'label' => 'Wisconsin' ],
98                                [ 'data' => 'WV', 'label' => 'West Virginia' ],
99                                [ 'data' => 'WY', 'label' => 'Wyoming' ]
100                            ]
101                        ] ),
102                        new ButtonInputWidget( [
103                            'name' => 'Lookup',
104                            'label' => 'Lookup',
105                            'type' => 'submit',
106                            'flags' => [ 'primary', 'progressive' ],
107                            'icon' => 'search',
108                            'infusable' => true
109                        ] )
110                    ]
111                ] )
112            ]
113        ] );
114
115        $out->addHTML( Html::rawElement( 'div', [ 'class' => 'stateform' ], $form ) );
116
117        $parsedFooterMessage = $this->msg( 'net-neutrality-footer' )->parse();
118        $out->addHTML( Html::rawElement( 'div', [ 'class' => 'plainlinks' ], $parsedFooterMessage ) );
119    }
120}