run:R W Run
DIR
2026-03-11 16:18:51
R W Run
2.86 KB
2026-03-11 16:18:51
R W Run
758 By
2026-03-11 16:18:51
R W Run
6.24 KB
2026-03-11 16:18:51
R W Run
2.95 KB
2026-03-11 16:18:51
R W Run
5.66 KB
2026-03-11 16:18:51
R W Run
2.04 KB
2026-03-11 16:18:51
R W Run
11.32 KB
2026-03-11 16:18:51
R W Run
3.01 KB
2026-03-11 16:18:51
R W Run
9.54 KB
2026-03-11 16:18:51
R W Run
3.4 KB
2026-03-11 16:18:51
R W Run
2.85 KB
2026-03-11 16:18:51
R W Run
1.28 KB
2026-03-11 16:18:51
R W Run
61.15 KB
2026-03-11 16:18:51
R W Run
23.12 KB
2026-03-11 16:18:51
R W Run
3.35 KB
2026-03-11 16:18:51
R W Run
1.18 KB
2026-03-11 16:18:51
R W Run
1.98 KB
2026-03-11 16:18:51
R W Run
288.41 KB
2026-03-11 16:18:51
R W Run
109.69 KB
2026-03-11 16:18:51
R W Run
111.46 KB
2026-03-11 16:18:51
R W Run
47.14 KB
2026-03-11 16:18:51
R W Run
70.05 KB
2026-03-11 16:18:51
R W Run
27.41 KB
2026-03-11 16:18:51
R W Run
27.02 KB
2026-03-11 16:18:51
R W Run
8.65 KB
2026-03-11 16:18:51
R W Run
37.12 KB
2026-03-11 16:18:51
R W Run
15.13 KB
2026-03-11 16:18:51
R W Run
41.61 KB
2026-03-11 16:18:51
R W Run
13.14 KB
2026-03-11 16:18:51
R W Run
44 KB
2026-03-11 16:18:51
R W Run
12.78 KB
2026-03-11 16:18:51
R W Run
7.67 KB
2026-03-11 16:18:51
R W Run
5.41 KB
2026-03-11 16:18:51
R W Run
3.65 KB
2026-03-11 16:18:51
R W Run
39.98 KB
2026-03-11 16:18:51
R W Run
15.15 KB
2026-03-11 16:18:51
R W Run
20.17 KB
2026-03-11 16:18:51
R W Run
9.41 KB
2026-03-11 16:18:51
R W Run
7.61 KB
2026-03-11 16:18:51
R W Run
2.93 KB
2026-03-11 16:18:51
R W Run
23.09 KB
2026-03-11 16:18:51
R W Run
890 By
2026-03-11 16:18:51
R W Run
423 By
2026-03-11 16:18:51
R W Run
3.89 KB
2026-03-11 16:18:51
R W Run
1.7 KB
2026-03-11 16:18:51
R W Run
1.27 KB
2026-03-11 16:18:51
R W Run
611 By
2026-03-11 16:18:51
R W Run
3.38 KB
2026-03-11 16:18:51
R W Run
1.13 KB
2026-03-11 16:18:51
R W Run
6.61 KB
2026-03-11 16:18:51
R W Run
2.38 KB
2026-03-11 16:18:51
R W Run
61.15 KB
2026-03-11 16:18:51
R W Run
30.06 KB
2026-03-11 16:18:51
R W Run
4.14 KB
2026-03-11 16:18:51
R W Run
1.1 KB
2026-03-11 16:18:51
R W Run
1.31 KB
2026-03-11 16:18:51
R W Run
847 By
2026-03-11 16:18:51
R W Run
6.92 KB
2026-03-11 16:18:51
R W Run
2.35 KB
2026-03-11 16:18:51
R W Run
38.68 KB
2026-03-11 16:18:51
R W Run
18.4 KB
2026-03-11 16:18:51
R W Run
18.49 KB
2026-03-11 16:18:51
R W Run
6.6 KB
2026-03-11 16:18:51
R W Run
10.67 KB
2026-03-11 16:18:51
R W Run
5.03 KB
2026-03-11 16:18:51
R W Run
33.92 KB
2026-03-11 16:18:51
R W Run
17.97 KB
2026-03-11 16:18:51
R W Run
876 By
2026-03-11 16:18:51
R W Run
620 By
2026-03-11 16:18:51
R W Run
13.15 KB
2026-03-11 16:18:51
R W Run
6.13 KB
2026-03-11 16:18:51
R W Run
6.1 KB
2026-03-11 16:18:51
R W Run
2.2 KB
2026-03-11 16:18:51
R W Run
3.2 KB
2026-03-11 16:18:51
R W Run
1.53 KB
2026-03-11 16:18:51
R W Run
10.88 KB
2026-03-11 16:18:51
R W Run
3 KB
2026-03-11 16:18:51
R W Run
5.64 KB
2026-03-11 16:18:51
R W Run
2.22 KB
2026-03-11 16:18:51
R W Run
5.96 KB
2026-03-11 16:18:51
R W Run
2.41 KB
2026-03-11 16:18:51
R W Run
24.77 KB
2026-03-11 16:18:51
R W Run
11.43 KB
2026-03-11 16:18:51
R W Run
54.94 KB
2026-03-11 16:18:51
R W Run
26.51 KB
2026-03-11 16:18:51
R W Run
109.37 KB
2026-03-11 16:18:51
R W Run
47.31 KB
2026-03-11 16:18:51
R W Run
17.91 KB
2026-03-11 16:18:51
R W Run
7.81 KB
2026-03-11 16:18:51
R W Run
2.25 KB
2026-03-11 16:18:51
R W Run
676 By
2026-03-11 16:18:51
R W Run
22.56 KB
2026-03-11 16:18:51
R W Run
12.31 KB
2026-03-11 16:18:51
R W Run
7.52 KB
2026-03-11 16:18:51
R W Run
1.49 KB
2026-03-11 16:18:51
R W Run
740 By
2026-03-11 16:18:51
R W Run
458 By
2026-03-11 16:18:51
R W Run
error_log
📄inline-edit-post.js
1/**
2 * This file contains the functions needed for the inline editing of posts.
3 *
4 * @since 2.7.0
5 * @output wp-admin/js/inline-edit-post.js
6 */
7
8/* global ajaxurl, typenow, inlineEditPost */
9
10window.wp = window.wp || {};
11
12/**
13 * Manages the quick edit and bulk edit windows for editing posts or pages.
14 *
15 * @namespace inlineEditPost
16 *
17 * @since 2.7.0
18 *
19 * @type {Object}
20 *
21 * @property {string} type The type of inline editor.
22 * @property {string} what The prefix before the post ID.
23 *
24 */
25( function( $, wp ) {
26
27 window.inlineEditPost = {
28
29 /**
30 * Initializes the inline and bulk post editor.
31 *
32 * Binds event handlers to the Escape key to close the inline editor
33 * and to the save and close buttons. Changes DOM to be ready for inline
34 * editing. Adds event handler to bulk edit.
35 *
36 * @since 2.7.0
37 *
38 * @memberof inlineEditPost
39 *
40 * @return {void}
41 */
42 init : function(){
43 var t = this, qeRow = $('#inline-edit'), bulkRow = $('#bulk-edit');
44
45 t.type = $('table.widefat').hasClass('pages') ? 'page' : 'post';
46 // Post ID prefix.
47 t.what = '#post-';
48
49 /**
50 * Binds the Escape key to revert the changes and close the quick editor.
51 *
52 * @return {boolean} The result of revert.
53 */
54 qeRow.on( 'keyup', function(e){
55 // Revert changes if Escape key is pressed.
56 if ( e.which === 27 ) {
57 return inlineEditPost.revert();
58 }
59 });
60
61 /**
62 * Binds the Escape key to revert the changes and close the bulk editor.
63 *
64 * @return {boolean} The result of revert.
65 */
66 bulkRow.on( 'keyup', function(e){
67 // Revert changes if Escape key is pressed.
68 if ( e.which === 27 ) {
69 return inlineEditPost.revert();
70 }
71 });
72
73 /**
74 * Reverts changes and close the quick editor if the cancel button is clicked.
75 *
76 * @return {boolean} The result of revert.
77 */
78 $( '.cancel', qeRow ).on( 'click', function() {
79 return inlineEditPost.revert();
80 });
81
82 /**
83 * Saves changes in the quick editor if the save(named: update) button is clicked.
84 *
85 * @return {boolean} The result of save.
86 */
87 $( '.save', qeRow ).on( 'click', function() {
88 return inlineEditPost.save(this);
89 });
90
91 /**
92 * If Enter is pressed, and the target is not the cancel button, save the post.
93 *
94 * @return {boolean} The result of save.
95 */
96 $('td', qeRow).on( 'keydown', function(e){
97 if ( e.which === 13 && ! $( e.target ).hasClass( 'cancel' ) ) {
98 return inlineEditPost.save(this);
99 }
100 });
101
102 /**
103 * Reverts changes and close the bulk editor if the cancel button is clicked.
104 *
105 * @return {boolean} The result of revert.
106 */
107 $( '.cancel', bulkRow ).on( 'click', function() {
108 return inlineEditPost.revert();
109 });
110
111 /**
112 * Disables the password input field when the private post checkbox is checked.
113 */
114 $('#inline-edit .inline-edit-private input[value="private"]').on( 'click', function(){
115 var pw = $('input.inline-edit-password-input');
116 if ( $(this).prop('checked') ) {
117 pw.val('').prop('disabled', true);
118 } else {
119 pw.prop('disabled', false);
120 }
121 });
122
123 /**
124 * Binds click event to the .editinline button which opens the quick editor.
125 */
126 $( '#the-list' ).on( 'click', '.editinline', function() {
127 $( this ).attr( 'aria-expanded', 'true' );
128 inlineEditPost.edit( this );
129 });
130
131 // Clone quick edit categories for the bulk editor.
132 var beCategories = $( '#inline-edit fieldset.inline-edit-categories' ).clone();
133
134 // Make "id" attributes globally unique.
135 beCategories.find( '*[id]' ).each( function() {
136 this.id = 'bulk-edit-' + this.id;
137 });
138
139 $('#bulk-edit').find('fieldset:first').after(
140 beCategories
141 ).siblings( 'fieldset:last' ).prepend(
142 $( '#inline-edit .inline-edit-tags-wrap' ).clone()
143 );
144
145 $('select[name="_status"] option[value="future"]', bulkRow).remove();
146
147 /**
148 * Adds onclick events to the apply buttons.
149 */
150 $('#doaction').on( 'click', function(e){
151 var n,
152 $itemsSelected = $( '#posts-filter .check-column input[type="checkbox"]:checked' );
153
154 if ( $itemsSelected.length < 1 ) {
155 return;
156 }
157
158 t.whichBulkButtonId = $( this ).attr( 'id' );
159 n = t.whichBulkButtonId.substr( 2 );
160
161 if ( 'edit' === $( 'select[name="' + n + '"]' ).val() ) {
162 e.preventDefault();
163 t.setBulk();
164 } else if ( $('form#posts-filter tr.inline-editor').length > 0 ) {
165 t.revert();
166 }
167 });
168 },
169
170 /**
171 * Toggles the quick edit window, hiding it when it's active and showing it when
172 * inactive.
173 *
174 * @since 2.7.0
175 *
176 * @memberof inlineEditPost
177 *
178 * @param {Object} el Element within a post table row.
179 */
180 toggle : function(el){
181 var t = this;
182 $( t.what + t.getId( el ) ).css( 'display' ) === 'none' ? t.revert() : t.edit( el );
183 },
184
185 /**
186 * Creates the bulk editor row to edit multiple posts at once.
187 *
188 * @since 2.7.0
189 *
190 * @memberof inlineEditPost
191 */
192 setBulk : function(){
193 var te = '', type = this.type, c = true;
194 var checkedPosts = $( 'tbody th.check-column input[type="checkbox"]:checked' );
195 var categories = {};
196 this.revert();
197
198 $( '#bulk-edit td' ).attr( 'colspan', $( 'th:visible, td:visible', '.widefat:first thead' ).length );
199
200 // Insert the editor at the top of the table with an empty row above to maintain zebra striping.
201 $('table.widefat tbody').prepend( $('#bulk-edit') ).prepend('<tr class="hidden"></tr>');
202 $('#bulk-edit').addClass('inline-editor').show();
203
204 /**
205 * Create a HTML div with the title and a link(delete-icon) for each selected
206 * post.
207 *
208 * Get the selected posts based on the checked checkboxes in the post table.
209 */
210 $( 'tbody th.check-column input[type="checkbox"]' ).each( function() {
211
212 // If the checkbox for a post is selected, add the post to the edit list.
213 if ( $(this).prop('checked') ) {
214 c = false;
215 var id = $( this ).val(),
216 theTitle = $( '#inline_' + id + ' .post_title' ).html() || wp.i18n.__( '(no title)' ),
217 buttonVisuallyHiddenText = wp.i18n.sprintf(
218 /* translators: %s: Post title. */
219 wp.i18n.__( 'Remove &#8220;%s&#8221; from Bulk Edit' ),
220 theTitle
221 );
222
223 te += '<li class="ntdelitem"><button type="button" id="_' + id + '" class="button-link ntdelbutton"><span class="screen-reader-text">' + buttonVisuallyHiddenText + '</span></button><span class="ntdeltitle" aria-hidden="true">' + theTitle + '</span></li>';
224 }
225 });
226
227 // If no checkboxes where checked, just hide the quick/bulk edit rows.
228 if ( c ) {
229 return this.revert();
230 }
231
232 // Populate the list of items to bulk edit.
233 $( '#bulk-titles' ).html( '<ul id="bulk-titles-list" role="list">' + te + '</ul>' );
234
235 // Gather up some statistics on which of these checked posts are in which categories.
236 checkedPosts.each( function() {
237 var id = $( this ).val();
238 var checked = $( '#category_' + id ).text().split( ',' );
239
240 checked.map( function( cid ) {
241 categories[ cid ] || ( categories[ cid ] = 0 );
242 // Just record that this category is checked.
243 categories[ cid ]++;
244 } );
245 } );
246
247 // Compute initial states.
248 $( '.inline-edit-categories input[name="post_category[]"]' ).each( function() {
249 if ( categories[ $( this ).val() ] == checkedPosts.length ) {
250 // If the number of checked categories matches the number of selected posts, then all posts are in this category.
251 $( this ).prop( 'checked', true );
252 } else if ( categories[ $( this ).val() ] > 0 ) {
253 // If the number is less than the number of selected posts, then it's indeterminate.
254 $( this ).prop( 'indeterminate', true );
255 if ( ! $( this ).parent().find( 'input[name="indeterminate_post_category[]"]' ).length ) {
256 // Get the term label text.
257 var label = $( this ).parent().text();
258 // Set indeterminate states for the backend. Add accessible text for indeterminate inputs.
259 $( this ).after( '<input type="hidden" name="indeterminate_post_category[]" value="' + $( this ).val() + '">' ).attr( 'aria-label', label.trim() + ': ' + wp.i18n.__( 'Some selected posts have this category' ) );
260 }
261 }
262 } );
263
264 $( '.inline-edit-categories input[name="post_category[]"]:indeterminate' ).on( 'change', function() {
265 // Remove accessible label text. Remove the indeterminate flags as there was a specific state change.
266 $( this ).removeAttr( 'aria-label' ).parent().find( 'input[name="indeterminate_post_category[]"]' ).remove();
267 } );
268
269 $( '.inline-edit-save button' ).on( 'click', function() {
270 $( '.inline-edit-categories input[name="post_category[]"]' ).prop( 'indeterminate', false );
271 } );
272
273 /**
274 * Binds on click events to handle the list of items to bulk edit.
275 *
276 * @listens click
277 */
278 $( '#bulk-titles .ntdelbutton' ).click( function() {
279 var $this = $( this ),
280 id = $this.attr( 'id' ).substr( 1 ),
281 $prev = $this.parent().prev().children( '.ntdelbutton' ),
282 $next = $this.parent().next().children( '.ntdelbutton' );
283
284 $( 'input#cb-select-all-1, input#cb-select-all-2' ).prop( 'checked', false );
285 $( 'table.widefat input[value="' + id + '"]' ).prop( 'checked', false );
286 $( '#_' + id ).parent().remove();
287 wp.a11y.speak( wp.i18n.__( 'Item removed.' ), 'assertive' );
288
289 // Move focus to a proper place when items are removed.
290 if ( $next.length ) {
291 $next.focus();
292 } else if ( $prev.length ) {
293 $prev.focus();
294 } else {
295 $( '#bulk-titles-list' ).remove();
296 inlineEditPost.revert();
297 wp.a11y.speak( wp.i18n.__( 'All selected items have been removed. Select new items to use Bulk Actions.' ) );
298 }
299 });
300
301 // Enable auto-complete for tags when editing posts.
302 if ( 'post' === type ) {
303 $( 'tr.inline-editor textarea[data-wp-taxonomy]' ).each( function ( i, element ) {
304 /*
305 * While Quick Edit clones the form each time, Bulk Edit always re-uses
306 * the same form. Let's check if an autocomplete instance already exists.
307 */
308 if ( $( element ).autocomplete( 'instance' ) ) {
309 // jQuery equivalent of `continue` within an `each()` loop.
310 return;
311 }
312
313 $( element ).wpTagsSuggest();
314 } );
315 }
316
317 // Set initial focus on the Bulk Edit region.
318 $( '#bulk-edit .inline-edit-wrapper' ).attr( 'tabindex', '-1' ).focus();
319 // Scrolls to the top of the table where the editor is rendered.
320 $('html, body').animate( { scrollTop: 0 }, 'fast' );
321 },
322
323 /**
324 * Creates a quick edit window for the post that has been clicked.
325 *
326 * @since 2.7.0
327 *
328 * @memberof inlineEditPost
329 *
330 * @param {number|Object} id The ID of the clicked post or an element within a post
331 * table row.
332 * @return {boolean} Always returns false at the end of execution.
333 */
334 edit : function(id) {
335 var t = this, fields, editRow, rowData, status, pageOpt, pageLevel, nextPage, pageLoop = true, nextLevel, f, val, pw;
336 t.revert();
337
338 if ( typeof(id) === 'object' ) {
339 id = t.getId(id);
340 }
341
342 fields = ['post_title', 'post_name', 'post_author', '_status', 'jj', 'mm', 'aa', 'hh', 'mn', 'ss', 'post_password', 'post_format', 'menu_order', 'page_template'];
343 if ( t.type === 'page' ) {
344 fields.push('post_parent');
345 }
346
347 // Add the new edit row with an extra blank row underneath to maintain zebra striping.
348 editRow = $('#inline-edit').clone(true);
349 $( 'td', editRow ).attr( 'colspan', $( 'th:visible, td:visible', '.widefat:first thead' ).length );
350
351 // Remove the ID from the copied row and let the `for` attribute reference the hidden ID.
352 $( 'td', editRow ).find('#quick-edit-legend').removeAttr('id');
353 $( 'td', editRow ).find('p[id^="quick-edit-"]').removeAttr('id');
354
355 $(t.what+id).removeClass('is-expanded').hide().after(editRow).after('<tr class="hidden"></tr>');
356
357 // Populate fields in the quick edit window.
358 rowData = $('#inline_'+id);
359 if ( !$(':input[name="post_author"] option[value="' + $('.post_author', rowData).text() + '"]', editRow).val() ) {
360
361 // The post author no longer has edit capabilities, so we need to add them to the list of authors.
362 $(':input[name="post_author"]', editRow).prepend('<option value="' + $('.post_author', rowData).text() + '">' + $('#post-' + id + ' .author').text() + '</option>');
363 }
364 if ( $( ':input[name="post_author"] option', editRow ).length === 1 ) {
365 $('label.inline-edit-author', editRow).hide();
366 }
367
368 for ( f = 0; f < fields.length; f++ ) {
369 val = $('.'+fields[f], rowData);
370
371 /**
372 * Replaces the image for a Twemoji(Twitter emoji) with it's alternate text.
373 *
374 * @return {string} Alternate text from the image.
375 */
376 val.find( 'img' ).replaceWith( function() { return this.alt; } );
377 val = val.text();
378 $(':input[name="' + fields[f] + '"]', editRow).val( val );
379 }
380
381 if ( $( '.comment_status', rowData ).text() === 'open' ) {
382 $( 'input[name="comment_status"]', editRow ).prop( 'checked', true );
383 }
384 if ( $( '.ping_status', rowData ).text() === 'open' ) {
385 $( 'input[name="ping_status"]', editRow ).prop( 'checked', true );
386 }
387 if ( $( '.sticky', rowData ).text() === 'sticky' ) {
388 $( 'input[name="sticky"]', editRow ).prop( 'checked', true );
389 }
390
391 /**
392 * Creates the select boxes for the categories.
393 */
394 $('.post_category', rowData).each(function(){
395 var taxname,
396 term_ids = $(this).text();
397
398 if ( term_ids ) {
399 taxname = $(this).attr('id').replace('_'+id, '');
400 $('ul.'+taxname+'-checklist :checkbox', editRow).val(term_ids.split(','));
401 }
402 });
403
404 /**
405 * Gets all the taxonomies for live auto-fill suggestions when typing the name
406 * of a tag.
407 */
408 $('.tags_input', rowData).each(function(){
409 var terms = $(this),
410 taxname = $(this).attr('id').replace('_' + id, ''),
411 textarea = $('textarea.tax_input_' + taxname, editRow),
412 comma = wp.i18n._x( ',', 'tag delimiter' ).trim();
413
414 // Ensure the textarea exists.
415 if ( ! textarea.length ) {
416 return;
417 }
418
419 terms.find( 'img' ).replaceWith( function() { return this.alt; } );
420 terms = terms.text();
421
422 if ( terms ) {
423 if ( ',' !== comma ) {
424 terms = terms.replace(/,/g, comma);
425 }
426 textarea.val(terms);
427 }
428
429 textarea.wpTagsSuggest();
430 });
431
432 // Handle the post status.
433 var post_date_string = $(':input[name="aa"]').val() + '-' + $(':input[name="mm"]').val() + '-' + $(':input[name="jj"]').val();
434 post_date_string += ' ' + $(':input[name="hh"]').val() + ':' + $(':input[name="mn"]').val() + ':' + $(':input[name="ss"]').val();
435 var post_date = new Date( post_date_string );
436 status = $('._status', rowData).text();
437 if ( 'future' !== status && Date.now() > post_date ) {
438 $('select[name="_status"] option[value="future"]', editRow).remove();
439 } else {
440 $('select[name="_status"] option[value="publish"]', editRow).remove();
441 }
442
443 pw = $( '.inline-edit-password-input' ).prop( 'disabled', false );
444 if ( 'private' === status ) {
445 $('input[name="keep_private"]', editRow).prop('checked', true);
446 pw.val( '' ).prop( 'disabled', true );
447 }
448
449 // Remove the current page and children from the parent dropdown.
450 pageOpt = $('select[name="post_parent"] option[value="' + id + '"]', editRow);
451 if ( pageOpt.length > 0 ) {
452 pageLevel = pageOpt[0].className.split('-')[1];
453 nextPage = pageOpt;
454 while ( pageLoop ) {
455 nextPage = nextPage.next('option');
456 if ( nextPage.length === 0 ) {
457 break;
458 }
459
460 nextLevel = nextPage[0].className.split('-')[1];
461
462 if ( nextLevel <= pageLevel ) {
463 pageLoop = false;
464 } else {
465 nextPage.remove();
466 nextPage = pageOpt;
467 }
468 }
469 pageOpt.remove();
470 }
471
472 $(editRow).attr('id', 'edit-'+id).addClass('inline-editor').show();
473 $('.ptitle', editRow).trigger( 'focus' );
474
475 return false;
476 },
477
478 /**
479 * Saves the changes made in the quick edit window to the post.
480 * Ajax saving is only for Quick Edit and not for bulk edit.
481 *
482 * @since 2.7.0
483 *
484 * @param {number} id The ID for the post that has been changed.
485 * @return {boolean} False, so the form does not submit when pressing
486 * Enter on a focused field.
487 */
488 save : function(id) {
489 var params, fields, page = $('.post_status_page').val() || '';
490
491 if ( typeof(id) === 'object' ) {
492 id = this.getId(id);
493 }
494
495 $( 'table.widefat .spinner' ).addClass( 'is-active' );
496
497 params = {
498 action: 'inline-save',
499 post_type: typenow,
500 post_ID: id,
501 edit_date: 'true',
502 post_status: page
503 };
504
505 fields = $('#edit-'+id).find(':input').serialize();
506 params = fields + '&' + $.param(params);
507
508 // Make Ajax request.
509 $.post( ajaxurl, params,
510 function(r) {
511 var $errorNotice = $( '#edit-' + id + ' .inline-edit-save .notice-error' ),
512 $error = $errorNotice.find( '.error' );
513
514 $( 'table.widefat .spinner' ).removeClass( 'is-active' );
515
516 if (r) {
517 if ( -1 !== r.indexOf( '<tr' ) ) {
518 $(inlineEditPost.what+id).siblings('tr.hidden').addBack().remove();
519 $('#edit-'+id).before(r).remove();
520 $( inlineEditPost.what + id ).hide().fadeIn( 400, function() {
521 // Move focus back to the Quick Edit button. $( this ) is the row being animated.
522 $( this ).find( '.editinline' )
523 .attr( 'aria-expanded', 'false' )
524 .trigger( 'focus' );
525 wp.a11y.speak( wp.i18n.__( 'Changes saved.' ) );
526 });
527 } else {
528 r = r.replace( /<.[^<>]*?>/g, '' );
529 $errorNotice.removeClass( 'hidden' );
530 $error.html( r );
531 wp.a11y.speak( $error.text() );
532 }
533 } else {
534 $errorNotice.removeClass( 'hidden' );
535 $error.text( wp.i18n.__( 'Error while saving the changes.' ) );
536 wp.a11y.speak( wp.i18n.__( 'Error while saving the changes.' ) );
537 }
538 },
539 'html');
540
541 // Prevent submitting the form when pressing Enter on a focused field.
542 return false;
543 },
544
545 /**
546 * Hides and empties the Quick Edit and/or Bulk Edit windows.
547 *
548 * @since 2.7.0
549 *
550 * @memberof inlineEditPost
551 *
552 * @return {boolean} Always returns false.
553 */
554 revert : function(){
555 var $tableWideFat = $( '.widefat' ),
556 id = $( '.inline-editor', $tableWideFat ).attr( 'id' );
557
558 if ( id ) {
559 $( '.spinner', $tableWideFat ).removeClass( 'is-active' );
560
561 if ( 'bulk-edit' === id ) {
562
563 // Hide the bulk editor.
564 $( '#bulk-edit', $tableWideFat ).removeClass( 'inline-editor' ).hide().siblings( '.hidden' ).remove();
565 $('#bulk-titles').empty();
566
567 // Store the empty bulk editor in a hidden element.
568 $('#inlineedit').append( $('#bulk-edit') );
569
570 // Move focus back to the Bulk Action button that was activated.
571 $( '#' + inlineEditPost.whichBulkButtonId ).trigger( 'focus' );
572 } else {
573
574 // Remove both the inline-editor and its hidden tr siblings.
575 $('#'+id).siblings('tr.hidden').addBack().remove();
576 id = id.substr( id.lastIndexOf('-') + 1 );
577
578 // Show the post row and move focus back to the Quick Edit button.
579 $( this.what + id ).show().find( '.editinline' )
580 .attr( 'aria-expanded', 'false' )
581 .trigger( 'focus' );
582 }
583 }
584
585 return false;
586 },
587
588 /**
589 * Gets the ID for a the post that you want to quick edit from the row in the quick
590 * edit table.
591 *
592 * @since 2.7.0
593 *
594 * @memberof inlineEditPost
595 *
596 * @param {Object} o DOM row object to get the ID for.
597 * @return {string} The post ID extracted from the table row in the object.
598 */
599 getId : function(o) {
600 var id = $(o).closest('tr').attr('id'),
601 parts = id.split('-');
602 return parts[parts.length - 1];
603 }
604};
605
606$( function() { inlineEditPost.init(); } );
607
608// Show/hide locks on posts.
609$( function() {
610
611 // Set the heartbeat interval to 10 seconds.
612 if ( typeof wp !== 'undefined' && wp.heartbeat ) {
613 wp.heartbeat.interval( 10 );
614 }
615}).on( 'heartbeat-tick.wp-check-locked-posts', function( e, data ) {
616 var locked = data['wp-check-locked-posts'] || {};
617
618 $('#the-list tr').each( function(i, el) {
619 var key = el.id, row = $(el), lock_data, avatar;
620
621 if ( locked.hasOwnProperty( key ) ) {
622 if ( ! row.hasClass('wp-locked') ) {
623 lock_data = locked[key];
624 row.find('.column-title .locked-text').text( lock_data.text );
625 row.find('.check-column checkbox').prop('checked', false);
626
627 if ( lock_data.avatar_src ) {
628 avatar = $( '<img />', {
629 'class': 'avatar avatar-18 photo',
630 width: 18,
631 height: 18,
632 alt: '',
633 src: lock_data.avatar_src,
634 srcset: lock_data.avatar_src_2x ? lock_data.avatar_src_2x + ' 2x' : undefined
635 } );
636 row.find('.column-title .locked-avatar').empty().append( avatar );
637 }
638 row.addClass('wp-locked');
639 }
640 } else if ( row.hasClass('wp-locked') ) {
641 row.removeClass( 'wp-locked' ).find( '.locked-info span' ).empty();
642 }
643 });
644}).on( 'heartbeat-send.wp-check-locked-posts', function( e, data ) {
645 var check = [];
646
647 $('#the-list tr').each( function(i, el) {
648 if ( el.id ) {
649 check.push( el.id );
650 }
651 });
652
653 if ( check.length ) {
654 data['wp-check-locked-posts'] = check;
655 }
656});
657
658})( jQuery, window.wp );
659
Ui Ux Design – Teachers Night Out https://cardgames4educators.com Wed, 16 Oct 2024 22:24:18 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://cardgames4educators.com/wp-content/uploads/2024/06/cropped-Card-4-Educators-logo-32x32.png Ui Ux Design – Teachers Night Out https://cardgames4educators.com 32 32 Masters In English How English Speaker https://cardgames4educators.com/masters-in-english-how-english-speaker/ https://cardgames4educators.com/masters-in-english-how-english-speaker/#comments Mon, 27 May 2024 08:54:45 +0000 https://themexriver.com/wp/kadu/?p=1

