PageSourceSearch

https://www.villageofbourbonnais.com/libraries/cegcore2/assets/js/g2.boot.js

js villageofbourbonnais.com collected 2026-10-02 14:46:43 UTC 12,001 bytes, 358 lines download raw bytes

1(function($){
2	if($.G2 == undefined){
3		$.G2 = {};
4	}
5	$.G2.boot = {};
6	
7	$.G2.boot.autocompleter = function(Container){
8		Container.find('[data-autocomplete]').each(function(i, dropfield){
9			$(dropfield).closest('.ui.search.dropdown').dropdown({
10				apiSettings : {
11					url: $(dropfield).data('url') + '&' + $(dropfield).attr('name') + '={query}',
12					cache : false,
13					onResponse : function(Response){
14						if(!Response.hasOwnProperty('results')){
15							var results = [];
16							results['success'] = true;
17							results['results'] = [];
18							
19							var count = 0;
20							$.each(Response, function(key, obj){
21								results['results'][count] = {};
22								results['results'][count]['value'] = key;
23								results['results'][count]['name'] = obj;
24								count = count + 1;
25							});
26							
27							return results;
28						}
29					}
30				},
31				minCharacters: $(dropfield).data('mincharacters') ? $(dropfield).data('mincharacters') : 0,
32				message : {noResults : $(dropfield).data('noresults') ? $(dropfield).data('noresults') : 'No results found'},
33				//saveRemoteData:false
34			});
35		});
36	};
37	
38	$.G2.boot.calendar = function(Container){
39		//calendar
40		Container.find('[data-calendar]').each(function(i, calfield){
41			if($(calfield).data('calendarready') === true){
42				return true;
43			}
44			$(calfield).data('calendarready', true);
45			
46			var dformat = $(calfield).data('dformat') ? $(calfield).data('dformat') : 'YYYY-MM-DD';
47			var sformat = $(calfield).data('sformat') ? $(calfield).data('sformat') : 'YYYY-MM-DD';
48			
49			var mindate = null;
50			if($(calfield).data('mindate')){
51				//var parts = $(calfield).data('mindate').split('-');
52				//var mindate = new Date(parts[0], parts[1]-1, parts[2]);
53				var mindate = moment($(calfield).data('mindate'), sformat).toDate();
54			}
55			var maxdate = null;
56			if($(calfield).data('maxdate')){
57				//var parts = $(calfield).data('maxdate').split('-');
58				//var maxdate = new Date(parts[0], parts[1]-1, parts[2]);
59				var maxdate = moment($(calfield).data('maxdate'), sformat).toDate();
60			}
61			if(jQuery.fn.calendar != undefined){
62				
63				var $realDate = $('<input type="hidden" name="'+$(calfield).attr('name')+'">');
64				if($('[type="hidden"][name="'+$(calfield).attr('name')+'"]').length == 0){
65					$(calfield).closest('.field').after($realDate);
66				}else{
67					$realDate = $('[type="hidden"][name="'+$(calfield).attr('name')+'"]').first();
68				}
69				
70				//var dformat = $(calfield).data('dformat') ? $(calfield).data('dformat') : 'YYYY-MM-DD';
71				//var sformat = $(calfield).data('sformat') ? $(calfield).data('sformat') : 'YYYY-MM-DD';
72				
73				if($(calfield).val().length > 0){
74					var calval = $(calfield).val();
75					$realDate.val(calval);
76					$(calfield).val(moment(calval, sformat).format(dformat));
77				}
78				
79				var opendays = [1,2,3,4,5,6,7];//1 for monday
80				if($(calfield).data('opendays')){
81					opendays = $(calfield).data('opendays').toString().split(',').map(Number);
82				}
83				
84				var openhours = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24];
85				if($(calfield).data('openhours')){
86					openhours = $(calfield).data('openhours').toString().split(',').map(Number);
87				}
88				
89				$(calfield).closest('.field').calendar({
90					startMode : $(calfield).data('startmode'),
91					type : $(calfield).data('type'),
92					minDate : mindate,
93					maxDate : maxdate,
94					startCalendar: $(calfield).data('startcalendar') ? $($(calfield).data('startcalendar')).closest('.field') : null,
95					endCalendar: $(calfield).data('endcalendar') ? $($(calfield).data('endcalendar')).closest('.field') : null,
96					firstDayOfWeek: $(calfield).data('firstday') ? $(calfield).data('firstday') : 0,
97					ampm: ($(calfield).data('ampm') != undefined) ? $(calfield).data('ampm') : true,
98					monthFirst: $(calfield).data('monthfirst') ? $(calfield).data('monthfirst') : true,
99					disableMinute: $(calfield).data('disableminute') ? $(calfield).data('disableminute') : false,
100					
101					formatter:{
102						datetime: function (date, settings) {
103							if (!date) return '';
104							return moment(date).format(dformat);
105						},
106						cell: function(cell, date, cellOptions){
107							if(cellOptions.mode == 'day' && (opendays.indexOf(parseInt(moment(date).format('E'))) == -1)){
108								$(cell).addClass('disabled');
109							}
110							
111							if(cellOptions.mode == 'hour' && (openhours.indexOf(parseInt(moment(date).format('k'))) == -1)){
112								$(cell).addClass('disabled');
113							}
114						}
115					},
116					parser:{
117						date: function (text, settings) {
118							if (!text) return '';
119							return moment(text, dformat).toDate();
120						}
121					},
122					onChange: function (date, text, mode){
123						if(text){
124							$realDate.val(moment(date).format(sformat));
125						}else{
126							$realDate.val('');
127						}
128						$(calfield).trigger('input.events');
129					},
130					popupOptions:{
131						position: $(calfield).data('popuppos') ? $(calfield).data('popuppos') : 'top center'
132					},
133					className:{
134						popup: $(calfield).data('size') ? 'ui popup ' + $(calfield).data('size') : 'ui popup'
135					},
136					inline: ($(calfield).data('inline') === 1 || $(calfield).data('inline') === 2) ? true : false, 
137
138					text:{
139						days: $(calfield).data('days') ? $(calfield).data('days').split(',') : ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
140						months: $(calfield).data('months') ? $(calfield).data('months').split(',') : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
141						monthsShort: $(calfield).data('monthsshort') ? $(calfield).data('monthsshort').split(',') : ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
142						today: $(calfield).data('today') ? $(calfield).data('today').split(',') : 'Today',
143						now: $(calfield).data('now') ? $(calfield).data('now').split(',') : 'Now',
144						am: $(calfield).data('am') ? $(calfield).data('am').split(',') : 'AM',
145						pm: $(calfield).data('pm') ? $(calfield).data('pm').split(',') : 'PM'
146					}
147				});
148				
149				if($(calfield).data('inline') === 2){
150					$(calfield).css('display', 'none');
151				}
152			}
153		});
154	};
155	
156	$.G2.boot.ready = function(){
157		
158		$('body').on('contentChange.basics', '*', function(e, settings){
159			e.stopPropagation();
160			
161			if($(this).prop('tagName') != 'DIV' && $(this).prop('tagName') != 'FORM'){
162				//return false;
163			}
164			
165			if(jQuery.fn.tab != undefined){
166				$(this).find('.ui.menu.G2-tabs .item, .ui.steps.G2-tabs .step').tab();
167			}
168			if(jQuery.fn.dropdown != undefined){
169				$(this).find('.ui.dropdown').dropdown({'forceSelection' : false, 'placeholder' : ''});
170				
171				//$.G2.boot.autocompleter($(this));
172				$(this).find('select').each(function(i, dropfield){
173					var dsettings = {};//{'forceSelection' : false, 'placeholder' : ''};
174					
175					if($(dropfield).is('[data-autocomplete]')){
176						$.extend(dsettings, {
177							apiSettings : {
178								url: $(dropfield).data('url') + '&' + $(dropfield).attr('name') + '={query}',
179								cache : false,
180								onResponse : function(Response){
181									if(!Response.hasOwnProperty('results')){
182										var results = [];
183										results['success'] = true;
184										results['results'] = [];
185										
186										var count = 0;
187										$.each(Response, function(key, obj){
188											results['results'][count] = {};
189											results['results'][count]['value'] = key;
190											results['results'][count]['name'] = obj;
191											count = count + 1;
192										});
193										
194										return results;
195									}
196								}
197							},
198							minCharacters: $(dropfield).data('mincharacters') ? $(dropfield).data('mincharacters') : 0,
199							message : {noResults : $(dropfield).data('noresults') ? $(dropfield).data('noresults') : 'No results found'},
200							//saveRemoteData:false
201						});
202					}
203					
204					if($(dropfield).attr('data-allowadditions')){
205						$.extend(dsettings, {allowAdditions:true});
206					}
207					
208					if($(dropfield).attr('data-fulltextsearch')){
209						$.extend(dsettings, {fullTextSearch: 'exact'});
210					}
211					
212					$(dropfield).closest('.ui.dropdown').dropdown(dsettings);
213				});
214			}
215			if(jQuery.fn.checkbox != undefined){
216				$(this).find('.ui.checkbox').checkbox('refresh');
217			}
218			
219			if(jQuery.fn.embed != undefined){
220				$(this).find('.ui.embed').embed();
221			}
222			
223			if(jQuery.fn.sticky != undefined){
224				$(this).find('.ui.sticky').sticky();
225			}
226			
227			if(jQuery.fn.rating != undefined){
228				$(this).find('.ui.rating').each(function(r, rwidget){
229					var id = $(rwidget).attr('data-id');
230					$(rwidget).attr('data-rating', $(id).val());
231					
232					$(rwidget).rating({
233						onRate:function(){
234							$(id).val($(this).rating('get rating'));
235						},
236						interactive: ($(rwidget).attr('data-interactive') == 1) ? true : false,
237						clearable: ($(rwidget).attr('data-clearable') == 1) ? true : false,
238					});
239				});
240			}
241			
242			if(jQuery.fn.accordion != undefined){
243				$(this).find('.ui.accordion').accordion();
244				$(this).find('.ui.accordion').accordion('refresh');
245			}
246			
247			if(jQuery.fn.tooltipster != undefined){
248				$(this).find('[data-hint]').addBack().each(function(i, element){
249					$(element).tooltipster({
250						content: $(element).data('hint'),
251						maxWidth: 300,
252						delay: 50,
253						debug: false,
254						contentAsHTML: true
255					});
256				});
257			}
258			
259			//G2 actions
260			if($.G2.actions != undefined){
261				$.G2.actions.ready();
262			}
263			
264			if($.G2.actions2 != undefined){
265				$.G2.actions2.ready($(this));
266			}
267			
268			if($.G2.forms2 != undefined){
269				$.G2.forms2.ready($(this));
270			}
271			
272			$.G2.boot.calendar($(this));
273			
274			//wysiwyg editor
275			if($.G2.tinymce != undefined){
276				$.G2.tinymce.init();
277			}
278			//textareas expand
279			$(this).on('keyup.resize', 'textarea[data-autoresize="1"]', function(e){
280				$(this).css('overflow', 'hidden');
281				if($(this).val().split("\n").length > $(this).attr('rows')){
282					$(this).attr('rows', $(this).val().split("\n").length);
283				}else{
284					if($(this).data('rows') == undefined){
285						$(this).data('rows', $(this).attr('rows'));
286					}
287					if($(this).data('rows') <= $(this).val().split("\n").length){
288						$(this).attr('rows', $(this).val().split("\n").length);
289					}
290				}
291			});
292			$(this).find('textarea[data-autoresize="1"]').trigger('keyup.resize');
293			
294			//if(settings && settings.bodyChange){
295			$('body').trigger('bodyChange');
296			//}
297		});
298		
299		//new forms
300		//if($('form.ui.form.ce_form').length > 0){
301		if($.G2.validation != undefined){
302			$('body').on('contentChange.form', 'form', function(e){
303				e.stopPropagation();
304				$.G2.validation.ready($(this));
305			});
306			
307			$('form.ui.form.ce_form').trigger('contentChange');
308		}
309		
310		//toolbar
311		$('.ui.toolbar-button').on('click', function(e){
312			if($(this).attr('data-form')){
313				var toolbar_form = $($(this).attr('data-form'));
314			}else{
315				var toolbar_form = $(this).closest('form');
316			}
317			
318			if($(this).attr('data-url')){
319				toolbar_form.attr('action', $(this).data('url'));
320			}
321			
322			if($(this).attr('name') && $(this).attr('data-url')){
323				//if the button has a url setting then use a hidden field
324				toolbar_form.append($('<input />').attr('type', 'hidden').attr('name', $(this).attr('name')).val(1));
325			}
326			
327			if($(this).data('selections') == '1' && toolbar_form.find('.ui.selector.checkbox.checked').length == 0){
328				alert($(this).data('message'));
329				return false;
330			}
331			
332			if($(this).attr('data-fn')){
333				var fn = $(this).attr('data-fn');
334				window[$(this).attr('data-fn')]($(this));
335			}else{
336				toolbar_form.submit();
337			}
338		});
339		
340		//list selectors
341		if(jQuery.fn.checkbox != undefined){
342			$('.ui.selector.checkbox').checkbox({
343				onChecked: function(){
344					$(this).closest('tr').addClass('warning');
345				},
346				onUnchecked: function(){
347					$(this).closest('tr').removeClass('warning');
348				}
349			});
350			$('.ui.selector.checkbox').checkbox('attach events', '.ui.select_all.checkbox');
351		}
352		
353		//errors
354		$(':input[data-error]').closest('.field').addClass('error');
355		
356	};
357	
358}(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.