function history()
{
- global $wgUser, $wgOut, $wgLang;
+ global $wgUser, $wgOut, $wgLang, $wgIsMySQL, $wgIsPg;
# If page hasn't changed, client can cache this
$namespace = $this->mTitle->getNamespace();
$title = $this->mTitle->getText();
+ $use_index=$wgIsMySQL?"USE INDEX (name_title_timestamp)":"";
+ $oldtable=$wgIsPg?'"old"':'old';
$sql = "SELECT old_id,old_user," .
"old_comment,old_user_text,old_timestamp,old_minor_edit ".
- "FROM old USE INDEX (name_title_timestamp) " .
+ "FROM $oldtable $use_index " .
"WHERE old_namespace={$namespace} AND " .
"old_title='" . wfStrencode( $this->mTitle->getDBkey() ) . "' " .
- "ORDER BY inverse_timestamp LIMIT $rawoffset, $limitplus";
+ "ORDER BY inverse_timestamp".wfLimitResult($limitplus,$rawoffset);
$res = wfQuery( $sql, DB_READ, $fname );
$revs = wfNumRows( $res );
$this->mTitle->getPrefixedText(),
"action=history", $atend );
$s = $numbar;
+ if($this->linesonpage > 0) {
+ $submitpart1 = '<input class="historysubmit" type="submit" accesskey="'.wfMsg('accesskey-compareselectedversions').
+ '" title="'.wfMsg('tooltip-compareselectedversions').'" value="'.wfMsg('compareselectedversions').'"';
+ $this->submitbuttonhtml1 = $submitpart1 . ' />';
+ $this->submitbuttonhtml2 = $submitpart1 . ' id="historysubmit" />';
+ }
$s .= $this->beginHistoryList();
$counter = 1;
if( $offset == 0 ){
{
global $wgTitle;
$this->lastdate = $this->lastline = "";
- $url = $wgTitle->getFullURL("-");
- $s = "\n<script type='text/javascript'>
- /*<![CDATA[*/
- var sel = -1;
- function anysel(oid){
- row = document.getElementById(\"ver\" + oid);
- if( row.selected ){
- row.style.backgroundColor=row.oldbg;
- row.selected = 0;
- sel = -1;
- } else {
- row.oldbg = row.style.backgroundColor;
- row.style.backgroundColor=\"lightgrey\";
- row.selected = 1;
- if( sel == -1){
- sel = oid;
- } else {
- dodiff(sel, oid);
- }
- }
- return false;
- }
- function dodiff(oldid, diff){
- if( (diff < oldid && diff != 0) || oldid == 0 ){
- tmp = oldid; oldid = diff; diff = tmp;
- }
- u = \"{$url}diff=\" + diff + \"&oldid=\" + oldid;
- location.href=u;
- }
- /*]]>*/
- </script>";
- $s .= "\n<p>" . wfMsg( "histlegend" ) . "</p>\n<ul class='special'>";
+ $s = "\n<p>" . wfMsg( "histlegend" ).'</p>';
+ $s .="\n<form action=\"" . $wgTitle->escapeLocalURL( '-' ) . "\" method=\"get\">";
+ $s .= "<input type=\"hidden\" name=\"title\" value=\"".wfEscapeHTML($wgTitle->getPrefixedDbKey())."\"/>\n";
+ $s .= !empty($this->submitbuttonhtml1) ? $this->submitbuttonhtml1."\n":'';
+ $s .= "" . "\n<ul id=\"pagehistory\" >";
return $s;
}
$last = wfMsg( "last" );
$s = $skip ? "" : preg_replace( "/!OLDID![0-9]+!/", $last, $this->lastline );
- $s .= "</ul>\n";
+ $s .= "</ul>";
+ $s .= !empty($this->submitbuttonhtml2) ? $this->submitbuttonhtml2."\n":'';
+ $s .= "</form>\n";
return $s;
}
$curlink = $cur;
}
$arbitrary = "";
- if( $this->linesonpage > 1)
- $arbitrary = "<input type='checkbox' onclick='anysel($oid)' title='Select any two versions to diff them' />";
- $s .= "({$curlink}) (!OLDID!{$oid}!) $arbitrary . .";
- $M = wfMsg( "minoreditletter" );
- if ( $isminor ) {
- $s .= " <strong>{$M}</strong>";
+ if( $this->linesonpage > 1) {
+ # XXX: move title texts to javascript
+ $checkmark = "";
+ if ( !$oid ) {
+ $arbitrary = '<input type="radio" style="visibility:hidden" name="oldid" value="'.$oid.'" title="'.wfMsg('selectolderversionfordiff').'" />';
+ $checkmark = ' checked="checked"';
+ } else {
+ if( $counter == 2 ) $checkmark = ' checked="checked"';
+ $arbitrary = '<input type="radio" name="oldid" value="'.$oid.'" title="'.wfMsg('selectolderversionfordiff').'"'.$checkmark.' />';
+ $checkmark = '';
+ }
+ $arbitrary .= '<input type="radio" name="diff" value="'.$oid.'" title="'.wfMsg('selectnewerversionfordiff').'"'.$checkmark.' />';
}
- $s .= " <span id='ver$oid'>{$link} . . {$ul}</span>";
+ $s .= "({$curlink}) (!OLDID!{$oid}!) $arbitrary {$link} <span class='user'>{$ul}</span>";
+ $s .= $isminor ? ' <span class="minor">'.wfMsg( "minoreditletter" ).'</span>': '' ;
+
if ( "" != $c && "*" != $c ) {