(bug 17456) implement CollapsibleTables in core javascript. Using ResourceLoader...
authorHappy-melon <happy-melon@users.mediawiki.org>
Thu, 23 Dec 2010 00:06:58 +0000 (00:06 +0000)
committerHappy-melon <happy-melon@users.mediawiki.org>
Thu, 23 Dec 2010 00:06:58 +0000 (00:06 +0000)
includes/ChangesList.php
includes/OutputPage.php
resources/Resources.php
resources/jquery.effects/jquery.effects.fade.js [new file with mode: 0644]
resources/mediawiki.special/mediawiki.special.changeslist.css [new file with mode: 0644]
resources/skins.common/skins.common.css [new file with mode: 0644]
resources/skins.common/skins.common.js [new file with mode: 0644]
resources/skins.common/skins.common.print.css [new file with mode: 0644]
skins/common/enhancedchanges.js [deleted file]
skins/common/shared.css

index 5de3b06..4597529 100644 (file)
@@ -30,7 +30,7 @@ class RCCacheEntry extends RecentChange {
 class ChangesList {
        public $skin;
        protected $watchlist = false;
-
+       
        /**
        * Changeslist contructor
        * @param $skin Skin
@@ -81,21 +81,19 @@ class ChangesList {
                }
        }
 
-
        /**
         * Returns the appropriate flags for new page, minor change and patrolling
-        * @param $new Boolean
-        * @param $minor Boolean
-        * @param $patrolled Boolean
+        * @param $flags Associative array of 'flag' => Bool
         * @param $nothing String to use for empty space
-        * @param $bot Boolean
         * @return String
         */
-       protected function recentChangesFlags( $new, $minor, $patrolled, $nothing = '&#160;', $bot = false ) {
-               $f = $new ? self::flag( 'newpage' ) : $nothing;
-               $f .= $minor ? self::flag( 'minor' ) : $nothing;
-               $f .= $bot ? self::flag( 'bot' ) : $nothing;
-               $f .= $patrolled ? self::flag( 'unpatrolled' ) : $nothing;
+       protected function recentChangesFlags( $flags, $nothing = '&#160;' ) {
+               $f = '';
+               foreach( array( 'newpage', 'minor', 'bot', 'unpatrolled' ) as $flag ){
+                       $f .= isset( $flags[$flag] ) && $flags[$flag]
+                               ? self::flag( $flag )
+                               : $nothing;
+               }
                return $f;
        }
 
@@ -111,22 +109,18 @@ class ChangesList {
        public static function flag( $key ) {
                static $messages = null;
                if ( is_null( $messages ) ) {
-                       foreach ( explode( ' ', 'minoreditletter boteditletter newpageletter ' .
-                       'unpatrolledletter recentchanges-label-minor recentchanges-label-bot ' .
-                       'recentchanges-label-newpage recentchanges-label-unpatrolled' ) as $msg ) {
-                               $messages[$msg] = wfMsgExt( $msg, 'escapenoentities' );
+                       $messages = array( 
+                               'newpage' => array( 'newpageletter', 'recentchanges-label-newpage' ), 
+                               'minor' => array( 'minoreditletter', 'recentchanges-label-minor' ), 
+                               'bot' => array( 'boteditletter', 'recentchanges-label-bot' ), 
+                               'unpatrolled' => array( 'unpatrolledletter', 'recentchanges-label-unpatrolled' ), 
+                       );
+                       foreach( $messages as $key => &$value ) {
+                               $value[0] = wfMsgExt( $value[0], 'escapenoentities' );
+                               $value[1] = wfMsgExt( $value[1], 'escapenoentities' );
                        }
                }
-               # Inconsistent naming, bleh
-               if ( $key == 'newpage' || $key == 'unpatrolled' ) {
-                       $key2 = $key;
-               } else {
-                       $key2 = $key . 'edit';
-               }
-               return "<abbr class=\"$key\" title=\""
-                       . $messages["recentchanges-label-$key"] . "\">"
-                       . $messages["${key2}letter"]
-                       . '</abbr>';
+               return "<abbr class='$key' title='" . $messages[$key][1] . "'>" . $messages[$key][0] . '</abbr>';
        }
 
        /**
@@ -507,8 +501,15 @@ class OldChangesList extends ChangesList {
                } else {
                        $this->insertDiffHist( $s, $rc, $unpatrolled );
                        # M, N, b and ! (minor, new, bot and unpatrolled)
-                       $s .= $this->recentChangesFlags( $rc->mAttribs['rc_new'], $rc->mAttribs['rc_minor'],
-                               $unpatrolled, '', $rc->mAttribs['rc_bot'] );
+                       $s .= $this->recentChangesFlags( 
+                               array(
+                                       'new' => $rc->mAttribs['rc_new'], 
+                                       'minor' => $rc->mAttribs['rc_minor'],
+                                       'unpatrolled' => $unpatrolled, 
+                                       'bot' => $rc->mAttribs['rc_bot'] 
+                               ),
+                               ''
+                       );
                        $this->insertArticleLink( $s, $rc, $unpatrolled, $watched );
                }
                # Edit/log timestamp
@@ -566,7 +567,7 @@ class EnhancedChangesList extends ChangesList {
                $this->rcCacheIndex = 0;
                $this->lastdate = '';
                $this->rclistOpen = false;
-               $wgOut->addModules( 'mediawiki.legacy.enhancedchanges' );
+               $wgOut->addModuleStyles( 'mediawiki.special.changeslist' );
                return '';
        }
        /**
@@ -739,9 +740,9 @@ class EnhancedChangesList extends ChangesList {
                # Add the namespace and title of the block as part of the class
                if ( $block[0]->mAttribs['rc_log_type'] ) {
                        # Log entry
-                       $classes = 'mw-enhanced-rc ' . Sanitizer::escapeClass( 'mw-changeslist-log-' . $block[0]->mAttribs['rc_log_type'] . '-' . $block[0]->mAttribs['rc_title'] );
+                       $classes = 'collapsible collapsed mw-enhanced-rc ' . Sanitizer::escapeClass( 'mw-changeslist-log-' . $block[0]->mAttribs['rc_log_type'] . '-' . $block[0]->mAttribs['rc_title'] );
                } else {
-                       $classes = 'mw-enhanced-rc ' . Sanitizer::escapeClass( 'mw-changeslist-ns' . $block[0]->mAttribs['rc_namespace'] . '-' . $block[0]->mAttribs['rc_title'] );
+                       $classes = 'collapsible collapsed mw-enhanced-rc ' . Sanitizer::escapeClass( 'mw-changeslist-ns' . $block[0]->mAttribs['rc_namespace'] . '-' . $block[0]->mAttribs['rc_title'] );
                }
                $r = Html::openElement( 'table', array( 'class' => $classes ) ) .
                        Html::openElement( 'tr' );
@@ -804,23 +805,28 @@ class EnhancedChangesList extends ChangesList {
                $users = ' <span class="changedby">[' . 
                        implode( $this->message['semicolon-separator'], $users ) . ']</span>';
 
-               # ID for JS visibility toggle
-               $jsid = $this->rcCacheIndex;
-               # onclick handler to toggle hidden/expanded
-               $toggleLink = "onclick='toggleVisibility($jsid); return false'";
                # Title for <a> tags
                $expandTitle = htmlspecialchars( wfMsg( 'rc-enhanced-expand' ) );
                $closeTitle = htmlspecialchars( wfMsg( 'rc-enhanced-hide' ) );
 
-               $tl = "<span id='mw-rc-openarrow-$jsid' class='mw-changeslist-expanded' style='visibility:hidden'><a href='#' $toggleLink title='$expandTitle'>" . $this->sideArrow() . "</a></span>";
-               $tl .= "<span id='mw-rc-closearrow-$jsid' class='mw-changeslist-hidden' style='display:none'><a href='#' $toggleLink title='$closeTitle'>" . $this->downArrow() . "</a></span>";
-               $r .= '<td class="mw-enhanced-rc">'.$tl.'&#160;';
+               $tl = "<span class='collapsible-expander'>"
+                       . "<span class='mw-rc-openarrow'>"
+                       . "<a href='#' title='$expandTitle'>{$this->arrow( 'd', '-', wfMsg( 'rc-enhanced-hide' ) )}</a>"
+                       . "</span><span class='mw-rc-closearrow'>"
+                       . "<a href='#' title='$closeTitle'>{$this->arrow( 'd', '-', wfMsg( 'rc-enhanced-hide' ) )}</a>"
+                       . "</span></span>";
+               $r .= "<td>$tl</td>";
 
                # Main line
-               $r .= $this->recentChangesFlags( $isnew, false, $unpatrolled, '&#160;', $bot );
+               $r .= '<td class="mw-enhanced-rc">' . $this->recentChangesFlags( array(
+                       'new' => $isnew, 
+                       'minor' => false, 
+                       'unpatrolled' => $unpatrolled, 
+                       'bot' => $bot ,
+               ) );
 
                # Timestamp
-               $r .= '&#160;'.$block[0]->timestamp.'&#160;</td><td style="padding:0px;">';
+               $r .= '&#160;'.$block[0]->timestamp.'&#160;</td><td>';
 
                # Article link
                if( $namehidden ) {
@@ -908,11 +914,7 @@ class EnhancedChangesList extends ChangesList {
                $r .= $users;
                $r .= $this->numberofWatchingusers($block[0]->numberofWatchingusers);
 
-               $r .= "</td></tr></table>\n";
-
                # Sub-entries
-               $r .= '<div id="mw-rc-subentries-'.$jsid.'" class="mw-changeslist-hidden">';
-               $r .= '<table class="mw-enhanced-rc">';
                foreach( $block as $rcObj ) {
                        # Extract fields from DB into the function scope (rc_xxxx variables)
                        // FIXME: Would be good to replace this extract() call with something
@@ -922,10 +924,14 @@ class EnhancedChangesList extends ChangesList {
                        extract( $rcObj->mAttribs );
 
                        #$r .= '<tr><td valign="top">'.$this->spacerArrow();
-                       $r .= '<tr><td style="vertical-align:top;font-family:monospace; padding:0px;">';
-                       $r .= $this->spacerIndent() . $this->spacerIndent();
-                       $r .= $this->recentChangesFlags( $rc_new, $rc_minor, $rcObj->unpatrolled, '&#160;', $rc_bot );
-                       $r .= '&#160;</td><td style="vertical-align:top; padding:0px;"><span style="font-family:monospace">';
+                       $r .= '<tr><td></td><td class="mw-enhanced-rc">';
+                       $r .= $this->recentChangesFlags( array(
+                               'new' => $rc_new, 
+                               'minor' => $rc_minor, 
+                               'unpatrolled' => $rcObj->unpatrolled, 
+                               'bot' => $rc_bot, 
+                       ) );
+                       $r .= '&#160;</td><td class="mw-enhanced-rc-nested"><span class="mw-enhanced-rc-time">';
 
                        $params = $queryParams;
 
@@ -983,7 +989,7 @@ class EnhancedChangesList extends ChangesList {
 
                        $r .= "</td></tr>\n";
                }
-               $r .= "</table></div>\n";
+               $r .= "</table>\n";
 
                $this->rcCacheIndex++;
 
@@ -1007,42 +1013,6 @@ class EnhancedChangesList extends ChangesList {
                return "<img src=\"$encUrl\" width=\"12\" height=\"12\" alt=\"$encAlt\" title=\"$encTitle\" />";
        }
 
-       /**
-        * Generate HTML for a right- or left-facing arrow,
-        * depending on language direction.
-        * @return String: HTML <img> tag
-        */
-       protected function sideArrow() {
-               global $wgContLang;
-               $dir = $wgContLang->isRTL() ? 'l' : 'r';
-               return $this->arrow( $dir, '+', wfMsg( 'rc-enhanced-expand' ) );
-       }
-
-       /**
-        * Generate HTML for a down-facing arrow
-        * depending on language direction.
-        * @return String: HTML <img> tag
-        */
-       protected function downArrow() {
-               return $this->arrow( 'd', '-', wfMsg( 'rc-enhanced-hide' ) );
-       }
-
-       /**
-        * Generate HTML for a spacer image
-        * @return String: HTML <img> tag
-        */
-       protected function spacerArrow() {
-               return $this->arrow( '', codepointToUtf8( 0xa0 ) ); // non-breaking space
-       }
-
-       /**
-        * Add a set of spaces
-        * @return String: HTML <td> tag
-        */
-       protected function spacerIndent() {
-               return '&#160;&#160;&#160;&#160;&#160;';
-       }
-
        /**
         * Enhanced RC ungrouped line.
         * @return String: a HTML formated line (generated using $r)
@@ -1068,14 +1038,19 @@ class EnhancedChangesList extends ChangesList {
                $r = Html::openElement( 'table', array( 'class' => $classes ) ) .
                        Html::openElement( 'tr' );
 
-               $r .= '<td class="mw-enhanced-rc">' . $this->spacerArrow() . '&#160;';
+               $r .= '<td class="mw-enhanced-rc">' . $this->arrow( '', codepointToUtf8( 0xa0 ) );
                # Flag and Timestamp
                if( $rc_type == RC_MOVE || $rc_type == RC_MOVE_OVER_REDIRECT ) {
                        $r .= '&#160;&#160;&#160;&#160;'; // 4 flags -> 4 spaces
                } else {
-                       $r .= $this->recentChangesFlags( $rc_type == RC_NEW, $rc_minor, $rcObj->unpatrolled, '&#160;', $rc_bot );
+                       $r .= $this->recentChangesFlags( array(
+                               'new' => $rc_type == RC_NEW, 
+                               'minor' => $rc_minor, 
+                               'unpatrolled' => $rcObj->unpatrolled, 
+                               'bot' => $rc_bot 
+                       ) );
                }
-               $r .= '&#160;'.$rcObj->timestamp.'&#160;</td><td style="padding:0px;">';
+               $r .= '&#160;'.$rcObj->timestamp.'&#160;</td><td>';
                # Article or log link
                if( $rc_log_type ) {
                        $logtitle = Title::newFromText( "Log/$rc_log_type", NS_SPECIAL );
index 8fb8be1..b9653b1 100644 (file)
@@ -1617,7 +1617,7 @@ class OutputPage {
                $sk = $wgUser->getSkin();
 
                // Add base resources
-               $this->addModules( array( 'mediawiki.legacy.wikibits', 'mediawiki.util' ) );
+               $this->addModules( array( 'mediawiki.legacy.wikibits', 'mediawiki.util', 'skins.common' ) );
 
                // Add various resources if required
                if ( $wgUseAjax ) {
index eff804a..6f5c2f1 100644 (file)
@@ -10,6 +10,16 @@ return array(
        'user.options' => array( 'class' => 'ResourceLoaderUserOptionsModule' ),
 
        /* Skins */
+       
+       'skins.common' => array(
+               'scripts' => 'resources/skins.common/skins.common.js',
+               'styles' => array( 
+                       'resources/skins.common/skins.common.css',
+                       'resources/skins.common/skins.common.print.css' => array( 'media' => 'print' )
+               ),
+               'messages' => array( 'hide', 'show' ),
+               'dependencies' => array( 'jquery.effects.fade' ),
+       ),
 
        'skins.vector' => array(
                'styles' => array( 'skins/vector/screen.css' => array( 'media' => 'screen' ) )
@@ -292,6 +302,10 @@ return array(
                'scripts' => 'resources/jquery.effects/jquery.effects.explode.js',
                'dependencies' => 'jquery.effects.core',
        ),
+       'jquery.effects.fade' => array(
+               'scripts' => 'resources/jquery.effects/jquery.effects.fade.js',
+               'dependencies' => 'jquery.effects.core',
+       ),
        'jquery.effects.fold' => array(
                'scripts' => 'resources/jquery.effects/jquery.effects.fold.js',
                'dependencies' => 'jquery.effects.core',
@@ -348,6 +362,9 @@ return array(
                'scripts' => 'resources/mediawiki.special/mediawiki.special.preferences.js',
                'styles' => 'resources/mediawiki.special/mediawiki.special.preferences.css',
        ),
+       'mediawiki.special.changeslist' => array(
+               'styles' => 'resources/mediawiki.special/mediawiki.special.changeslist.css',
+       ),
        'mediawiki.special.search' => array(
                'scripts' => 'resources/mediawiki.special/mediawiki.special.search.js',
        ),
@@ -433,10 +450,6 @@ return array(
                'scripts' => 'skins/common/edit.js',
                'dependencies' => 'mediawiki.legacy.wikibits',
        ),
-       'mediawiki.legacy.enhancedchanges' => array(
-               'scripts' => 'skins/common/enhancedchanges.js',
-               'dependencies' => 'mediawiki.legacy.wikibits',
-       ),
        'mediawiki.legacy.history' => array(
                'scripts' => 'skins/common/history.js',
                'dependencies' => 'mediawiki.legacy.wikibits',
diff --git a/resources/jquery.effects/jquery.effects.fade.js b/resources/jquery.effects/jquery.effects.fade.js
new file mode 100644 (file)
index 0000000..38bff0b
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+* jQuery UI Effects Fade @VERSION
+*
+* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT or GPL Version 2 licenses.
+* http://jquery.org/license
+*
+* http://docs.jquery.com/UI/Effects/Fade
+*
+* Depends:
+* jquery.effects.core.js
+*/
+(function( $, undefined ) {
+
+       $.effects.fade = function(o) {
+               return this.queue(function() {
+                       var elem = $(this),
+                       mode = $.effects.setMode(elem, o.options.mode || 'hide');
+                       
+                       elem.animate({ opacity: mode }, {
+                               queue: false,
+                               duration: o.duration,
+                               easing: o.options.easing,
+                               complete: function() {
+                                       (o.callback && o.callback.apply(this, arguments));
+                                       elem.dequeue();
+                               }
+                       });
+               });
+       };
+
+})(jQuery);
\ No newline at end of file
diff --git a/resources/mediawiki.special/mediawiki.special.changeslist.css b/resources/mediawiki.special/mediawiki.special.changeslist.css
new file mode 100644 (file)
index 0000000..2383b88
--- /dev/null
@@ -0,0 +1,40 @@
+/**
+ * Styling for Special:Watchlist and Special:RecentChanges
+ */
+
+table.mw-enhanced-rc {
+       background: none;
+       border:0;
+       border-spacing:0;
+}
+
+table.mw-enhanced-rc th, table.mw-enhanced-rc td {
+       padding:0;
+       vertical-align:top;
+}
+
+td.mw-enhanced-rc {
+       white-space:nowrap;
+       font-family:monospace;
+}
+
+.mw-enhanced-rc-time {
+       font-family: monospace;
+}
+
+table.mw-enhanced-rc td.mw-enhanced-rc-nested {
+       padding-left: 1em;
+}
+
+/* Show/hide arrows in enhanced changeslist */
+.mw-enhanced-rc .collapsible-expander {
+       float: none;
+}
+
+.mw-rc-openarrow,
+.show .mw-rc-closearrow {
+       display: none;
+}
+.show .mw-rc-openarrow {
+       display: inline;
+}
diff --git a/resources/skins.common/skins.common.css b/resources/skins.common/skins.common.css
new file mode 100644 (file)
index 0000000..cd422f6
--- /dev/null
@@ -0,0 +1,24 @@
+/**
+ * 'show'/'hide' buttons created dynamically
+ * by the CollapsibleTables javascript
+ */
+.collapsible-expander {           
+    float: right;
+    font-weight: normal;
+    text-align: right;
+    width: auto;
+}
+
+/**
+ * Note that IE<7 sees the second selector here as 
+ * just ".collapsible-expander", and doesn't accept 
+ * the multiple classes.  Fortunately these two cursors
+ * are generally the same, a pair of up-and-down arrows.
+ */
+ .collapsible-expander {
+       cursor: n-resize;
+}
+.show.collapsible-expander {
+       cursor: s-resize;
+}
+
diff --git a/resources/skins.common/skins.common.js b/resources/skins.common/skins.common.js
new file mode 100644 (file)
index 0000000..8162f3d
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * Scripts common to all skins
+ */
+
+/**
+ * Collapsible tables and divs.  
+ * 
+ * Users can create tables and nested divs which collapse either on-click or on-load,
+ * to save space on a page, or to conceal information at first sight.  Eg:
+ * 
+ *   <table class="wikitable collapsible collapsed"><tr>
+ *     <th>A table header which will always be visible</th>
+ *   </tr><tr>
+ *     <td>A table cell which will be hidden on page-load</td>
+ *   </tr></table>
+ *   
+ *   <div class="collapsible collapsed">
+ *     Content which will always be visible 
+ *     <span class="collapsible-expander">Click me!</span>
+ *     <div>
+ *             This content will be hidden until the span above is clicked
+ *     </div>
+ *   </div>
+ *   
+ * If the user does not create a toggle-button manually, one will be created, 
+ * in the top-right header cell for tables, and at the beginning of the outer
+ * div's content for a collapsible div.
+ * @author Happy-melon
+ */
+$('.collapsible').each( function(){
+       var $x = $j(this);
+       if( $('.collapsible-expander', $x).size() ){
+               $('.collapsible-expander', $x)
+                       .click(function(e, rmClass){
+                               e.preventDefault();
+                               rmClass = !(rmClass == false);
+                               $(this)
+                                       .toggleClass('show')
+                                       .trigger('mw-toggle-collapse', [rmClass]);
+                               return false;
+                       });
+       } else {
+               $expander = $j('<div class="collapsible-expander">')
+                       .text( '[' + mediaWiki.msg( 'hide' ) + ']' )
+                       .click(function(e, rmClass){
+                               rmClass = !(rmClass == false);
+                               e.preventDefault();
+                               $(this)
+                                       .toggleClass('show')
+                                       .trigger('mw-toggle-collapse', [rmClass]) 
+                                       .text(
+                                               '[' + 
+                                               ($(this).is('.collapsible.collapsed .collapsible-expander') 
+                                                       ? mediaWiki.msg( 'show' )
+                                                       : mediaWiki.msg( 'hide' )) + 
+                                               ']'
+                                       );
+                               return true;
+                       })
+                       .before('[').after(']');
+               if( $x.is('div.collapsible')){
+                       $x.prepend($expander);
+               } else {
+                       $('tr:first th:last',$x).append($expander);
+               }
+       }
+       
+});
+
+/**
+ * This is a bit nasty because it also toggles any nested
+ * collapsible objects.  But it would be a nightmare to only
+ * select the outer collapser without adding ids everywhere.
+ */
+$('table.collapsible').live( 'mw-toggle-collapse', function(e, rmClass){
+       e.stopPropagation();
+       var time = rmClass ? 500 : 0;
+       $('tr:gt(0)',$(this))
+               // We'd like to use slideToggle() like for divs, but the jQuery 
+               // slide animation for table rows is just *pig ugly*...
+               .toggle("fade", { direction: "vertical" }, time);
+       if( rmClass ){
+               $('table.collapsible',$(this)).andSelf().toggleClass('collapsed');
+       }
+       return true;
+});
+
+$('div.collapsible').live( 'mw-toggle-collapse', function(e, rmClass){
+       e.stopPropagation();
+       var time = rmClass ? 500 : 0;
+       $(this).children(':not(.collapsible-expander)')
+               .slideToggle(time);
+       if( rmClass ){
+               $('div.collapsible',$(this)).andSelf().toggleClass('collapsed');
+       }
+       return true;
+});
+
+$('.collapsible.collapsed .collapsible-expander').trigger( 'click', [false] );
\ No newline at end of file
diff --git a/resources/skins.common/skins.common.print.css b/resources/skins.common/skins.common.print.css
new file mode 100644 (file)
index 0000000..336b879
--- /dev/null
@@ -0,0 +1,19 @@
+/**
+ * Uncollapse collapsible tables/divs.  The proper way to do this 
+ * for tables is to use display:table-row, but this is not supported 
+ * by all browsers, so use display:block as fallback. Equally, the >
+ * selector is not supported by IE<7, so the fourth rule is recognised
+ * only by IE6 and below.
+ */
+table.collapsible tr {
+    display: block !important;
+}
+table.collapsible tr {
+    display: table-row !important;
+}
+div.collapsible > * {
+       display: auto !important;
+}
+* html div.collapsible * {
+       display: auto !important;
+}
\ No newline at end of file
diff --git a/skins/common/enhancedchanges.js b/skins/common/enhancedchanges.js
deleted file mode 100644 (file)
index bcc2cc8..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* 
-  JavaScript file for enhanced recentchanges
- */
-/*
-  * Add the CSS to hide parts that should be collapsed
-  *
-  * We do this with JS so everything will be expanded by default
-  * if JS is disabled
- */
-appendCSS('.mw-changeslist-hidden {'+
-       '       display:none;'+
-       '}'+
-       'div.mw-changeslist-expanded {'+
-       '       display:block;'+
-       '}'+
-       'span.mw-changeslist-expanded {'+
-       '       display:inline !important;'+
-       '       visibility:visible !important;'+
-       '}'
-);
-
-/*
- * Switch an RC line between hidden/shown
- * @param int idNumber : the id number of the RC group
-*/ 
-window.toggleVisibility = function(idNumber) {
-       var openarrow = document.getElementById("mw-rc-openarrow-"+idNumber);
-       var closearrow = document.getElementById("mw-rc-closearrow-"+idNumber);
-       var subentries = document.getElementById("mw-rc-subentries-"+idNumber);
-       if (openarrow.className == 'mw-changeslist-expanded') {
-               openarrow.className = 'mw-changeslist-hidden';
-               closearrow.className = 'mw-changeslist-expanded';
-               subentries.className = 'mw-changeslist-expanded';
-       } else {
-               openarrow.className = 'mw-changeslist-expanded';
-               closearrow.className = 'mw-changeslist-hidden';
-               subentries.className = 'mw-changeslist-hidden';
-       }
-};
index 32d566c..31d8eec 100644 (file)
@@ -827,18 +827,6 @@ div.gallerytext {
        word-wrap: break-word;
 }
 
-table.mw-enhanced-rc {
-       background: none;
-       border:0;
-       border-spacing:0;
-}
-td.mw-enhanced-rc {
-       white-space:nowrap;
-       padding:0;
-       vertical-align:top;
-       font-family:monospace
-}
-
 #mw-addcategory-prompt {
        display: inline;
        margin-left: 1em;