Bene has uploaded a new change for review.

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

Change subject: Put the label into the .firstHeading element
......................................................................

Put the label into the .firstHeading element

This avoids having two h1 elements on item pages
and helps the mobile extension to render the page
correctly (T93534).

Change-Id: I409f97705beba689383394591df7679231f37039
---
M repo/includes/EntityParserOutputGenerator.php
M view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js
M 
view/resources/jquery/wikibase/themes/default/jquery.wikibase.entitytermsview.css
M view/resources/templates.php
M view/resources/wikibase/wikibase.css
M view/src/EntityTermsView.php
M view/src/EntityView.php
7 files changed, 55 insertions(+), 21 deletions(-)


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

diff --git a/repo/includes/EntityParserOutputGenerator.php 
b/repo/includes/EntityParserOutputGenerator.php
index 84efaa8..951504c 100644
--- a/repo/includes/EntityParserOutputGenerator.php
+++ b/repo/includes/EntityParserOutputGenerator.php
@@ -363,6 +363,10 @@
                $parserOutput->setText( $html );
                $parserOutput->setExtensionData( 'wikibase-view-chunks', 
$entityView->getPlaceholders() );
 
+               // Set the display title to display the label together with the 
item's id
+               $titleHtml = $entityView->getTitleHtml( $entityRevision );
+               $parserOutput->setDisplayTitle( $titleHtml );
+
                // Force parser cache split by whether edit links are show.
                // MediaWiki core has the ability to split on editsection, but 
does not trigger it
                // automatically when $parserOptions->getEditSection() is 
