HEX
Server: nginx/1.18.0
System: Linux vcwordpress 5.15.0-174-generic #184-Ubuntu SMP Fri Mar 13 18:41:50 UTC 2026 x86_64
User: root (0)
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,pcntl_unshare,
Upload Files
File: /var/www/viitorx.stgviitor.com/wp-content/themes/viitorx/js/blog-listing.js
/**
 * Blog listing: live search via admin-ajax (no full page reload).
 */
(function () {
	'use strict';

	var grid = document.getElementById('blog-grid-results');
	var input = document.getElementById('blog-search-input');
	var form = document.getElementById('blog-search-form');
	var paginationWrap = document.getElementById('blog-pagination-wrap');
	var gridRoot = document.getElementById('blog-grid');

	if (!grid || !input || !form || typeof viitorxBlogListing === 'undefined') {
		return;
	}

	var ajaxUrl = viitorxBlogListing.ajaxUrl;
	var nonce = viitorxBlogListing.nonce;
	var debounceMs = 320;
	var timer;

	function setLoading(on) {
		if (gridRoot) {
			gridRoot.classList.toggle('blog-grid--loading', on);
			gridRoot.setAttribute('aria-busy', on ? 'true' : 'false');
		}
	}

	function fetchPosts(search) {
		var body = new URLSearchParams();
		body.set('action', 'viitorx_blog_search');
		body.set('nonce', nonce);
		body.set('s', search);
		body.set('paged', '1');

		setLoading(true);
		fetch(ajaxUrl, {
			method: 'POST',
			credentials: 'same-origin',
			headers: {
				'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
			},
			body: body.toString(),
		})
			.then(function (r) {
				return r.json();
			})
			.then(function (res) {
				if (!res || !res.success || !res.data) {
					return;
				}
				grid.innerHTML = res.data.html;
				if (paginationWrap) {
					if (res.data.showPagination && res.data.paginationHtml) {
						paginationWrap.innerHTML = res.data.paginationHtml;
						paginationWrap.hidden = false;
					} else {
						paginationWrap.innerHTML = '';
						paginationWrap.hidden = true;
					}
				}
			})
			.catch(function () {})
			.finally(function () {
				setLoading(false);
			});
	}

	form.addEventListener('submit', function (e) {
		e.preventDefault();
		clearTimeout(timer);
		fetchPosts(input.value.trim());
	});

	input.addEventListener('input', function () {
		clearTimeout(timer);
		timer = setTimeout(function () {
			fetchPosts(input.value.trim());
		}, debounceMs);
	});
})();