WordPress.org

Make WordPress Core

Ticket #23935: 23935.screen-options.patch

File 23935.screen-options.patch, 4.3 KB (added by ocean90, 5 years ago)
  • wp-admin/js/revisions.js

     
    252252
    253253                        this.reloadToLoadRevisions( this.revisions );
    254254
     255                        this.screenOptions = new revisions.view.ScreenOptions();
     256
    255257                        this.revisionsInteractions = new revisions.view.Interact({
    256258                                model: this.revisions
    257259                        });
     
    573575                }
    574576        });
    575577
     578        revisions.view.ScreenOptions = Backbone.View.extend({
     579                el: $( '#screen-options-wrap' ),
     580
     581                events: {
     582                        'click #compare-two-revisions': 'compareTwo'
     583                },
     584
     585                // turn on/off the compare two mode
     586                compareTwo: function() {
     587                        console.log( 'jo' );
     588                        if ( $( '#compare-two-revisions' ).is( ':checked' ) ) { // compare 2 mode
     589                                Diff.singleRevision = false ;
     590
     591                                if ( 1 === Diff.rightDiff )
     592                                        Diff.rightDiff = 2;
     593
     594                                Diff.revisionView.draggingLeft = false;
     595
     596                                revisions.model.settings.revision_id = ''; // reset passed revision id so switching back to one handle mode doesn't re-select revision
     597                                Diff.reloadLeftRight();
     598                                Diff.revisionView.model = Diff.rightHandleRevisions;
     599
     600                        } else { // compare one mode
     601                                Diff.singleRevision = true;
     602                                Diff.revisionView.draggingLeft = false;
     603                                Diff.reloadModelSingle();
     604                        }
     605                        Diff.revisionsInteractions.render();
     606                        Diff.tickmarkView.render();
     607                }
     608        });
     609
     610
    576611        /**
    577612         * wp.revisions.view.Diff
    578613         *
     
    583618                template: wp.template( 'revisions-diff' ),
    584619                draggingLeft: false,
    585620
    586                 // the compare two button is in this view, add the interaction here
    587621                events: {
    588                         'click #compare-two-revisions': 'compareTwo',
    589                         'click #restore-revision':      'restore'
     622                        'click #restore-revision': 'restore'
    590623                },
    591624
    592625                // render the revisions
     
    646679                        $( '#compare-two-revisions' ).prop( 'checked', ! Diff.singleRevision );
    647680                },
    648681
    649                 // turn on/off the compare two mode
    650                 compareTwo: function() {
    651                         if ( $( '#compare-two-revisions' ).is( ':checked' ) ) { // compare 2 mode
    652                                 Diff.singleRevision = false ;
    653 
    654                                 if ( 1 === Diff.rightDiff )
    655                                         Diff.rightDiff = 2;
    656 
    657                                 Diff.revisionView.draggingLeft = false;
    658 
    659                                 revisions.model.settings.revision_id = ''; // reset passed revision id so switching back to one handle mode doesn't re-select revision
    660                                 Diff.reloadLeftRight();
    661                                 Diff.revisionView.model = Diff.rightHandleRevisions;
    662 
    663                         } else { // compare one mode
    664                                 Diff.singleRevision = true;
    665                                 Diff.revisionView.draggingLeft = false;
    666                                 Diff.reloadModelSingle();
    667                         }
    668                         Diff.revisionsInteractions.render();
    669                         Diff.tickmarkView.render();
    670                 },
    671 
    672682                restore: function() {
    673683                        document.location = $( '#restore-revision' ).data( 'restoreLink' );
    674684                }
  • wp-admin/css/wp-admin.css

     
    35613561        text-decoration: none;
    35623562}
    35633563
    3564 #revision-diff-container {
    3565         position: relative;
    3566 }
    3567 
    3568 #toggle-revision-compare-mode {
    3569         position: absolute;
    3570         top: 0;
    3571         right: 0;
    3572         padding-top: 15px;
    3573 }
    3574 
    35753564#loading-status {
    35763565        position: absolute;
    35773566        top: 0;
  • wp-admin/revision.php

     
    9292$strings['settings'] = $settings;
    9393wp_localize_script( 'revisions', 'wpRevisionsL10n', $strings );
    9494
     95function _show_compare_mode( $screen_settings, $screen ) {
     96        if ( 'revision' != $screen->id )
     97                return;
     98
     99        $setting = '<label>';
     100        $setting .= '<input type="checkbox" id="compare-two-revisions" />';
     101        $setting .= esc_attr__( 'Compare two revisions' );
     102        $setting .= '</label>';
     103
     104        return $setting;
     105}
     106add_filter( 'screen_settings', '_show_compare_mode', 10, 2 );
     107
    95108require_once( './admin-header.php' );
    96 
    97109?>
    98110
    99111<div class="wrap">
     
    116128</div>
    117129
    118130<script id="tmpl-revisions-diff" type="text/html">
    119         <div id="toggle-revision-compare-mode">
    120                 <label>
    121                         <input type="checkbox" id="compare-two-revisions" />
    122                         <?php esc_attr_e( 'Compare two revisions' ); ?>
    123                 </label>
    124         </div>
    125 
    126131        <div id="diff-header-from" class="diff-header">
    127132                <div id="diff-title-from-current-version" class="diff-title">
    128133                        <?php printf( '<strong>%1$s</strong> %2$s.' , __( 'From:' ), __( 'the current version' ) ); ?>