Krinkle has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/395159 )

Change subject: [WIP] ImagePage: Create metadata table collapse button in PHP
......................................................................

[WIP] ImagePage: Create metadata table collapse button in PHP

Currently broken because makeMetadataTable() is treated as wikitext
and <a> is not valid in wikitext.

Change-Id: I05c06bdd4428f0d71a3c154c28237ba0bd57cda7
---
M includes/page/ImagePage.php
M resources/src/mediawiki.action/mediawiki.action.view.filepage.css
M resources/src/mediawiki.action/mediawiki.action.view.metadata.css
M resources/src/mediawiki.action/mediawiki.action.view.metadata.js
4 files changed, 51 insertions(+), 28 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/59/395159/1

diff --git a/includes/page/ImagePage.php b/includes/page/ImagePage.php
index 1dcdc65..46400c4 100644
--- a/includes/page/ImagePage.php
+++ b/includes/page/ImagePage.php
@@ -267,6 +267,20 @@
                                );
                        }
                }
+               // Create button for metadata.js
+               $r .= Html::rawElement( 'tr',
+                       [ 'class' => 'mw-metadata-show-hide-extended' ],
+                       Html::rawElement( 'td',
+                               [ 'colspan' => '2' ],
+                               Html::element( 'a',
+                                       [
+                                               'role' => 'button',
+                                               'tabindex' => '0'
+                                       ],
+                                       $this->getContext()->msg( 
'metadata-expand' )
+                               )
+                       )
+               );
                $r .= "</table>\n</div>\n";
                return $r;
        }
diff --git a/resources/src/mediawiki.action/mediawiki.action.view.filepage.css 
b/resources/src/mediawiki.action/mediawiki.action.view.filepage.css
index b643d76..a49db48 100644
--- a/resources/src/mediawiki.action/mediawiki.action.view.filepage.css
+++ b/resources/src/mediawiki.action/mediawiki.action.view.filepage.css
@@ -113,7 +113,15 @@
 }
 
 .client-js .mw_metadata.collapsed .mw-metadata-collapsible,
+.client-nojs .mw-metadata-show-hide-extended,
 /* Keep tr.collapsible for back-compat with cached HTML */
 .client-js .mw_metadata.collapsed tr.collapsable {
        display: none;
 }
+
+
+@media print {
+       .mw-metadata-show-hide-extended {
+               display: none;
+       }
+}
diff --git a/resources/src/mediawiki.action/mediawiki.action.view.metadata.css 
b/resources/src/mediawiki.action/mediawiki.action.view.metadata.css
index f21b111..c93ff4b2 100644
--- a/resources/src/mediawiki.action/mediawiki.action.view.metadata.css
+++ b/resources/src/mediawiki.action/mediawiki.action.view.metadata.css
@@ -13,7 +13,7 @@
 }
 
 @media print {
-       .mw_metadata .mw-metadata-show-hide-extended {
+       .mw-metadata-show-hide-extended {
                display: none;
        }
 }
diff --git a/resources/src/mediawiki.action/mediawiki.action.view.metadata.js 
b/resources/src/mediawiki.action/mediawiki.action.view.metadata.js
index ac927ae..4b0ab40 100644
--- a/resources/src/mediawiki.action/mediawiki.action.view.metadata.js
+++ b/resources/src/mediawiki.action/mediawiki.action.view.metadata.js
@@ -14,38 +14,39 @@
                        return;
                }
                $tables.each( function () {
-                       var $link,
+                       var $link = $table.find( 
'.mw-metadata-show-hide-extended a' ),
                                expandText = mw.msg( 'metadata-expand' ),
                                collapseText = mw.msg( 'metadata-collapse' ),
                                $table = $( this );
 
-                       $link = $( '<a>' )
-                               .text( expandText )
-                               .attr( {
-                                       role: 'button',
-                                       tabindex: 0
-                               } )
-                               .on( 'click keypress', function ( e ) {
-                                               if (
-                                                       e.type === 'click' ||
-                                                       e.type === 'keypress' 
&& e.which === 13
-                                               ) {
-                                                       if ( $table.hasClass( 
'collapsed' ) ) {
-                                                               // From 
collapsed to expanded. Button will now collapse.
-                                                               $( this ).text( 
collapseText );
-                                                       } else {
-                                                               // From 
expanded to collapsed. Button will now expand.
-                                                               $( this ).text( 
expandText );
-                                                       }
-                                                       $table.toggleClass( 
'collapsed' );
-                                               }
+                       if ( !$link.length ) {
+                               $link = $( '<a>' )
+                                       .text( expandText )
+                                       .attr( {
+                                               role: 'button',
+                                               tabindex: 0
                                        } );
-
-                       $table.find( 'tbody' ).append(
-                               $( '<tr 
class="mw-metadata-show-hide-extended"></tr>' ).append(
-                                       $( '<td colspan="2"></td>' ).append( 
$link )
-                               )
-                       );
+                               $table.find( 'tbody' ).append(
+                                       $( '<tr 
class="mw-metadata-show-hide-extended"></tr>' ).append(
+                                               $( '<td colspan="2"></td>' 
).append( $link )
+                                       )
+                               );
+                       }
+                       $link.on( 'click keypress', function ( e ) {
+                               if (
+                                       e.type === 'click' ||
+                                       e.type === 'keypress' && e.which === 13
+                               ) {
+                                       if ( $table.hasClass( 'collapsed' ) ) {
+                                               // From collapsed to expanded. 
Button will now collapse.
+                                               $( this ).text( collapseText );
+                                       } else {
+                                               // From expanded to collapsed. 
Button will now expand.
+                                               $( this ).text( expandText );
+                                       }
+                                       $table.toggleClass( 'collapsed' );
+                               }
+                       } );
                } );
 
                // Initial collapsed state

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I05c06bdd4428f0d71a3c154c28237ba0bd57cda7
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Krinkle <[email protected]>

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

Reply via email to