Server IP : 172.24.0.40 / Your IP : 216.73.216.10 Web Server : Apache System : Linux dbweb26.ust.edu.ph 4.18.0-513.5.1.el8_9.x86_64 #1 SMP Fri Sep 29 05:21:10 EDT 2023 x86_64 User : apache ( 48) PHP Version : 8.2.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/tomas.dbweb26.0621250700/public_html/wp-content/themes/jetblack/js/ |
Upload File : |
/** * File customizer.js. * * Theme Customizer enhancements for a better user experience. * * Contains handlers to make Theme Customizer preview reload changes asynchronously. */ jQuery( document ).ready(function($) { "use strict"; function onlyUnique(value, index, self) { return self.indexOf(value) === index; } // Make Main Content section in Sortable Section unclickable. $('#accordion-section-jetblack_ss_main_content h3').off("click"); /** * Sortable Repeater Custom Control */ // Update the values for all our input fields and initialise the sortable repeater $('.sortable_repeater_control').each(function() { // If there is an existing customizer value, populate our rows var defaultValuesArray = $(this).find('.customize-control-sortable-repeater').val().split(','); var numRepeaterItems = defaultValuesArray.length; if(numRepeaterItems > 0) { // Add the first item to our existing input field $(this).find('.repeater-input').val(defaultValuesArray[0]); // Create a new row for each new value if(numRepeaterItems > 1) { var i; for (i = 1; i < numRepeaterItems; ++i) { jetblackAppendRow($(this), defaultValuesArray[i]); } } } }); // Make our Repeater fields sortable $(this).find('.sortable_repeater.sortable').sortable({ update: function(event, ui) { jetblackGetAllInputs($(this).parent()); } }); // Remove item starting from it's parent element $('.sortable_repeater.sortable').on('click', '.customize-control-sortable-repeater-delete', function(event) { event.preventDefault(); var numItems = $(this).parent().parent().find('.repeater').length; if(numItems > 1) { $(this).parent().slideUp('fast', function() { var parentContainer = $(this).parent().parent(); $(this).remove(); jetblackGetAllInputs(parentContainer); }) } else { $(this).parent().find('.repeater-input').val(''); jetblackGetAllInputs($(this).parent().parent().parent()); } }); // Add new item $('.customize-control-sortable-repeater-add').on( 'click', function(event) { event.preventDefault(); jetblackAppendRow($(this).parent(), ''); jetblackGetAllInputs($(this).parent()); }); // Refresh our hidden field if any fields change $('.sortable_repeater.sortable').change(function() { jetblackGetAllInputs($(this).parent()); }) // Add https:// to the start of the URL if it doesn't have it $('.sortable_repeater.sortable').on('blur', '.repeater-input', function() { var url = $(this); var val = url.val(); if(val && !val.match(/^.+:\/\/.*/)) { // Important! Make sure to trigger change event so Customizer knows it has to save the field url.val('https://' + val).trigger('change'); } }); // Append a new row to our list of elements function jetblackAppendRow($element, defaultValue) { var newRow = '<div class="repeater" style="display:none"><input type="text" value="' + defaultValue + '" class="repeater-input" placeholder="https://" /><span class="dashicons dashicons-sort"></span><a class="customize-control-sortable-repeater-delete" href="#"><span class="dashicons dashicons-no-alt"></span></a></div>'; $element.find('.sortable').append(newRow); $element.find('.sortable').find('.repeater:last').slideDown('slow', function(){ $(this).find('input').focus(); }); } // Get the values from the repeater input fields and add to our hidden field function jetblackGetAllInputs($element) { var inputValues = $element.find('.repeater-input').map(function() { return $(this).val(); }).toArray(); // Add all the values from our repeater fields to the hidden field (which is the one that actually gets saved) $element.find('.customize-control-sortable-repeater').val(inputValues); // Important! Make sure to trigger change event so Customizer knows it has to save the field $element.find('.customize-control-sortable-repeater').trigger('change'); } /** * Slider Custom Control */ // Set our slider defaults and initialise the slider $('.slider-custom-control').each(function(){ var sliderValue = $(this).find('.customize-control-slider-value').val(); var newSlider = $(this).find('.slider'); var sliderMinValue = parseFloat(newSlider.attr('slider-min-value')); var sliderMaxValue = parseFloat(newSlider.attr('slider-max-value')); var sliderStepValue = parseFloat(newSlider.attr('slider-step-value')); newSlider.slider({ value: sliderValue, min: sliderMinValue, max: sliderMaxValue, step: sliderStepValue, change: function(e,ui){ // Important! When slider stops moving make sure to trigger change event so Customizer knows it has to save the field $(this).parent().find('.customize-control-slider-value').trigger('change'); } }); }); // Change the value of the input field as the slider is moved $('.slider').on('slide', function(event, ui) { $(this).parent().find('.customize-control-slider-value').val(ui.value); }); // Reset slider and input field back to the default value $('.slider-reset').on('click', function() { var resetValue = $(this).attr('slider-reset-value'); $(this).parent().find('.customize-control-slider-value').val(resetValue); $(this).parent().find('.slider').slider('value', resetValue); }); // Update slider if the input field loses focus as it's most likely changed $('.customize-control-slider-value').blur(function() { var resetValue = $(this).val(); var slider = $(this).parent().find('.slider'); var sliderMinValue = parseInt(slider.attr('slider-min-value')); var sliderMaxValue = parseInt(slider.attr('slider-max-value')); // Make sure our manual input value doesn't exceed the minimum & maxmium values if(resetValue < sliderMinValue) { resetValue = sliderMinValue; $(this).val(resetValue); } if(resetValue > sliderMaxValue) { resetValue = sliderMaxValue; $(this).val(resetValue); } $(this).parent().find('.slider').slider('value', resetValue); }); /** * Image Checkbox Custom Control */ $('.multi-image-checkbox').on('change', function () { jetblackGetAllImageCheckboxes($(this).parent().parent()); }); // Get the values from the checkboxes and add to our hidden field function jetblackGetAllImageCheckboxes($element) { var inputValues = $element.find('.multi-image-checkbox').map(function() { if( $(this).is(':checked') ) { return $(this).val(); } }).toArray(); // Important! Make sure to trigger change event so Customizer knows it has to save the field $element.find('.customize-control-multi-image-checkbox').val(inputValues).trigger('change'); } /** * Dropdown Select2 Custom Control */ $('.customize-control-select2').select2({ allowClear: true }); $(".customize-control-select2").on("change", function() { var select2Val = $(this).val(); $(this).parent().find('.customize-control-dropdown-select2').val(select2Val).trigger('change'); }); /** * TinyMCE Custom Control */ $('.customize-control-tinymce-editor').each(function(){ // Get the toolbar strings that were passed from the PHP Class var tinyMCEToolbar1String = _wpCustomizeSettings.controls[$(this).attr('id')].jetblacktinymcetoolbar1; var tinyMCEToolbar2String = _wpCustomizeSettings.controls[$(this).attr('id')].jetblacktinymcetoolbar2; var tinyMCEMediaButtons = _wpCustomizeSettings.controls[$(this).attr('id')].jetblackmediabuttons; wp.editor.initialize( $(this).attr('id'), { tinymce: { wpautop: true, toolbar1: tinyMCEToolbar1String, toolbar2: tinyMCEToolbar2String }, quicktags: true, mediaButtons: tinyMCEMediaButtons }); }); $(document).on( 'tinymce-editor-init', function( event, editor ) { editor.on('change', function(e) { tinyMCE.triggerSave(); $('#'+editor.id).trigger('change'); }); }); }); /** * Remove attached events from the Upsell Section to stop panel from being able to open/close */ ( function( $, api ) { api.sectionConstructor['jetblack-upsell'] = api.Section.extend( { // Remove events for this type of section. attachEvents: function () {}, // Ensure this type of section is active. Normally, sections without contents aren't visible. isContextuallyActive: function () { return true; } } ); } )( jQuery, wp.customize );