jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/401753 )

Change subject: Revert "Do not collapse references on diffs/old revisions"
......................................................................


Revert "Do not collapse references on diffs/old revisions"

This reverts commit e70e72b3f124a4f8fcd8891bbb0595c7a2eff0e0.
This also reverts related commit
0864349b1db269d765b5689757b1223947b6bd05.

Change-Id: I9da46c36d8152a779ce7ac04a933197615c0cbbf
(cherry picked from commit e21bdc368b5a6e628800d0405d72a90384e75b43)
---
M repo/includes/Content/EntityContent.php
M repo/includes/ParserOutput/EntityParserOutputGenerator.php
M repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
M repo/resources/wikibase.ui.entityViewInit.js
M 
repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorFactoryTest.php
M repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
M view/autoload.php
M view/resources/wikibase/wikibase.less
A view/src/EmptyEditSectionGenerator.php
M view/src/StatementHtmlGenerator.php
A view/tests/phpunit/EmptyEditSectionGeneratorTest.php
M view/tests/phpunit/StatementHtmlGeneratorTest.php
12 files changed, 206 insertions(+), 31 deletions(-)

Approvals:
  WMDE-leszek: Looks good to me, but someone else must approve
  Chad: Looks good to me, approved
  Ladsgroup: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git a/repo/includes/Content/EntityContent.php 
b/repo/includes/Content/EntityContent.php
index bfe1061..e5605ff 100644
--- a/repo/includes/Content/EntityContent.php
+++ b/repo/includes/Content/EntityContent.php
@@ -262,7 +262,8 @@
                $entityParserOutputGeneratorFactory = 
WikibaseRepo::getDefaultInstance()->getEntityParserOutputGeneratorFactory();
 
                $outputGenerator = 
$entityParserOutputGeneratorFactory->getEntityParserOutputGenerator(
-                       $options->getUserLang()
+                       $options->getUserLang(),
+                       true
                );
 
                $entityRevision = $this->getEntityRevision( $revisionId );
diff --git a/repo/includes/ParserOutput/EntityParserOutputGenerator.php 
b/repo/includes/ParserOutput/EntityParserOutputGenerator.php
index f779ae5..c7d92ca 100644
--- a/repo/includes/ParserOutput/EntityParserOutputGenerator.php
+++ b/repo/includes/ParserOutput/EntityParserOutputGenerator.php
@@ -24,6 +24,7 @@
 use Wikibase\Repo\MediaWikiLanguageDirectionalityLookup;
 use Wikibase\Repo\MediaWikiLocalizedTextProvider;
 use Wikibase\Repo\View\RepoSpecialPageLinker;
+use Wikibase\View\EmptyEditSectionGenerator;
 use Wikibase\View\LocalizedTextProvider;
 use Wikibase\View\Template\TemplateFactory;
 use Wikibase\View\TermsListView;
@@ -90,6 +91,11 @@
        private $languageCode;
 
        /**
+        * @var bool
+        */
+       private $editable;
+
+       /**
         * @param DispatchingEntityViewFactory $entityViewFactory
         * @param ParserOutputJsConfigBuilder $configBuilder
         * @param EntityTitleLookup $entityTitleLookup
@@ -100,6 +106,7 @@
         * @param EntityDataFormatProvider $entityDataFormatProvider
         * @param ParserOutputDataUpdater[] $dataUpdaters
         * @param string $languageCode
+        * @param bool $editable
         */
        public function __construct(
                DispatchingEntityViewFactory $entityViewFactory,
@@ -111,7 +118,8 @@
                LocalizedTextProvider $textProvider,
                EntityDataFormatProvider $entityDataFormatProvider,
                array $dataUpdaters,
-               $languageCode
+               $languageCode,
+               $editable
        ) {
                $this->entityViewFactory = $entityViewFactory;
                $this->configBuilder = $configBuilder;
@@ -123,6 +131,7 @@
                $this->entityDataFormatProvider = $entityDataFormatProvider;
                $this->dataUpdaters = $dataUpdaters;
                $this->languageCode = $languageCode;
+               $this->editable = $editable;
        }
 
        /**
@@ -284,11 +293,11 @@
                        $this->languageFallbackChain
                );
 
-               $editSectionGenerator = new ToolbarEditSectionGenerator(
+               $editSectionGenerator = $this->editable ? new 
ToolbarEditSectionGenerator(
                        new RepoSpecialPageLinker(),
                        $this->templateFactory,
                        $this->textProvider
-               );
+               ) : new EmptyEditSectionGenerator();
 
                $languageDirectionalityLookup = new 
MediaWikiLanguageDirectionalityLookup();
                $languageNameLookup = new LanguageNameLookup( 
$this->languageCode );
diff --git a/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php 
b/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
index a614fca..481c971 100644
--- a/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
+++ b/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
@@ -131,10 +131,11 @@
         * Creates an EntityParserOutputGenerator to create the ParserOutput 
for the entity
         *
         * @param string $userLanguageCode
+        * @param bool $editable
         *
         * @return EntityParserOutputGenerator
         */
