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

Change subject: fixed error message in Special:SetSiteLink
......................................................................


fixed error message in Special:SetSiteLink

Change-Id: I32088d940effa47d863efc1b5e47e241f6e6e304
---
M repo/includes/content/ItemContent.php
M repo/includes/specials/SpecialModifyEntity.php
M repo/includes/specials/SpecialSetSiteLink.php
3 files changed, 29 insertions(+), 24 deletions(-)

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



diff --git a/repo/includes/content/ItemContent.php 
b/repo/includes/content/ItemContent.php
index 8517337..543744e 100644
--- a/repo/includes/content/ItemContent.php
+++ b/repo/includes/content/ItemContent.php
@@ -177,11 +177,11 @@
                $site = $siteSqlStore->getSite( $conflict['siteId'] );
                $pageUrl = $site->getPageUrl( $conflict['sitePage'] );
 
-               $msg = new \Message( 'wikibase-error-sitelink-already-used' );
-               $msg->rawParams( $pageUrl );
-               $msg->params( array( $conflict['sitePage'], 
$conflictingPage->getTitle()->getFullText() ) );
-
-               return $msg;
+               // $pageUrl shouldn't be a raw param (it's causing the link not 
to be parsed)
+               return new \Message(
+                       'wikibase-error-sitelink-already-used',
+                       array( $pageUrl, $conflict['sitePage'], 
$conflictingPage->getTitle()->getFullText() )
+               );
        }
 
        /**
diff --git a/repo/includes/specials/SpecialModifyEntity.php 
b/repo/includes/specials/SpecialModifyEntity.php
index 7a5ab40..3c1992d 100644
--- a/repo/includes/specials/SpecialModifyEntity.php
+++ b/repo/includes/specials/SpecialModifyEntity.php
@@ -81,7 +81,7 @@
                        $this->setForm();
                }
                else {
-                       //TODO: need conflict detection??
+                       // TODO: need conflict detection??
                        $editEntity = new \Wikibase\EditEntity( 
$this->entityContent, $this->getUser(), false, $this->getContext() );
                        $editEntity->attemptSave(
                                $summary,
@@ -89,8 +89,10 @@
                                $this->getRequest()->getVal( 'wpEditToken' )
                        );
 
-                       if ( !$editEntity->isSuccess() ) {
-                               $editEntity->showErrorPage();
+                       if ( !$editEntity->isSuccess() && 
$editEntity->getStatus()->getErrorsArray() ) {
+                               $errors = 
$editEntity->getStatus()->getErrorsArray();
+                               $this->showErrorHTML( $errors[0]->parse() );
+                               $this->setForm();
                        }
                        else {
                                $entityUrl = 
$this->entityContent->getTitle()->getFullUrl();
diff --git a/repo/includes/specials/SpecialSetSiteLink.php 
b/repo/includes/specials/SpecialSetSiteLink.php
index 48168be..0e6638b 100644
--- a/repo/includes/specials/SpecialSetSiteLink.php
+++ b/repo/includes/specials/SpecialSetSiteLink.php
@@ -253,37 +253,40 @@
         * @return Status
         */
        protected function setSiteLink( $entityContent, $siteId, $pageName, 
&$summary ) {
-               $site = \Sites::singleton()->getSite( $siteId );
                $status = \Status::newGood();
+               $site = \Sites::singleton()->getSite( $siteId );
 
                if ( $site === null ) {
-                       $status->error( 'wikibase-setsitelink-invalid-site', 
$siteId );
+                       $status->fatal( 'wikibase-setsitelink-invalid-site', 
$siteId );
                        return $status;
                }
 
-               if ( $pageName !== '' ) {
-                       // Don't try to normalize an empty string (which means: 
remove the link)
-                       $pageName = $site->normalizePageName( $pageName );
+               /**
+                * @var Item $item
+                */
+               $item = $entityContent->getItem();
 
-                       if ( $pageName === false ) {
-                               $status->error( 
'wikibase-error-ui-no-external-page' );
-                               return $status;
-                       }
-               }
-
+               // Empty page means remove site link
                if ( $pageName === '' ) {
                        try {
-                               $link = 
$entityContent->getItem()->getSimpleSiteLink( $siteId );
-                       } catch( \OutOfBoundsException $e ) {
-                               $status->error( 
'wikibase-setsitelink-remove-failed' );
+                               $item->getSimpleSiteLink( $siteId );
+                       }
+                       catch( \OutOfBoundsException $ex ) {
+                               $status->fatal( 
'wikibase-setsitelink-remove-failed' );
                                return $status;
                        }
-                       $entityContent->getItem()->removeSiteLink( $siteId );
+                       $item->removeSiteLink( $siteId );
                        $i18n = 'wbsetsitelink-remove';
                }
                else {
+                       // Try to normalize the page name
+                       $pageName = $site->normalizePageName( $pageName );
+                       if ( $pageName === false ) {
+                               $status->fatal( 
'wikibase-error-ui-no-external-page' );
+                               return $status;
+                       }
                        $siteLink = new SimpleSiteLink( $siteId, $pageName );
-                       $entityContent->getItem()->addSimpleSiteLink( $siteLink 
);
+                       $item->addSimpleSiteLink( $siteLink );
                        $i18n = 'wbsetsitelink-set';
                }
 

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I32088d940effa47d863efc1b5e47e241f6e6e304
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Bene <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Hoo man <[email protected]>
Gerrit-Reviewer: Jeroen De Dauw <[email protected]>
Gerrit-Reviewer: Reedy <[email protected]>
Gerrit-Reviewer: Tobias Gritschacher <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to