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