Matthias Mullie has uploaded a new change for review.

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

Change subject: [WIP] Engage full surveillance mode for Flow talk pages
......................................................................

[WIP] Engage full surveillance mode for Flow talk pages

WIP because icons are still missing. Rest is done.

Bug: T121663
Change-Id: I63b7489c3a391af16461fe47ca9523256f990f69
---
M i18n/en.json
M i18n/qqq.json
M includes/Notifications/FlowPresentationModel.php
M includes/Notifications/NewTopicPresentationModel.php
M includes/Notifications/Notifications.php
M includes/Notifications/PostEditedPresentationModel.php
M includes/Notifications/PostReplyPresentationModel.php
M includes/Notifications/TopicRenamedPresentationModel.php
8 files changed, 92 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Flow 
refs/changes/61/265461/1

diff --git a/i18n/en.json b/i18n/en.json
index f48de9b..f3ed2b2 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -272,14 +272,24 @@
        "flow-notification-edit-bundle": "$1 and $5 {{PLURAL:$6|other|others}} 
{{GENDER:$1|edited}} a <span class=\"plainlinks\">[$4 post]</span> in \"$2\" on 
\"$3\".",
        "notification-header-flow-new-topic-v2": "New topic created on $3: 
\"$4\".",
        "notification-bundle-header-flow-new-topic": "$1 new 
{{PLURAL:$2|topic|topics}} on $3.",
+       "notification-body-flow-new-topic-v2": "$1",
+       "notification-header-flow-new-topic-user-talk": "A new topic was 
created on your talk page: \"$4\"",
+       "notification-bundle-header-flow-new-topic-user-talk": "$1 new 
{{PLURAL:$2|topic|topics}} on your talk page.",
+       "notification-body-flow-new-topic-user-talk": "$1",
        "notification-header-flow-post-reply": "$1 {{GENDER:$2|replied}} in 
\"$4\".",
        "notification-bundle-header-flow-post-reply": "$1 new replies in 
\"$2\".",
-       "notification-body-flow-new-topic-v2": "$1",
        "notification-body-flow-post-reply-v2": "$1",
+       "notification-header-flow-post-reply-user-talk": "$1 
{{GENDER:$2|posted}} a reply on your talk page in \"$4\".",
+       "notification-bundle-header-flow-post-reply-user-talk": "$1 new replies 
on your talk page in \"$2\".",
+       "notification-body-flow-post-reply-user-talk": "$1",
        "notification-header-flow-post-edited-v2": "Your post on \"$1\" was 
edited.",
        "notification-bundle-header-flow-post-edited-v2": "Your post on \"$1\" 
was edited multiple times.",
        "notification-body-flow-post-edited-v2": "$1",
+       "notification-header-flow-post-edited-user-talk": "A post on \"$1\" was 
edited on your talk page.",
+       "notification-bundle-header-flow-post-edited-user-talk": "A post on 
\"$1\" was edited multiple times on your talk page.",
+       "notification-body-flow-post-edited-user-talk": "$1",
        "notification-header-flow-topic-renamed-v2": "The topic \"$1\" was 
renamed to \"$2\".",
+       "notification-header-flow-topic-renamed-user-talk": "The topic \"$1\" 
was renamed to \"$2\" on your talk page.",
        "notification-header-flow-mention": "$1 {{GENDER:$2|mentioned}} 
{{GENDER:$5|you}} in \"$3\".",
        "notification-body-flow-mention": "$1",
        "notification-header-flow-enabled-on-talkpage": "New discussion system 
enabled for {{GENDER:$2|your}} user talk page.",
diff --git a/i18n/qqq.json b/i18n/qqq.json
index b098e88..2af9e15 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -282,13 +282,23 @@
        "notification-header-flow-new-topic-v2": "Notification header text for 
when a new topic is created. Parameters:\n$1 - the formatted username of the 
user who created the topic\n* $2 - the username for gender purposes\n* $3 - 
title of the Flow board\n* $4 - title of the 
topic.\n{{Related|Flow-notification}}",
        "notification-body-flow-new-topic-v2": "Notification body text for when 
