|
12 | 12 | <script src="../ui/jquery.ui.position.js"></script>
|
13 | 13 | <script src="../ui/jquery.ui.button.js"></script>
|
14 | 14 | <script src="datasource.js"></script>
|
| 15 | + <script src="datasource-nested.js"></script> |
15 | 16 | <script src="slideshow.js"></script>
|
16 | 17 | <script src="pager.js"></script>
|
17 | 18 | <script type="text/x-kite" id="pager-tmpl">
|
|
67 | 68 | }
|
68 | 69 | });
|
69 | 70 |
|
70 |
| - var cache = {}; |
71 |
| - $.widget( "ui.nestedDatasource", $.ui.datasource, { |
72 |
| - widgetEventPrefix: "datasource", |
73 |
| - options: { |
74 |
| - remote: null |
75 |
| - }, |
76 |
| - |
77 |
| - _create: function() { |
78 |
| - var options = this.options; |
79 |
| - options.source = function( request, response ) { |
80 |
| - var i, length, |
81 |
| - cached = true, |
82 |
| - tags = request.filter, |
83 |
| - pageSize = request.paging.limit, |
84 |
| - page = request.page, |
85 |
| - start = ( page - 1 ) * pageSize; |
86 |
| - |
87 |
| - if ( !cache[ tags ] ) { |
88 |
| - cache[ tags ] = []; |
89 |
| - } |
90 |
| - |
91 |
| - // check if we have cached data |
92 |
| - for ( i = start; i < start + pageSize; i++ ) { |
93 |
| - if ( !cache[ tags ][ i ] ) { |
94 |
| - cached = false; |
95 |
| - break; |
96 |
| - } |
97 |
| - } |
98 |
| - if ( cached ) { |
99 |
| - response( cache[ tags ].slice( start, start + pageSize ), cache[ tags ].total ); |
100 |
| - return; |
101 |
| - } |
102 |
| - |
103 |
| - options.remote.refresh(function() { |
104 |
| - var total = cache[ tags ].total = remote.totalCount; |
105 |
| - var data = remote.toArray(); |
106 |
| - for ( i = 0, length = data.length; i < length; i++ ) { |
107 |
| - cache[ tags ][ start + i ] = data[ i ]; |
108 |
| - } |
109 |
| - response( data.slice( 0, pageSize ), total ); |
110 |
| - }); |
111 |
| - }; |
112 |
| - this._super( "_create" ); |
113 |
| - }, |
114 |
| - |
115 |
| - _setOptions: function( options ) { |
116 |
| - if ( "filter" in options ) { |
117 |
| - remote.option( filter, options.filter ); |
118 |
| - } |
119 |
| - if ( "paging" in options ) { |
120 |
| - remote.option( "paging", { |
121 |
| - limit: ( "limit" in options.paging ? |
122 |
| - options.paging.limit : this.options.paging.limit ) * 5, |
123 |
| - offset: ( "offset" in options.paging ? |
124 |
| - options.paging.offset : this.options.paging.offset ) |
125 |
| - }); |
126 |
| - } |
127 |
| - this._super( "_setOptions", options ); |
128 |
| - } |
129 |
| - }); |
130 |
| - |
131 | 71 | var datasource = $.ui.nestedDatasource({
|
132 | 72 | paging: {
|
133 | 73 | limit: 2
|
|
0 commit comments