Index: /var/www/html/wordpress-trunk/trunk/wp-admin/includes/post.php
===================================================================
--- /var/www/html/wordpress-trunk/trunk/wp-admin/includes/post.php (revision 17137)
+++ /var/www/html/wordpress-trunk/trunk/wp-admin/includes/post.php (working copy)
@@ -167,6 +167,11 @@
$post_data['post_password'] = '';
break;
case 'password' :
+ // if password is not set, revert post status to what it was
+ $post_data['post_password'] = trim($post_data['post_password']);
+ if( empty( $post_data['post_password'] ) ) {
+ $post_data['post_status'] = $post_data['hidden_post_status'];
+ }
unset( $post_data['sticky'] );
break;
case 'private' :
Index: /var/www/html/wordpress-trunk/trunk/wp-admin/js/post.dev.js
===================================================================
--- /var/www/html/wordpress-trunk/trunk/wp-admin/js/post.dev.js (revision 17137)
+++ /var/www/html/wordpress-trunk/trunk/wp-admin/js/post.dev.js (working copy)
@@ -453,6 +453,17 @@
});
$('.save-post-visibility', '#post-visibility-select').click(function () { // crazyhorse - multiple ok cancels
+ // hack - check if "Password protected" is checked but password is not set
+ var post_password = jQuery.trim($('#post_password').val());
+ if ( $("#visibility-radio-password").attr('checked') && post_password == '' ) {
+ // trim-fix
+ $('#post_password').val('');
+ $('#post_password').addClass('form-invalid');
+ // if password is blank, the slide-up event won't happen and so, the post visibility won't be updated...
+ return false;
+ } else {
+ $('#post_password').removeClass('form-invalid');
+ }
var pvSelect = $('#post-visibility-select');
pvSelect.slideUp("normal");