/[jquery]/no_pager/no_pager.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /no_pager/no_pager.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 16 - (show annotations)
Wed Aug 16 21:36:40 2006 UTC (17 years, 8 months ago) by dpavlin
File MIME type: application/javascript
File size: 2753 byte(s)
Opera chokes on extra , at end of structure
1 /*
2 no pager, as seen at
3 http://www.humanized.com/weblog/2006/04/28/reading_humanized/
4 but using jquery
5
6 2006-08-16 Dobrica Pavlinusic <dpavlin@rot13.org>
7 */
8
9 var preloadDistance = 1000;
10 var isUpdating = false;
11 var checker;
12 var v;
13 var cookie = 'no_pager';
14
15 /*
16 function to log debugging information into debug div
17 */
18
19 function logDebug( m1, m2 ) {
20 var m = m1;
21 if (m2) m += m2;
22 if (m) $('#debug').append( '<small>'+m+'</small><br/>' );
23 }
24
25 function log( m1, m2 ) {
26 var m = m1;
27 if (m2) m += m2;
28 m += '</br>'
29 if (m) $('#debug').append( m );
30 }
31
32 function load_page() {
33 setCookie(cookie+"_height", getScrollHeight() );
34 setCookie(cookie+"_scroll", getScrollHeight() - _getWindowHeight() );
35
36 if ( isUpdating == true
37 || getPageHeight() - getScrollHeight() > preloadDistance
38 || v.page >= v.max_page
39 ) return;
40
41 v.page++;
42
43 log(
44 'Get page:' + v.page + '<br/>search: ' + v.search +
45 ' PageHeight:' + getPageHeight() + ' ScrollHeight:' + getScrollHeight()
46 );
47
48 setCookie( cookie+'_page', v.page );
49 isUpdating = true;
50
51 $('#status').html(
52 'Loading page '+ v.page + '...'
53 );
54
55 $.get(
56 "index.cgi/snippet",
57 {
58 page: v.page,
59 search: v.search
60 },
61 function ( response ) {
62
63 if (response.length < 500) {
64 $('#footer').show();
65 if ( v.page > 0 ) {
66 $('#more_history').html('<h2 style="text-align: center; font-style:italic; padding: 2em;">No more results.</h2>');
67 } else {
68 $('#more_history').html('<h2 style="text-align: center; font-style:italic; padding: 2em;">No results matched your search.</h2>');
69 }
70 $('#status').html( 'All results shown.' );
71 return;
72 }
73
74 response += "<div id='more_history'>";
75 response += " <strong>More posts are being loaded...</strong> <br />";
76 response += " If you are using the scroll bar, release the mouse to see more posts.";
77 response += "</div>"
78 $('#more_history').html( response );
79
80 eval( 'v=' + $('#json').val() );
81
82 isUpdating = false;
83 $('#status').html( v.status );
84 }
85 );
86
87
88 }
89
90 /*
91 bind events and init no_pager
92 */
93
94 $(document).ready( function() {
95
96 logDebug( 'no_page binding events' );
97
98 eval( 'v=' + $('#json').val() );
99
100 var cookie_id = getCookie(cookie+'_id') || 0;
101
102 logDebug("Page ID:", v.id);
103 logDebug("Page Cookie:", cookie_id);
104
105 var fromBackButton = false;
106 if ( cookie_id == v.id ) {
107 fromBackButton = true;
108 } else {
109 setCookie(cookie+'_id', v.id);
110 }
111
112 logDebug("From Back Button?:", fromBackButton);
113 if ( fromBackButton ) {
114 logDebug( 'Load ' + getCookie(cookie+'_page') + ' pages');
115 logDebug( 'Scroll to:' + getCookie(cookie+'_scroll') );
116 $('#spacer').height( getCookie(cookie+'_height')+"px" );
117 scroll( 0, getCookie(cookie+'_scroll') );
118 }
119
120
121 checker = setInterval(function () {
122 load_page();
123 }, 100);
124
125
126 });
127

  ViewVC Help
Powered by ViewVC 1.1.26