-       public function getEntityParserOutputGenerator( $userLanguageCode ) {
+       public function getEntityParserOutputGenerator( $userLanguageCode, 
$editable ) {
                $userLanguage = Language::factory( $userLanguageCode );
 
                return new EntityParserOutputGenerator(
@@ -147,7 +148,8 @@
                        new MediaWikiLocalizedTextProvider( $userLanguageCode ),
                        $this->entityDataFormatProvider,
                        $this->getDataUpdaters(),
-                       $userLanguageCode
+                       $userLanguageCode,
+                       $editable
                );
        }
 
diff --git a/repo/resources/wikibase.ui.entityViewInit.js 
b/repo/resources/wikibase.ui.entityViewInit.js
index e2565bf..d0ebda3 100644
--- a/repo/resources/wikibase.ui.entityViewInit.js
+++ b/repo/resources/wikibase.ui.entityViewInit.js
@@ -37,6 +37,8 @@
        }
 
        /**
+        * Builds an entity store.
+        *
         * @param {wikibase.api.RepoApi} repoApi
         * @param {string} languageCode The language code of the ui language
         * @return {wikibase.store.CachingEntityStore}
diff --git 
a/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorFactoryTest.php
 
b/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorFactoryTest.php
index 33cfb2c..cb1fb06 100644
--- 
a/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorFactoryTest.php
+++ 
b/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorFactoryTest.php
@@ -28,7 +28,9 @@
        public function testGetEntityParserOutputGenerator() {
                $parserOutputGeneratorFactory = 
$this->getEntityParserOutputGeneratorFactory();
 
-               $instance = 
$parserOutputGeneratorFactory->getEntityParserOutputGenerator( 'en' );
+               $instance = 
$parserOutputGeneratorFactory->getEntityParserOutputGenerator(
+                       'en', true
+               );
 
                $this->assertInstanceOf( EntityParserOutputGenerator::class, 
$instance );
        }
diff --git 
a/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php 
b/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
index f4e8960..717d9e5 100644
--- 
a/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
+++ 
b/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
@@ -215,7 +215,8 @@
                        $this->getMock( LocalizedTextProvider::class ),
                        $entityDataFormatProvider,
                        $dataUpdaters,
-                       'en'
+                       'en',
+                       true
                );
        }
 
@@ -403,7 +404,8 @@
                        $this->getMock( LocalizedTextProvider::class ),
                        new EntityDataFormatProvider(),
                        $dataUpdaters,
-                       'en'
+                       'en',
+                       true
                );
        }
 
diff --git a/view/autoload.php b/view/autoload.php
index c100642..c740df4 100644
--- a/view/autoload.php
+++ b/view/autoload.php
@@ -6,6 +6,7 @@
 $wgAutoloadClasses += [
        'Wikibase\\View\\DummyLocalizedTextProvider' => __DIR__ . 
'/src/DummyLocalizedTextProvider.php',
        'Wikibase\\View\\EditSectionGenerator' => __DIR__ . 
'/src/EditSectionGenerator.php',
+       'Wikibase\\View\\EmptyEditSectionGenerator' => __DIR__ . 
'/src/EmptyEditSectionGenerator.php',
        'Wikibase\\View\\EntityIdFormatterFactory' => __DIR__ . 
'/src/EntityIdFormatterFactory.php',
        'Wikibase\\View\\EntityTermsView' => __DIR__ . 
'/src/EntityTermsView.php',
        'Wikibase\\View\\EntityView' => __DIR__ . '/src/EntityView.php',
diff --git a/view/resources/wikibase/wikibase.less 
b/view/resources/wikibase/wikibase.less
index bbbdeaf..b84e2ed 100644
--- a/view/resources/wikibase/wikibase.less
+++ b/view/resources/wikibase/wikibase.less
@@ -515,8 +515,7 @@
 }
 
 /* Some UI elements are initially hidden if JS is enabled */
