From 7ec819d9251f080c2b1901916354b8bfdb1a87bc Mon Sep 17 00:00:00 2001 From: westi Date: Wed, 23 Dec 2009 09:15:13 +0000 Subject: [PATCH] Improve the revision comparison user interface to hilight that we compare "old on left" to "new on right". Includes some js to hide the radio buttons to stop you selecting reverse comparisions. Fixes #11088 props filosofo. git-svn-id: http://svn.automattic.com/wordpress/trunk@12500 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/revision.php | 2 ++ wp-includes/js/wp-list-revisions.dev.js | 24 ++++++++++++++++++++++++ wp-includes/js/wp-list-revisions.js | 1 + wp-includes/post-template.php | 9 ++++++--- wp-includes/script-loader.php | 2 ++ 5 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 wp-includes/js/wp-list-revisions.dev.js create mode 100644 wp-includes/js/wp-list-revisions.js diff --git a/wp-admin/revision.php b/wp-admin/revision.php index 9c3ce3630..8c712a531 100644 --- a/wp-admin/revision.php +++ b/wp-admin/revision.php @@ -9,6 +9,8 @@ /** WordPress Administration Bootstrap */ require_once('admin.php'); +wp_enqueue_script('list-revisions'); + wp_reset_vars(array('revision', 'left', 'right', 'diff', 'action')); $revision_id = absint($revision); $diff = absint($diff); diff --git a/wp-includes/js/wp-list-revisions.dev.js b/wp-includes/js/wp-list-revisions.dev.js new file mode 100644 index 000000000..bb5c438a5 --- /dev/null +++ b/wp-includes/js/wp-list-revisions.dev.js @@ -0,0 +1,24 @@ +(function(w) { + var init = function() { + var pr = document.getElementById('post-revisions'), + inputs = pr ? pr.getElementsByTagName('input') : []; + pr.onclick = function() { + var i, checkCount = 0, side; + for ( i = 0; i < inputs.length; i++ ) { + checkCount += inputs[i].checked ? 1 : 0; + side = inputs[i].getAttribute('name'); + if ( ! inputs[i].checked && + ( 'left' == side && 1 > checkCount || 'right' == side && 1 < checkCount && ( ! inputs[i-1] || ! inputs[i-1].checked ) ) && + ! ( inputs[i+1] && inputs[i+1].checked && 'right' == inputs[i+1].getAttribute('name') ) ) + inputs[i].style.visibility = 'hidden'; + else if ( 'left' == side || 'right' == side ) + inputs[i].style.visibility = 'visible'; + } + } + pr.onclick(); + } + if ( w && w.addEventListener ) + w.addEventListener('load', init, false); + else if ( w && w.attachEvent ) + w.attachEvent('onload', init); +})(window); diff --git a/wp-includes/js/wp-list-revisions.js b/wp-includes/js/wp-list-revisions.js new file mode 100644 index 000000000..417572db4 --- /dev/null +++ b/wp-includes/js/wp-list-revisions.js @@ -0,0 +1 @@ +(function(a){var b=function(){var d=document.getElementById("post-revisions"),c=d?d.getElementsByTagName("input"):[];d.onclick=function(){var g,f=0,e;for(g=0;gf||"right"==e&&1 - +
+ - + + diff --git a/wp-includes/script-loader.php b/wp-includes/script-loader.php index f17603b52..99332f92a 100644 --- a/wp-includes/script-loader.php +++ b/wp-includes/script-loader.php @@ -373,6 +373,8 @@ function wp_default_scripts( &$scripts ) { $scripts->add( 'hoverIntent', "/wp-includes/js/hoverIntent$suffix.js", array('jquery'), '20090102' ); $scripts->add_data( 'hoverIntent', 'group', 1 ); + $scripts->add( 'list-revisions', "/wp-includes/js/wp-list-revisions$suffix.js", null, '20091223' ); + $scripts->add( 'media', "/wp-admin/js/media$suffix.js", array( 'jquery-ui-draggable' ), '20090415' ); $scripts->add_data( 'media', 'group', 1 );