Legoktm has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/78930


Change subject: Fix logging of failures
......................................................................

Fix logging of failures

This commit adds the missing i18n messages for the action, and simplifies
the function to log with.

A LogFormatter was added so we can use <code></code> tags within the message.

Change-Id: I82bda87407307f1309bccacbbba48ed5ff2e3c60
---
M MassMessage.i18n.php
M MassMessage.php
M MassMessageJob.php
A MassMessageLogFormatter.php
4 files changed, 31 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MassMessage 
refs/changes/30/78930/1

diff --git a/MassMessage.i18n.php b/MassMessage.i18n.php
index 530ce93..6f046b8 100644
--- a/MassMessage.i18n.php
+++ b/MassMessage.i18n.php
@@ -36,6 +36,7 @@
        'log-name-massmessage' => 'Mass message log',
        'log-description-massmessage' => 'These events track users sending 
messages through [[Special:MassMessage]].',
        'logentry-massmessage-send' => '$1 {{GENDER:$2|sent a message}} to $3',
+       'logentry-massmessage-failure' => 'Delivery of "$4" to $3 failed with 
an error code of <code>$5</code>',
        'massmessage-cannot-rename' => 'This is a system account and cannot be 
renamed.',
 );
 
@@ -86,6 +87,9 @@
        'log-name-massmessage' => 'Log page title',
        'log-description-massmessage' => 'Log page description',
        'logentry-massmessage-send' => '{{logentry}}',
+       'logentry-massmessage-failure' => '{{logentry}}
+* $4 is the subject line of the message
+* $5 is the API error code. This will always be in English.',
        'massmessage-cannot-rename' => 'Error message a user sees when they try 
renaming the bot account.',
 );
 
diff --git a/MassMessage.php b/MassMessage.php
index 8023088..5dcdc48 100644
--- a/MassMessage.php
+++ b/MassMessage.php
@@ -60,6 +60,7 @@
 $wgAutoloadClasses['MassMessageHooks'] = "$dir/MassMessage.hooks.php";
 $wgAutoloadClasses['SpecialMassMessage'] = "$dir/SpecialMassMessage.php";
 $wgAutoloadClasses['MassMessageJob'] = "$dir/MassMessageJob.php";
+$wgAutoloadClasses['MassMessageLogFormatter'] = 
"$dir/MassMessageLogFormatter.php";
 $wgJobClasses['massmessageJob'] = 'MassMessageJob';
 
 $wgHooks['ParserFirstCallInit'][] = 'MassMessageHooks::onParserFirstCallInit';
@@ -79,6 +80,7 @@
 
 $wgLogTypes[] = 'massmessage';
 $wgLogActionsHandlers['massmessage/*'] = 'LogFormatter';
+$wgLogActionsHandlers['massmessage/failure'] = 'MassMessageLogFormatter';
 
 // User rights
 $wgAvailableRights[] = 'massmessage'; // Local messaging
diff --git a/MassMessageJob.php b/MassMessageJob.php
index 87c8df7..e8c5d10 100644
--- a/MassMessageJob.php
+++ b/MassMessageJob.php
@@ -52,18 +52,16 @@
        /**
         * Log any message failures on the submission site.
         *
-        * @param $title Title
-        * @param $subject string
         * @param $reason string
         */
-       function logLocalFailure( $title, $subject, $reason ) {
+       function logLocalFailure( $reason ) {
 
                $logEntry = new ManualLogEntry( 'massmessage', 'failure' );
                $logEntry->setPerformer( MassMessage::getMessengerUser() );
-               $logEntry->setTarget( $title );
-               $logEntry->setComment( $subject );
+               $logEntry->setTarget( $this->title );
                $logEntry->setParameters( array(
-                       '4::reason' => $reason,
+                       '4::subject' => $this->params['subject'],
+                       '5::reason' => $reason,
                ) );
 
                $logid = $logEntry->insert();
@@ -121,7 +119,7 @@
                try {
                        $api->execute();
                } catch ( UsageException $e ) {
-                       $this->logLocalFailure( $this->title, 
$this->params['subject'], $e->getCodeString() );
+                       $this->logLocalFailure( $e->getCodeString() );
                }
        }
 }
diff --git a/MassMessageLogFormatter.php b/MassMessageLogFormatter.php
new file mode 100644
index 0000000..94cdb6a
--- /dev/null
+++ b/MassMessageLogFormatter.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * Log formatter for 'failure' entries on Special:Log/massmessage
+ * This lets us use <code></code> tags in the message
+ */
+
+class MassMessageLogFormatter extends LogFormatter {
+
+       /**
+        * getActionMessage() typically returns a Message object, but
+        * if we return a string, it will just take that raw string and use it
+        *
+        * @return string
+        */
+       public function getActionMessage() {
+               $msg = parent::getActionMessage();
+               return $msg->parse();
+       }
+}
\ No newline at end of file

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I82bda87407307f1309bccacbbba48ed5ff2e3c60
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MassMessage
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>

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

Reply via email to