CatWatch don't show the number of pages transcluded
authoraddshore <addshorewiki@gmail.com>
Sat, 2 Apr 2016 16:06:40 +0000 (19:06 +0300)
committeraddshore <addshorewiki@gmail.com>
Thu, 14 Apr 2016 08:22:49 +0000 (09:22 +0100)
Providing the perfectly correct number of pages
that have acctually been added to or removed from a
category is extermly hard.

Rather than providing data that is most likely wrong
and a bit useless ONLY provide a link to Special:WhatLinksHere.

This touches on the following bugs and may mean that
some of them don't need to be thought about any further.

Bug: T126855
Bug: T126407
Bug: T126139
Change-Id: Ida06d822d1955091595c17c9c6c2968a40a93bcd

includes/changes/CategoryMembershipChange.php
languages/i18n/en.json
languages/i18n/qqq.json
tests/phpunit/includes/changes/CategoryMembershipChangeTest.php
tests/phpunit/includes/deferred/LinksUpdateTest.php
tests/phpunit/includes/jobqueue/jobs/CategoryMembershipChangeJobTest.php

index 1ff6f85..64d8139 100644 (file)
@@ -127,10 +127,11 @@ class CategoryMembershipChange {
                        $this->timestamp,
                        $categoryTitle,
                        $this->getUser(),
-                       $this->getChangeMessageText( $type, [
-                               'prefixedText' => $this->pageTitle->getPrefixedText(),
-                               'numTemplateLinks' => $this->numTemplateLinks
-                       ] ),
+                       $this->getChangeMessageText(
+                               $type,
+                               [ 'prefixedText' => $this->pageTitle->getPrefixedText() ],
+                               $this->numTemplateLinks
+                       ),
                        $this->pageTitle,
                        $this->getPreviousRevisionTimestamp(),
                        $this->revision
@@ -246,10 +247,11 @@ class CategoryMembershipChange {
         * or CategoryMembershipChange::CATEGORY_REMOVAL
         * @param array $params
         * - prefixedText: result of Title::->getPrefixedText()
+        * @param int $numTemplateLinks
         *
         * @return string
         */
-       private function getChangeMessageText( $type, array $params ) {
+       private function getChangeMessageText( $type, array $params, $numTemplateLinks ) {
                $array = [
                        self::CATEGORY_ADDITION => 'recentchanges-page-added-to-category',
                        self::CATEGORY_REMOVAL => 'recentchanges-page-removed-from-category',
@@ -257,7 +259,7 @@ class CategoryMembershipChange {
 
                $msgKey = $array[$type];
 
-               if ( intval( $params['numTemplateLinks'] ) > 0 ) {
+               if ( intval( $numTemplateLinks ) > 0 ) {
                        $msgKey .= '-bundled';
                }
 
index 81b46d6..55ae93e 100644 (file)
        "recentchangeslinked-page": "Page name:",
        "recentchangeslinked-to": "Show changes to pages linked to the given page instead",
        "recentchanges-page-added-to-category": "[[:$1]] added to category",
-       "recentchanges-page-added-to-category-bundled": "[[:$1]] and [[Special:WhatLinksHere/$1|{{PLURAL:$2|one page|$2 pages}}]] added to category",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] added to category, [[Special:WhatLinksHere/$1|this page is included within other pages]]",
        "recentchanges-page-removed-from-category": "[[:$1]] removed from category",
-       "recentchanges-page-removed-from-category-bundled": "[[:$1]] and [[Special:WhatLinksHere/$1|{{PLURAL:$2|one page|$2 pages}}]] removed from category",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] removed from category, [[Special:WhatLinksHere/$1|this page is included within other pages]]",
        "autochange-username": "MediaWiki automatic change",
        "upload": "Upload file",
        "uploadbtn": "Upload file",
index ba9b256..71ee0d0 100644 (file)
        "recentchangeslinked-page": "{{Identical|Page name}}",
        "recentchangeslinked-to": "Checkbox in [[Special:RecentChangesLinked]].",
        "recentchanges-page-added-to-category": "Comment message for pages added to a category\n\nParameters:\n* $1 - name of the page being added",
-       "recentchanges-page-added-to-category-bundled": "Comment message for template embedded by other pages added to a category\n\nParameters:\n* $1 - name of the page being added\n* $2 - number of additional pages being affected",
+       "recentchanges-page-added-to-category-bundled": "Comment message for template embedded by other pages added to a category\n\nParameters:\n* $1 - name of the page being added",
        "recentchanges-page-removed-from-category": "Comment message for pages removed from a category\n\nParameters:\n* $1 - name of the page being removed",
-       "recentchanges-page-removed-from-category-bundled": "Comment message for templates embeddedby other pages removed from a category\n\nParameters:\n* $1 - name of the page being added\n* $2 - number of additional pages being affected",
+       "recentchanges-page-removed-from-category-bundled": "Comment message for templates embedded by other pages removed from a category\n\nParameters:\n* $1 - name of the page being added",
        "autochange-username": "Used as bot / unknown username.",
        "upload": "Display name for link to [[Special:Upload]] for uploading files to the wiki.\n\nSee also:\n* {{msg-mw|Upload}}\n* {{msg-mw|Accesskey-t-upload}}\n* {{msg-mw|Tooltip-t-upload}}\n{{Identical|Upload file}}",
        "uploadbtn": "Button name in [[Special:Upload]].\n\nSee also:\n* {{msg-mw|Uploadbtn}}\n* {{msg-mw|Accesskey-upload}}\n* {{msg-mw|Tooltip-upload}}\n{{Identical|Upload file}}",
index 6369b33..1d86fb4 100644 (file)
@@ -74,7 +74,7 @@ class CategoryMembershipChangeTest extends MediaWikiLangTestCase {
                $this->assertTrue( strlen( self::$lastNotifyArgs[0] ) === 14 );
                $this->assertEquals( 'Category:CategoryName', self::$lastNotifyArgs[1]->getPrefixedText() );
                $this->assertEquals( '(autochange-username)', self::$lastNotifyArgs[2]->getName() );
-               $this->assertEquals( '(recentchanges-page-added-to-category: ' . self::$pageName . ', 0)',
+               $this->assertEquals( '(recentchanges-page-added-to-category: ' . self::$pageName . ')',
                        self::$lastNotifyArgs[3] );
                $this->assertEquals( self::$pageName, self::$lastNotifyArgs[4]->getPrefixedText() );
                $this->assertEquals( 0, self::$lastNotifyArgs[5] );
@@ -94,7 +94,7 @@ class CategoryMembershipChangeTest extends MediaWikiLangTestCase {
                $this->assertTrue( strlen( self::$lastNotifyArgs[0] ) === 14 );
                $this->assertEquals( 'Category:CategoryName', self::$lastNotifyArgs[1]->getPrefixedText() );
                $this->assertEquals( '(autochange-username)', self::$lastNotifyArgs[2]->getName() );
-               $this->assertEquals( '(recentchanges-page-removed-from-category: ' . self::$pageName . ', 0)',
+               $this->assertEquals( '(recentchanges-page-removed-from-category: ' . self::$pageName . ')',
                        self::$lastNotifyArgs[3] );
                $this->assertEquals( self::$pageName, self::$lastNotifyArgs[4]->getPrefixedText() );
                $this->assertEquals( 0, self::$lastNotifyArgs[5] );
@@ -115,7 +115,7 @@ class CategoryMembershipChangeTest extends MediaWikiLangTestCase {
                $this->assertTrue( strlen( self::$lastNotifyArgs[0] ) === 14 );
                $this->assertEquals( 'Category:CategoryName', self::$lastNotifyArgs[1]->getPrefixedText() );
                $this->assertEquals( 'UTSysop', self::$lastNotifyArgs[2]->getName() );
-               $this->assertEquals( '(recentchanges-page-added-to-category: ' . self::$pageName . ', 0)',
+               $this->assertEquals( '(recentchanges-page-added-to-category: ' . self::$pageName . ')',
                        self::$lastNotifyArgs[3] );
                $this->assertEquals( self::$pageName, self::$lastNotifyArgs[4]->getPrefixedText() );
                $this->assertEquals( self::$pageRev->getParentId(), self::$lastNotifyArgs[5] );
@@ -136,7 +136,7 @@ class CategoryMembershipChangeTest extends MediaWikiLangTestCase {
                $this->assertTrue( strlen( self::$lastNotifyArgs[0] ) === 14 );
                $this->assertEquals( 'Category:CategoryName', self::$lastNotifyArgs[1]->getPrefixedText() );
                $this->assertEquals( 'UTSysop', self::$lastNotifyArgs[2]->getName() );
-               $this->assertEquals( '(recentchanges-page-removed-from-category: ' . self::$pageName . ', 0)',
+               $this->assertEquals( '(recentchanges-page-removed-from-category: ' . self::$pageName . ')',
                        self::$lastNotifyArgs[3] );
                $this->assertEquals( self::$pageName, self::$lastNotifyArgs[4]->getPrefixedText() );
                $this->assertEquals( self::$pageRev->getParentId(), self::$lastNotifyArgs[5] );
index ac75e55..3309352 100644 (file)
@@ -225,8 +225,8 @@ class LinksUpdateTest extends MediaWikiLangTestCase {
                        Title::newFromText( 'Baz' ),
                        [ [
                                'Baz',
-                               '[[:Template:TestingTemplate]] and [[Special:WhatLinksHere/Template:TestingTemplate|2 pages]] '
-                               . 'added to category'
+                               '[[:Template:TestingTemplate]] added to category, ' .
+                               '[[Special:WhatLinksHere/Template:TestingTemplate|this page is included within other pages]]'
                        ] ]
                );
        }
index 54178fe..656be38 100644 (file)
@@ -75,11 +75,11 @@ class CategoryMembershipChangeJobTest extends MediaWikiTestCase {
                $removedRevId = $this->editPageText( 'Blank' );
 
                $this->assertEquals(
-                       '(recentchanges-page-added-to-category: ' . self::TITLE_STRING . ', 0)',
+                       '(recentchanges-page-added-to-category: ' . self::TITLE_STRING . ')',
                        $this->getCategorizeRecentChangeForRevId( $addedRevId )->getAttribute( 'rc_comment' )
                );
                $this->assertEquals(
-                       '(recentchanges-page-removed-from-category: ' . self::TITLE_STRING . ', 0)',
+                       '(recentchanges-page-removed-from-category: ' . self::TITLE_STRING . ')',
                        $this->getCategorizeRecentChangeForRevId( $removedRevId )->getAttribute( 'rc_comment' )
                );
        }