a new topic is created. Parameters:\n$1 - a snippet of the content of the new 
topic.\n{{Related|Flow-notification}} {{notranslate}}",
        "notification-bundle-header-flow-new-topic": "Notification text for 
when multiple new topics are created on the same page. Parameters:\n* $1 - The 
number of topics that were created for display purposes. This can be a number 
or '99+' if it is 99 or more\n* $2 - The number of new topics created for 
PLURAL purposes\n* $3 - The title of the page the topics were created 
on\n{{Related|Notification-bundle}}",
+       "notification-header-flow-new-topic-user-talk": "Notification header 
text for when a new topic is created on a user's talk page. Parameters:\n$1 - 
the formatted username of the user who created the topic\n* $2 - the username 
for gender purposes\n* $3 - title of the Flow board\n* $4 - title of the 
topic.\n{{Related|Flow-notification}}",
+       "notification-body-flow-new-topic-user-talk": "Notification body text 
for when a new topic is created on a user's talk page. Parameters:\n$1 - a 
snippet of the content of the new topic.\n{{Related|Flow-notification}} 
{{notranslate}}",
+       "notification-bundle-header-flow-new-topic-user-talk": "Notification 
text for when multiple new topics are created on a user's talk page. 
Parameters:\n* $1 - The number of topics that were created for display 
purposes. This can be a number or '99+' if it is 99 or more\n* $2 - The number 
of new topics created for PLURAL purposes\n* $3 - The title of the page the 
topics were created on\n{{Related|Notification-bundle}}",
        "notification-header-flow-post-reply": "Notification header text for 
when there is a reply on a topic. Parameters:\n$1 - the formatted username of 
the user who replied to the topic\n* $2 - the username for gender purposes\n* 
$3 - title of the Flow board\n* $4 - title of the 
topic.\n{{Related|Flow-notification}}",
        "notification-bundle-header-flow-post-reply": "Notification header text 
for when there is a multiple replies on a topic. Parameters:\n$1 - the number 
of replies for display\n* $2 - title of the 
topic.\n{{Related|Flow-notification}}",
        "notification-body-flow-post-reply-v2": "Notification body text for 
when there is a reply on a topic. Parameters:\n$1 - a snippet of the content of 
the reply.\n{{Related|Flow-notification}} {{notranslate}}",
+       "notification-header-flow-post-reply": "Notification header text for 
when there is a reply on a topic on a user's talk page. Parameters:\n$1 - the 
formatted username of the user who replied to the topic\n* $2 - the username 
for gender purposes\n* $3 - title of the Flow board\n* $4 - title of the 
topic.\n{{Related|Flow-notification}}",
+       "notification-bundle-header-flow-post-reply": "Notification header text 
for when there is a multiple replies on a topic on a user's talk page. 
Parameters:\n$1 - the number of replies for display\n* $2 - title of the 
topic.\n{{Related|Flow-notification}}",
+       "notification-body-flow-post-reply-v2": "Notification body text for 
when there is a reply on a topic on a user's talk page. Parameters:\n$1 - a 
snippet of the content of the reply.\n{{Related|Flow-notification}} 
{{notranslate}}",
        "notification-header-flow-post-edited-v2": "Notification header text 
for when a post is edited. Parameters:\n$1 - the formatted username of the user 
who edited the post\n* $2 - the username for gender purposes\n* $3 - title of 
the Flow board\n* $4 - title of the topic.\n* $5 - username of the person who 
receives the notification, can be used for 
GENDER.\n{{Related|Flow-notification}}",
        "notification-bundle-header-flow-post-edited-v2": "Notification bundle 
header text for when a user receives post edits from multiple users on the same 
topic.\n\nParameters:\n* $1 - formatted username of the first person who edited 
post\n* $2 - username for GENDER\n* $3 - title of the topic\n* $4 - title for 
the page that the Flow board is attached to\n* $5 - the count of other action 
performers, could be number or {{msg-mw|Echo-notification-count}}. e.g. 7 
others or 99+ others\n* $6 - a number used for plural support\n* $7 - username 
of the person who receives the notification, can be used for GENDER.\nSee 
also:\n* 
{{msg-mw|Flow-notification-edit-email-batch-bundle-body}}\n{{Related|Notification-bundle}}",
        "notification-body-flow-post-edited-v2": "Notification body text for 
