wp/wp-admin/js/dashboard.js
author ymh <ymh.work@gmail.com>
Wed, 06 Nov 2013 03:21:17 +0000
changeset 0 d970ebf37754
child 5 5e2f62d02dcd
permissions -rw-r--r--
first import
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
var ajaxWidgets, ajaxPopulateWidgets, quickPressLoad;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
jQuery(document).ready( function($) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
	/* Dashboard Welcome Panel */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
	var welcomePanel = $('#welcome-panel'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
		welcomePanelHide = $('#wp_welcome_panel-hide'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
	 	updateWelcomePanel = function( visible ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
			$.post( ajaxurl, {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
				action: 'update-welcome-panel',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
				visible: visible,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
				welcomepanelnonce: $('#welcomepanelnonce').val()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
			});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
		};
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
	if ( welcomePanel.hasClass('hidden') && welcomePanelHide.prop('checked') )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
		welcomePanel.removeClass('hidden');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
	$('.welcome-panel-close, .welcome-panel-dismiss a', welcomePanel).click( function(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
		e.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
		welcomePanel.addClass('hidden');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
		updateWelcomePanel( 0 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
		$('#wp_welcome_panel-hide').prop('checked', false);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
	});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
	welcomePanelHide.click( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
		welcomePanel.toggleClass('hidden', ! this.checked );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
		updateWelcomePanel( this.checked ? 1 : 0 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
	});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
	// These widgets are sometimes populated via ajax
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
	ajaxWidgets = [
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
		'dashboard_incoming_links',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
		'dashboard_primary',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
		'dashboard_secondary',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
		'dashboard_plugins'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
	];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
	ajaxPopulateWidgets = function(el) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
		function show(i, id) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
			var p, e = $('#' + id + ' div.inside:visible').find('.widget-loading');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
			if ( e.length ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
				p = e.parent();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
				setTimeout( function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
					p.load( ajaxurl + '?action=dashboard-widgets&widget=' + id, '', function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
						p.hide().slideDown('normal', function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
							$(this).css('display', '');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
						});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
					});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
				}, i * 500 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
		if ( el ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
			el = el.toString();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
			if ( $.inArray(el, ajaxWidgets) != -1 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
				show(0, el);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
		} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
			$.each( ajaxWidgets, show );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
	};
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
	ajaxPopulateWidgets();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
	postboxes.add_postbox_toggles(pagenow, { pbshow: ajaxPopulateWidgets } );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
	/* QuickPress */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
	quickPressLoad = function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
		var act = $('#quickpost-action'), t;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
		t = $('#quick-press').submit( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
			$('#dashboard_quick_press #publishing-action .spinner').show();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
			$('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop('disabled', true);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
			if ( 'post' == act.val() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
				act.val( 'post-quickpress-publish' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
			$('#dashboard_quick_press div.inside').load( t.attr( 'action' ), t.serializeArray(), function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
				$('#dashboard_quick_press #publishing-action .spinner').hide();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
				$('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop('disabled', false);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
				$('#dashboard_quick_press ul').next('p').remove();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
				$('#dashboard_quick_press ul').find('li').each( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
					$('#dashboard_recent_drafts ul').prepend( this );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
				} ).end().remove();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
				quickPressLoad();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
			} );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
			return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
		} );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
		$('#publish').click( function() { act.val( 'post-quickpress-publish' ); } );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
		$('#title, #tags-input').each( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
			var input = $(this), prompt = $('#' + this.id + '-prompt-text');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
			if ( '' === this.value )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
				prompt.removeClass('screen-reader-text');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
			prompt.click( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
				$(this).addClass('screen-reader-text');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
				input.focus();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
			});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
			input.blur( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
				if ( '' === this.value )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
					prompt.removeClass('screen-reader-text');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
			});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
			input.focus( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
				prompt.addClass('screen-reader-text');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
			});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
		});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
		$('#quick-press').on( 'click focusin', function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
			wpActiveEditor = 'content';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
		});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
	};
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
	quickPressLoad();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
} );