diff --git a/plugins/woocommerce/legacy/js/admin/settings.js b/plugins/woocommerce/legacy/js/admin/settings.js index 421debd3d19..8464191f0e3 100644 --- a/plugins/woocommerce/legacy/js/admin/settings.js +++ b/plugins/woocommerce/legacy/js/admin/settings.js @@ -1,204 +1,265 @@ /* global woocommerce_settings_params, wp */ -( function( $, params, wp ) { - $( function() { +( function ( $, params, wp ) { + $( function () { // Sell Countries - $( 'select#woocommerce_allowed_countries' ).on( 'change', function() { - if ( 'specific' === $( this ).val() ) { - $( this ).closest('tr').next( 'tr' ).hide(); - $( this ).closest('tr').next().next( 'tr' ).show(); - } else if ( 'all_except' === $( this ).val() ) { - $( this ).closest('tr').next( 'tr' ).show(); - $( this ).closest('tr').next().next( 'tr' ).hide(); - } else { - $( this ).closest('tr').next( 'tr' ).hide(); - $( this ).closest('tr').next().next( 'tr' ).hide(); - } - }).trigger( 'change' ); + $( 'select#woocommerce_allowed_countries' ) + .on( 'change', function () { + if ( 'specific' === $( this ).val() ) { + $( this ).closest( 'tr' ).next( 'tr' ).hide(); + $( this ).closest( 'tr' ).next().next( 'tr' ).show(); + } else if ( 'all_except' === $( this ).val() ) { + $( this ).closest( 'tr' ).next( 'tr' ).show(); + $( this ).closest( 'tr' ).next().next( 'tr' ).hide(); + } else { + $( this ).closest( 'tr' ).next( 'tr' ).hide(); + $( this ).closest( 'tr' ).next().next( 'tr' ).hide(); + } + } ) + .trigger( 'change' ); // Ship Countries - $( 'select#woocommerce_ship_to_countries' ).on( 'change', function() { - if ( 'specific' === $( this ).val() ) { - $( this ).closest('tr').next( 'tr' ).show(); - } else { - $( this ).closest('tr').next( 'tr' ).hide(); - } - }).trigger( 'change' ); + $( 'select#woocommerce_ship_to_countries' ) + .on( 'change', function () { + if ( 'specific' === $( this ).val() ) { + $( this ).closest( 'tr' ).next( 'tr' ).show(); + } else { + $( this ).closest( 'tr' ).next( 'tr' ).hide(); + } + } ) + .trigger( 'change' ); // Stock management - $( 'input#woocommerce_manage_stock' ).on( 'change', function() { - if ( $( this ).is(':checked') ) { - $( this ).closest('tbody').find( '.manage_stock_field' ).closest( 'tr' ).show(); - } else { - $( this ).closest('tbody').find( '.manage_stock_field' ).closest( 'tr' ).hide(); - } - }).trigger( 'change' ); + $( 'input#woocommerce_manage_stock' ) + .on( 'change', function () { + if ( $( this ).is( ':checked' ) ) { + $( this ) + .closest( 'tbody' ) + .find( '.manage_stock_field' ) + .closest( 'tr' ) + .show(); + } else { + $( this ) + .closest( 'tbody' ) + .find( '.manage_stock_field' ) + .closest( 'tr' ) + .hide(); + } + } ) + .trigger( 'change' ); // Color picker $( '.colorpick' ) - - .iris({ - change: function( event, ui ) { - $( this ).parent().find( '.colorpickpreview' ).css({ backgroundColor: ui.color.toString() }); + .iris( { + change: function ( event, ui ) { + $( this ) + .parent() + .find( '.colorpickpreview' ) + .css( { backgroundColor: ui.color.toString() } ); }, hide: true, - border: true - }) + border: true, + } ) - .on( 'click focus', function( event ) { + .on( 'click focus', function ( event ) { event.stopPropagation(); $( '.iris-picker' ).hide(); $( this ).closest( 'td' ).find( '.iris-picker' ).show(); $( this ).data( 'originalValue', $( this ).val() ); - }) + } ) - .on( 'change', function() { + .on( 'change', function () { if ( $( this ).is( '.iris-error' ) ) { var original_value = $( this ).data( 'originalValue' ); - if ( original_value.match( /^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/ ) ) { - $( this ).val( $( this ).data( 'originalValue' ) ).trigger( 'change' ); + if ( + original_value.match( + /^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/ + ) + ) { + $( this ) + .val( $( this ).data( 'originalValue' ) ) + .trigger( 'change' ); } else { $( this ).val( '' ).trigger( 'change' ); } } - }); + } ); - $( 'body' ).on( 'click', function() { + $( 'body' ).on( 'click', function () { $( '.iris-picker' ).hide(); - }); + } ); // Edit prompt - $( function() { + $( function () { var changed = false; let $check_column = $( '.wp-list-table .check-column' ); - $( 'input, textarea, select, checkbox' ).on( 'change', function( event ) { + $( 'input, textarea, select, checkbox' ).on( 'change', function ( + event + ) { // Toggling WP List Table checkboxes should not trigger navigation warnings. - if ( $check_column.length && $check_column.has( event.target ) ) { + if ( + $check_column.length && + $check_column.has( event.target ) + ) { return; } if ( ! changed ) { - window.onbeforeunload = function() { + window.onbeforeunload = function () { return params.i18n_nav_warning; }; changed = true; } - }); + } ); - $( '.submit :input, input#search-submit' ).on( 'click', function() { - window.onbeforeunload = ''; - }); - }); + $( '.submit :input, input#search-submit' ).on( + 'click', + function () { + window.onbeforeunload = ''; + } + ); + } ); // Sorting - $( 'table.wc_gateways tbody, table.wc_shipping tbody' ).sortable({ + $( 'table.wc_gateways tbody, table.wc_shipping tbody' ).sortable( { items: 'tr', cursor: 'move', axis: 'y', handle: 'td.sort', scrollSensitivity: 40, - helper: function( event, ui ) { - ui.children().each( function() { + helper: function ( event, ui ) { + ui.children().each( function () { $( this ).width( $( this ).width() ); - }); + } ); ui.css( 'left', '0' ); return ui; }, - start: function( event, ui ) { + start: function ( event, ui ) { ui.item.css( 'background-color', '#f6f6f6' ); }, - stop: function( event, ui ) { + stop: function ( event, ui ) { ui.item.removeAttr( 'style' ); ui.item.trigger( 'updateMoveButtons' ); - } - }); + }, + } ); // Select all/none - $( '.woocommerce' ).on( 'click', '.select_all', function() { - $( this ).closest( 'td' ).find( 'select option' ).prop( 'selected', true ); + $( '.woocommerce' ).on( 'click', '.select_all', function () { + $( this ) + .closest( 'td' ) + .find( 'select option' ) + .prop( 'selected', true ); $( this ).closest( 'td' ).find( 'select' ).trigger( 'change' ); return false; - }); + } ); - $( '.woocommerce' ).on( 'click', '.select_none', function() { - $( this ).closest( 'td' ).find( 'select option' ).prop( 'selected', false ); + $( '.woocommerce' ).on( 'click', '.select_none', function () { + $( this ) + .closest( 'td' ) + .find( 'select option' ) + .prop( 'selected', false ); $( this ).closest( 'td' ).find( 'select' ).trigger( 'change' ); return false; - }); + } ); // Re-order buttons. - $( '.wc-item-reorder-nav').find( '.wc-move-up, .wc-move-down' ).on( 'click', function() { - var moveBtn = $( this ), - $row = moveBtn.closest( 'tr' ); + $( '.wc-item-reorder-nav' ) + .find( '.wc-move-up, .wc-move-down' ) + .on( 'click', function () { + var moveBtn = $( this ), + $row = moveBtn.closest( 'tr' ); - moveBtn.trigger( 'focus' ); + moveBtn.trigger( 'focus' ); - var isMoveUp = moveBtn.is( '.wc-move-up' ), - isMoveDown = moveBtn.is( '.wc-move-down' ); + var isMoveUp = moveBtn.is( '.wc-move-up' ), + isMoveDown = moveBtn.is( '.wc-move-down' ); - if ( isMoveUp ) { - var $previewRow = $row.prev( 'tr' ); + if ( isMoveUp ) { + var $previewRow = $row.prev( 'tr' ); - if ( $previewRow && $previewRow.length ) { - $previewRow.before( $row ); - wp.a11y.speak( params.i18n_moved_up ); + if ( $previewRow && $previewRow.length ) { + $previewRow.before( $row ); + wp.a11y.speak( params.i18n_moved_up ); + } + } else if ( isMoveDown ) { + var $nextRow = $row.next( 'tr' ); + + if ( $nextRow && $nextRow.length ) { + $nextRow.after( $row ); + wp.a11y.speak( params.i18n_moved_down ); + } } - } else if ( isMoveDown ) { - var $nextRow = $row.next( 'tr' ); - if ( $nextRow && $nextRow.length ) { - $nextRow.after( $row ); - wp.a11y.speak( params.i18n_moved_down ); - } - } + moveBtn.trigger( 'focus' ); // Re-focus after the container was moved. + moveBtn.closest( 'table' ).trigger( 'updateMoveButtons' ); + } ); - moveBtn.trigger( 'focus' ); // Re-focus after the container was moved. - moveBtn.closest( 'table' ).trigger( 'updateMoveButtons' ); - } ); + $( '.wc-item-reorder-nav' ) + .closest( 'table' ) + .on( 'updateMoveButtons', function () { + var table = $( this ), + lastRow = $( this ).find( 'tbody tr:last' ), + firstRow = $( this ).find( 'tbody tr:first' ); - $( '.wc-item-reorder-nav').closest( 'table' ).on( 'updateMoveButtons', function() { - var table = $( this ), - lastRow = $( this ).find( 'tbody tr:last' ), - firstRow = $( this ).find( 'tbody tr:first' ); + table + .find( '.wc-item-reorder-nav .wc-move-disabled' ) + .removeClass( 'wc-move-disabled' ) + .attr( { tabindex: '0', 'aria-hidden': 'false' } ); + firstRow + .find( '.wc-item-reorder-nav .wc-move-up' ) + .addClass( 'wc-move-disabled' ) + .attr( { tabindex: '-1', 'aria-hidden': 'true' } ); + lastRow + .find( '.wc-item-reorder-nav .wc-move-down' ) + .addClass( 'wc-move-disabled' ) + .attr( { tabindex: '-1', 'aria-hidden': 'true' } ); + } ); - table.find( '.wc-item-reorder-nav .wc-move-disabled' ).removeClass( 'wc-move-disabled' ) - .attr( { 'tabindex': '0', 'aria-hidden': 'false' } ); - firstRow.find( '.wc-item-reorder-nav .wc-move-up' ).addClass( 'wc-move-disabled' ) - .attr( { 'tabindex': '-1', 'aria-hidden': 'true' } ); - lastRow.find( '.wc-item-reorder-nav .wc-move-down' ).addClass( 'wc-move-disabled' ) - .attr( { 'tabindex': '-1', 'aria-hidden': 'true' } ); - } ); + $( '.wc-item-reorder-nav' ) + .closest( 'table' ) + .trigger( 'updateMoveButtons' ); - $( '.wc-item-reorder-nav').closest( 'table' ).trigger( 'updateMoveButtons' ); - - - $( '.submit button' ).on( 'click', function() { + $( '.submit button' ).on( 'click', function () { if ( - $( 'select#woocommerce_allowed_countries' ).val() === 'specific' && + $( 'select#woocommerce_allowed_countries' ).val() === + 'specific' && ! $( '[name="woocommerce_specific_allowed_countries[]"]' ).val() ) { - if ( window.confirm( woocommerce_settings_params.i18n_no_specific_countries_selected ) ) { + if ( + window.confirm( + woocommerce_settings_params.i18n_no_specific_countries_selected + ) + ) { return true; } return false; } } ); - $('#settings-other-payment-methods').on('click', function( e ) { - if ( typeof window.wcTracks.recordEvent === 'undefined' ) { + $( '#settings-other-payment-methods' ).on( 'click', function ( e ) { + if ( + typeof window.wcTracks.recordEvent === 'undefined' && + typeof window.wc.tracks.recordEvent === 'undefined' + ) { return; } - var payment_methods = $.map( $( "td.wc_payment_gateways_wrapper tbody tr[data-gateway_id] "), function( tr ) { - return $( tr ).attr( 'data-gateway_id' ); - }); + var recordEvent = + window.wc.tracks.recordEvent || window.wcTracks.recordEvent; - window.wcTracks.recordEvent( 'settings_payments_recommendations_other_options' , { - available_payment_methods: payment_methods - }); + var payment_methods = $.map( + $( + 'td.wc_payment_gateways_wrapper tbody tr[data-gateway_id] ' + ), + function ( tr ) { + return $( tr ).attr( 'data-gateway_id' ); + } + ); - }); - - }); -})( jQuery, woocommerce_settings_params, wp ); + recordEvent( 'settings_payments_recommendations_other_options', { + available_payment_methods: payment_methods, + } ); + } ); + } ); +} )( jQuery, woocommerce_settings_params, wp );