jenkins-bot has submitted this change and it was merged.

Change subject: Rewrite Special:CheckUserLog search form with HTMLForm
......................................................................


Rewrite Special:CheckUserLog search form with HTMLForm

Replace a bunch of concatenated raw html strings with HTMLForm.
This also changes the weird dropdown+text field in the form to
two separate fields, target and type.
Also:
* Changed form legend's wording
* Update documentation
* Enable mediawiki.userSuggest autocompletions in target field

Change-Id: I6db886cd8cc3a04566746451a73360ab9259225d
---
M i18n/en.json
M i18n/qqq.json
M specials/SpecialCheckUserLog.php
3 files changed, 53 insertions(+), 35 deletions(-)

Approvals:
  Florianschmidtwelzow: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/i18n/en.json b/i18n/en.json
index b74046c..80b6f98 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -28,7 +28,6 @@
        "checkuser-users": "Get users",
        "checkuser-edits": "Get edits",
        "checkuser-ips": "Get IP addresses",
-       "checkuser-search": "Search",
        "checkuser-period": "Duration:",
        "checkuser-week-1": "last week",
        "checkuser-week-2": "last two weeks",
@@ -62,10 +61,12 @@
        "checkuser-accounts": "$1 new {{PLURAL:$1|account|accounts}}",
        "checkuser-too-many": "Too many results (according to query estimate), 
please narrow down the CIDR.\nHere are the IP addresses used (5000 max, sorted 
by address):",
        "checkuser-user-nonexistent": "The specified user does not exist.",
-       "checkuser-search-form": "Find log entries where the $1 is $2",
+       "checkuser-search": "Search check user log entries",
        "checkuser-search-submit": "Search",
        "checkuser-search-initiator": "initiator",
        "checkuser-search-target": "target",
+       "checkuser-log-search-target": "Target:",
+       "checkuser-log-search-type": "Search by:",
        "checkuser-ipeditcount": "~$1 from all users",
        "checkuser-showmain": "Switch to CheckUser main form",
        "checkuser-limited": "'''These results have been truncated for 
