PageSourceSearch

https://www.bgcgh.ca/wp-content/plugins/wp-google-maps/js/v8/tables/datatable.js?ver=10.0.09+pro-10.0.07

js bgcgh.ca collected 2026-10-06 18:41:07 UTC 14,200 bytes, 488 lines download raw bytes

1/**
2 * @namespace WPGMZA
3 * @module DataTable
4 * @requires WPGMZA
5 */
6jQuery(function($) {
7
8	WPGMZA.DataTable = function(element)
9	{
10		var self = this;
11		if(!$.fn.dataTable)
12		{
13			console.warn("The dataTables library is not loaded. Cannot create a dataTable. Did you enable 'Do not enqueue dataTables'?");
14			
15			if(WPGMZA.settings.wpgmza_do_not_enqueue_datatables && WPGMZA.getCurrentPage() == WPGMZA.PAGE_MAP_EDIT)
16				alert("You have selected 'Do not enqueue DataTables' in WP Go Maps' settings. No 3rd party software is loading the DataTables library. Because of this, the marker table cannot load. Please uncheck this option to use the marker table.");
17			
18			return;
19		}
20		
21		if($.fn.dataTable.ext){
22			$.fn.dataTable.ext.errMode = "throw";
23		} else {
24			var version = $.fn.dataTable.version ? $.fn.dataTable.version : "unknown";
25			console.warn("You appear to be running an outdated or modified version of the dataTables library. This may cause issues with table functionality. This is usually caused by 3rd party software loading an older version of DataTables. The loaded version is " + version + ", we recommend version 2.0 or above.");
26		}
27
28		// In DataTables 2.x processing() is a built-in API method; only register the
29		// 1.x shim (which relies on the private oApi._fnProcessingDisplay) when running
30		// on an older version.
31		if($.fn.dataTable.Api && $.fn.dataTable.versionCheck && !$.fn.dataTable.versionCheck('2.0.0')){
32			$.fn.dataTable.Api.register( 'processing()', function ( show ) {
33				return this.iterator( 'table', function ( ctx ) {
34					ctx.oApi._fnProcessingDisplay( ctx, show );
35				} );
36			} );
37		}
38		
39		this.element = element;
40		this.element.wpgmzaDataTable = this;
41		this.dataTableElement = this.getDataTableElement();
42
43		var settings = this.getDataTableSettings();
44		
45		
46		this.phpClass			= $(element).attr("data-wpgmza-php-class");
47		// this.dataTable			= $(this.dataTableElement).DataTable(settings);
48		this.wpgmzaDataTable	= this;
49		
50		this.useCompressedPathVariable = (WPGMZA.restAPI.isCompressedPathVariableSupported && WPGMZA.settings.enable_compressed_path_variables);
51		this.method = (this.useCompressedPathVariable ? "GET" : "POST");
52		
53		if(this.getLanguageURL() == undefined || this.getLanguageURL() == "//cdn.datatables.net/plug-ins/1.10.12/i18n/English.json") {
54			this.dataTable = $(this.dataTableElement).DataTable(settings);
55			this.dataTable.ajax.reload();
56		}
57		else {
58			
59			$.ajax(this.getLanguageURL(), {
60
61				success: function(response, status, xhr){
62					self.languageJSON = response;
63					self.dataTable = $(self.dataTableElement).DataTable(settings);
64					self.dataTable.ajax.reload();
65				}
66				
67			});
68		}
69	}
70	
71	WPGMZA.DataTable.prototype.getDataTableElement = function()
72	{
73		return $(this.element).find("table");
74	}
75	
76	/**
77	 * This function wraps the request so it doesn't collide with WP query vars,
78	 * it also adds the PHP class so that the controller knows which class to 
79	 * instantiate
80	 * @return object
81	 */
82	WPGMZA.DataTable.prototype.onAJAXRequest = function(data, settings)
83	{
84		// TODO: Move this to the REST API module and add useCompressedPathVariable
85		var params = {
86			"phpClass":	this.phpClass
87		};
88		
89		var attr = $(this.element).attr("data-wpgmza-ajax-parameters");
90		if(attr)
91			$.extend(params, JSON.parse(attr));
92		
93		return $.extend(data, params);
94	}
95	
96	WPGMZA.DataTable.prototype.onDataTableAjaxRequest = function(data, callback, settings)
97	{
98		var self = this;
99		var element = this.element;
100		var route = $(element).attr("data-wpgmza-rest-api-route");
101		var params = this.onAJAXRequest(data, settings);
102		var draw = params.draw;
103		
104		delete params.draw;
105		
106		if(!route)
107			throw new Error("No data-wpgmza-rest-api-route attribute specified");
108		
109		var options = {
110			method: "POST",
111			useCompressedPathVariable: true,
112			data: params,
113			dataType: "json",
114			cache: !this.preventCaching,
115			beforeSend: function(xhr) {
116				// Put draw in header, for compressed requests
117				xhr.setRequestHeader("X-DataTables-Draw", draw);
118			},
119			success: function(response, status, xhr) {
120				
121				response.draw = draw;
122				
123				/* Convert any false objects to arrays */
124				if(!(response.data instanceof Array) && response.data instanceof Object){
125					response.data = Object.keys(response.data).map((key) => response.data[key]);
126				}
127
128				if(!(response.meta instanceof Array) && response.meta instanceof Object){
129					response.meta = Object.keys(response.meta).map((key) => response.meta[key]);
130				}
131
132				self.lastResponse = response;
133				
134				callback(response);
135				
136				$("[data-marker-icon-src]").each(function(index, element) {
137					var icon = WPGMZA.MarkerIcon.createInstance(
138						$(element).attr("data-marker-icon-src")
139					);
140					
141					icon.applyToElement(element);
142				});
143				
144			}
145		};
146		
147		return WPGMZA.restAPI.call(route, options);
148	}
149	
150	WPGMZA.DataTable.prototype.getDataTableSettings = function()
151	{
152		var self = this;
153		var element = this.element;
154		var options = {};
155		
156		if($(element).attr("data-wpgmza-datatable-options"))
157			options = JSON.parse($(element).attr("data-wpgmza-datatable-options"));
158	
159		options.deferLoading = true;
160		options.processing = true;
161		options.serverSide = true;
162		
163		options.ajax = function(data, callback, settings) { 
164			return WPGMZA.DataTable.prototype.onDataTableAjaxRequest.apply(self, arguments); 
165		}
166		
167		if(WPGMZA.AdvancedTableDataTable && this instanceof WPGMZA.AdvancedTableDataTable && WPGMZA.settings.wpgmza_default_items){
168			options.pageLength = parseInt(WPGMZA.settings.wpgmza_default_items);
169		}
170
171		if(WPGMZA.settings && WPGMZA.settings.enable_datatables_enter_search){
172			options.search = { return : true };
173		}
174		
175		options.lengthMenu = [[5, 10, 25, 50, 100, -1], ["5", "10", "25", "50", "100", WPGMZA.localized_strings.all]];
176		
177		var languageURL = this.getLanguageURL();
178		if(languageURL)
179			options.language = {
180				"url": languageURL
181			};
182		
183		return options;
184	}
185	
186	WPGMZA.DataTable.prototype.getLanguageURL = function()
187	{
188		if(!WPGMZA.locale)
189			return null;
190		
191		var languageURL;
192		
193		switch(WPGMZA.locale.substr(0, 2))
194		{
195			case "af":
196				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Afrikaans.json";
197				break;
198
199			case "sq":
200				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Albanian.json";
201				break;
202
203			case "am":
204				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Amharic.json";
205				break;
206
207			case "ar":
208				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Arabic.json";
209				break;
210
211			case "hy":
212				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Armenian.json";
213				break;
214
215			case "az":
216				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Azerbaijan.json";
217				break;
218
219			case "bn":
220				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Bangla.json";
221				break;
222
223			case "eu":
224				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Basque.json";
225				break;
226
227			case "be":
228				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Belarusian.json";
229				break;
230
231			case "bg":
232				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Bulgarian.json";
233				break;
234
235			case "ca":
236				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Catalan.json";
237				break;
238
239			case "zh":
240				if(WPGMZA.locale == "zh_TW")
241					languageURL = WPGMZA.pluginDirURL + "languages/datatables/Chinese-traditional.json";
242				else
243					languageURL = "//cdn.datatables.net/plug-ins/1.10.12/i18n/Chinese.json";
244				break;
245
246			case "hr":
247				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Croatian.json";
248				break;
249
250			case "cs":
251				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Czech.json";
252				break;
253
254			case "da":
255				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Danish.json";
256				break;
257
258			case "nl":
259				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Dutch.json";
260				break;
261
262			/*case "en":
263				languageURL = "//cdn.datatables.net/plug-ins/1.10.12/i18n/English.json";
264				break;*/
265
266			case "et":
267				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Estonian.json";
268				break;
269
270			case "fi":
271				if(WPGMZA.locale.match(/^fil/))
272					languageURL = WPGMZA.pluginDirURL + "languages/datatables/Filipino.json";
273				else
274					languageURL = WPGMZA.pluginDirURL + "languages/datatables/Finnish.json";
275				break;
276
277			case "fr":
278				languageURL = WPGMZA.pluginDirURL + "languages/datatables/French.json";
279				break;
280
281			case "gl":
282				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Galician.json";
283				break;
284
285			case "ka":
286				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Georgian.json";
287				break;
288
289			case "de":
290				languageURL = WPGMZA.pluginDirURL + "languages/datatables/German.json";
291				break;
292
293			case "el":
294				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Greek.json";
295				break;
296
297			case "gu":
298				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Gujarati.json";
299				break;
300
301			case "he":
302				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Hebrew.json";
303				break;
304
305			case "hi":
306				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Hindi.json";
307				break;
308
309			case "hu":
310				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Hungarian.json";
311				break;
312
313			case "is":
314				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Icelandic.json";
315				break;
316
317			/*case "id":
318				languageURL = "//cdn.datatables.net/plug-ins/1.10.12/i18n/Indonesian-Alternative.json";
319				break;*/
320			
321			case "id":
322				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Indonesian.json";
323				break;
324
325			case "ga":
326				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Irish.json";
327				break;
328
329			case "it":
330				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Italian.json";
331				break;
332
333			case "ja":
334				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Japanese.json";
335				break;
336
337			case "kk":
338				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Kazakh.json";
339				break;
340
341			case "ko":
342				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Korean.json";
343				break;
344
345			case "ky":
346				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Kyrgyz.json";
347				break;
348
349			case "lv":
350				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Latvian.json";
351				break;
352
353			case "lt":
354				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Lithuanian.json";
355				break;
356
357			case "mk":
358				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Macedonian.json";
359				break;
360
361			case "ml":
362				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Malay.json";
363				break;
364
365			case "mn":
366				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Mongolian.json";
367				break;
368
369			case "ne":
370				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Nepali.json";
371				break;
372
373			case "nb":
374				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Norwegian-Bokmal.json";
375				break;
376			
377			case "nn":
378				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Norwegian-Nynorsk.json";
379				break;
380			
381			case "ps":
382				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Pashto.json";
383				break;
384
385			case "fa":
386				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Persian.json";
387				break;
388
389			case "pl":
390				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Polish.json";
391				break;
392
393			case "pt":
394				if(WPGMZA.locale == "pt_BR")
395					languageURL = WPGMZA.pluginDirURL + "languages/datatables/Portuguese-Brasil.json";
396				else
397					languageURL = "//cdn.datatables.net/plug-ins/1.10.12/i18n/Portuguese.json";
398				break;
399			
400			case "ro":
401				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Romanian.json";
402				break;
403
404			case "ru":
405				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Russian.json";
406				break;
407
408			case "sr":
409				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Serbian.json";
410				break;
411
412			case "si":
413				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Sinhala.json";
414				break;
415
416			case "sk":
417				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Slovak.json";
418				break;
419
420			case "sl":
421				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Slovenian.json";
422				break;
423
424			case "es":
425				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Spanish.json";
426				break;
427
428			case "sw":
429				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Swahili.json";
430				break;
431
432			case "sv":
433				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Swedish.json";
434				break;
435
436			case "ta":
437				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Tamil.json";
438				break;
439
440			case "te":
441				languageURL = WPGMZA.pluginDirURL + "languages/datatables/telugu.json";
442				break;
443
444			case "th":
445				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Thai.json";
446				break;
447
448			case "tr":
449				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Turkish.json";
450				break;
451
452			case "uk":
453				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Ukrainian.json";
454				break;
455
456			case "ur":
457				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Urdu.json";
458				break;
459
460			case "uz":
461				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Uzbek.json";
462				break;
463
464			case "vi":
465				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Vietnamese.json";
466				break;
467
468			case "cy":
469				languageURL = WPGMZA.pluginDirURL + "languages/datatables/Welsh.json";
470				break;
471		}
472		
473		return languageURL;
474	}
475	
476	WPGMZA.DataTable.prototype.onAJAXResponse = function(response)
477	{
478		
479	}
480	
481	WPGMZA.DataTable.prototype.reload = function()
482	{	
483		if(this.dataTable){
484			this.dataTable.ajax.reload(null, false); // null callback, false for resetPaging
485		}
486	}
487	
488});

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.