Erat himenaeos neque id sagittis massa. Hac suscipit pulvinar dignissim platea magnis eu. Don tellus a pharetra inceptos efficitur dui pulvinar. Feugiat facilisis penatibus pulvinar nunc dictumst donec odio platea habitasse. Lacus porta dolor purus elit ante bibendum tortor netus taciti nullam cubilia. Erat per suspendisse placerat morbi egestas pulvinar bibendum sollicitudin nec. Euismod cubilia eleifend velit himenaeos sodales lectus. Leo maximus cras ac porttitor aliquam torquent pulvinar odio volutpat parturient. Quisque risus finibus suspendisse mus purus magnis facilisi condimentum consectetur dui. Curae elit suspendisse cursus vehicula.

Turpis taciti class non vel pretium quis pulvinar tempor lobortis nunc. Libero phasellus parturient sapien volutpat malesuada ornare. Cubilia dignissim sollicitudin rhoncus lacinia maximus. Cras lorem fermentum bibendum pellentesque nisl etiam ligula enim cubilia. Vulputate pede sapien torquent montes tempus malesuada in mattis dis turpis vitae. Porta est tempor ex eget feugiat vulputate ipsum. Justo nec iaculis habitant diam arcu fermentum.

We offer comprehen sive emplo ment services such as assistance wit employer compliance.Our company is your strategic HR partner as instead of HR. john smithson

Cubilia dignissim sollicitudin rhoncus lacinia maximus. Cras lorem fermentum bibendum pellentesque nisl etiam ligula enim cubilia. Vulputate pede sapien torquent montes tempus malesuada in mattis dis turpis vitae.

Exploring Learning Landscapes in Academic

Feugiat facilisis penatibus pulvinar nunc dictumst donec odio platea habitasse. Lacus porta dolor purus elit ante bibendum tortor netus taciti nullam cubilia. Erat per suspendisse placerat morbi egestas pulvinar bibendum sollicitudin nec. Euismod cubilia eleifend velit himenaeos sodales lectus. Leo maximus cras ac porttitor aliquam torquent.

]]>
https://cardgames4educators.com/masters-in-english-how-english-speaker/feed/ 1