Current File : /home/vedfinancials/www/vedwp/wp-content/plugins/add-whatsapp-button/js/admin.js |
jQuery(document).ready(function( $ ) {
$('form #submit').on('keypress', function(e) {
return e.which !== 13;
});
// Control Settings Tabs
$('#gstablink').click(function(){
if ( !$('#gstab').hasClass('awb-tab-active') ) {
$('#gstab').addClass('awb-tab-active');
$('#gstablink').addClass('nav-tab-active');
$('#bdtablink').removeClass('nav-tab-active');
$('#bdtab').removeClass('awb-tab-active');
}
});
$('#bdtablink').click(function(){
if ( !$('#bdtab').hasClass('awb-tab-active') ) {
$('#bdtab').addClass('awb-tab-active');
$('#bdtablink').addClass('nav-tab-active');
$('#gstablink').removeClass('nav-tab-active');
$('#gstab').removeClass('awb-tab-active');
}
});
});
jQuery(document).ready(function( $ ) {
// Add Color Picker to all inputs that have 'color-field' class
$( '.udi-bg-color-picker' ).wpColorPicker({
/**
* @param {Event} event - standard jQuery event, produced by whichever
* control was changed.
* @param {Object} ui - standard jQuery UI object, with a color member
* containing a Color.js object.
*/
// Listen to a change in the color picker in order to update the button background in the preview screen with the picked color
change: function (event, ui) {
$('#whatsAppButton').css( 'background-color', ui.color.toString() );
},
/**
* @param {Event} event - standard jQuery event, produced by "Clear"
* button.
*/
// Listen in case the color picker is cleared, in order to update the button preview screen with the default color.
clear: function (event) {
var element = jQuery(event.target).siblings('.wp-color-picker')[0];
if (element) {
$('#whatsAppButton').css('background-color', '#20B038');
}
}
});
// Change text color in preview according to input
$('.udi-text-color-picker').wpColorPicker({
change: function (event, ui) {
var color = ui.color.toString();
$('#whatsAppButton').css('color', color);
},
clear: function (event) {
var element = jQuery(event.target).siblings('.wp-color-picker')[0];
if (element) {
$('#whatsAppButton').css('color', '#ffffff');
}
}
});
});
/*
*
* Change Button Preview look on settings page according to values from all settings inputs
*
*/
// Get Button container ID
const wabcont = document.getElementById('admin_wab_cont'),
wabButtonText = document.getElementById('wab-text'),
awbButtonTypeSelect = document.getElementById('awb_settings[button_type]');
// Change button type (side rectangle, bottom rectangle, icon) according to select value
awbButtonTypeSelect.addEventListener('change', function() {
wabcont.classList.remove('wab-side-rectangle', 'wab-bottom-rectangle', 'wab-icon-styled', 'wab-icon-plain');
wabcont.classList.add(awbButtonTypeSelect.value);
if (awbButtonTypeSelect.value === 'wab-icon-plain') {
wabButtonText.classList.add('awb-displaynone');
}
else if (wabButtonText.classList.contains('awb-displaynone')) {
wabButtonText.classList.remove('awb-displaynone');
}
});
// Change button size in real time according to number and select values
const awbChangeIconSize = () => {
if ( 'wab-icon-plain' !== awbButtonTypeSelect.value ) {
return;
}
const iconWhatsAppButton = document.querySelector('.wab-cont.wab-icon-plain #whatsAppButton'),
size = awbButtonIconSizeInput.value + awbButtonIconSizeMeasurementUnit.value;
iconWhatsAppButton.style.width = size;
iconWhatsAppButton.style.height = size;
};
const awbButtonIconSizeInput = document.getElementById('awb_settings[icon_size]'),
awbButtonIconSizeMeasurementUnit = document.getElementById('awb_settings[icon_size_mu]');
awbButtonIconSizeInput.addEventListener( 'input', () => awbChangeIconSize() );
awbButtonIconSizeMeasurementUnit.addEventListener( 'change', () => awbChangeIconSize() );
// Change button text in real time according to input value
var awbButtonTextInput, whatsAppButton;
awbButtonTextInput = document.getElementById('awb_settings[button_text]');
whatsAppButton = document.getElementById('whatsAppButton');
awbButtonTextInput.onkeyup = function () {
whatsAppButton.innerHTML = awbButtonTextInput.value;
};
// Display breakpoint width input box if breakpoint checkbox is checked
var awbBreakpointCheckbox = document.getElementById('awb_settings[enable_breakpoint]');
var awbBreakpointContainer = document.getElementById('awb_breakpoint');
if (awbBreakpointCheckbox.checked == true) awbBreakpointContainer.classList.remove('awb-hide');
awbBreakpointCheckbox.addEventListener('change', function() {
awbBreakpointContainer.classList.toggle('awb-hide');
});
// Display 'Hide Button' radio buttons if 'Hide Button' checkbox is checked
var awbHideButtonCheckbox = document.getElementById('awb_settings[enable_hide_button]');
var awbHideButtonContainer = document.getElementById('awb_hide_button');
if (awbHideButtonCheckbox.checked == true) awbHideButtonContainer.classList.remove('awb-hide');
awbHideButtonCheckbox.addEventListener('change', function() {
awbHideButtonContainer.classList.toggle('awb-hide');
});
// Display 'Display Times' input boxes if the "Limit Display Time" checkbox is checked
var awbLimitHoursCheckbox = document.getElementById('awb_settings[limit_hours]');
var awbLimitHoursContainer = document.getElementById('awb_limit_hours');
if (awbLimitHoursCheckbox.checked == true) awbLimitHoursContainer.classList.remove('awb-hide');
awbLimitHoursCheckbox.addEventListener('change', function() {
awbLimitHoursContainer.classList.toggle('awb-hide');
});
// Display Default Message Textarea if the "Default Message" checkbox is checked
var awbDefaultMessageCheckbox = document.getElementById('awb_settings[enable_message]');
var awbDefaultMessageContainer = document.getElementById('awb_enable_message');
if (awbDefaultMessageCheckbox.checked == true) awbDefaultMessageContainer.classList.remove('awb-hide');
awbDefaultMessageCheckbox.addEventListener('change', function() {
awbDefaultMessageContainer.classList.toggle('awb-hide');
});
// Change button background color
var awbButtonBG = document.getElementById('awb_settings[button_bg_color]');
jQuery(document).ready(function( $ ) {
$('.wp-admin #whatsAppButton').css('background', awbButtonBG.value);
awbButtonBG.addEventListener('change', function() {
$('.wp-admin #whatsAppButton').css('background', awbButtonBG.value);
});
});
// Change button text color
var awbButtonTextColor = document.getElementById('awb_settings[button_text_color]');
jQuery(document).ready(function( $ ) {
$('.wp-admin #whatsAppButton').css('color', awbButtonTextColor.value);
awbButtonTextColor.addEventListener('change', function() {
if (awbButtonTextColor.value == '') {
$('.wp-admin #whatsAppButton').css('color', '#ffffff');
}
else {
$('.wp-admin #whatsAppButton').css('color', awbButtonTextColor.value);
}
});
});
// Control the button location on the preview mockup
var awbButtonLocationSelect = document.getElementById('awb_settings[button_location]');
awbButtonLocationSelect.addEventListener('change', function() {
if (awbButtonLocationSelect.value == 'right') {
document.getElementById('admin_wab_cont').classList.add('wab-pull-right');
}
else if (awbButtonLocationSelect.value == 'left') {
document.getElementById('admin_wab_cont').classList.add('wab-pull-left');
}
});
// Change button location on the preview mockup (left/right) when the respective select input changes
awbButtonLocationSelect.addEventListener('change', function() {
if (awbButtonLocationSelect.value == 'right') {
if ( ! wabcont.classList.contains('wab-pull-right') ) {
wabcont.classList.add('wab-pull-right');
}
if ( wabcont.classList.contains('wab-pull-left') ) {
wabcont.classList.remove('wab-pull-left');
}
}
if (awbButtonLocationSelect.value == 'left') {
if ( !wabcont.classList.contains('wab-pull-left') ) {
wabcont.classList.add('wab-pull-left');
}
if ( wabcont.classList.contains('wab-pull-right') ) {
wabcont.classList.remove('wab-pull-right');
}
}
});
// Change button's distance from bottom (and whether it is determined by % or px)
var awbDistanceBottom = document.getElementById('awb_settings[distance_from_bottom]');
var awbDistanceBottomMU = document.getElementById('awb_settings[distance_from_bottom_mu]');
jQuery(document).ready(function( $ ) {
awbDistanceBottom.addEventListener('change', function() {
//console.log('test distance');
$('.wp-admin .wab-cont').css('bottom', awbDistanceBottom.value + awbDistanceBottomMU.value);
});
awbDistanceBottomMU.addEventListener('change', function() {
//console.log('test measurement unit');
$('.wp-admin .wab-cont').css('bottom', awbDistanceBottom.value + awbDistanceBottomMU.value);
});
});