HEX
Server: Apache/2.4.57 (Debian)
System: Linux web-server-k8s-e92jnr3j-6f99bff6b6-rp2wg 6.1.0-22-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.94-1 (2024-06-21) x86_64
User: apache (48)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/sites/1250.info/wp-content/themes/savoy/includes/assets/js/nm-wp-admin-menus.js
(function($) {
    
	'use strict';
	
	$(function() { // Doc ready
        
        if (wp && wp.media) {
            var frame = null,
                $fieldWrap,
                $fieldImg,
                $fieldInput,   
                $fieldAddLink,
                $fieldRemoveLink;
            
            /* Field: Thumbnail - Add input tag */
            var thumbnailAddInputTag = function($fieldWrap, val) {
                // Adding input here to prevent PHP "max_input_vars" error when saving menu page (too many inputs can cause this error)
                var menuItemId = $fieldWrap.data('item-id');
                $fieldWrap.find('label').append('<input type="hidden" name="nm-menu-item-thumbnail['+menuItemId+']" value="'+val+'">');
            }
            
            /* Field: Thumbnail - Bind "Set thumbnail" link */
            $('#menu-to-edit').on('click', '.nm-menu-item-set-thumbnail', function(e) {
                e.preventDefault();
                
                $fieldWrap = $(this).closest('.nm-field-thumbnail');
                $fieldImg = $fieldWrap.find('img');
                $fieldInput = $fieldWrap.find('input');
                $fieldAddLink = $fieldWrap.find('.nm-menu-item-set-thumbnail');
                $fieldRemoveLink = $fieldWrap.find('.nm-menu-item-remove-thumbnail');
                
                // Code reference: https://codex.wordpress.org/Javascript_Reference/wp.media
                
                // If the media frame already exists, reopen it
                if (frame) {
                    frame.open();
                    return;
                }
                
                // Create a new media frame
                frame = wp.media({
                    title: 'Select Image',
                    button: {
                        text: 'Set image'
                    },
                    multiple: false // Set to true to allow multiple files to be selected
                });


                // When an image is selected in the media frame...
                frame.on('select', function() {
                    // Get media attachment details from the frame state
                    var attachment = frame.state().get('selection').first().toJSON();
                    
                    // Add wrapper class
                    $fieldWrap.addClass('has-thumbnail');
                    
                    // Toggle links
                    $fieldAddLink.addClass('hidden');
                    $fieldRemoveLink.removeClass('hidden');
                    
                    // Show thumbnail
                    $fieldImg.attr('src', attachment.url).removeClass('hidden');
                    
                    // Set input
                    if ($fieldInput.length) {
                        $fieldInput.val(attachment.id);
                    } else {
                        thumbnailAddInputTag($fieldWrap, attachment.id);
                    }
                });

                // Finally, open the modal on click
                frame.open();
            });
            
            
            /* Field: Thumbnail - Bind "Remove thumbnail" link */
            $('#menu-to-edit').on('click', '.nm-menu-item-remove-thumbnail', function(e) {
                e.preventDefault();
                
                $fieldWrap = $(this).closest('.nm-field-thumbnail');
                $fieldInput = $fieldWrap.find('input');
                $fieldAddLink = $fieldWrap.find('.nm-menu-item-set-thumbnail');
                $fieldRemoveLink = $(this);
                
                // Remove wrapper class
                $fieldWrap.removeClass('has-thumbnail');
                
                // Toggle links
                $fieldAddLink.removeClass('hidden');
                $fieldRemoveLink.addClass('hidden');

                // Hide thumbnail
                $fieldWrap.find('img').attr('src', '').addClass('hidden');

                // Clear input
                if ($fieldInput.length) {
                    $fieldInput.val('');
                } else {
                    thumbnailAddInputTag($fieldWrap, '');
                }
            });
        }
        
	});
})(jQuery);