%PDF- %PDF-
Direktori : /home/dopla/www/wp-content/plugins/polylang/js/ |
Current File : /home/dopla/www/wp-content/plugins/polylang/js/block-editor.js |
/** * Filter REST API requests to add the language in the request * * @since 2.5 */ wp.apiFetch.use( function( options, next ) { // If options.url is defined, this is not a REST request but a direct call to post.php for legacy metaboxes. if ( 'undefined' === typeof options.url ) { if ( 'undefined' === typeof options.data ) { // GET options.path += ( ( options.path.indexOf ( '?' ) >= 0 ) ? '&lang=' : '?lang=' ) + getCurrentLanguage(); } else { // PUT, POST options.data.lang = getCurrentLanguage(); } } return next( options ); } ); /** * Get the language from the HTML form * * @since 2.5 * * @return {Element.value} */ function getCurrentLanguage() { return document.querySelector( '[name=post_lang_choice]' ).value; } /** * save post after lang choice is done and redirect to the same page for refreshing all the data * * @since 2.5 */ jQuery( document ).ready(function( $ ) { // savePost after changing the post's language and reload page for refreshing post translated data $( '.post_lang_choice' ).change(function() { const select = wp.data.select; const dispatch = wp.data.dispatch; const subscribe = wp.data.subscribe; let unsubscribe = null; // Listen if the savePost is done const savePostIsDone = new Promise( function( resolve, reject ) { unsubscribe = subscribe( function() { const isSavePostSucceeded = select('core/editor').didPostSaveRequestSucceed(); const isSavePostFailed = select('core/editor').didPostSaveRequestFail(); if ( isSavePostSucceeded || isSavePostFailed ) { if ( isSavePostFailed ) { reject(); } else { resolve(); } } } ); }); // Specific case for empty posts if ( location.pathname.match( /post-new.php/gi ) ) { const title = select('core/editor').getEditedPostAttribute('title'); const content = select('core/editor').getEditedPostAttribute('content'); const excerpt = select('core/editor').getEditedPostAttribute('excerpt'); if ( '' === title && '' === content && '' === excerpt ) { // Change the new_lang parameter with the new language value for reloading the page if ( -1 != location.search.indexOf( 'new_lang' ) ) { window.location.search = window.location.search.replace( /(?:new_lang=[^&]*)(&)?(.*)/, 'new_lang=' + this.value + '$1$2' );; } else { window.location.search = window.location.search + ( ( -1 != window.location.search.indexOf( '?' ) ) ? '&' : '?' ) + 'new_lang=' + this.value; } } } // For empty posts savePost does nothing dispatch( 'core/editor' ).savePost(); savePostIsDone .then( function() { // If the post is well saved, we can reload the page unsubscribe(); window.location.reload(); }, function() { // If the post save failed unsubscribe(); } ) .catch( function() { // If an exception is thrown unsubscribe(); } ); } ); } );