-.client-js 
.wikibase-entitytermsview-entitytermsforlanguagelistview.wikibase-initially-collapsed,
-.client-js body:not( .wb-diffpage ):not( .wb-oldrevpage ) 
.wikibase-initially-collapsed {
+.client-js .wikibase-initially-collapsed {
        display: none;
 }
 
diff --git a/view/src/EmptyEditSectionGenerator.php 
b/view/src/EmptyEditSectionGenerator.php
new file mode 100644
index 0000000..81dd859
--- /dev/null
+++ b/view/src/EmptyEditSectionGenerator.php
@@ -0,0 +1,55 @@
+<?php
+
+namespace Wikibase\View;
+
+use Wikibase\DataModel\Entity\EntityId;
+use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Statement\Statement;
+
+/**
+ * An EditSectionGenerator returning empty string for edit sections
+ *
+ * @license GPL-2.0+
+ * @author Adrian Heine <adrian.he...@wikimedia.de>
+ */
+class EmptyEditSectionGenerator implements EditSectionGenerator {
+
+       /**
+        * @param Statement $statement
+        *
+        * @return string Always an empty string.
+        */
+       public function getStatementEditSection( Statement $statement ) {
+               return '';
+       }
+
+       /**
+        * @param string $languageCode Unused.
+        * @param EntityId|null $entityId Unused.
+        *
+        * @return string Always an empty string.
+        */
+       public function getLabelDescriptionAliasesEditSection( $languageCode, 
EntityId $entityId = null ) {
+               return '';
+       }
+
+       /**
+        * @param EntityId|null $entityId Unused.
+        *
+        * @return string Always an empty string.
+        */
+       public function getSiteLinksEditSection( EntityId $entityId = null ) {
+               return '';
+       }
+
+       /**
+        * @param PropertyId $propertyId Unused.
+        * @param EntityId|null $entityId Unused.
+        *
+        * @return string Always an empty string.
+        */
+       public function getAddStatementToGroupSection( PropertyId $propertyId, 
EntityId $entityId = null ) {
+               return '';
+       }
+
+}
diff --git a/view/src/StatementHtmlGenerator.php 
b/view/src/StatementHtmlGenerator.php
index d576fac7..40c119b 100644
--- a/view/src/StatementHtmlGenerator.php
+++ b/view/src/StatementHtmlGenerator.php
@@ -86,6 +86,7 @@
 
                $references = $statement->getReferences();
                $referencesHtml = $this->getHtmlForReferences( $references );
+               $collapseReferences = $editSectionHtml !== '' && 
!$references->isEmpty();
 
                return $this->templateFactory->render(
                        'wikibase-statementview',
@@ -97,7 +98,7 @@
                        $editSectionHtml,
                        $referencesHeadingHtml,
                        $referencesHtml,
-                       $references->isEmpty() ? '' : 
'wikibase-initially-collapsed'
+                       $collapseReferences ? 'wikibase-initially-collapsed' : 
''
                );
        }
 
