woocommerce/assets/js/admin/settings.js

128 lines
3.4 KiB
JavaScript
Raw Normal View History

2015-04-30 21:43:01 +00:00
/* global woocommerce_settings_params */
( function( $ ) {
2013-07-26 14:36:28 +00:00
2016-04-28 16:37:30 +00:00
// Sell Countries
$( 'select#woocommerce_allowed_countries' ).change( function() {
if ( 'specific' === $( this ).val() ) {
2016-04-28 17:30:13 +00:00
$( this ).closest('tr').next( 'tr' ).hide();
$( this ).closest('tr').next().next( 'tr' ).show();
2016-04-28 16:37:30 +00:00
} else if ( 'all_except' === $( this ).val() ) {
2016-04-28 17:30:13 +00:00
$( this ).closest('tr').next( 'tr' ).show();
$( this ).closest('tr').next().next( 'tr' ).hide();
2016-04-28 16:37:30 +00:00
} else {
2016-04-28 17:30:13 +00:00
$( this ).closest('tr').next( 'tr' ).hide();
$( this ).closest('tr').next().next( 'tr' ).hide();
2016-04-28 16:37:30 +00:00
}
}).change();
// Ship Countries
$( 'select#woocommerce_ship_to_countries' ).change( function() {
if ( 'specific' === $( this ).val() ) {
2016-04-28 17:30:13 +00:00
$( this ).closest('tr').next( 'tr' ).show();
2016-04-28 16:37:30 +00:00
} else {
2016-04-28 17:30:13 +00:00
$( this ).closest('tr').next( 'tr' ).hide();
2013-07-26 14:36:28 +00:00
}
}).change();
// Stock management
$( 'input#woocommerce_manage_stock' ).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();
}
}).change();
2013-07-26 14:36:28 +00:00
// Color picker
2017-11-01 13:47:20 +00:00
$( '.colorpick' )
2013-07-26 14:36:28 +00:00
2017-11-01 13:47:20 +00:00
.iris({
change: function( event, ui ) {
$( this ).parent().find( '.colorpickpreview' ).css({ backgroundColor: ui.color.toString() });
},
hide: true,
border: true
})
2013-07-26 14:36:28 +00:00
2017-11-01 13:47:20 +00:00
.on( 'click focus', function( event ) {
event.stopPropagation();
$( '.iris-picker' ).hide();
$( this ).closest( 'td' ).find( '.iris-picker' ).show();
$( this ).data( 'original-value', $( this ).val() );
})
.on( 'change', function() {
if ( $( this ).is( '.iris-error' ) ) {
var original_value = $( this ).data( 'original-value' );
if ( original_value.match( /^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/ ) ) {
$( this ).val( $( this ).data( 'original-value' ) ).change();
} else {
$( this ).val( '' ).change();
}
}
2017-11-01 13:47:20 +00:00
});
$( 'body' ).on( 'click', function() {
$( '.iris-picker' ).hide();
2013-07-26 14:36:28 +00:00
});
// Edit prompt
$( function() {
2013-07-26 14:36:28 +00:00
var changed = false;
$( 'input, textarea, select, checkbox' ).change( function() {
2013-07-26 14:36:28 +00:00
changed = true;
});
$( '.woo-nav-tab-wrapper a' ).click( function() {
2015-04-30 21:43:01 +00:00
if ( changed ) {
2013-07-26 14:36:28 +00:00
window.onbeforeunload = function() {
return woocommerce_settings_params.i18n_nav_warning;
2015-04-30 21:43:01 +00:00
};
2013-07-26 14:36:28 +00:00
} else {
window.onbeforeunload = '';
}
});
$( '.submit input' ).click( function() {
2013-07-26 14:36:28 +00:00
window.onbeforeunload = '';
});
});
// Sorting
$( 'table.wc_gateways tbody, table.wc_shipping tbody' ).sortable({
2015-04-30 21:43:01 +00:00
items: 'tr',
cursor: 'move',
axis: 'y',
handle: 'td.sort',
2015-04-30 21:43:01 +00:00
scrollSensitivity: 40,
helper: function( event, ui ) {
ui.children().each( function() {
$( this ).width( $( this ).width() );
2013-07-26 14:36:28 +00:00
});
2015-04-30 21:43:01 +00:00
ui.css( 'left', '0' );
2013-07-26 14:36:28 +00:00
return ui;
},
2015-04-30 21:43:01 +00:00
start: function( event, ui ) {
ui.item.css( 'background-color', '#f6f6f6' );
2013-07-26 14:36:28 +00:00
},
2015-04-30 21:43:01 +00:00
stop: function( event, ui ) {
ui.item.removeAttr( 'style' );
2013-07-26 14:36:28 +00:00
}
});
// Select all/none
$( '.woocommerce' ).on( 'click', '.select_all', function() {
$( this ).closest( 'td' ).find( 'select option' ).attr( 'selected', 'selected' );
$( this ).closest( 'td' ).find( 'select' ).trigger( 'change' );
2013-07-26 14:36:28 +00:00
return false;
});
$( '.woocommerce' ).on( 'click', '.select_none', function() {
$( this ).closest( 'td' ).find( 'select option' ).removeAttr( 'selected' );
$( this ).closest( 'td' ).find( 'select' ).trigger( 'change' );
2013-07-26 14:36:28 +00:00
return false;
});
})( jQuery );