PageSourceSearch

https://sarai.net/wp-content/plugins/orbit-bundle/orbit-query/js/orbit-query.js?ver=1790234174

js sarai.net collected 2026-09-24 08:56:40 UTC 4,513 bytes, 182 lines download raw bytes

1// CALLBACK FUNCTION AFTER THE DOM HAS BEEN LOADED
2jQuery('document').ready(function(){
3
4	jQuery.fn.ajax_loading_list = function() {
5		return this.each(function() {
6
7			var $ul = jQuery( this );
8
9			// GET THE PAGE INCREMENT VALUE AND INCREMENT IT BY 1
10			function page_inc() {
11				var page = $ul.attr( 'data-page' ) ? parseInt( $ul.attr( 'data-page' ) ) : 1;
12				page += 1;
13				$ul.attr( 'data-page', page );
14				return page;
15			};
16
17			// SANITIZE THE URL WITH PAGE INCREMENT VALUE
18			function sanitize_url() {
19        var url = $ul.attr('data-url') ? $ul.attr('data-url') : location.href,
20					hash_index = url.indexOf('#');
21
22				if (hash_index > 0) {
23          url = url.substring(0, hash_index);
24        }
25
26        url = encodeURI(url);
27
28				/* add page parameter to the request */
29        var page = page_inc();
30
31        var paged_attr = $ul.attr('data-paged-attr') ? $ul.attr('data-paged-attr') : 'paged';
32
33        url += (url.split('?')[1] ? '&' : '?') + paged_attr + '=' + page;
34        return url;
35      };
36
37			// APPEND CHILDREN TO THE LIST USING THE LIST ITEM SELECTORS
38			function append_children( result ) {
39
40				if ( jQuery( result ).find( $ul.attr( 'data-target' ) ).length ) {
41
42					$ul.attr( 'data-load-flag', '' );
43					jQuery( result ).find( $ul.attr( 'data-target' ) ).each( function() {
44						var $list = jQuery(this);
45						$list.hide();
46						$list.appendTo( $ul );
47						$list.show('slow');
48						$list.trigger( 'sjax:init', [$list] );
49					});
50					$ul.trigger( 'ajax-load:complete' );
51
52				} else {
53					$ul.trigger( 'ajax-load:no-more' );
54				}
55			};
56
57			// AJAX REQUEST
58			function ajax(){
59
60				$ul.attr( 'data-load-flag', 'ajax' );
61
62				jQuery.ajax({
63					'url': sanitize_url(),
64					'success': function( result ) {
65						$ul.trigger( 'ajax-load:response' );
66						append_children( result );
67					},
68					'error': function() {
69						$ul.trigger( 'ajax-load:error' );
70					}
71				});
72			};
73
74			$ul.on( 'ajax-load:start', function( ev ){
75				ajax();
76			} );
77
78		});
79	};
80
81	/* Lazy Loading of the List AT THE TRIGGER OF A BUTTON */
82  jQuery.fn.ajax_loading = function() {
83		return this.each(function() {
84
85			var $btn 			= jQuery( this ),
86				paged_attr 	= $btn.attr( 'data-paged-attr' ) ? $btn.attr( 'data-paged-attr' ) : 'paged',
87				$ul 				= jQuery( $btn.data( 'list' ) );
88
89			$ul.attr( 'data-paged-attr', paged_attr );
90
91			$ul.ajax_loading_list();
92
93			// Trigger load more on click
94			$btn.click( function( ev ) {
95				$btn.data( 'html', $btn.html() );
96				$btn.html( 'Loading ...' );
97				$ul.trigger( 'ajax-load:start' );
98			});
99
100			$ul.on( 'ajax-load:complete', function( ev ){
101				$btn.html( $btn.data('html') );
102			} );
103
104			$ul.on( 'ajax-load:no-more', function( ev ){
105				$btn.hide();
106			} );
107
108			$ul.on( 'ajax-load:error', function( ev ){
109				$btn.hide();
110			} );
111
112		});
113  };
114  jQuery('body').find("[data-behaviour~=oq-ajax-loading]").ajax_loading();
115
116	jQuery.fn.orbit_lazy_loading = function() {
117		return this.each(function() {
118			console.log( 'hi' );
119			var $el 				= jQuery( this ),
120				offset				= $el.data( 'offset' ) ? $el.data( 'offset' ) : 60,
121				loading_flag	= false,
122				$ul 					= jQuery( $el.data( 'list' ) );
123
124			$ul.ajax_loading_list();
125
126			// Trigger load more on scroll
127
128			jQuery(window).scroll(function() {
129
130				var window_position = jQuery(this).scrollTop() + parseInt( jQuery(window).height() );
131
132				var bottom = $el.offset().top + parseInt( $el.height() ) - offset;
133
134				// Test if the load button has reached
135				if( window_position > bottom && !loading_flag ){
136					// console.log( bottom );
137
138					$ul.trigger( 'ajax-load:start' );
139					loading_flag = true;
140				}
141
142			});
143			// Trigger load more on scroll ends
144			//
145			$ul.on( 'ajax-load:complete', function( ev ){
146				loading_flag = false;
147			} );
148
149			$ul.on( 'ajax-load:no-more', function( ev ){
150				$el.remove();
151			} );
152
153			$ul.on( 'ajax-load:error', function( ev ){
154				$el.remove();
155			} );
156
157		});
158	};
159	jQuery('body').find("[data-behaviour~=orbit-lazy-loading]").orbit_lazy_loading();
160
161	jQuery.fn.reload_html = function(){
162  	return this.each(function(){
163
164			var el = jQuery(this);
165
166      jQuery.ajax({
167    		url : el.attr('data-url'),
168        success : function(result){
169        	//console.log(result);
170        	//console.log('reload html');
171					el.html(result);
172					el.find("[data-behaviour~=oq-ajax-loading]").ajax_loading();
173        },
174        error : function(){
175        	el.hide();
176        }
177      });
178		});
179  };
180  jQuery('body').find("[data-behaviour~=oq-reload-html]").reload_html();
181
182});

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.