Index: trunk/phase3/skins/common/wikibits.js |
— | — | @@ -104,22 +104,6 @@ |
105 | 105 | } |
106 | 106 | } |
107 | 107 | |
108 | | -// for enhanced RecentChanges |
109 | | -function toggleVisibility(_levelId, _otherId, _linkId) { |
110 | | - var thisLevel = document.getElementById(_levelId); |
111 | | - var otherLevel = document.getElementById(_otherId); |
112 | | - var linkLevel = document.getElementById(_linkId); |
113 | | - if (thisLevel.style.display == 'none') { |
114 | | - thisLevel.style.display = 'block'; |
115 | | - otherLevel.style.display = 'none'; |
116 | | - linkLevel.style.display = 'inline'; |
117 | | - } else { |
118 | | - thisLevel.style.display = 'none'; |
119 | | - otherLevel.style.display = 'inline'; |
120 | | - linkLevel.style.display = 'none'; |
121 | | - } |
122 | | -} |
123 | | - |
124 | 108 | function showTocToggle() { |
125 | 109 | if (document.createTextNode) { |
126 | 110 | // Uses DOM calls to avoid document.write + XHTML issues |
Index: trunk/phase3/skins/common/enhancedchanges.js |
— | — | @@ -0,0 +1,33 @@ |
| 2 | +/* |
| 3 | + JavaScript file for enhanced recentchanges |
| 4 | + */ |
| 5 | + |
| 6 | +/* |
| 7 | + * onload hook to add the CSS to hide parts that should be collapsed |
| 8 | + * |
| 9 | + * We do this with JS so everything will be expanded by default |
| 10 | + * if JS is disabled |
| 11 | + */ |
| 12 | +addOnloadHook(function () { |
| 13 | + var css = ".mw-rc-jshidden { display:none; }"; |
| 14 | + appendCSS(css); |
| 15 | +}); |
| 16 | + |
| 17 | +/* |
| 18 | + * Switch an RC line between hidden/shown |
| 19 | + * @param int idNumber : the id number of the RC group |
| 20 | +*/ |
| 21 | +function toggleVisibility(idNumber) { |
| 22 | + var openarrow = document.getElementById("mw-rc-openarrow-"+idNumber); |
| 23 | + var closearrow = document.getElementById("mw-rc-closearrow-"+idNumber); |
| 24 | + var subentries = document.getElementById("mw-rc-subentries-"+idNumber); |
| 25 | + if (openarrow.style.display == 'inline') { |
| 26 | + openarrow.style.display = 'none'; |
| 27 | + closearrow.style.display = 'inline'; |
| 28 | + subentries.style.display = 'block'; |
| 29 | + } else { |
| 30 | + openarrow.style.display = 'inline'; |
| 31 | + closearrow.style.display = 'none'; |
| 32 | + subentries.style.display = 'none'; |
| 33 | + } |
| 34 | +} |
Property changes on: trunk/phase3/skins/common/enhancedchanges.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 35 | + native |
Index: trunk/phase3/includes/ChangesList.php |
— | — | @@ -388,7 +388,24 @@ |
389 | 389 | * Generate a list of changes using an Enhanced system (use javascript). |
390 | 390 | */ |
391 | 391 | class EnhancedChangesList extends ChangesList { |
| 392 | + |
392 | 393 | /** |
| 394 | + * Add the JavaScript file for enhanced changeslist |
| 395 | + * @ return string |
| 396 | + */ |
| 397 | + public function beginRecentChangesList() { |
| 398 | + global $wgStylePath, $wgStyleVersion; |
| 399 | + $this->rc_cache = array(); |
| 400 | + $this->rcMoveIndex = 0; |
| 401 | + $this->rcCacheIndex = 0; |
| 402 | + $this->lastdate = ''; |
| 403 | + $this->rclistOpen = false; |
| 404 | + $script = Xml::tags( 'script', array( |
| 405 | + 'type' => 'text/javascript', |
| 406 | + 'src' => $wgStylePath . "/common/enhancedchanges.js?$wgStyleVersion" ), '' ); |
| 407 | + return $script; |
| 408 | + } |
| 409 | + /** |
393 | 410 | * Format a line for enhanced recentchange (aka with javascript and block of lines). |
394 | 411 | */ |
395 | 412 | public function recentChangesLine( &$baseRC, $watched = false ) { |
— | — | @@ -596,13 +613,12 @@ |
597 | 614 | |
598 | 615 | $users = ' <span class="changedby">[' . implode( $this->message['semicolon-separator'], $users ) . ']</span>'; |
599 | 616 | |
600 | | - # Arrow |
601 | | - $rci = 'RCI'.$this->rcCacheIndex; |
602 | | - $rcl = 'RCL'.$this->rcCacheIndex; |
603 | | - $rcm = 'RCM'.$this->rcCacheIndex; |
604 | | - $toggleLink = "javascript:toggleVisibility('$rci','$rcm','$rcl')"; |
605 | | - $tl = '<span id="'.$rcm.'"><a href="'.$toggleLink.'">' . $this->sideArrow() . '</a></span>'; |
606 | | - $tl .= '<span id="'.$rcl.'" style="display:none"><a href="'.$toggleLink.'">' . $this->downArrow() . '</a></span>'; |
| 617 | + # ID for JS visibility toggle |
| 618 | + $jsid = $this->rcCacheIndex; |
| 619 | + |
| 620 | + $toggleLink = "onclick='toggleVisibility($jsid)'"; |
| 621 | + $tl = "<span id='mw-rc-openarrow-$jsid' style='display:inline;' $toggleLink>" . $this->sideArrow() . "</span>"; |
| 622 | + $tl .= "<span id='mw-rc-closearrow-$jsid' style='display:none;' class='mw-rc-jshidden' $toggleLink>" . $this->downArrow() . "</span>"; |
607 | 623 | $r .= '<td valign="top" style="white-space: nowrap"><tt>'.$tl.' '; |
608 | 624 | |
609 | 625 | # Main line |
— | — | @@ -680,7 +696,7 @@ |
681 | 697 | $r .= "</td></tr></table>\n"; |
682 | 698 | |
683 | 699 | # Sub-entries |
684 | | - $r .= '<div id="'.$rci.'" style="display:none;"><table cellpadding="0" cellspacing="0" border="0" style="background: none">'; |
| 700 | + $r .= '<div id="mw-rc-subentries-'.$jsid.'" class="mw-rc-jshidden"><table cellpadding="0" cellspacing="0" border="0" style="background: none">'; |
685 | 701 | foreach( $block as $rcObj ) { |
686 | 702 | # Get rc_xxxx variables |
687 | 703 | // FIXME: Would be good to replace this extract() call with something that explicitly initializes local variables. |
Index: trunk/phase3/includes/DefaultSettings.php |
— | — | @@ -1385,7 +1385,7 @@ |
1386 | 1386 | * to ensure that client-side caches don't keep obsolete copies of global |
1387 | 1387 | * styles. |
1388 | 1388 | */ |
1389 | | -$wgStyleVersion = '182'; |
| 1389 | +$wgStyleVersion = '183'; |
1390 | 1390 | |
1391 | 1391 | |
1392 | 1392 | # Server-side caching: |
Index: trunk/phase3/RELEASE-NOTES |
— | — | @@ -283,6 +283,8 @@ |
284 | 284 | * (bug 14609) User's namespaces to be searched default not updated after adding new namespace |
285 | 285 | * Purge form uses valid XHTML and (bug 8992) uses $wgRequest instead of $_SERVER |
286 | 286 | * (bug 12764) Special:LonelyPages shows transcluded pages |
| 287 | +* (bug 16073) Enhanced RecentChanges uses onclick handler with better fallback if |
| 288 | + JavaScript is disabled. |
287 | 289 | |
288 | 290 | === API changes in 1.14 === |
289 | 291 | |