!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=function(t){return/^[A-Za-z][A-Za-z0-9\-:._]*$/.test(t)},e=function(t){var e=t.selection.getNode();return"A"===e.tagName&&""===t.dom.getAttrib(e,"href")?e.id||e.name:""},i=function(t,e){var n=t.selection.getNode();"A"===n.tagName&&""===t.dom.getAttrib(n,"href")?(n.removeAttribute("name"),n.id=e,t.undoManager.add()):(t.focus(),t.selection.collapse(!0),t.execCommand("mceInsertContent",!1,t.dom.createHTML("a",{id:e})))},n=function(r){var t=e(r);r.windowManager.open({title:"Anchor",body:{type:"textbox",name:"id",size:40,label:"Id",value:t},onsubmit:function(t){var e,n,o=t.data.id;e=r,(a(n=o)?(i(e,n),0):(e.windowManager.alert("Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores."),1))&&t.preventDefault()}})},o=function(t){t.addCommand("mceAnchor",function(){n(t)})},r=function(o){return function(t){for(var e=0;e 0 ) { // language dropdown var select = t.find( ':input[name="inline_lang_choice"]' ); var lang = $( '#lang_' + term_id ).html(); select.val( lang ); // populates the dropdown // disable the language dropdown for default categories var default_cat = $( '#default_cat_' + term_id ).html(); if ( term_id == default_cat ) { select.prop( 'disabled', true ); } } } } ); } ); /** * Update rows of translated terms when adding / deleting a translation or when the language is modified in quick edit. * Acts on ajaxSuccess event. */ jQuery( function( $ ) { $( document ).ajaxSuccess( function( event, xhr, settings ) { function update_rows( term_id ) { // collect old translations var translations = new Array(); $( '.translation_' + term_id ).each( function() { translations.push( $( this ).parent().parent().attr( 'id' ).substring( 4 ) ); } ); var data = { action: 'pll_update_term_rows', term_id: term_id, translations: translations.join( ',' ), taxonomy: $( "input[name='taxonomy']" ).val(), post_type: $( "input[name='post_type']" ).val(), screen: $( "input[name='screen']" ).val(), _pll_nonce: $( '#_pll_nonce' ).val() }; // get the modified rows in ajax and update them $.post( ajaxurl, data, function( response ) { if ( response ) { var res = wpAjax.parseAjaxResponse( response, 'ajax-response' ); $.each( res.responses, function() { if ( 'row' == this.what ) { // data is built with a call to WP_Terms_List_Table::single_row method // which uses internally other WordPress methods which escape correctly values. // For Polylang language columns the HTML code is correctly escaped in PLL_Admin_Filters_Columns::term_column method. $( "#tag-" + this.supplemental.term_id ).replaceWith( this.data ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.replaceWith } } ); } } ); } var data = wpAjax.unserialize( settings.data ); // what were the data sent by the ajax request? if ( 'undefined' != typeof( data['action'] ) ) { switch ( data['action'] ) { // when adding a term, the new term_id is in the ajax response case 'add-tag': res = wpAjax.parseAjaxResponse( xhr.responseXML, 'ajax-response' ); $.each( res.responses, function() { if ( 'term' == this.what ) { update_rows( this.supplemental.term_id ); } } ); // and also reset translations hidden input fields $( '.htr_lang' ).val( 0 ); break; // when deleting a term case 'delete-tag': update_rows( data['tag_ID'] ); break; // in case the language is modified in quick edit and breaks translations case 'inline-save-tax': update_rows( data['tax_ID'] ); break; } } } ); } ); jQuery( function( $ ) { // translations autocomplete input box function init_translations() { $( '.tr_lang' ).each( function(){ var tr_lang = $( this ).attr( 'id' ).substring( 8 ); var td = $( this ).parent().parent().siblings( '.pll-edit-column' ); $( this ).autocomplete( { minLength: 0, source: ajaxurl + '?action=pll_terms_not_translated' + '&term_language=' + $( '#term_lang_choice' ).val() + '&term_id=' + $( "input[name='tag_ID']" ).val() + '&taxonomy=' + $( "input[name='taxonomy']" ).val() + '&translation_language=' + tr_lang + '&post_type=' + typenow + '&_pll_nonce=' + $( '#_pll_nonce' ).val(), select: function( event, ui ) { $( '#htr_lang_' + tr_lang ).val( ui.item.id ); // ui.item.link is built and come from server side and is well escaped when necessary td.html( ui.item.link ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html }, } ); // when the input box is emptied $( this ).on( 'blur', function() { if ( ! $( this ).val() ) { $( '#htr_lang_' + tr_lang ).val( 0 ); // Value is retrieved from HTML already generated server side td.html( td.siblings( '.hidden' ).children().clone() ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html } } ); } ); } init_translations(); // ajax for changing the term's language $( '#term_lang_choice' ).change( function() { var value = $( this ).val(); var lang = $( this ).children( 'option[value="' + value + '"]' ).attr( 'lang' ); var dir = $( '.pll-translation-column > span[lang="' + lang + '"]' ).attr( 'dir' ); var data = { action: 'term_lang_choice', lang: value, from_tag: $( "input[name='from_tag']" ).val(), term_id: $( "input[name='tag_ID']" ).val(), taxonomy: $( "input[name='taxonomy']" ).val(), post_type: typenow, _pll_nonce: $( '#_pll_nonce' ).val() }; $.post( ajaxurl, data, function( response ) { var res = wpAjax.parseAjaxResponse( response, 'ajax-response' ); $.each( res.responses, function() { switch ( this.what ) { case 'translations': // translations fields // Data is built and come from server side and is well escaped when necessary $( "#term-translations" ).html( this.data ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html init_translations(); break; case 'parent': // parent dropdown list for hierarchical taxonomies // data correctly escaped in PLL_Admin_Filters_Term::term_lang_choice method which uses wp_dropdown_categories function. $( '#parent' ).replaceWith( this.data ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.replaceWith break; case 'tag_cloud': // popular items // data correctly escaped in PLL_Admin_Filters_Term::term_lang_choice method which uses wp_tag_cloud and wp_generate_tag_cloud functions. $( '.tagcloud' ).replaceWith( this.data ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.replaceWith break; case 'flag': // flag in front of the select dropdown // Data is built and come from server side and is well escaped when necessary $( '.pll-select-flag' ).html( this.data ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html break; } } ); // Modifies the text direction $( 'body' ).removeClass( 'pll-dir-rtl' ).removeClass( 'pll-dir-ltr' ).addClass( 'pll-dir-' + dir ); } ); } ); } ); ( function( wp ) { if ( ! wp ) { return; } wp.plugins.registerPlugin( 'classic-editor-plugin', { render: function() { var createElement = wp.element.createElement; var PluginMoreMenuItem = wp.editPost.PluginMoreMenuItem; var url = wp.url.addQueryArgs( document.location.href, { 'classic-editor': '', 'classic-editor__forget': '' } ); var linkText = lodash.get( window, [ 'classicEditorPluginL10n', 'linkText' ] ) || 'Switch to classic editor'; return createElement( PluginMoreMenuItem, { icon: 'editor-kitchensink', href: url, }, linkText ); }, } ); } )( window.wp ); 'use strict';(function(d){"object"==typeof exports&&"object"==typeof module?d(require("../../lib/codemirror"),require("./searchcursor"),require("../scroll/annotatescrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./searchcursor","../scroll/annotatescrollbar"],d):d(CodeMirror)})(function(d){function g(a,c,b,e){this.cm=a;this.options=e;var f={listenForChanges:!1},d;for(d in e)f[d]=e[d];f.className||(f.className="CodeMirror-search-match");this.annotation=a.annotateScrollbar(f); this.query=c;this.caseFold=b;this.gap={from:a.firstLine(),to:a.lastLine()+1};this.matches=[];this.update=null;this.findMatches();this.annotation.update(this.matches);var g=this;a.on("change",this.changeHandler=function(a,b){g.onChange(b)})}function h(a,c,b){return a<=c?a:Math.max(c,a+b)}d.defineExtension("showMatchesOnScrollbar",function(a,c,b){"string"==typeof b&&(b={className:b});b||(b={});return new g(this,a,c,b)});g.prototype.findMatches=function(){if(this.gap){for(var a=0;a=this.gap.to)break;c.to.line>=this.gap.from&&this.matches.splice(a--,1)}for(var b=this.cm.getSearchCursor(this.query,d.Pos(this.gap.from,0),this.caseFold),e=this.options&&this.options.maxMatches||1E3;b.findNext();){c={from:b.from(),to:b.to()};if(c.from.line>=this.gap.to)break;this.matches.splice(a++,0,c);if(this.matches.length>e)break}this.gap=null}};g.prototype.onChange=function(a){var c=a.from.line,b=d.changeEnd(a).line,e=b-a.to.line;this.gap?(this.gap.from=Math.min(h(this.gap.from, c,e),a.from.line),this.gap.to=Math.max(h(this.gap.to,c,e),a.from.line)):this.gap={from:a.from.line,to:b+1};if(e)for(a=0;a Cách trang trí nhà bếp đẹp cho trường học - Thiết bị bếp công nghiệp, bếp nhà hàng Inox Himalaya

Sản Xuất Thiết Kế Gian Bếp Công Nghiệp

Nhà sản xuất và cung ứng thiết bị bếp công nghiệp hàng đầu Việt Nam

Các sản phẩm bếp công nghiệp chất lượng cao - giá tốt

Thiết kế gian bếp công nghiệp tiêu chuẩn khoa học

Cách trang trí nhà bếp đẹp cho trường học

Cách trang trí nhà bếp đẹp cho trường học

Cách trang trí nhà bếp đẹp cho trường học

Tags :