WordPress.org

Make WordPress Core

Ticket #23396: only-compare-to-current.diff

File only-compare-to-current.diff, 12.6 KB (added by adamsilverstein, 14 months ago)

compare only to current, action links, css updates (colors)

  • wp-includes/post-template.php

     
    13711371        } 
    13721372 
    13731373        /* translators: post revision: 1: when, 2: author name */ 
    1374         $titlef = _x( '%1$s by %2$s', 'post revision' ); 
     1374        $titlef = _x( '<strong>%1$s:</strong> %2$s', 'post revision' ); 
    13751375 
    13761376        if ( $parent ) 
    13771377                array_unshift( $revisions, $post ); 
     
    13851385                if ( 'revision' === $type && wp_is_post_autosave( $revision ) ) 
    13861386                        continue; 
    13871387 
    1388                 $date = wp_post_revision_title( $revision ); 
     1388                $date = wp_post_revision_title( $revision, false ); 
    13891389                $name = get_the_author_meta( 'display_name', $revision->post_author ); 
    1390  
     1390                $editlink = '<a href="' . get_edit_post_link( $revision->ID ) . '">' . __( 'View' ) . '</a>'; 
    13911391                if ( 'form-table' == $format ) { 
    13921392                        if ( $left ) 
    13931393                                $left_checked = $left == $revision->ID ? ' checked="checked"' : ''; 
     
    13981398                        $class = $class ? '' : " class='alternate'"; 
    13991399 
    14001400                        if ( $post->ID != $revision->ID && $can_edit_post ) 
    1401                                 $actions = '<a href="' . wp_nonce_url( add_query_arg( array( 'revision' => $revision->ID, 'action' => 'restore' ) ), "restore-post_$post->ID|$revision->ID" ) . '">' . __( 'Restore' ) . '</a>'; 
     1401                                $actions =      '<a href="' . wp_nonce_url( add_query_arg( array( 'revision' => $revision->ID, 'action' => 'restore' ) ), "restore-post_$post->ID|$revision->ID" ) . '">' . __( 'Restore' ) . '</a>'. 
     1402                                        ' &middot ' . $editlink . 
     1403                                        ' &middot; <a href="' . 'revision.php?action=diff&right=' . $post->ID .'&left=' . $revision->ID . '">' . __( 'Compare to' ) . '</a>'; 
     1404                                  
     1405 
    14021406                        else 
    14031407                                $actions = ''; 
    14041408 
     1409                        $avatar = get_avatar( $revision->post_author, 24 ); 
    14051410                        $rows .= "<tr$class>\n"; 
    1406                         $rows .= "\t<th style='white-space: nowrap' scope='row'><input type='radio' name='left' value='$revision->ID'$left_checked /></th>\n"; 
    1407                         $rows .= "\t<th style='white-space: nowrap' scope='row'><input type='radio' name='right' value='$revision->ID'$right_checked /></th>\n"; 
    1408                         $rows .= "\t<td>$date</td>\n"; 
    1409                         $rows .= "\t<td>$name</td>\n"; 
    1410                         $rows .= "\t<td class='action-links'>$actions</td>\n"; 
     1411                        $rows .= "\t<td class='revision-details'>$avatar <strong>$name</strong></td>\n"; 
     1412                        $rows .= "\t<td class='revision-details'>$date<br />$actions</td>\n"; 
    14111413                        $rows .= "</tr>\n"; 
    14121414                } else { 
    1413                         $title = sprintf( $titlef, $date, $name ); 
    1414                         $rows .= "\t<li>$title</li>\n"; 
     1415                        $avatar = get_avatar( $revision->post_author, 18 ); 
     1416                        $title = sprintf( $titlef, $name, $date ); 
     1417                        $rows .= "\t<li>$avatar $title $editlink</li>\n"; 
    14151418                } 
    14161419        } 
    14171420 
     
    14321435<table class="widefat post-revisions" cellspacing="0" id="post-revisions"> 
    14331436        <col /> 
    14341437        <col /> 
    1435         <col style="width: 33%" /> 
    1436         <col style="width: 33%" /> 
    1437         <col style="width: 33%" /> 
    14381438<thead> 
    14391439<tr> 
    1440         <th scope="col"><?php /* translators: column name in revisions */ _ex( 'Old', 'revisions column name' ); ?></th> 
    1441         <th scope="col"><?php /* translators: column name in revisions */ _ex( 'New', 'revisions column name' ); ?></th> 
    1442         <th scope="col"><?php /* translators: column name in revisions */ _ex( 'Date Created', 'revisions column name' ); ?></th> 
    1443         <th scope="col"><?php _e( 'Author' ); ?></th> 
    1444         <th scope="col" class="action-links"><?php _e( 'Actions' ); ?></th> 
     1440        <th scope="col"><?php /* translators: column name in revisions */ _ex( 'Author', 'author column name' ); ?></th> 
     1441        <th scope="col"><?php /* translators: column name in revisions */ _ex( 'Revisions', 'revisions column name' ); ?></th> 
    14451442</tr> 
    14461443</thead> 
    14471444<tbody> 
  • wp-includes/wp-diff.php

     
    9898         * @return string 
    9999         */ 
    100100        function addedLine( $line ) { 
    101                 return "<td>+</td><td class='diff-addedline'>{$line}</td>"; 
     101                return "<td><div class='diff-addedline-leftcol'>{$line}</div></td><td class='ltype'><div class='diff-addedline'>" . __("Added") . "</div></td>"; 
    102102        } 
    103103 
    104104        /** 
     
    108108         * @return string 
    109109         */ 
    110110        function deletedLine( $line ) { 
    111                 return "<td>-</td><td class='diff-deletedline'>{$line}</td>"; 
     111                return "<td><div class='diff-deletedline-leftcol'>{$line}</div></td><td class='ltype'><div class='diff-deletedline'>" . __( "Removed" ) . "</div></td>"; 
    112112        } 
    113113 
    114114        /** 
     
    118118         * @return string 
    119119         */ 
    120120        function contextLine( $line ) { 
    121                 return "<td> </td><td class='diff-context'>{$line}</td>"; 
     121                return "<td><div class='diff-context'>{$line}</div></td>"; 
    122122        } 
    123123 
    124124        /** 
     
    127127         * @return string 
    128128         */ 
    129129        function emptyLine() { 
    130                 return '<td colspan="2">&nbsp;</td>'; 
     130                return '<td class="ltype">&nbsp;</td>'; 
    131131        } 
    132132 
    133133        /** 
     
    142142                $r = ''; 
    143143                foreach ($lines as $line) { 
    144144                        if ( $encode ) 
    145                                 $line = htmlspecialchars( $line ); 
    146                         $r .= '<tr>' . $this->emptyLine() . $this->addedLine( $line ) . "</tr>\n"; 
     145                                $line =  wp_kses_post( $line ); 
     146                        $r .= '<tr>' . $this->addedLine( $line ) . "</tr>\n"; 
    147147                } 
    148148                return $r; 
    149149        } 
     
    160160                $r = ''; 
    161161                foreach ($lines as $line) { 
    162162                        if ( $encode ) 
    163                                 $line = htmlspecialchars( $line ); 
    164                         $r .= '<tr>' . $this->deletedLine( $line ) . $this->emptyLine() . "</tr>\n"; 
     163                                $line = wp_kses_post( $line ); 
     164                        $r .= '<tr>' . $this->deletedLine( $line ) . "</tr>\n"; 
    165165                } 
    166166                return $r; 
    167167        } 
     
    178178                $r = ''; 
    179179                foreach ($lines as $line) { 
    180180                        if ( $encode ) 
    181                                 $line = htmlspecialchars( $line ); 
     181                                $line = wp_kses_post( $line ); 
    182182                        $r .= '<tr>' . 
    183                                 $this->contextLine( $line ) . $this->contextLine( $line ) . "</tr>\n"; 
     183                                $this->contextLine( $line ) . $this->emptyLine() . "</tr>\n"; 
    184184                } 
    185185                return $r; 
    186186        } 
     
    248248                        if ( isset( $orig_diffs[$orig_rows[$row]] ) ) 
    249249                                $orig_line = $orig_diffs[$orig_rows[$row]]; 
    250250                        elseif ( isset( $orig[$orig_rows[$row]] ) ) 
    251                                 $orig_line = htmlspecialchars($orig[$orig_rows[$row]]); 
     251                                $orig_line = wp_kses_post($orig[$orig_rows[$row]]); 
    252252                        else 
    253253                                $orig_line = ''; 
    254254 
    255255                        if ( isset( $final_diffs[$final_rows[$row]] ) ) 
    256256                                $final_line = $final_diffs[$final_rows[$row]]; 
    257257                        elseif ( isset( $final[$final_rows[$row]] ) ) 
    258                                 $final_line = htmlspecialchars($final[$final_rows[$row]]); 
     258                                $final_line = wp_kses_post($final[$final_rows[$row]]); 
    259259                        else 
    260260                                $final_line = ''; 
    261261 
     
    264264                        } elseif ( $final_rows[$row] < 0 ) { // Final is blank. This is really a deleted row. 
    265265                                $r .= $this->_deleted( array($orig_line), false ); 
    266266                        } else { // A true changed row. 
    267                                 $r .= '<tr>' . $this->deletedLine( $orig_line ) . $this->addedLine( $final_line ) . "</tr>\n"; 
     267                                $r .= '<tr>' . $this->deletedLine( $orig_line ) . '</tr><tr>' . $this->addedLine( $final_line ) . "</tr>\n"; 
    268268                        } 
    269269                } 
    270270 
  • wp-includes/Text/Diff/Renderer/inline.php

     
    200200 
    201201    function _encode(&$string) 
    202202    { 
    203         $string = htmlspecialchars($string); 
     203        $string = wp_kses_post($string); 
    204204    } 
    205205 
    206206} 
  • wp-includes/pluggable.php

     
    17221722                return ''; 
    17231723 
    17241724        $r  = "<table class='diff'>\n"; 
    1725         $r .= "<col class='ltype' /><col class='content' /><col class='ltype' /><col class='content' />"; 
     1725        $r .= "<col class='content' /><col class='ltype' />"; 
    17261726 
    17271727        if ( $args['title'] || $args['title_left'] || $args['title_right'] ) 
    17281728                $r .= "<thead>"; 
    17291729        if ( $args['title'] ) 
    1730                 $r .= "<tr class='diff-title'><th colspan='4'>$args[title]</th></tr>\n"; 
     1730                $r .= "<tr class='diff-title'><th colspan='3'>$args[title]</th></tr>\n"; 
    17311731        if ( $args['title_left'] || $args['title_right'] ) { 
    17321732                $r .= "<tr class='diff-sub-title'>\n"; 
    1733                 $r .= "\t<td></td><th>$args[title_left]</th>\n"; 
    1734                 $r .= "\t<td></td><th>$args[title_right]</th>\n"; 
     1733                $r .= "\t<th>$args[title_left]</th>\n"; 
     1734                $r .= "\t<th>$args[title_right]</th>\n"; 
    17351735                $r .= "</tr>\n"; 
    17361736        } 
    17371737        if ( $args['title'] || $args['title_left'] || $args['title_right'] ) 
  • wp-admin/revision.php

     
    153153 
    154154<h2 class="long-header"><?php echo $h2; ?></h2> 
    155155 
    156 <table class="form-table ie-fixed"> 
     156<table class="form-table ie-fixed revision-compare"> 
    157157        <col class="th" /> 
    158158<?php if ( 'diff' == $action ) : ?> 
    159159<tr id="revision"> 
    160         <th scope="row"></th> 
    161160        <th scope="col" class="th-full"> 
    162                 <span class="alignleft"><?php printf( __('Older: %s'), wp_post_revision_title( $left_revision ) ); ?></span> 
    163                 <span class="alignright"><?php printf( __('Newer: %s'), wp_post_revision_title( $right_revision ) ); ?></span> 
     161                <span  class="revision-details"><?php  
     162                 _e('<strong>Comparing from the current version of the post.</strong><br />');  
     163        ?> 
     164                <span class="revision-details" ><?php 
     165                printf( __('<strong>Comparing to revision dated </strong> %s, created by: '), wp_post_revision_title( $left_revision ) );  
     166                echo get_avatar( $left_revision->post_author, 18 ) . get_the_author_meta( 'display_name', $left_revision->post_author ); 
     167        ?> 
     168        </span> <br /> 
     169                 
    164170        </th> 
    165171</tr> 
    166172<?php endif; 
     
    175181                        continue; // There is no difference between left and right 
    176182                $identical = false; 
    177183        } else { 
    178                 add_filter( "_wp_post_revision_field_$field", 'htmlspecialchars' ); 
     184                add_filter( "_wp_post_revision_field_$field", 'wp_kses_post' ); 
    179185                $content = apply_filters( "_wp_post_revision_field_$field", $revision->$field, $field ); 
    180186        } 
    181187        ?> 
    182188 
    183189        <tr id="revision-field-<?php echo $field; ?>"> 
    184                 <th scope="row"><?php echo esc_html( $field_title ); ?></th> 
    185190                <td><div class="pre"><?php echo $content; ?></div></td> 
    186191        </tr> 
    187192 
     
    203208 
    204209</table> 
    205210 
    206 <br class="clear" /> 
    207  
     211<div id="revisions-detail-list"> 
    208212<h3><?php echo $title; ?></h3> 
    209213 
    210214<?php 
     
    216220wp_list_post_revisions( $post, $args ); 
    217221 
    218222?> 
    219  
    220223</div> 
     224</div> 
    221225 
    222226<?php 
    223227require_once( './admin-footer.php' ); 
  • wp-admin/css/colors-fresh.css

     
    13501350 
    13511351/* Diff */ 
    13521352table.diff .diff-deletedline { 
    1353         background-color: #fdd; 
     1353        background-color: #c33; 
     1354        padding:10px; 
     1355        margin:2px; 
     1356        -webkit-border-radius: 5px; 
     1357        border-radius: 5px; 
     1358        color: #fff; 
     1359        text-align: center; 
    13541360} 
     1361table.diff .diff-deletedline-leftcol { 
     1362        border: #c33 dotted 2px; 
     1363        padding:10px; 
     1364        margin:2px; 
     1365        -webkit-border-radius: 5px; 
     1366        border-radius: 5px; 
     1367        text-decoration: line-through; 
     1368} 
    13551369 
     1370table.diff .diff-context { 
     1371        padding:10px; 
     1372        margin:2px; 
     1373        -webkit-border-radius: 5px; 
     1374        border-radius: 5px; 
     1375} 
     1376 
     1377table.diff .diff-context:hover { 
     1378        background-color: #FFE; 
     1379} 
     1380 
    13561381table.diff .diff-deletedline del { 
    1357         background-color: #f99; 
     1382        background-color: #f33; 
    13581383} 
    13591384 
    13601385table.diff .diff-addedline { 
    1361         background-color: #dfd; 
     1386        background-color: #3a3; 
     1387        padding:10px; 
     1388        margin:2px; 
     1389        -webkit-border-radius: 5px; 
     1390        border-radius: 5px; 
     1391        color: #fff; 
     1392        text-align: center; 
    13621393} 
    13631394 
     1395table.diff .diff-addedline-leftcol { 
     1396        border: #3a3 dotted 2px; 
     1397        padding:10px; 
     1398        margin:2px; 
     1399        -webkit-border-radius: 5px; 
     1400        border-radius: 5px; 
     1401} 
     1402 
    13641403table.diff .diff-addedline ins { 
    1365         background-color: #9f9; 
     1404        background-color: #3f3; 
    13661405} 
    13671406 
    13681407#att-info { 
  • wp-admin/css/wp-admin.css

     
    34363436} 
    34373437 
    34383438table.diff col.content { 
    3439         width: 50%; 
     3439        width: auto; 
    34403440} 
    34413441 
    34423442table.diff tr { 
     
    85858585.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap { 
    85868586        margin-left: 8em; 
    85878587} 
     8588ul.post-revisions img { 
     8589        float: left; 
     8590        margin: 2px; 
     8591} 
     8592ul.post-revisions li { 
     8593        border-bottom: 1px solid #FFF; 
     8594} 
     8595ul.post-revisions li  a { 
     8596        line-height: 24px; 
     8597} 
     8598table#post-revisions tr td.revision-details, span.revision-details { 
     8599        line-height: 16px; 
     8600        padding: 0; 
     8601        height: 30px; 
     8602        vertical-align: middle;; 
     8603} 
     8604.form-table #revision  th{ 
     8605        padding-left: 28px; 
     8606} 
     8607table#post-revisions tr td img { 
     8608        float: left; 
     8609        margin: 4px; 
     8610} 
     8611 span.revision-details img { 
     8612        margin: 1px; 
     8613        vertical-align: middle; 
     8614 } 
     8615.diff .ltype { 
     8616        width: 100px; 
     8617} 
     8618tr#revision-field-post_title td div { 
     8619        font-size: 150%; 
     8620        font-weight: bold; 
     8621} 
     8622@media screen and (min-width: 1200px) { 
     8623        .revision-compare { 
     8624                float: right; 
     8625                width: 70%; 
     8626        } 
     8627        #revisions-detail-list { 
     8628                float: left; 
     8629                width: 30%; 
     8630        } 
     8631} 
     8632 No newline at end of file