Файловый менеджер - Редактировать - /var/www/portal.bdu.ac.bd/public_html/wp-content/plugins/translatepress-multilingual/assets/js/trp-back-end-script.js
Назад
/* * Script used in Settings Page */ jQuery( function() { /** * Change the language selector and slugs */ function TRP_Settings_Language_Selector() { var _this = this; var duplicate_url_error_message; var iso_codes; var error_handler; /** * Initialize select to become select2 */ this.initialize_select2 = function () { jQuery('.trp-select2').each(function () { var select_element = jQuery(this); select_element.select2(/*arguments*/); }); }; this.get_default_url_slug = function( new_language ){ var return_slug = iso_codes[new_language]; var url_slugs = _this.get_existing_url_slugs(); url_slugs.push( return_slug ); if ( has_duplicates ( url_slugs ) ){ return_slug = new_language; } return return_slug.toLowerCase(); }; this.error_check = function( new_language ){ error_handler.show_hide_warning( new_language, true ); if ( error_handler.has_error === true ){ return true; } error_handler.languages.push( new_language ); return false; }; this.add_language = function(){ var selected_language = jQuery( '#trp-select-language' ); var new_language = selected_language.val(); if ( new_language == "" ){ return; } if ( jQuery( "#trp-languages-table .trp-language" ).length >= 2 && jQuery( '.trp-language-selector-limited' ).length ){ jQuery(".trp-upsell-multiple-languages").show('fast'); return; } if ( _this.error_check( new_language ) === true ){ return; } selected_language.val( '' ).trigger( 'change' ); var new_option = jQuery( '.trp-language' ).first().clone(); _this.supports_formality( new_language, new_option ); error_handler.add_language_change_listener( new_option.find('.trp-translation-language') ); new_option = jQuery( new_option ); new_option.find('.trp-translation-language').on( 'change', _this.change_language ); new_option.find( '.trp-hidden-default-language' ).remove(); new_option.find( '.select2-container' ).remove(); var select = new_option.find( 'select.trp-translation-language' ); select.removeAttr( 'disabled' ); select.find( 'option' ).each(function(index, el){ el.text = el.text.replace('Default: ', ''); }) select.val( new_language ); select.select2(); var checkbox = new_option.find( 'input.trp-translation-published' ); checkbox.removeAttr( 'disabled' ); checkbox.val( new_language ); var url_slug = new_option.find( 'input.trp-language-slug' ); url_slug.val( _this.get_default_url_slug( new_language ) ); url_slug.attr('name', 'trp_settings[url-slugs][' + new_language + ']' ); var language_code = new_option.find( 'input.trp-language-code' ); language_code.val( new_language); var remove = new_option.find( '.trp-remove-language' ).toggle(); new_option = jQuery( '#trp-sortable-languages' ).append( new_option ); new_option.find( '.trp-remove-language' ).last().click( _this.remove_language ); }; this.change_language = function( event ){ var new_language_element = jQuery(event.target).closest( '.trp-language' ); var new_language_code = jQuery(event.target).next().find('.select2-selection__rendered').attr('title'); _this.supports_formality( new_language_code, new_language_element ); } this.remove_language = function( element ){ var message = jQuery( element.target ).attr( 'data-confirm-message' ); var confirmed = confirm( message ); if ( confirmed ) { let language_to_remove = jQuery( element.target ).parent().parent(); let language_to_remove_code = language_to_remove.find('.trp-language-code').val(); // remove language from array error_handler.languages.splice( error_handler.languages.indexOf(language_to_remove_code), 1 ) ; language_to_remove.remove(); error_handler.show_hide_warning( language_to_remove_code ); } }; this.update_default_language = function(){ var selected_language = jQuery( '#trp-default-language').val(); jQuery( '.trp-hidden-default-language' ).val( selected_language ); jQuery( '.trp-translation-published[disabled]' ).val( selected_language ); jQuery( '.trp-translation-language[disabled]').val( selected_language ).trigger( 'change' ); }; function has_duplicates(array) { var valuesSoFar = Object.create(null); for (var i = 0; i < array.length; ++i) { var value = array[i]; if (value in valuesSoFar) { return true; } valuesSoFar[value] = true; } return false; } this.get_existing_url_slugs = function(){ var url_slugs = []; jQuery( '.trp-language-slug' ).each( function (){ url_slugs.push( jQuery( this ).val().toLowerCase() ); } ); return url_slugs; }; this.check_unique_url_slugs = function (event){ var url_slugs = _this.get_existing_url_slugs(); if ( has_duplicates(url_slugs)){ alert( duplicate_url_error_message ); event.preventDefault(); } }; this.update_url_slug_and_status = function ( event ) { var select = jQuery( event.target ); var new_language = select.val(); var row = jQuery( select ).parents( '.trp-language' ) ; row.find( '.trp-language-slug' ).attr( 'name', 'trp_settings[url-slugs][' + new_language + ']').val( '' ).val( _this.get_default_url_slug( new_language ) ); row.find( '.trp-language-code' ).val( '' ).val( new_language ); row.find( '.trp-translation-published' ).val( new_language ); }; this.supports_formality = function( new_language_code, new_language_element ){ var languages_that_support_formality = trp_url_slugs_info['languages_that_support_formality']; var formality_match = new_language_code.match( /formal|informal/ ) !== null ? new_language_code.match( /formal|informal/ )[0] : false; // check if the language is innately formal/informal e.g. de_DE_formal var formality_select_field = new_language_element.find( '.trp-translation-language-formality' ); var stripped_formal_language = error_handler.strip_formal_language( new_language_code ); if ( formality_select_field.length === 0 ){ return; } formality_select_field.removeClass( 'trp-formality-disabled' ); // when a language is added, the fields are cloned - which means that the select field could have the .trp-formality-disabled class even if the language supports formality if ( stripped_formal_language && languages_that_support_formality[ stripped_formal_language ] === 'true' ){ select_change( formality_match ); return; } if ( !languages_that_support_formality[new_language_code] || languages_that_support_formality[new_language_code] === 'false' ){ formality_select_field.addClass( 'trp-formality-disabled' ); } select_change( 'default' ); function select_change( option_value ) { formality_select_field.find( 'option' ).each( function () { if ( jQuery( this ).attr( 'value' ) === option_value ){ jQuery( this ).attr( 'selected', 'selected' ); return; } jQuery( this ).removeAttr( 'selected' ); } ); } } var initialize = new TRP_Advanced_Settings_Tabs(); initialize.init(); this.initialize = function () { this.initialize_select2(); error_handler = new TRP_Error_handler(); duplicate_url_error_message = trp_url_slugs_info['error_message_duplicate_slugs']; iso_codes = trp_url_slugs_info['iso_codes']; jQuery( '#trp-sortable-languages' ).sortable({ handle: '.trp-sortable-handle' }); jQuery( '#trp-add-language' ).click( _this.add_language ); jQuery( '.trp-remove-language' ).click( _this.remove_language ); jQuery( '#trp-default-language' ).on( 'change', _this.update_default_language ); jQuery( "form[action='options.php']").on ( 'submit', _this.check_unique_url_slugs ); jQuery( '#trp-languages-table' ).on( 'change', '.trp-translation-language', _this.update_url_slug_and_status ); jQuery('.trp-language .trp-select2').not( '#trp-default-language' ).on( 'change', _this.change_language ); jQuery( '.trp-select2' ).on( 'select2:open', function(){ document.querySelector( '.select2-search__field' ).focus(); }); }; this.initialize(); } /* * Manage adding and removing items from an option of tpe list from Advanced Settings page */ function TRP_Advanced_Settings_List( table ){ var _this = this this.addEventHandlers = function( table ){ var add_list_entry = table.querySelector( '.trp-add-list-entry' ); // add event listener on ADD button add_list_entry.querySelector('.trp-adst-button-add-new-item').addEventListener("click", _this.add_item ); var removeButtons = table.querySelectorAll( '.trp-adst-remove-element' ); for( var i = 0 ; i < removeButtons.length ; i++ ) { removeButtons[i].addEventListener("click", _this.remove_item) } } this.remove_item = function( event ){ if ( confirm( event.target.getAttribute( 'data-confirm-message' ) ) ){ jQuery( event.target ).closest( '.trp-list-entry' ).remove() } } this.add_item = function () { var add_list_entry = table.querySelector( '.trp-add-list-entry' ); var clone = add_list_entry.cloneNode(true) // Remove the trp-add-list-entry class from the second element after it was cloned add_list_entry.classList.remove('trp-add-list-entry'); // Show Add button, hide Remove button add_list_entry.querySelector( '.trp-adst-button-add-new-item' ).style.display = 'none' add_list_entry.querySelector( '.trp-adst-remove-element' ).style.display = 'block' // Design change to add the cloned element at the bottom of list // Done becasue the select box element cannot be cloned with its selected state var itemInserted = add_list_entry.parentNode.insertBefore(clone, add_list_entry.nextSibling); // Set name attributes var dataNames = add_list_entry.querySelectorAll( '[data-name]' ) for( var i = 0 ; i < dataNames.length ; i++ ) { dataNames[i].setAttribute( 'name', dataNames[i].getAttribute('data-name') ); } var removeButtons = table.querySelectorAll( '.trp-adst-remove-element' ); for( var i = 0 ; i < removeButtons.length ; i++ ) { removeButtons[i].addEventListener("click", _this.remove_item) } // Reset values of textareas with new items var dataValues = clone.querySelectorAll( '[data-name]' ) for( var i = 0 ; i < dataValues.length ; i++ ) { dataValues[i].value = '' } //Restore checkbox(es) values after cloning and clearing; alternative than excluding from reset var restoreCheckboxes = clone.querySelectorAll ( 'input[type=checkbox]' ) for( var i = 0 ; i < restoreCheckboxes.length ; i++ ) { restoreCheckboxes[i].value = 'yes' } // Add click listener on new row's Add button var addButton = itemInserted.querySelector('.trp-adst-button-add-new-item'); addButton.addEventListener("click", _this.add_item ); } _this.addEventHandlers( table ) } var trpSettingsLanguages = new TRP_Settings_Language_Selector(); jQuery('#trp-default-language').on("select2:selecting", function(e) { jQuery("#trp-options .warning").show('fast'); }); var trpGoogleTranslateKey = TRP_Field_Toggler(); trpGoogleTranslateKey.init('.trp-translation-engine', '#trp-g-translate-key', 'google_translate_v2' ); var deeplUpsell = TRP_Field_Toggler(); deeplUpsell.init('.trp-translation-engine', '#trp-upsell-deepl', 'deepl_upsell' ); jQuery(document).trigger( 'trpInitFieldToggler' ); // Used for the main machine translation toggle to show/hide all options below it function TRP_show_hide_machine_translation_options(){ if( jQuery( '#trp-machine-translation-enabled' ).val() != 'yes' ) jQuery( '.trp-machine-translation-options tbody tr:not(:first-child)').hide() else jQuery( '.trp-machine-translation-options tbody tr:not(:first-child)').show() if( jQuery( '#trp-machine-translation-enabled' ).val() == 'yes' ) jQuery('.trp-translation-engine:checked').trigger('change') } // Hide this row when DeepL upsell is showing function TRP_hide_test_api_key(){ if( jQuery( '.trp-translation-engine:checked' ).val() == 'deepl_upsell' ) jQuery( '#trp-test-api-key' ).hide() else { if( jQuery('#trp-machine-translation-enabled').val() != 'no' ) jQuery( '#trp-test-api-key' ).show() } } TRP_show_hide_machine_translation_options() jQuery('#trp-machine-translation-enabled').on( 'change', function(){ TRP_show_hide_machine_translation_options() }) TRP_hide_test_api_key() jQuery('.trp-translation-engine').on( 'change', function(){ TRP_hide_test_api_key() }) // Options of type List adding, from Advanced Settings page var trpListOptions = document.querySelectorAll( '.trp-adst-list-option' ); for ( var i = 0 ; i < trpListOptions.length ; i++ ){ new TRP_Advanced_Settings_List( trpListOptions[i] ); } }); function TRP_Field_Toggler (){ var _$setting_toggled, _$trigger_field, _trigger_field_value_for_show, _trigger_field_value function show_hide_based_on_value( value ) { if ( value === _trigger_field_value_for_show ) _$setting_toggled.show() else _$setting_toggled.hide() } function add_event_on_change() { _$trigger_field.on('change', function () { show_hide_based_on_value( this.value ) }) } function init( trigger_select_id, setting_id, value_for_show ){ _trigger_field_value_for_show = value_for_show _$trigger_field = jQuery( trigger_select_id ) _$setting_toggled = jQuery( setting_id ).parents('tr') if( _$trigger_field.hasClass( 'trp-radio') ) _trigger_field_value = jQuery( trigger_select_id + ':checked' ).val() else _trigger_field_value = _$trigger_field.val() show_hide_based_on_value( _trigger_field_value ) add_event_on_change() } return { init: init } } //Advanced Settings Tabs function TRP_Advanced_Settings_Tabs() { function init() { jQuery('.advanced_settings_class').hide(); jQuery('#trp-cuslang-table').hide(); jQuery('.description_table').hide(); var trp_current_url = window.location.href; if (!window.location.href.includes('tab')) { jQuery('#trp_advanced_tab_content_table li:first-child').addClass('active'); let first_settings = jQuery('#trp_advanced_tab_content_table li:first-child').find('a').attr('class'); jQuery("." + first_settings).show(); } else if (!window.location.href.includes('#')) { var trp_tab = trp_current_url.split('tab'); var trp_tab_value = trp_tab[1].split('='); jQuery('.trp_advanced_tab_content_table_item .' + trp_tab_value[1]).css({ 'border-bottom': '4px solid #2271b1', 'padding-bottom': '19px', 'font-weight': 'bold', 'color': '#000000' }); jQuery("." + trp_tab_value[1]).show(); if (trp_tab_value[1] === 'custom_language') { jQuery('#trp-cuslang-table').show(); jQuery('.description_table').show(); } else { jQuery('#trp-cuslang-table').hide(); jQuery('.description_table').hide(); } } else { var trp_tab = trp_current_url.split('tab'); var trp_tab_value = trp_tab[1].split('#'); jQuery('.trp_advanced_tab_content_table_item .' + trp_tab_value[1]).css({ 'border-bottom': '4px solid #2271b1', 'padding-bottom': '19px', 'font-weight': 'bold', 'color': '#000000' }); jQuery("." + trp_tab_value[1]).show(); if (trp_tab_value[1] === 'custom_language') { jQuery('#trp-cuslang-table').show(); jQuery('.description_table').show(); } else { jQuery('#trp-cuslang-table').hide(); jQuery('.description_table').hide(); } } jQuery('#trp_advanced_tab_content_table li').click(function (event) { event.preventDefault(); jQuery('#trp_advanced_tab_content_table li').removeClass('active'); jQuery(this).addClass('active'); jQuery('.advanced_settings_class').hide(); jQuery('.trp_advanced_tab_content_table_item a').css({ 'border-bottom': 'none', 'padding-bottom': 'none', 'font-weight': 'normal', 'color': '#2271b1' }); var activeTab = jQuery(this).find('a').attr('class'); jQuery('.trp_advanced_tab_content_table_item .' + activeTab).css({ 'border-bottom': '4px solid #2271b1', 'padding-bottom': '19px', 'font-weight': 'bold', 'color': '#000000' }); jQuery('#trp_advanced_settings_referer').attr('value', activeTab); jQuery("." + activeTab).show(); if (activeTab === 'custom_language') { jQuery('#trp-cuslang-table').show(); jQuery('.description_table').show(); } else { jQuery('#trp-cuslang-table').hide(); jQuery('.description_table').hide(); } }); } return { init: init } } function TRP_Error_handler() { this.has_error = false; this.languages = []; let _this = this; let $error_container; let error_type; this.init = function () { $error_container = jQuery('.trp-add-language-error-container'); this.set_language_list(); this.init_event_listeners(); } this.set_language_list = function () { let language_nodes = document.querySelectorAll('.trp-language .trp-language-code'); for (let i = 0; i < language_nodes.length; i++) { this.languages[i] = language_nodes[i].value; } } // If the language is formal / informal, returns it but stripped of the _informal or _formal parts // Returns false otherwise this.strip_formal_language = function (new_language_code) { let formality_map = { _informal: '', _formal: '' }; if (new_language_code.includes('formal') || new_language_code.includes('informal')) { new_language_code = new_language_code.replace(/_formal|_informal/, function (matched) { return formality_map[matched]; }); return new_language_code; } return false; } this.has_formal_variant = function (new_language_code, languages_array) { for (let language of languages_array) { let stripped_formal_language = this.strip_formal_language(language); // false if is not a formal language if (stripped_formal_language && stripped_formal_language === new_language_code) { return true; } } return false; } this.set_error_type = function (new_language_code, is_new_language_added) { let languages_array = is_new_language_added ? [].concat(this.languages, new_language_code) : this.languages; if (languages_array.length !== new Set(languages_array).size) { error_type = "duplicates"; return true; } for (let language_code of languages_array) { let stripped_formal_language = this.strip_formal_language(language_code); if (stripped_formal_language !== false && languages_array.includes(stripped_formal_language) || this.has_formal_variant(language_code, languages_array)) { error_type = "formality"; return true; } } return false; } this.change_warning_text = function () { let error_container_text; switch (error_type) { case 'formality': error_container_text = trp_url_slugs_info['error_message_formality']; break; case 'duplicates': error_container_text = trp_url_slugs_info['error_message_duplicate_languages']; break; } $error_container.html(error_container_text); } // Displays the warning message with the relevant text in case there is an error // Or hides the warning message in case it was resolved this.show_hide_warning = function (new_language_code, is_new_language_added = false) { this.has_error = this.set_error_type(new_language_code, is_new_language_added); if (this.has_error !== false) { this.change_warning_text(); $error_container.show('fast'); } if (this.has_error === false && $error_container.is(':visible')) { $error_container.hide('fast'); } } this.init_event_listeners = function () { let language_nodes = document.querySelectorAll('.trp-language .trp-select2'); this.add_language_change_listener(language_nodes); } this.add_language_change_listener = function (nodes) { let $nodes = jQuery(nodes); $nodes.on('change', language_change); function language_change(event) { // .trp-language-code is changed after the language changes so there is a small window in which we can get the old value let old_language_code = jQuery(event.target).closest('.trp-language').find('.trp-language-code').val(); let new_language_code = jQuery(event.target).next().find('.select2-selection__rendered').attr('title'); _this.languages[_this.languages.indexOf(old_language_code)] = new_language_code; _this.show_hide_warning(new_language_code); } } this.init(); } // TRP Email Course jQuery(document).ready(function (e) { jQuery('.trp-email-course input[type="submit"]').on('click', function (e) { e.preventDefault() jQuery( '.trp-email-course .trp-email-course__error' ).removeClass( 'visible' ) var email = jQuery( '.trp-email-course input[name="trp_email_course_email"]').val() if ( !trp_validateEmail( email ) ){ jQuery( '.trp-email-course .trp-email-course__error' ).addClass( 'visible' ) jQuery( '.trp-email-course input[name="trp_email_course_email"]' ).focus() return } if( email != '' ){ jQuery( '.trp-email-course input[type="submit"]' ).val( 'Working...' ) var data = new FormData() data.append( 'email', email ) var version = jQuery('.trp-email-course input[name="trp_installed_plugin_version"]').val() if ( version != '' ) data.append( 'version', version ) jQuery.ajax({ url: 'https://translatepress.com/wp-json/trp-api/emailCourseSubscribe', type: 'POST', processData: false, contentType: false, data: data, success: function (response) { if( response.message ){ jQuery( '.trp-email-course .trp-email-course__message').text( response.message ).addClass( 'visible' ).addClass( 'success' ) jQuery( '.trp-email-course .trp-email-course__form' ).hide() jQuery( '.trp-email-course__footer' ).css( 'visibility', 'hidden' ) trp_dimiss_email_course() } }, error: function (response) { jQuery('.trp-email-course input[type="submit"]').val('Sign me up!') } }) } }) jQuery('.trp-email-course .trp-email-course__close').on('click', function (e) { trp_dimiss_email_course() jQuery( '.trp-email-course' ).remove() }) }) function trp_validateEmail(email) { const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(String(email).toLowerCase()); } function trp_dimiss_email_course(){ let newData = new FormData() newData.append('action', 'trp_dismiss_email_course') jQuery.ajax({ url: ajaxurl, type: 'POST', processData: false, contentType: false, data: newData, success: function (response) { }, error: function (response) { } }) }
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.28 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка