Aude has uploaded a new change for review.

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


Change subject: (bug 51855) remove code that assumes site links from only one 
site group
......................................................................

(bug 51855) remove code that assumes site links from only one site group

This makes the change comments for site link changes generic,
and stores the site id instead of "lang".

This allows things work with multiple site groups (e.g. wikivoyage),
and allows in the future, more elegant comments for site link changes.

Change-Id: I071e9dad970144e12aefa1296a8cb4f057d36ab9
---
M client/includes/ChangeHandler.php
M client/includes/recentchanges/ExternalChangesLine.php
M client/tests/phpunit/includes/ChangeHandlerTest.php
3 files changed, 17 insertions(+), 39 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/56/75356/1

diff --git a/client/includes/ChangeHandler.php 
b/client/includes/ChangeHandler.php
index 8eb7ac5..66f1adf 100644
--- a/client/includes/ChangeHandler.php
+++ b/client/includes/ChangeHandler.php
@@ -836,19 +836,16 @@
                        } else if ( $diffOp instanceof \Diff\DiffOpChange ) {
                                $params['message'] = 
'wikibase-comment-sitelink-change';
 
-                               // fall back to global id... not great, but we 
have to do *something*
                                // FIXME: this code appears to be doing 
something incorrect as "best effort"
                                // rather than allowing for proper error 
handling
-                               $navIds = $this->site->getNavigationIds();
-                               $iwPrefix = isset( $navIds[0] ) ? $navIds[0] : 
$this->site->getGlobalId();
 
                                $params['sitelink'] = array(
                                        'oldlink' => array(
-                                               'lang' => $iwPrefix,
+                                               'site' => $siteGlobalId,
                                                'page' => $diffOp->getOldValue()
                                        ),
                                        'newlink' => array(
-                                               'lang' => $iwPrefix,
+                                               'site' => $siteGlobalId,
                                                'page' => $diffOp->getNewValue()
                                        )
                                );
@@ -862,18 +859,17 @@
 
                        foreach( $siteLinkDiff as $siteKey => $diffOp ) {
                                $site = $this->sites->getSite( $siteKey );
+
                                if( !$site ) {
                                        trigger_error( "Could not get site with 
globalId $siteKey.", E_USER_WARNING );
                                        continue;
                                }
-                               // assumes interwiki prefix is same as lang code
-                               // true for wikipedia but need todo more 
robustly
-                               $iwPrefix = $site->getLanguageCode();
+
                                if ( $diffOp instanceof \Diff\DiffOpAdd ) {
                                        $params['message'] = $messagePrefix . 
'add';
                                        $params['sitelink'] = array(
                                                'newlink' =>  array(
-                                                       'lang' => $iwPrefix,
+                                                       'site' => $siteKey,
                                                        'page' => 
$diffOp->getNewValue()
                                                )
                                        );
@@ -881,18 +877,18 @@
                                        $params['message'] = $messagePrefix . 
'remove';
                                        $params['sitelink'] = array(
                                                'oldlink' => array(
-                                                       'lang' => $iwPrefix,
+                                                       'site' => $siteKey,
                                                        'page' => 
$diffOp->getOldValue()
                                                )
                                        );
                                } else if ( $diffOp instanceof 
\Diff\DiffOpChange ) {
                                        $params['sitelink'] = array(
                                                'oldlink' => array(
-                                                       'lang' => $iwPrefix,
+                                                       'site' => $siteKey,
                                                        'page' => 
$diffOp->getOldValue()
                                                ),
                                                'newlink' => array(
-                                                       'lang' => $iwPrefix,
+                                                       'site' => $siteKey,
                                                        'page' => 
$diffOp->getNewValue()
                                                )
                                        );
diff --git a/client/includes/recentchanges/ExternalChangesLine.php 
b/client/includes/recentchanges/ExternalChangesLine.php
index 49ab4a1..ff02ba4 100644
--- a/client/includes/recentchanges/ExternalChangesLine.php
+++ b/client/includes/recentchanges/ExternalChangesLine.php
@@ -148,27 +148,9 @@
                                // @todo: provide a link to the entity
                                $message = wfMessage( 'wikibase-comment-linked' 
)->text();
                        } else if ( array_key_exists( 'sitelink', $comment ) ) {
-                               $sitelinks = $comment['sitelink'];
-                               if ( array_key_exists( 'oldlink', $sitelinks ) 
&& array_key_exists( 'newlink', $sitelinks ) ) {
-                                       $oldLink = self::wikiLink( 
$sitelinks['oldlink']['page'], $sitelinks['oldlink']['lang'] );
-                                       $newLink = self::wikiLink( 
$sitelinks['newlink']['page'], $sitelinks['newlink']['lang'] );
-                                       $param = array( $oldLink, $newLink );
-                               } else if ( array_key_exists( 'oldlink', 
$sitelinks ) ) {
-                                       $param = self::wikiLink( 
$sitelinks['oldlink']['page'], $sitelinks['oldlink']['lang'] );
-                               } else if ( array_key_exists( 'newlink', 
$sitelinks ) ) {
-                                       $param = self::wikiLink( 
$sitelinks['newlink']['page'], $sitelinks['newlink']['lang'] );
-                               }
-
-                               if ( $param !== null ) {
-                                       if ( is_array( $param ) ) {
-                                               $message = wfMessage( 
$comment['message'] )->rawParams( $param[0], $param[1] )->parse();
-                                       } else {
-                                               $message = wfMessage( 
$comment['message'] )->rawParams( $param )->parse();
-                                       }
-                               }
-                       }
-
-                       if ( $message === null ) {
+                               // @fixme site link change message
+                               $message = wfMessage( 'wikibase-comment-update' 
)->text();
+                       } else {
                                $message = wfMessage( $comment['message'] 
)->text();
                        }
                } else {
diff --git a/client/tests/phpunit/includes/ChangeHandlerTest.php 
b/client/tests/phpunit/includes/ChangeHandlerTest.php
index 095f13e..484bf08 100644
--- a/client/tests/phpunit/includes/ChangeHandlerTest.php
+++ b/client/tests/phpunit/includes/ChangeHandlerTest.php
@@ -892,7 +892,7 @@
 //                             array( 'q100' => array( 'Emmy' ) ),
 //                             array(
 //                                     'sitelink' => array(
-//                                             'newlink' => array( 'lang' => 
'de', 'page' => 'Dummy' ),
+//                                             'newlink' => array( 'site' => 
'dewiki', 'page' => 'Dummy' ),
 //                                     ),
 //                                     'message' => 
'wikibase-comment-sitelink-add'
 //                             )
@@ -903,8 +903,8 @@
 //                             array( 'q100' => array( 'Emmy' ) ),
 //                             array(
 //                                     'sitelink' => array(
-//                                             'oldlink' => array( 'lang' => 
'de', 'page' => 'Dummy' ),
-//                                             'newlink' => array( 'lang' => 
'de', 'page' => 'Dummy2' ),
+//                                             'oldlink' => array( 'site' => 
'dewiki', 'page' => 'Dummy' ),
+//                                             'newlink' => array( 'site' => 
'dewiki', 'page' => 'Dummy2' ),
 //                                     ),
 //                                     'message' => 
