Free metadata toggle script from wikibits.js dependencies; rename to mediawiki.action...
authorLeo Koppelkamm <diebuche@users.mediawiki.org>
Sat, 16 Apr 2011 11:54:43 +0000 (11:54 +0000)
committerLeo Koppelkamm <diebuche@users.mediawiki.org>
Sat, 16 Apr 2011 11:54:43 +0000 (11:54 +0000)
includes/ImagePage.php
resources/Resources.php
resources/mediawiki.action/mediawiki.action.view.metadata.js [new file with mode: 0644]
skins/common/metadata.js [deleted file]

index 1ac22a3..cdaac24 100644 (file)
@@ -156,7 +156,7 @@ class ImagePage extends Article {
                if ( $showmeta ) {
                        $wgOut->addHTML( Xml::element( 'h2', array( 'id' => 'metadata' ), wfMsg( 'metadata' ) ) . "\n" );
                        $wgOut->addWikiText( $this->makeMetadataTable( $formattedMetadata ) );
-                       $wgOut->addModules( array( 'mediawiki.legacy.metadata' ) );
+                       $wgOut->addModules( array( 'mediawiki.action.view.metadata' ) );
                }
                
                $css = $this->repo->getDescriptionStylesheetUrl();
index e61045b..a2dbb32 100644 (file)
@@ -416,6 +416,10 @@ return array(
        'mediawiki.action.view.rightClickEdit' => array(
                'scripts' => 'resources/mediawiki.action/mediawiki.action.view.rightClickEdit.js',
        ),
+       'mediawiki.action.view.metadata' => array(
+               'scripts' => 'resources/mediawiki.action/mediawiki.action.view.metadata.js',
+               'messages' => array( 'metadata-expand', 'metadata-collapse' ),
+       ),
        'mediawiki.action.watch.ajax' => array(
                'scripts' => 'resources/mediawiki.action/mediawiki.action.watch.ajax.js',
                'dependencies' => 'mediawiki.util',
@@ -555,13 +559,6 @@ return array(
                'localBasePath' => "{$GLOBALS['IP']}/skins",
                'dependencies' => 'mediawiki.legacy.wikibits',
        ),
-       'mediawiki.legacy.metadata' => array(
-               'scripts' => 'common/metadata.js',
-               'remoteBasePath' => $GLOBALS['wgStylePath'],
-               'localBasePath' => "{$GLOBALS['IP']}/skins",
-               'dependencies' => 'mediawiki.legacy.wikibits',
-               'messages' => array( 'metadata-expand', 'metadata-collapse' ),
-       ),
        'mediawiki.legacy.mwsuggest' => array(
                'scripts' => 'common/mwsuggest.js',
                'remoteBasePath' => $GLOBALS['wgStylePath'],
diff --git a/resources/mediawiki.action/mediawiki.action.view.metadata.js b/resources/mediawiki.action/mediawiki.action.view.metadata.js
new file mode 100644 (file)
index 0000000..a019460
--- /dev/null
@@ -0,0 +1,38 @@
+// Exif metadata display for MediaWiki file uploads
+//
+// Add an expand/collapse link and collapse by default if set to
+// (with JS disabled, user will see all items)
+//
+
+$( document ).ready( function() {
+       var showText = mw.msg( 'metadata-expand' );
+       var hideText = mw.msg( 'metadata-collapse' );
+
+       var $table = $( '#mw_metadata' );
+       var $tbody = $table.find( 'tbody' );
+       if ( !$tbody.length ) {
+               return;
+       }
+
+       var $row = $( '<tr></tr>' );
+       var $col = $( '<td colspan="2"></td>' );
+
+       var $link = $( '<a></a>', {
+               'text': showText
+       }).click(function() {
+               if ( $table.is( '.collapsed' ) ) {
+                       $( this ).text( hideText );
+               } else {
+                       $( this ).text( showText );
+               }
+               $table.toggleClass( 'expanded, collapsed' );
+               return false;
+       });
+
+       $col.append( $link );
+       $row.append( $col );
+       $tbody.append( $row );
+
+       // And collapse!
+       $table.addClass( 'collapsed' );
+} );
diff --git a/skins/common/metadata.js b/skins/common/metadata.js
deleted file mode 100644 (file)
index 7123c5f..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-// Exif metadata display for MediaWiki file uploads
-//
-// Add an expand/collapse link and collapse by default if set to
-// (with JS disabled, user will see all items)
-//
-// attachMetadataToggle('mw_metadata', 'More...', 'Fewer...');
-
-window.attachMetadataToggle = function( tableId, showText, hideText ) {
-       if ( document.createTextNode ) {
-               var box = document.getElementById( tableId );
-               if ( !box ) {
-                       return false;
-               }
-
-               var tbody = box.getElementsByTagName('tbody')[0];
-
-               var row = document.createElement( 'tr' );
-
-               var col = document.createElement( 'td' );
-               col.colSpan = 2;
-
-               var link = document.createElement( 'a' );
-               link.href = '#';
-
-               link.onclick = function() {
-                       if ( box.className == 'mw_metadata collapsed' ) {
-                               changeText( link, hideText );
-                               box.className = 'mw_metadata expanded';
-                       } else {
-                               changeText( link, showText );
-                               box.className = 'mw_metadata collapsed';
-                       }
-                       return false;
-               };
-
-               var text = document.createTextNode( hideText );
-
-               link.appendChild( text );
-               col.appendChild( link );
-               row.appendChild( col );
-               tbody.appendChild( row );
-
-               // And collapse!
-               link.onclick();
-
-               return true;
-       }
-       return false;
-};
-
-$( document ).ready( function() { 
-       attachMetadataToggle( 'mw_metadata', mw.msg( 'metadata-expand' ), mw.msg( 'metadata-collapse' ) );
-} );