diff --git a/view/tests/phpunit/EmptyEditSectionGeneratorTest.php 
b/view/tests/phpunit/EmptyEditSectionGeneratorTest.php
new file mode 100644
index 0000000..5b73e3b
--- /dev/null
+++ b/view/tests/phpunit/EmptyEditSectionGeneratorTest.php
@@ -0,0 +1,98 @@
+<?php
+
+namespace Wikibase\View\Tests;
+
+use PHPUnit_Framework_TestCase;
+use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Snak\PropertyNoValueSnak;
+use Wikibase\DataModel\Statement\Statement;
+use Wikibase\View\EmptyEditSectionGenerator;
+
+/**
+ * @covers Wikibase\View\EmptyEditSectionGenerator
+ *
+ * @group Wikibase
+ * @group WikibaseView
+ *
+ * @license GPL-2.0+
+ * @author Adrian Heine <adrian.he...@wikimedia.de>
+ */
+class EmptyEditSectionGeneratorTest extends PHPUnit_Framework_TestCase {
+
+       /**
+        * @dataProvider getAddStatementToGroupSectionProvider
+        */
+       public function testGetAddStatementToGroupSection( $propertyId, 
$entityId ) {
+               $generator = $this->newEmptyEditSectionGenerator();
+
+               $this->assertEquals(
+                       '',
+                       $generator->getAddStatementToGroupSection( $propertyId, 
$entityId )
+               );
+       }
+
+       public function getAddStatementToGroupSectionProvider() {
+               return [
+                       [ new PropertyId( 'P1' ), null ]
+               ];
+       }
+
+       /**
+        * @dataProvider getLabelDescriptionAliasesEditSectionProvider
+        */
+       public function testGetLabelDescriptionAliasesEditSection( 
$languageCode, $entityId ) {
+               $generator = $this->newEmptyEditSectionGenerator();
+
+               $this->assertEquals(
+                       '',
+                       $generator->getLabelDescriptionAliasesEditSection( 
$languageCode, $entityId )
+               );
+       }
+
+       public function getLabelDescriptionAliasesEditSectionProvider() {
+               return [
+                       [ 'en', new PropertyId( 'P1' ) ]
+               ];
+       }
+
+       /**
+        * @dataProvider getSiteLinksEditSectionProvider
+        */
+       public function testGetSiteLinksEditSection( $entityId ) {
+               $generator = $this->newEmptyEditSectionGenerator();
+
+               $this->assertEquals(
+                       '',
+                       $generator->getSiteLinksEditSection( $entityId )
+               );
+       }
+
+       public function getSiteLinksEditSectionProvider() {
+               return [
+                       [ new PropertyId( 'P1' ) ]
+               ];
+       }
+
+       /**
+        * @dataProvider getStatementEditSection
+        */
+       public function testGetStatementEditSection( $statement ) {
+               $generator = $this->newEmptyEditSectionGenerator();
+
+               $this->assertEquals(
+                       '',
+                       $generator->getStatementEditSection( $statement )
+               );
+       }
+
+       public function getStatementEditSection() {
+               return [
+                       [ new Statement( new PropertyNoValueSnak( new 
PropertyId( 'P1' ) ) ) ]
+               ];
+       }
+
+       private function newEmptyEditSectionGenerator() {
+               return new EmptyEditSectionGenerator();
+       }
+
+}
diff --git a/view/tests/phpunit/StatementHtmlGeneratorTest.php 
b/view/tests/phpunit/StatementHtmlGeneratorTest.php
index b0b4930..99e0506 100644
--- a/view/tests/phpunit/StatementHtmlGeneratorTest.php
+++ b/view/tests/phpunit/StatementHtmlGeneratorTest.php
@@ -114,7 +114,14 @@
                return $testCases;
        }
 
-       public function testGivenNoReferences_SectionIsNotCollapsed() {
+       /**
+        * @dataProvider referencesProvider
+        */
+       public function testCollapsedReferences(
+               Statement $statement,
+               $editSectionHtml,
+               $expected
+       ) {
                $templateFactory = TemplateFactory::getDefaultInstance();
                $statementHtmlGenerator = new StatementHtmlGenerator(
                        $templateFactory,
@@ -123,30 +130,26 @@
                        new DummyLocalizedTextProvider()
                );
 
-               $snak = new PropertyNoValueSnak( 1 );
-               $statement = new Statement( $snak );
+               $html = $statementHtmlGenerator->getHtmlForStatement( 
$statement, $editSectionHtml );
 
-               $html = $statementHtmlGenerator->getHtmlForStatement( 
$statement, '<EDIT SECTION HTML>' );
-
-               $this->assertNotContains( 'wikibase-initially-collapsed', $html 
);
+               $this->assertSame(
+                       $expected ? 1 : 0,
+                       substr_count( $html, 'wikibase-initially-collapsed' )
+               );
        }
 
-       public function testGivenReferencedStatement_SectionIsCollapsed() {
-               $templateFactory = TemplateFactory::getDefaultInstance();
-               $statementHtmlGenerator = new StatementHtmlGenerator(
-                       $templateFactory,
-                       $this->getSnakHtmlGeneratorMock(),
-                       new BasicNumberLocalizer(),
-                       new DummyLocalizedTextProvider()
-               );
-
+       public function referencesProvider() {
                $snak = new PropertyNoValueSnak( 1 );
                $statement = new Statement( $snak );
-               $statement->addNewReference( $snak );
+               $referencedStatement = clone $statement;
+               $referencedStatement->addNewReference( $snak );
 
-               $html = $statementHtmlGenerator->getHtmlForStatement( 
$statement, '<EDIT SECTION HTML>' );
-
-               $this->assertContains( 'wikibase-initially-collapsed', $html );
+               return [
+                       [ $statement, '', false ],
+                       [ $statement, '<EDIT SECTION>', false ],
+                       [ $referencedStatement, '', false ],
+                       [ $referencedStatement, '<EDIT SECTION>', true ],
+               ];
        }
 
 }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I9da46c36d8152a779ce7ac04a933197615c0cbbf
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: wmf/1.31.0-wmf.15
Gerrit-Owner: Chad <ch...@wikimedia.org>
Gerrit-Reviewer: Chad <ch...@wikimedia.org>
Gerrit-Reviewer: Ladsgroup <ladsgr...@gmail.com>
Gerrit-Reviewer: WMDE-leszek <leszek.mani...@wikimedia.de>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to