PageSourceSearch

https://transfervalencia24.es/wp-content/plugins/transfer-valencia…/js/search-route-hotfix.js?ver=20260723-1

js transfervalencia24.es collected 2026-10-06 13:58:03 UTC 2,887 bytes, 102 lines download raw bytes

1(function ($) {
2	"use strict";
3
4	$(function () {
5		var selector = "#trv-search-route";
6		var errorClass = "trv-search-route-request-error";
7
8		$(document).off("submit", selector);
9		$(document).on("submit.trvSearchHotfix", selector, function (event) {
10			event.preventDefault();
11
12			var form = this;
13			var $form = $(form);
14			var $submit = $form.find(".search_route_btn");
15			var formData = new FormData(form);
16			var session = new URLSearchParams(window.location.search).get("session");
17
18			formData.append("action", "route_selection");
19			formData.append("nonce", trv_obj.nonce);
20			if (session) {
21				formData.append("session", session);
22			}
23
24			$form.find(".trv-error-message, ." + errorClass).remove();
25			$form.find(".error").removeClass("error");
26			$submit.addClass("loading").prop("disabled", true);
27
28			function showRequestError(message) {
29				$("<span>", {
30					"class": "trv-error-message " + errorClass,
31					text: message || trv_obj.messages.load_error
32				}).insertAfter($submit);
33			}
34
35			$.ajax({
36				url: trv_obj.ajax_url,
37				type: "POST",
38				data: formData,
39				processData: false,
40				contentType: false,
41				dataType: "json",
42				timeout: 15000
43			}).done(function (response) {
44				var data = response && response.data ? response.data : {};
45
46				if (!response || !response.success) {
47					if (data.errors) {
48						$.each(data.errors, function (field, message) {
49							$form.find('[name="' + field + '"]')
50								.addClass("error")
51								.after($("<span>", {
52									"class": "trv-error-message",
53									text: message
54								}));
55						});
56					} else {
57						showRequestError(data.message);
58					}
59					return;
60				}
61
62				if (!data.redirect_url) {
63					showRequestError(trv_obj.messages.load_error);
64					return;
65				}
66
67				try {
68					if (typeof window.__gtagTracker === "function") {
69						window.__gtagTracker("event", "start_route_search", {
70							event_category: "Route",
71							event_action: "start_route_search",
72							event_label: "Route search started",
73							transport_type: "beacon",
74							value: 1
75						});
76					} else if (window.dataLayer) {
77						window.dataLayer.push({
78							event: "start_route_search",
79							event_category: "Route",
80							event_action: "start_route_search",
81							event_label: "Route search started",
82							value: 1
83						});
84					}
85				} catch (analyticsError) {
86					// Analytics must never block route navigation.
87				}
88
89				window.location.assign(data.redirect_url);
90			}).fail(function (xhr, status) {
91				var message = status === "timeout"
92					? (window.location.pathname.indexOf("/en/") === 0
93						? "The search took too long. Please try again."
94						: "La búsqueda está tardando demasiado. Inténtalo de nuevo.")
95					: trv_obj.messages.load_error;
96				showRequestError(message);
97			}).always(function () {
98				$submit.removeClass("loading").prop("disabled", false);
99			});
100		});
101	});
102})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.