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