184 lines
5.5 KiB
JavaScript
184 lines
5.5 KiB
JavaScript
/* global woocommerce_settings_params, wp */
|
|
( 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' );
|
|
|
|
// 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' );
|
|
|
|
// 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' );
|
|
|
|
// Color picker
|
|
$( '.colorpick' )
|
|
|
|
.iris({
|
|
change: function( event, ui ) {
|
|
$( this ).parent().find( '.colorpickpreview' ).css({ backgroundColor: ui.color.toString() });
|
|
},
|
|
hide: true,
|
|
border: true
|
|
})
|
|
|
|
.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() {
|
|
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' );
|
|
} else {
|
|
$( this ).val( '' ).trigger( 'change' );
|
|
}
|
|
}
|
|
});
|
|
|
|
$( 'body' ).on( 'click', function() {
|
|
$( '.iris-picker' ).hide();
|
|
});
|
|
|
|
// Edit prompt
|
|
$( function() {
|
|
var changed = false;
|
|
|
|
$( 'input, textarea, select, checkbox' ).on( 'change', function() {
|
|
if ( ! changed ) {
|
|
window.onbeforeunload = function() {
|
|
return params.i18n_nav_warning;
|
|
};
|
|
changed = true;
|
|
}
|
|
});
|
|
|
|
$( '.submit :input' ).on( 'click', function() {
|
|
window.onbeforeunload = '';
|
|
});
|
|
});
|
|
|
|
// Sorting
|
|
$( '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() {
|
|
$( this ).width( $( this ).width() );
|
|
});
|
|
ui.css( 'left', '0' );
|
|
return ui;
|
|
},
|
|
start: function( event, ui ) {
|
|
ui.item.css( 'background-color', '#f6f6f6' );
|
|
},
|
|
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 );
|
|
$( this ).closest( 'td' ).find( 'select' ).trigger( 'change' );
|
|
return 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' );
|
|
|
|
moveBtn.trigger( 'focus' );
|
|
|
|
var isMoveUp = moveBtn.is( '.wc-move-up' ),
|
|
isMoveDown = moveBtn.is( '.wc-move-down' );
|
|
|
|
if ( isMoveUp ) {
|
|
var $previewRow = $row.prev( 'tr' );
|
|
|
|
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 );
|
|
}
|
|
}
|
|
|
|
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' );
|
|
|
|
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' );
|
|
|
|
|
|
$( '.submit button' ).on( 'click', function() {
|
|
if (
|
|
$( 'select#woocommerce_allowed_countries' ).val() === 'specific' &&
|
|
! $( '[name="woocommerce_specific_allowed_countries[]"]' ).val()
|
|
) {
|
|
if ( window.confirm( woocommerce_settings_params.i18n_no_specific_countries_selected ) ) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
} );
|
|
|
|
});
|
|
})( jQuery, woocommerce_settings_params, wp );
|