'wikibase-comment-sitelink-change'
 //                             )
@@ -915,8 +915,8 @@
                                array( 'q100' => array( 'Emmy' ) ),
                                array(
                                        'sitelink' => array(
-                                               'oldlink' => array( 'lang' => 
'en', 'page' => 'Emmy' ),
-                                               'newlink' => array( 'lang' => 
'en', 'page' => 'Emmy2' ),
+                                               'oldlink' => array( 'site' => 
'enwiki', 'page' => 'Emmy' ),
+                                               'newlink' => array( 'site' => 
'enwiki', 'page' => 'Emmy2' ),
                                        ),
                                        'message' => 
'wikibase-comment-sitelink-change'
                                )
@@ -927,7 +927,7 @@
                                array( 'q100' => array( 'Emmy2' ) ),
                                array(
                                        'sitelink' => array(
-                                               'oldlink' => array( 'lang' => 
'de', 'page' => 'Dummy2' ),
+                                               'oldlink' => array( 'site' => 
'dewiki', 'page' => 'Dummy2' ),
                                        ),
                                        'message' => 
'wikibase-comment-sitelink-remove'
                                )

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I071e9dad970144e12aefa1296a8cb4f057d36ab9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: mw1.22-wmf11
Gerrit-Owner: Aude <aude.w...@gmail.com>

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

Reply via email to