when a post is edited. Parameters:\n$1 - the formatted username of the user who 
edited the post\n* $2 - the username for gender purposes\n* $3 - title of the 
Flow board\n* $4 - title of the topic.\n* $5 - username of the person who 
receives the notification, can be used for 
GENDER.\n{{Related|Flow-notification}}",
+       "notification-header-flow-post-edited-user-talk": "Notification header 
text for when a post is edited on a user's talk page . Parameters:\n$1 - the 
formatted username of the user who edited the post\n* $2 - the username for 
gender purposes\n* $3 - title of the Flow board\n* $4 - title of the topic.\n* 
$5 - username of the person who receives the notification, can be used for 
GENDER.\n{{Related|Flow-notification}}",
+       "notification-bundle-header-flow-post-edited-user-talk": "Notification 
bundle header text for when a user receives post edits from multiple users on 
the same topic on a user's talk page .\n\nParameters:\n* $1 - formatted 
username of the first person who edited post\n* $2 - username for GENDER\n* $3 
- title of the topic\n* $4 - title for the page that the Flow board is attached 
to\n* $5 - the count of other action performers, could be number or 
{{msg-mw|Echo-notification-count}}. e.g. 7 others or 99+ others\n* $6 - a 
number used for plural support\n* $7 - username of the person who receives the 
notification, can be used for GENDER.\nSee also:\n* 
{{msg-mw|Flow-notification-edit-email-batch-bundle-body}}\n{{Related|Notification-bundle}}",
+       "notification-body-flow-post-edited-user-talk": "Notification body text 
for when a post on a user's talk page is edited. Parameters:\n$1 - the 
formatted username of the user who edited the post\n* $2 - the username for 
gender purposes\n* $3 - title of the Flow board\n* $4 - title of the topic.\n* 
$5 - username of the person who receives the notification, can be used for 
GENDER.\n{{Related|Flow-notification}}",
        "notification-header-flow-topic-renamed-v2": "Notification header text 
for when a topic is renamed. Parameters:\n$1 - the formatted username of the 
user who renamed the topic\n* $2 - the username for gender purposes\n* $3 - old 
title of the topic\n* $4 - new title of the topic\n* $5 - title of the Flow 
board.\n{{Related|Flow-notification}}",
+       "notification-header-flow-topic-renamed-user-talk": "Notification 
header text for when a topic is renamed on a user's talk page . Parameters:\n$1 
- the formatted username of the user who renamed the topic\n* $2 - the username 
for gender purposes\n* $3 - old title of the topic\n* $4 - new title of the 
topic\n* $5 - title of the Flow board.\n{{Related|Flow-notification}}",
        "notification-header-flow-mention": "{{doc-singularthey}}\nNotification 
header text for when a user is mentioned in a post. Parameters:\n* $1 - the 
formatted username of the person who made the post\n* $2 - the username for 
gender purposes\n* $3 - title of the topic\n* $4 - title of the Flow board\n* 
$5 - username of the person who receives the notification, can be used for 
GENDER\n{{Related|Flow-notification}}",
        "notification-body-flow-mention": "Notification body text for when a 
user is mentioned in a post. Parameters:\n* $1 - text snippet of the message 
containing the mention\n{{Related|Flow-notification}}",
        "notification-header-flow-enabled-on-talkpage": "Notification header 
text when Flow is enabled on a user talk page. Parameters:\n* $1 - the 
formatted username of the user who enabled Flow on his user talk page\n* $2 - 
the username for gender purposes\n* $3 - Title where Flow was enabled.",
diff --git a/includes/Notifications/FlowPresentationModel.php 
b/includes/Notifications/FlowPresentationModel.php
index 6aa39f3..926ae8f 100644
--- a/includes/Notifications/FlowPresentationModel.php
+++ b/includes/Notifications/FlowPresentationModel.php
@@ -126,4 +126,9 @@
        protected function getTopicTitle() {
                return wfEscapeWikiText( $this->event->getExtraParam( 
'topic-title' ) );
        }
