261 lines
No EOL
7 KiB
JavaScript
261 lines
No EOL
7 KiB
JavaScript
String.prototype.hashCode = function () {
|
|
var hash = 0, i, chr;
|
|
if ( this.length === 0 ) {
|
|
return hash;
|
|
}
|
|
for ( i = 0; i < this.length; i ++ ) {
|
|
chr = this.charCodeAt( i );
|
|
hash = (
|
|
(
|
|
hash << 5
|
|
) - hash
|
|
) + chr;
|
|
hash |= 0; // Convert to 32bit integer
|
|
}
|
|
return hash;
|
|
};
|
|
|
|
function woe_make_json_var( obj ) {
|
|
return encodeURIComponent( woe_make_json( obj ) );
|
|
}
|
|
|
|
function woe_make_json( obj ) {
|
|
return JSON.stringify( obj.serializeJSON() );
|
|
}
|
|
|
|
function woe_change_filename_ext() {
|
|
if ( jQuery( '#export_filename' ).length ) {
|
|
var filename = jQuery( '#export_filename input' ).val();
|
|
var ext = output_format.toLowerCase();
|
|
if ( ext == 'xls' && ! jQuery( '#format_xls_use_xls_format' ).prop( 'checked' ) ) //fix for XLSX
|
|
{
|
|
ext = 'xlsx';
|
|
}
|
|
|
|
var file = filename.replace( /^(.*)\..+$/, "$1." + ext );
|
|
if ( file.indexOf( "." ) == - 1 ) //no dots??
|
|
{
|
|
file = file + "." + ext;
|
|
}
|
|
jQuery( '#export_filename input' ).val( file );
|
|
woe_show_summary_report( output_format );
|
|
}
|
|
}
|
|
|
|
function woe_show_summary_report( ext ) {
|
|
if ( woe_is_flat_format( ext ) ) {
|
|
jQuery( '#summary_report_by_products' ).show();
|
|
jQuery( '#summary_report_by_customers' ).show();
|
|
} else {
|
|
jQuery( '#summary_report_by_products' ).hide();
|
|
jQuery( '#summary_report_by_customers' ).hide();
|
|
jQuery( '#summary_setup_fields' ).hide();
|
|
jQuery( '#summary_report_by_products_checkbox' ).prop( 'checked', false ).trigger( 'change' );
|
|
}
|
|
}
|
|
|
|
//for warning
|
|
function woe_setup_alert_date_filter() {
|
|
default_date_filter_color = jQuery( "#my-date-filter" ).css( 'color' );
|
|
woe_try_color_date_filter();
|
|
jQuery( '#from_date' ).change( function () {
|
|
woe_try_color_date_filter();
|
|
} );
|
|
jQuery( '#to_date' ).change( function () {
|
|
woe_try_color_date_filter();
|
|
} );
|
|
}
|
|
|
|
function woe_is_flat_format( format ) {
|
|
return (
|
|
settings_form.flat_formats.indexOf( format ) > - 1
|
|
);
|
|
}
|
|
|
|
function woe_reset_date_filter_for_cron() {
|
|
if ( mode == 'cron' ) {
|
|
jQuery( "#from_date" ).val( "" );
|
|
jQuery( "#to_date" ).val( "" );
|
|
woe_try_color_date_filter();
|
|
}
|
|
}
|
|
|
|
function woe_try_color_date_filter() {
|
|
|
|
var color = default_date_filter_color;
|
|
|
|
if ( jQuery( "#from_date" ).val() || jQuery( "#to_date" ).val() ) {
|
|
color = 'red';
|
|
}
|
|
|
|
jQuery( "#my-date-filter" ).css( 'color', color );
|
|
}
|
|
|
|
function woe_show_error_message( text ) {
|
|
if ( ! text ) {
|
|
text = "Please, open section 'Misc Settings' and \n mark checkbox 'Enable debug output' \n to see exact error message";
|
|
}
|
|
alert( text );
|
|
}
|
|
|
|
function woe_init_image_uploaders() {
|
|
|
|
var custom_uploader;
|
|
|
|
jQuery( '.image-upload-button' ).click( function ( e ) {
|
|
e.preventDefault();
|
|
if ( custom_uploader ) {
|
|
custom_uploader.open();
|
|
return;
|
|
}
|
|
|
|
custom_uploader = wp.media.frames.file_frame = wp.media( {
|
|
title: 'Choose Image',
|
|
button: {
|
|
text: 'Choose Image'
|
|
},
|
|
multiple: false
|
|
} );
|
|
|
|
var self = this;
|
|
custom_uploader.on( 'select', function () {
|
|
attachment = custom_uploader.state().get( 'selection' ).first().toJSON();
|
|
jQuery( self ).siblings( 'input[type="hidden"].source_url' ).val( attachment.url );
|
|
jQuery( self ).siblings( 'input[type="hidden"].source_id' ).val( attachment.id );
|
|
jQuery( self ).siblings( 'img' ).attr( 'src', attachment.url ).removeClass( 'hidden' );
|
|
jQuery( self ).siblings( '.image-clear-button' ).removeClass( 'hidden' );
|
|
} );
|
|
|
|
custom_uploader.open();
|
|
} );
|
|
|
|
jQuery( '.image-clear-button' ).click( function ( e ) {
|
|
jQuery( this ).siblings( 'input[type="hidden"]' ).val( '' );
|
|
jQuery( this ).siblings( 'img' ).attr( 'src', '' ).addClass( 'hidden' );
|
|
jQuery( this ).addClass( 'hidden' );
|
|
} );
|
|
|
|
return custom_uploader;
|
|
}
|
|
|
|
var woe_form_submitting = false;
|
|
|
|
function woe_set_form_submitting() {
|
|
woe_form_submitting = true;
|
|
}
|
|
window.onload = function () {
|
|
|
|
var form = jQuery( '#export_job_settings' );
|
|
var on_load_form_data;
|
|
|
|
setTimeout(function () {
|
|
on_load_form_data = form.serialize();
|
|
}, 1500);
|
|
|
|
var woe_is_dirty = function ( on_load_form_data ) {
|
|
return on_load_form_data.hashCode() !== form.serialize().hashCode()
|
|
};
|
|
|
|
window.addEventListener( "beforeunload", function ( e ) {
|
|
var clicked_el = e.target.activeElement;
|
|
|
|
if ( clicked_el.id === 'copy-to-profiles' ) {
|
|
woe_set_form_submitting();
|
|
}
|
|
|
|
if ( woe_is_dirty( on_load_form_data ) && ! woe_form_submitting ) {
|
|
(
|
|
e || window.event
|
|
).returnValue = false; //Gecko + IE
|
|
return false; //Gecko + Webkit, Safari, Chrome etc.
|
|
} else {
|
|
return undefined;
|
|
}
|
|
} );
|
|
}
|
|
|
|
jQuery( document ).ready( function ( $ ) {
|
|
|
|
function woe_disable_input_by_id( current_elem, element_id ) {
|
|
var $disabled = $( '#' + element_id );
|
|
( current_elem.checked === true )
|
|
? $disabled.attr( 'disabled', true )
|
|
: $disabled.removeAttr( 'disabled' );
|
|
}
|
|
|
|
$( '.my-hide-next' ).click( function () {
|
|
|
|
$( this ).next().toggleClass('hide');
|
|
|
|
var is_shown = ! $( this ).next().is( ':hidden' );
|
|
|
|
$( this ).find( 'span' )
|
|
.toggleClass( 'ui-icon-triangle-1-n', is_shown )
|
|
.toggleClass( 'ui-icon-triangle-1-s', ! is_shown );
|
|
} );
|
|
|
|
$( '#date_format_block select' ).on( 'change', function () {
|
|
var value = $( this ).val();
|
|
if ( value == 'custom' ) {
|
|
$( '#custom_date_format_block' ).show();
|
|
} else {
|
|
$( '#custom_date_format_block' ).hide();
|
|
$( 'input[name="settings[date_format]"]' ).val( value );
|
|
}
|
|
} );
|
|
|
|
$( '#time_format_block select' ).on( 'change', function () {
|
|
var value = $( this ).val();
|
|
if ( value == 'custom' ) {
|
|
$( '#custom_time_format_block' ).show();
|
|
} else {
|
|
$( '#custom_time_format_block' ).hide();
|
|
$( 'input[name="settings[time_format]"]' ).val( value );
|
|
}
|
|
} );
|
|
|
|
$( 'input[type="checkbox"][name="settings[custom_php]"]' ).on( 'change', function () {
|
|
$( 'div#custom_php_code_textarea' ).toggle( $( this ).is( ':checked' ) );
|
|
} );
|
|
|
|
$( '#woe_format_disabler' ).on( 'change', function() {
|
|
woe_disable_input_by_id( this, 'woe_format_disabled' );
|
|
} ).trigger( 'change' );
|
|
|
|
$( '#woe_format_tsv_disabler').on( 'change', function() {
|
|
woe_disable_input_by_id( this, 'woe_format_tsv_disabled' );
|
|
} ).trigger( 'change' );
|
|
|
|
if (typeof settings_form.settings.show_date_time_picker_for_date_range !== 'undefined' && settings_form.settings.show_date_time_picker_for_date_range) {
|
|
if ( typeof woe_init_datetime_picker !== 'undefined' ) {
|
|
woe_init_datetime_picker($("#from_date"), {'hours': "00", 'minutes': "00", 'seconds': "00"});
|
|
woe_init_datetime_picker($("#to_date"), {'hours': "23", 'minutes': "59", 'seconds': "59"});
|
|
}
|
|
} else {
|
|
jQuery('.date').datepicker({
|
|
dateFormat: 'yy-mm-dd',
|
|
constrainInput: false
|
|
});
|
|
}
|
|
|
|
if ( mode == settings_form.EXPORT_SCHEDULE ) {
|
|
woe_setup_alert_date_filter();
|
|
}
|
|
|
|
//for XLSX
|
|
$( '#format_xls_use_xls_format' ).click( function () {
|
|
woe_change_filename_ext();
|
|
} );
|
|
|
|
woe_show_summary_report( output_format );
|
|
|
|
if ( ! summary_mode_by_products ) {
|
|
jQuery( '#summary_setup_fields' ).hide();
|
|
}
|
|
|
|
woe_init_image_uploaders();
|
|
|
|
// this line must be last , we don't have any errors
|
|
jQuery( '#JS_error_onload' ).hide();
|
|
|
|
} ); |