performance reasons.'''",
diff --git a/i18n/qqq.json b/i18n/qqq.json
index 5072689..e3cd509 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -47,7 +47,6 @@
        "checkuser-users": "Radio button option on CheckUser Special page. See 
screenshot '[[mw:Extension:CheckUser#Basic_interface|Basic CheckUser 
interface]]'.",
        "checkuser-edits": "Radio button option on CheckUser Special page. See 
screenshot '[[mw:Extension:CheckUser#Basic_interface|Basic CheckUser 
interface]]'.",
        "checkuser-ips": "Option on CheckUser Special page. See screenshot 
'[[mw:Extension:CheckUser#Basic_interface|Basic CheckUser interface]]'.",
-       "checkuser-search": "Heading of fieldset on log of CheckUser searches. 
See screenshot \"[[mw:Extension:CheckUser#Basic_interface|Example 
log]]\".\n{{Identical|Search}}",
        "checkuser-period": "Field name next to drop-down input box on 
CheckUser Special page. See screenshot 
'[[mw:Extension:CheckUser#Basic_interface|Basic CheckUser 
interface]]'.\n{{Identical|Duration}}",
        "checkuser-week-1": "Option in drop-down input box \"Duration\" on 
CheckUser Special page. See screenshot 
'[[mw:Extension:CheckUser#Basic_interface|Basic CheckUser 
interface]]'.\n{{Identical|Last week}}",
        "checkuser-week-2": "Option in drop-down input box \"Duration\" on 
CheckUser Special page. See screenshot 
'[[mw:Extension:CheckUser#Basic_interface|Basic CheckUser interface]]'.",
@@ -81,10 +80,12 @@
        "checkuser-accounts": "Used in Special:CheckUser. Parameters:\n* $1 - 
number of accounts",
        "checkuser-too-many": "Used in [[Special:CheckUser]].\n\nThis message 
is followed by a list of IPs that have edits.\n\nIf the number of IPs is 5000 
or more, the following message is shown:\n* {{msg-mw|checkuser-limited}}",
        "checkuser-user-nonexistent": "Used as error message in 
[[Special:CheckUserLog]].",
-       "checkuser-search-form": "This message is a search form for the 
checkuser log. Parameters:\n* $1 - a drop down box with search types\n* $2 - a 
text input field for the search pattern\n\nSee screenshot 
\"[[mw:Extension:CheckUser#Basic_interface|Example log]]\".",
+       "checkuser-search": "Heading of fieldset on log of CheckUser searches. 
See screenshot \"[[mw:Extension:CheckUser#Basic_interface|Example log]]",
        "checkuser-search-submit": "Button label on log of CheckUser searches. 
See screenshot \"[[mw:Extension:CheckUser#Basic_interface|Example 
log]]\".\n{{Identical|Search}}",
-       "checkuser-search-initiator": "This message is an option in an input 
box on the search form for the checkuser log.\n\nUsed as <code>$1</code> in the 
message {{msg-mw|Checkuser-search-form}}.\n\nSee screenshot 
\"[[mw:Extension:CheckUser#Basic_interface|Example log]]\".\n\nInitiator means 
the CheckUser who checks someone's information.\n{{Identical|Initiator}}",
-       "checkuser-search-target": "The target of the check. The user 
checked.\n{{Identical|Target}}",
+       "checkuser-search-initiator": "This message is an option in a radio 
button on the search form for the checkuser log.\n\nSee screenshot 
\"[[mw:Extension:CheckUser#Basic_interface|Example log]]\".\n\nInitiator means 
the CheckUser who checks someone's information.\n{{Identical|Initiator}}",
+       "checkuser-search-target": "This message is used in an option in a 
radio button on the search form for the checkuser log. The target of the check 
means the user which was checked.\n{{Identical|Target}}",
+       "checkuser-log-search-target": "Label of form field on 
Special:CheckUserLog's search form. Valid values in the field can be either an 
IP address or an IP range or a username.",
+       "checkuser-log-search-type": "Label of form field on 
Special:CheckUserLog's search form. This corresponds to the radio buttons for 
the search type. See {{msg-mw|checkuser-search-initiator}} and 
{{msg-mw|checkuser-log-search-target}}.",
        "checkuser-ipeditcount": "This information is shown on the result page 
of [[mw:Extension:CheckUser#Basic_interface|Special:CheckUser]] (when doing the 
''{{int:Checkuser-users}}'' check), next to the individual listed IPs.\n\nSee 
[[mw:Extension:CheckUser#Basic_interface|screenshot]] \"Example user name 
check\").\n\nParameters:\n* $1 - an estimate of the total number of edits from 
the respective IP (i.e. the number of edits by all users, not only by the 
requested user). As the comment in the code says: ''If we get some results, it 
helps to know if the IP in general has a lot more edits, e.g. \"tip of the 
iceberg\"…''",
        "checkuser-showmain": "Link label on Special:CheckUserLog's subtitle. 
Links to Special:CheckUser. See also {{msg-mw|checkuser-showlog}}.",
        "checkuser-limited": "A message shown above CheckUser results if the 
result list would be longer than the specified limit (5000 entries), and has 
been truncated.",
diff --git a/specials/SpecialCheckUserLog.php b/specials/SpecialCheckUserLog.php
index 06ff74d..e13551c 100644
--- a/specials/SpecialCheckUserLog.php
+++ b/specials/SpecialCheckUserLog.php
@@ -69,35 +69,7 @@
                        }
                }
 
-               // Give grep a chance to find the usages:
-               // checkuser-search-initiator, checkuser-search-target
-               $searchTypes = array( 'initiator', 'target' );
-               $select = "<select name=\"cuSearchType\" 
style='margin-top:.2em;'>\n";
-               foreach ( $searchTypes as $searchType ) {
-                       if ( $type == $searchType ) {
-                               $checked = 'selected="selected"';
-                       } else {
-                               $checked = '';
-                       }
-                       $caption = $this->msg( 'checkuser-search-' . 
$searchType )->escaped();
-                       $select .= "<option value=\"$searchType\" 
$checked>$caption</option>\n";
-               }
-               $select .= '</select>';
-
-               $encTarget = htmlspecialchars( $target );
-               $msgSearch = $this->msg( 'checkuser-search' )->escaped();
-               $input = "<input type=\"text\" name=\"cuSearch\" 
value=\"$encTarget\" size=\"40\"/>";
-               $msgSearchForm = $this->msg( 'checkuser-search-form' 
)->rawParams( $select, $input )->escaped();
-               $formAction = htmlspecialchars( 
$this->getPageTitle()->getLocalURL() );
-               $msgSearchSubmit = '&#160;&#160;' . $this->msg( 
'checkuser-search-submit' )->escaped() . '&#160;&#160;';
-
-               $s = "<form method='get' action=\"$formAction\">\n" .
-                       "<fieldset><legend>$msgSearch</legend>\n" .
-                       "<p>$msgSearchForm</p>\n" .
-                       "<p>" . Xml::dateMenu( $year, $month ) . 
"&#160;&#160;&#160;\n" .
-                       "<input type=\"submit\" name=\"cuSearchSubmit\" 
value=\"$msgSearchSubmit\"/></p>\n" .
-                       "</fieldset></form>\n";
-               $out->addHTML( $s );
+               $this->displaySearchForm();
 
                if ( $error !== false ) {
                        $out->wrapWikiMsg( '<div class="errorbox">$1</div>', 
$error );
@@ -112,6 +84,50 @@
                );
        }
 
+       /**
+        * Use an HTMLForm to create and output the search form used on this 
page.
+        */
+       protected function displaySearchForm() {
+               $this->getOutput()->addModules( 'mediawiki.userSuggest' );
+               $request = $this->getRequest();
+               $fields = array(
+                       'target' => array(
+                               'type' => 'user',
+                               // validation in execute() currently
+                               'exists' => false,
+                               'ipallowed' => true,
+                               'name' => 'cuSearch',
+                               'size' => 40,
+                               'cssclass' => 'mw-autocomplete-user', // for 
mediawiki.userSuggest autocompletions
+                               'label-message' => 
'checkuser-log-search-target',
+                       ),
+                       'type' => array(
+                               'type' => 'radio',
+                               'name' => 'cuSearchType',
+                               'label-message' => 'checkuser-log-search-type',
+                               'options-messages' => array(
+                                       'checkuser-search-target' => 'target',
+                                       'checkuser-search-initiator' => 
'initiator',
+                               ),
+                               'flatlist' => true,
+                               'default' => 'target',
+                       ),
+                       // @todo hack until HTMLFormField has a proper date 
selector
+                       'monthyear' => array(
+                               'type' => 'info',
+                               'default' => Xml::dateMenu( $request->getInt( 
'year' ), $request->getInt( 'month' ) ),
+                               'raw' => true,
+                       ),
+               );
+
+               $form = HTMLForm::factory( 'table', $fields, 
$this->getContext() );
+               $form->setMethod( 'get' )
+                       ->setWrapperLegendMsg( 'checkuser-search' )
+                       ->setSubmitTextMsg( 'checkuser-search-submit' )
+                       ->prepareForm()
+                       ->displayForm( false );
+       }
+
        protected function getGroupName() {
                return 'changes';
        }

-- 
To view, visit https://gerrit.wikimedia.org/r/261639
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I6db886cd8cc3a04566746451a73360ab9259225d
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/CheckUser
Gerrit-Branch: master
Gerrit-Owner: Glaisher <[email protected]>
Gerrit-Reviewer: Bartosz Dziewoński <[email protected]>
Gerrit-Reviewer: Florianschmidtwelzow <[email protected]>
Gerrit-Reviewer: Glaisher <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to