+
+       protected function isUserTalkPage() {
+               $username = $this->getViewingUserForGender();
+               return $this->event->getTitle()->getDBkey() === $username;
+       }
 }
diff --git a/includes/Notifications/NewTopicPresentationModel.php 
b/includes/Notifications/NewTopicPresentationModel.php
index 1c89f56..515857f 100644
--- a/includes/Notifications/NewTopicPresentationModel.php
+++ b/includes/Notifications/NewTopicPresentationModel.php
@@ -35,14 +35,21 @@
        public function getBodyMessage() {
                if ( $this->isBundled() ) {
                        return false;
+               } elseif ( $this->isUserTalkPage() ) {
+                       $msg = $this->msg( 
"notification-body-{$this->type}-user-talk" );
                } else {
                        $msg = $this->msg( "notification-body-{$this->type}-v2" 
);
-                       $msg->params( $this->getContentSnippet() );
-                       return $msg;
                }
+
+               $msg->params( $this->getContentSnippet() );
+               return $msg;
        }
 
        protected function getHeaderMessageKey() {
+               if ( $this->isUserTalkPage() ) {
+                       return parent::getHeaderMessageKey() . '-user-talk';
+               }
+
                return parent::getHeaderMessageKey() . '-v2';
        }
 
diff --git a/includes/Notifications/Notifications.php 
b/includes/Notifications/Notifications.php
index 4775d65..cf7e446 100644
--- a/includes/Notifications/Notifications.php
+++ b/includes/Notifications/Notifications.php
@@ -41,6 +41,7 @@
                'presentation-model' => 'Flow\\PostReplyPresentationModel',
                'user-locators' => array(
                        
'Flow\\NotificationsUserLocator::locateUsersWatchingTopic',
+                       'EchoUserLocator::locateTalkPageOwner'
                ),
                'primary-link' => array(
                        'message' => 'flow-notification-link-text-view-post',
@@ -66,6 +67,7 @@
                'presentation-model' => 'Flow\\PostEditedPresentationModel',
                'user-locators' => array(
                        'Flow\\NotificationsUserLocator::locatePostAuthors',
+                       'EchoUserLocator::locateTalkPageOwner'
                ),
                'primary-link' => array(
                        'message' => 'flow-notification-link-text-view-post',
@@ -91,6 +93,7 @@
                'presentation-model' => 'Flow\\TopicRenamedPresentationModel',
                'user-locators' => array(
                        'Flow\\NotificationsUserLocator::locateTopicAuthors',
+                       'EchoUserLocator::locateTalkPageOwner'
                ),
                'primary-link' => array(
                        'message' => 'flow-notification-link-text-view-post',
diff --git a/includes/Notifications/PostEditedPresentationModel.php 
b/includes/Notifications/PostEditedPresentationModel.php
index 6cc053a..07725aa 100644
--- a/includes/Notifications/PostEditedPresentationModel.php
+++ b/includes/Notifications/PostEditedPresentationModel.php
@@ -30,18 +30,34 @@
        }
 
        protected function getHeaderMessageKey() {
-               return parent::getHeaderMessageKey() . '-v2';
+               if ( $this->isBundled() ) {
+                       if ( $this->isUserTalkPage() ) {
+                               return 
"notification-bundle-header-{$this->type}-user-talk";
+                       } else {
+                               return 
"notification-bundle-header-{$this->type}-v2";
+                       }
+               } else {
+                       if ( $this->isUserTalkPage() ) {
+                               return parent::getHeaderMessageKey() . 
'-user-talk';
+                       } else {
+                               return parent::getHeaderMessageKey() . '-v2';
+                       }
+               }
        }
 
        public function getHeaderMessage() {
-               $key = $this->isBundled() ? 
"notification-bundle-header-{$this->type}-v2" : $this->getHeaderMessageKey();
-               $msg = $this->msg( $key );
+               $msg = $this->msg( $this->getHeaderMessageKey() );
                $msg->params( $this->getTopicTitle() );
                return $msg;
        }
 
        public function getBodyMessage() {
-               $msg = $this->msg( "notification-body-{$this->type}-v2" );
+               if ( $this->isUserTalkPage() ) {
+                       $msg = $this->msg( 
"notification-body-{$this->type}-user-talk" );
+               } else {
+                       $msg = $this->msg( "notification-body-{$this->type}-v2" 
);
+               }
+
                $msg->params( $this->getContentSnippet() );
                return $msg;
        }
diff --git a/includes/Notifications/PostReplyPresentationModel.php 
b/includes/Notifications/PostReplyPresentationModel.php
index 5f7e28f..6a7c484 100644
--- a/includes/Notifications/PostReplyPresentationModel.php
+++ b/includes/Notifications/PostReplyPresentationModel.php
@@ -16,7 +16,13 @@
        }
 
        public function getPrimaryLink() {
-               $event = $this->isBundled() ? end( $this->getBundledEvents() ) 
: $this->event;
+               if ( $this->isBundled() ) {
+                       // "Strict standards: Only variables should be passed 
by reference" in older PHP versions
+                       $bundledEvents = $this->getBundledEvents();
+                       $event = end( $bundledEvents );
+               } else {
+                       $event = $this->event;
+               }
                $postId = $event->getExtraParam( 'post-id' );
                return array(
                        'url' => $this->getPostLinkUrl( $postId ),
@@ -32,10 +38,26 @@
                }
        }
 
+       protected function getHeaderMessageKey() {
+               if ( $this->isBundled() ) {
+                       if ( $this->isUserTalkPage() ) {
+                               return 
"notification-bundle-header-{$this->type}-user-talk";
+                       } else {
+                               return 
"notification-bundle-header-{$this->type}";
+                       }
+               } else {
+                       if ( $this->isUserTalkPage() ) {
+                               return parent::getHeaderMessageKey() . 
"-user-talk";
+                       } else {
+                               return parent::getHeaderMessageKey();
+                       }
+               }
+       }
+
        public function getHeaderMessage() {
                if ( $this->isBundled() ) {
                        list( $formattedCount, $countForPlural ) = 
$this->getNotificationCountForOutput();
-                       $msg = $this->msg( 
"notification-bundle-header-{$this->type}" );
+                       $msg = $this->msg( $this->getHeaderMessageKey() );
                        $msg->params( $formattedCount, $this->getTopicTitle() );
                        return $msg;
                } else {
@@ -48,7 +70,11 @@
 
        public function getBodyMessage() {
                if ( !$this->isBundled() ) {
-                       $msg = $this->msg( "notification-body-{$this->type}-v2" 
);
+                       if ( $this->isUserTalkPage() ) {
+                               $msg = 
$this->msg("notification-body-{$this->type}-v2");
+                       } else {
+                               $msg = 
$this->msg("notification-body-{$this->type}-user-talk");
+                       }
                        $msg->params( $this->getContentSnippet() );
                        return $msg;
                }
diff --git a/includes/Notifications/TopicRenamedPresentationModel.php 
b/includes/Notifications/TopicRenamedPresentationModel.php
index 5443c21..9d65217 100644
--- a/includes/Notifications/TopicRenamedPresentationModel.php
+++ b/includes/Notifications/TopicRenamedPresentationModel.php
@@ -26,7 +26,11 @@
        }
 
        protected function getHeaderMessageKey() {
-               return parent::getHeaderMessageKey() . '-v2';
+               if ( $this->isUserTalkPage() ) {
+                       return parent::getHeaderMessageKey() . '-user-talk';
+               } else {
+                       return parent::getHeaderMessageKey() . '-v2';
+               }
        }
 
        public function getHeaderMessage() {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I63b7489c3a391af16461fe47ca9523256f990f69
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Flow
Gerrit-Branch: master
Gerrit-Owner: Matthias Mullie <mmul...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to