@@ -3288,7 +3288,9 @@ var __meta__ = { // jshint ignore:line
32883288
32893289 success : function ( data ) {
32903290 var that = this ,
3291- options = that . options ;
3291+ options = that . options ,
3292+ items ,
3293+ replaceSubset ;
32923294
32933295 that . trigger ( REQUESTEND , { response : data , type : "read" } ) ;
32943296
@@ -3318,7 +3320,7 @@ var __meta__ = { // jshint ignore:line
33183320 } else {
33193321 data = that . _readData ( data ) ;
33203322
3321- var items = [ ] ;
3323+ items = [ ] ;
33223324 var itemIds = { } ;
33233325 var model = that . reader . model ;
33243326 var idField = model ? model . idField : "id" ;
@@ -3347,8 +3349,19 @@ var __meta__ = { // jshint ignore:line
33473349 }
33483350
33493351 that . _pristineTotal = that . _total ;
3352+ replaceSubset = that . _skip && that . _data . length && that . _skip < that . _data . length ;
33503353
3351- that . _pristineData = data . slice ( 0 ) ;
3354+ if ( that . options . endless ) {
3355+ if ( replaceSubset ) {
3356+ that . _pristineData . splice ( that . _skip , that . _pristineData . length ) ;
3357+ }
3358+ items = data . slice ( 0 ) ;
3359+ for ( var j = 0 ; j < items . length ; j ++ ) {
3360+ that . _pristineData . push ( items [ j ] ) ;
3361+ }
3362+ } else {
3363+ that . _pristineData = data . slice ( 0 ) ;
3364+ }
33523365
33533366 that . _detachObservableParents ( ) ;
33543367
@@ -3361,6 +3374,9 @@ var __meta__ = { // jshint ignore:line
33613374 }
33623375
33633376 data = that . _observe ( data ) ;
3377+ if ( replaceSubset ) {
3378+ that . _data . splice ( that . _skip , that . _data . length ) ;
3379+ }
33643380 for ( var i = 0 ; i < data . length ; i ++ ) {
33653381 that . _data . push ( data [ i ] ) ;
33663382 }
@@ -3790,7 +3806,7 @@ var __meta__ = { // jshint ignore:line
37903806 return $ . Deferred ( ) . resolve ( isPrevented ) . promise ( ) ;
37913807 } ,
37923808
3793- _setFilterTotal : function ( filterTotal , setDefaultValue ) {
3809+ _setFilterTotal : function ( filterTotal , setDefaultValue ) {
37943810 var that = this ;
37953811
37963812 if ( ! that . options . serverFiltering ) {
@@ -3799,7 +3815,7 @@ var __meta__ = { // jshint ignore:line
37993815 } else if ( setDefaultValue ) {
38003816 that . _total = that . _data . length ;
38013817 }
3802- }
3818+ }
38033819 } ,
38043820
38053821 fetch : function ( callback ) {
0 commit comments