called. Presumably this
diff --git a/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js 
b/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js
index a26d60c..2979347 100644
--- a/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js
+++ b/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js
@@ -64,7 +64,9 @@
                        '' // toolbar placeholder
                ],
                templateShortCuts: {
-                       $headingLabel: 
'.wikibase-entitytermsview-heading-label',
+                       // The label is not included in this container but in 
h1.firstHeading
+                       // However, we must provide an existing element, so the 
container
+                       $headingLabel: '.wikibase-entitytermsview-heading',
                        $headingAliases: 
'.wikibase-entitytermsview-heading-aliases',
                        $headingDescription: 
'.wikibase-entitytermsview-heading-description',
                        $entitytermsforlanguagelistviewContainer:
@@ -105,6 +107,8 @@
 
                PARENT.prototype._create.call( this );
 
+               this.$headingLabel = $( '.firstHeading 
.wikibase-entitytermsview-heading-label' );
+
                var self = this;
 
                this.element
diff --git 
a/view/resources/jquery/wikibase/themes/default/jquery.wikibase.entitytermsview.css
 
b/view/resources/jquery/wikibase/themes/default/jquery.wikibase.entitytermsview.css
index 2bb2b61..8270413 100644
--- 
a/view/resources/jquery/wikibase/themes/default/jquery.wikibase.entitytermsview.css
+++ 
b/view/resources/jquery/wikibase/themes/default/jquery.wikibase.entitytermsview.css
@@ -9,12 +9,12 @@
        width: 100%;
 }
 
-.wikibase-entitytermsview .wikibase-entitytermsview-heading 
.wikibase-entitytermsview-heading-label 
.wikibase-entitytermsview-heading-label-id {
+.firstHeading .wikibase-entitytermsview-heading-label 
.wikibase-entitytermsview-heading-label-id {
        color: grey;
        font-size: 0.6em;
        margin-left: 0.4em;
 }
-.wikibase-entitytermsview .wikibase-entitytermsview-heading 
.wikibase-entitytermsview-heading-label 
.wikibase-entitytermsview-heading-label-id:before {
+.firstHeading .wikibase-entitytermsview-heading-label 
.wikibase-entitytermsview-heading-label-id:before {
        /* Prevent id being hidden in ellipsis on very long labels: */
        content: ' ';
 }
@@ -37,7 +37,7 @@
        padding: 0;
 }
 
-.wikibase-entitytermsview .wikibase-entitytermsview-heading 
.wikibase-entitytermsview-heading-label,
+.firstHeading .wikibase-entitytermsview-heading-label,
 .wikibase-entitytermsview .wikibase-entitytermsview-heading 
.wikibase-entitytermsview-heading-description {
        word-wrap: break-word;
 }
diff --git a/view/resources/templates.php b/view/resources/templates.php
index 627acb5..57575f4 100644
--- a/view/resources/templates.php
+++ b/view/resources/templates.php
@@ -153,16 +153,20 @@
 <li class="wikibase-aliasesview-list-item">$1</li>
 HTML;
 
+       $templates['wikibase-title'] =
+<<<HTML
+<span class="wikibase-entitytermsview-heading-label $1"><!-- 
wikibase-entitytermsview-label -->$2</span>
+HTML;
+
        $templates['wikibase-entitytermsview'] =
 <<<HTML
 <div class="wikibase-entitytermsview">
        <div class="wikibase-entitytermsview-heading">
-               <h1 class="wikibase-entitytermsview-heading-label $1"><!-- 
wikibase-entitytermsview-label -->$2</h1>
-               <div class="wikibase-entitytermsview-heading-description 
$3">$4</div>
-               <div class="wikibase-entitytermsview-heading-aliases $5"><!-- 
wikibase-entitytermsview-aliases -->$6</div>
+               <div class="wikibase-entitytermsview-heading-description 
$1">$2</div>
+               <div class="wikibase-entitytermsview-heading-aliases $3"><!-- 
wikibase-entitytermsview-aliases -->$4</div>
        </div>
-       <!-- ? wikibase-toolbar -->$9
-       <div class="wikibase-entitytermsview-entitytermsforlanguagelistview 
$8"><!-- wikibase-entitytermsforlanguagelistview -->$7</div>
+       <!-- ? wikibase-toolbar -->$7
+       <div class="wikibase-entitytermsview-entitytermsforlanguagelistview 
$6"><!-- wikibase-entitytermsforlanguagelistview -->$5</div>
 </div>
 HTML;
 
diff --git a/view/resources/wikibase/wikibase.css 
b/view/resources/wikibase/wikibase.css
index 73cf12f..45d590e 100644
--- a/view/resources/wikibase/wikibase.css
+++ b/view/resources/wikibase/wikibase.css
@@ -13,16 +13,6 @@
        position: fixed;
 }
 
-/* since a custom heading is being used on the entity pages, the native h1 tag 
has to be hidden */
-.wb-entitypage .firstHeading {
-       display: none;
-}
-/* on special entity pages, the native heading is still being used and shall 
be shown */
-.wb-diffpage .firstHeading,
-.wb-oldrevpage .firstHeading {
-       display: block;
-}
-
 .wb-entitypage .ui-state-disabled {
        opacity: 1;
 }
diff --git a/view/src/EntityTermsView.php b/view/src/EntityTermsView.php
index 967f43e..0a44e41 100644
--- a/view/src/EntityTermsView.php
+++ b/view/src/EntityTermsView.php
@@ -81,8 +81,6 @@
                $aliasGroups = $fingerprint->getAliasGroups();
 
                return $this->templateFactory->render( 
'wikibase-entitytermsview',
-                       $labels->hasTermForLanguage( $this->languageCode ) ? '' 
: 'wb-empty',
-                       $this->getHtmlForLabel( $labels, $entityId ),
                        $descriptions->hasTermForLanguage( $this->languageCode 
) ? '' : 'wb-empty',
                        $this->getDescriptionText( $descriptions ),
                        $aliasGroups->hasGroupForLanguage( $this->languageCode 
) ? '' : 'wb-empty',
@@ -96,6 +94,24 @@
        }
 
        /**
+        * @param Fingerprint $fingerprint
+        * @param EntityId $entityId
+        *
+        * @return string
+        */
+       public function getTitleHtml(
+               Fingerprint $fingerprint,
+               EntityId $entityId = null
+       ) {
+               $labels = $fingerprint->getLabels();
+
+               return $this->templateFactory->render( 'wikibase-title',
+                       $labels->hasTermForLanguage( $this->languageCode ) ? '' 
: 'wb-empty',
+                       $this->getHtmlForLabel( $labels, $entityId )
+               );
+       }
+
+       /**
         * @param TermList $labels the list of labels to render
         * @param EntityId|null $entityId the id of the fingerprint's entity
         *
diff --git a/view/src/EntityView.php b/view/src/EntityView.php
index 98faecb..3e9c0d9 100644
--- a/view/src/EntityView.php
+++ b/view/src/EntityView.php
@@ -106,6 +106,22 @@
                return $html;
        }
 
+       /**
+        * Returns the html used for the title of the page.
+        * @see ParserOutput::setDisplayTitle
+        *
+        * @since 0.5
+        *
+        * @param EntityRevision $entityRevision
+        *
+        * @return string HTML
+        */
+       public function getTitleHtml( EntityRevision $entityRevision ) {
+               $entity = $entityRevision->getEntity();
+
+               return $this->entityTermsView->getTitleHtml( 
$entity->getFingerprint(), $entity->getId() );
+       }
+
        private function getLoadingSpinnerInlineScript() {
                // Show loading spinner as long as JavaScript is initialising.
                // The fastest way to show it is placing the script right after 
the corresponding HTML.

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I409f97705beba689383394591df7679231f37039
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Bene <[email protected]>

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

Reply via email to