diff --git a/WebSocket.js b/WebSocket.js index 5d6f4e4..226add7 100644 --- a/WebSocket.js +++ b/WebSocket.js @@ -352,8 +352,13 @@ Ext.define ('Ext.ux.data.proxy.WebSocket', { return false; } - store.loadData (resultSet.records, true); - store.fireEvent ('load', store); + if (event === 'destroy') { + store.remove(resultSet.records); + } else { + store.loadData (resultSet.records, true); + store.fireEvent ('load', store); + } + } // Client request case: a callback function (operation) has to be called else { diff --git a/WebSocket.min.js b/WebSocket.min.js index 31e2bf3..b0e4216 100644 --- a/WebSocket.min.js +++ b/WebSocket.min.js @@ -1 +1 @@ -Ext.define("Ext.ux.data.proxy.WebSocket",{extend:"Ext.data.proxy.Proxy",alias:"proxy.websocket",requires:["Ext.ux.WebSocket"],callbacks:{},config:{storeId:"",api:{create:"create",read:"read",update:"update",destroy:"destroy"},url:"",protocol:null,websocket:null,autoReconnect:!0,autoReconnectInterval:5e3},constructor:function(a){var b=this;if(Ext.isEmpty(a))return Ext.Error.raise("A configuration is needed!"),!1;if(b.initConfig(a),b.mixins.observable.constructor.call(b,a),Ext.isEmpty(b.getStoreId()))return Ext.Error.raise("The storeId field is needed!"),!1;Ext.isEmpty(b.getWebsocket())&&b.setWebsocket(Ext.create("Ext.ux.WebSocket",{url:b.getUrl(),protocol:b.getProtocol(),communicationType:"event",autoReconnect:b.getAutoReconnect(),autoReconnectInterval:b.getAutoReconnectInterval()}));var c=b.getWebsocket();return"event"!==c.getCommunicationType()?(Ext.Error.raise("Ext.ux.WebSocket must use event communication type (set communicationType to event)!"),!1):(c.on(b.getApi().create,function(a,c){b.completeTask("create",b.getApi().create,c)}),c.on(b.getApi().read,function(a,c){b.completeTask("read",b.getApi().read,c)}),c.on(b.getApi().update,function(a,c){b.completeTask("update",b.getApi().update,c)}),c.on(b.getApi().destroy,function(a,c){b.completeTask("destroy",b.getApi().destroy,c)}),b)},create:function(a,b,c){this.runTask(this.getApi().create,a,b,c)},read:function(a,b,c){this.runTask(this.getApi().read,a,b,c)},update:function(a,b,c){this.runTask(this.getApi().update,a,b,c)},destroy:function(a,b,c){this.runTask(this.getApi().destroy,a,b,c)},runTask:function(a,b,c,d){var e=this,f={},g=e.getWebsocket(),h=0;if(d=d||e,e.callbacks[a]={operation:b,callback:c,scope:d},a===e.getApi().read){var i=b.sorters,j=b.groupers;if(i.length>0)for(f.sort=[],h=0;h0)for(f.group=[],h=0;h0){s.sort=[];for(u=0;u0){s.group=[];for(u=0;u