
Good stuff! Just a question. why did you find it necessary to use the db for state saving as opposed to the Ext.state.CookieProvider for the grid? There are obvious reasons I could think of but nevertheless.... ----- Original Message ----- | From: "Ken Muturi" <muturiken@gmail.com> | To: "Skunkworks Mailing List" <skunkworks@lists.my.co.ke> | Sent: Jueves, 4 de Julio 2013 6:55:23 | Subject: Re: [Skunkworks] Ext.state.HttpProvider to store state in | database | ooh and this is essential too .... $post['value'] = | rawurlencode($this->input->post('value')); on the db value you save | This re-url-encodes the post value from sencha after PHP/CI decodes | it.... | On Wed, Jul 3, 2013 at 6:46 PM, Ken Muturi < muturiken@gmail.com > | wrote: | | ahhaa, I figured it out people. | | | i have | | | ---------------------------------------------------------------- | | | readValues : function() { | | | var state = {}; | | | for (var name in ExtState) | | | { | | | if(name && name != 'remove') | | | { | | | state[name] = this.decodeValue(ExtState[name]); | | | } | | | } | | | return state; | | | } | | | So is shud be doing | | | ------------------------------------------------ | | | var ExtState = | | Ext.decode('{"grid_152":"o%3Acolumns%3Da%253Ao%25253Aid%25253Ds%2525253Ah1%25255Ehidden%25253Db%2525253A1%255Eo%25253Aid%25253Ds%2525253Ah2%25255Ehidden%25253Db%2525253A1%255Eo%25253Aid%25253Ds%2525253Ah3%255Eo%25253Aid%25253Ds%2525253Ah4%255Eo%25253Aid%25253Ds%2525253Ah5%255Eo%25253Aid%25253Ds%2525253Ah6"}'); | | not | | | ------------------------------------------------------ | | | var ExtState = Ext.decode('{name : "grid_152", value : | | "o%3Acolumns%3Da%253Ao%25253Aid%25253Ds%2525253Ah1%25255Ehidden%25253Db%2525253A1%255Eo%25253Aid%25253Ds%2525253Ah2%25255Ehidden%25253Db%2525253A1%255Eo%25253Aid%25253Ds%2525253Ah3%255Eo%25253Aid%25253Ds%2525253Ah4%255Eo%25253Aid%25253Ds%2525253Ah5%255Eo%25253Aid%25253Ds%2525253Ah6"}'); | | | Thanks For your help. If you ever need this you are welcome.. | | | On Wed, Jul 3, 2013 at 6:23 PM, Steve Obbayi < steve@sobbayi.com > | | wrote: | | | | Ok I have deleted a coma on line 47 | | | | | | made a small change on line 66 and line 70 and it now runs, here | | | is | | | the update | | | | | | http://jsfiddle.net/pzVbU/6/ | | | | | | So the question is what lies behind "save.php" | | | | | | Steve | | | | | | | From: "Ken Muturi" < muturiken@gmail.com > | | | | | | | | | | To: "Skunkworks Mailing List" < skunkworks@lists.my.co.ke > | | | | | | | | | | Sent: Miércoles, 3 de Julio 2013 15:59:55 | | | | | | | | | | Subject: Re: [Skunkworks] Ext.state.HttpProvider to store state | | | | in | | | | database | | | | | | | | | | i still haven't figured out a way of posting this on fiddle (a | | | | working example ) but the code is here. | | | | http://jsfiddle.net/pzVbU/2/ | | | | | | | | | | On Wed, Jul 3, 2013 at 5:24 PM, Ken Muturi < | | | | muturiken@gmail.com | | | | > | | | | wrote: | | | | | | | | | | | Am not getting any errors from the console.log()... My quess | | | | | for | | | | | now | | | | | is in the Exjs encodeValue vs decodeValue (though i havent | | | | | hacked | | | | | it | | | | | fully) . Why? because why i changed the state to a cookie | | | | | provider | | | | | it works... the structure of the cookie value is abit | | | | | different | | | | | from | | | | | the stored value in the db. | | | | | | | | | | | | | | | Db values | | | | | | | | | | | | | | | ----------------------------------------------------------------------- | | | | | | | | | | | | | | | { | | | | | | | | | | | | | | | name: 'grid_152', | | | | | | | | | | | | | | | value : | | | | | "o:columns=a:o%3Aid%3Ds%253Ah1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah2%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah3%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah4%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah5%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah6%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah7%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah8%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah9%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah10%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah11%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah12%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah13%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah14%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah15%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah16%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah17%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah18%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah19%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah20%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah21%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah22%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah23%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah24%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah25%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah26%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah27%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah28%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah29%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah30%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah31%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah32%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah33%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah34%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah35%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah36%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah37%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah38%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah39%5Esortable%3Db%253A0^filters=o:" | | | | | | | | | | | | | | | } | | | | | | | | | | | | | | | cookie value | | | | | | | | | | | | | | | ----------------------------------------------------------------------- | | | | | | | | | | | | | | | { | | | | | | | | | | | | | | | name: 'grid_152', | | | | | | | | | | | | | | | value : | | | | | "o%3Aid%3Ds%253Ah1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah2%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah3%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah4%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah5%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah6%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah7%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah8%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah9%5Ehidden%3Db%253A1%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah10%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah11%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah12%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah13%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah14%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah15%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah16%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah17%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah18%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah19%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah20%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah21%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah22%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah23%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah24%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah25%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah26%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah27%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah28%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah29%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah30%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah31%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah32%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah33%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah34%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah35%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah36%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah37%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah38%5Esortable%3Db%253A0^o%3Aid%3Ds%253Ah39%5Esortable%3Db%253A0^filters=o:" | | | | | | | | | | | | | | | }; | | | | | | | | | | | | | | | Can someone help me with steps on posting, code on JSFiddle.. | | | | | (Sencha | | | | | is Package Specific my plugin is on Ex.State) ? | | | | | | | | | | | | | | | Thanks. | | | | | | | | | | | | | | | On Wed, Jul 3, 2013 at 5:00 PM, Steve Obbayi < | | | | | steve@sobbayi.com | | | | | > | | | | | wrote: | | | | | | | | | | | | | | | | 1. What do you mean by "sencha will not bulge" | | | | | | | | | | | | | | | | | | | | | 2. Get rid of the commas after the last configs | | | | | | | | | | | | | | | | | | | | | 3. What other errors are you getting from your console.log | | | | | | it | | | | | | will | | | | | | be | | | | | | easier to start from there. | | | | | | | | | | | | | | | | | | | | | 4. Can you post your code on http://jsfiddle.net/ then | | | | | | share | | | | | | the | | | | | | link | | | | | | before I go in and see what you are doing wrong :) | | | | | | | | | | | | | | | | | | | | | | From: "Ken Muturi" < muturiken@gmail.com > | | | | | | | | | | | | | | | | | | | | | | | | | | | | To: "Skunkworks Mailing List" < skunkworks@lists.my.co.ke | | | | | | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sent: Miércoles, 3 de Julio 2013 12:02:05 | | | | | | | | | | | | | | | | | | | | | | | | | | | | Subject: Re: [Skunkworks] Ext.state.HttpProvider to store | | | | | | | state | | | | | | | in | | | | | | | database | | | | | | | | | | | | | | | | | | | | | | | | | | | | People :- | | | | | | | | | | | | | | | | | | | | | | | | | | | | I have created my own plugin for the above by extending | | | | | | | Ext.state.Provider that saves the state of a grid to a db | | | | | | | (filters, | | | | | | | grouping, sorting, column size, etc) :- | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ext.define('Ext.state.HttpProvider', { | | | | | | | | | | | | | | | | | | | | | | | | | | | | extend: 'Ext.state.Provider', | | | | | | | | | | | | | | | | | | | | | | | | | | | | constructor: function(config) { | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ext.state.HttpProvider.superclass.constructor.call(this); | | | | | | | | | | | | | | | | | | | | | | | | | | | | this.url = ""; | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ext.apply(this, config); | | | | | | | | | | | | | | | | | | | | | | | | | | | | this.state = this.readValues(); | | | | | | | | | | | | | | | | | | | | | | | | | | | | }, | | | | | | | | | | | | | | | | | | | | | | | | | | | | // private | | | | | | | | | | | | | | | | | | | | | | | | | | | | set : function(name, value){ | | | | | | | | | | | | | | | | | | | | | | | | | | | | if(typeof value == "undefined" || value === null){ | | | | | | | | | | | | | | | | | | | | | | | | | | | | this.clear(name); | | | | | | | | | | | | | | | | | | | | | | | | | | | | return; | | | | | | | | | | | | | | | | | | | | | | | | | | | | } | | | | | | | | | | | | | | | | | | | | | | | | | | | | this.setValue(name, value); | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ext.state.HttpProvider.superclass.set.call(this, name, | | | | | | | value); | | | | | | | | | | | | | | | | | | | | | | | | | | | | }, | | | | | | | | | | | | | | | | | | | | | | | | | | | | // private | | | | | | | | | | | | | | | | | | | | | | | | | | | | clear : function(name){ | | | | | | | | | | | | | | | | | | | | | | | | | | | | this.clearValue(name); | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ext.state.HttpProvider.superclass.clear.call(this, name); | | | | | | | | | | | | | | | | | | | | | | | | | | | | }, | | | | | | | | | | | | | | | | | | | | | | | | | | | | // private | | | | | | | | | | | | | | | | | | | | | | | | | | | | readValues : function(){ | | | | | | | | | | | | | | | | | | | | | | | | | | | | var state = {}; | | | | | | | | | | | | | | | | | | | | | | | | | | | | for (var name in ExtState) | | | | | | | | | | | | | | | | | | | | | | | | | | | | { | | | | | | | | | | | | | | | | | | | | | | | | | | | | if(name!='remove') | | | | | | | | | | | | | | | | | | | | | | | | | | | | { | | | | | | | | | | | | | | | | | | | | | | | | | | | | state[name] = this.decodeValue(ExtState[name]); | | | | | | | | | | | | | | | | | | | | | | | | | | | | } | | | | | | | | | | | | | | | | | | | | | | | | | | | | } | | | | | | | | | | | | | | | | | | | | | | | | | | | | return state; | | | | | | | | | | | | | | | | | | | | | | | | | | | | }, | | | | | | | | | | | | | | | | | | | | | | | | | | | | // private | | | | | | | | | | | | | | | | | | | | | | | | | | | | setValue : function(name, value){ | | | | | | | | | | | | | | | | | | | | | | | | | | | | var conn = new Ext.data.Connection(); | | | | | | | | | | | | | | | | | | | | | | | | | | | | conn.request({ | | | | | | | | | | | | | | | | | | | | | | | | | | | | url: this.url, | | | | | | | | | | | | | | | | | | | | | | | | | | | | params: {task: 'set', 'name': name, 'value': | | | | | | | this.encodeValue(value) | | | | | | | }, | | | | | | | | | | | | | | | | | | | | | | | | | | | | }); | | | | | | | | | | | | | | | | | | | | | | | | | | | | }, | | | | | | | | | | | | | | | | | | | | | | | | | | | | // private | | | | | | | | | | | | | | | | | | | | | | | | | | | | clearValue : function(name){ | | | | | | | | | | | | | | | | | | | | | | | | | | | | var conn = new Ext.data.Connection(); | | | | | | | | | | | | | | | | | | | | | | | | | | | | conn.request({ | | | | | | | | | | | | | | | | | | | | | | | | | | | | url: this.url, | | | | | | | | | | | | | | | | | | | | | | | | | | | | params: {task: 'set', 'name': name, 'value': 'null' }, | | | | | | | | | | | | | | | | | | | | | | | | | | | | }); | | | | | | | | | | | | | | | | | | | | | | | | | | | | } | | | | | | | | | | | | | | | | | | | | | | | | | | | | }); | | | | | | | | | | | | | | | | | | | | | | | | | | | | // calling it from the grid. | | | | | | | | | | | | | | | | | | | | | | | | | | | | var ExtState = Ext.decode('<?php echo | | | | | | | json_encode($grid_state); | | | | | | | ?>'); | | | | | | | | | | | | | | | | | | | | | | | | | | | | var _cp = Ext.create('Ext.state.HttpProvider', { url: | | | | | | | save_grid_state_url }); | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ext.state.Manager.setProvider(cp); | | | | | | | | | | | | | | | | | | | | | | | | | | | | On console.log @ readValues() and setValues() they have | | | | | | | the | | | | | | | correct | | | | | | | Extjs4 grid state but sencha will not bulge. | | | | | | | | | | | | | | | | | | | | | | | | | | | | Has someone worked on something like this before ? | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Wed, Jul 3, 2013 at 9:49 AM, Ken Muturi < | | | | | | | muturiken@gmail.com | | | | | | | > | | | | | | | wrote: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Has anyone done some Sencha Grid (4.1) magic using | | | | | | | | Ext.state.HttpProvider ? | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When i do: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ext.state.Manager.getProvider().initState( | | | | | | | | state_saved_in_db | | | | | | | | ); | | | | | | | | // | | | | | | | | [{"name":"grid-32","value":"............."}}] | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It Seems not to work | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _______________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | skunkworks mailing list | | | | | | | | | | | | | | | | | | | | | | | | | | | | skunkworks@lists.my.co.ke | | | | | | | | | | | | | | | | | | | | | | | | | | | | ------------ | | | | | | | | | | | | | | | | | | | | | | | | | | | | List info, subscribe/unsubscribe | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://lists.my.co.ke/cgi-bin/mailman/listinfo/skunkworks | | | | | | | | | | | | | | | | | | | | | | | | | | | | ------------ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Skunkworks Rules | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://my.co.ke/phpbb/viewtopic.php?f=24&t=94 | | | | | | | | | | | | | | | | | | | | | | | | | | | | ------------ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Other services @ http://my.co.ke | | | | | | | | | | | | | | | | | | | | | | | | | | | _______________________________________________ | | | | | | | | | | | | | | | | | | | | | skunkworks mailing list | | | | | | | | | | | | | | | | | | | | | skunkworks@lists.my.co.ke | | | | | | | | | | | | | | | | | | | | | ------------ | | | | | | | | | | | | | | | | | | | | | List info, subscribe/unsubscribe | | | | | | | | | | | | | | | | | | | | | http://lists.my.co.ke/cgi-bin/mailman/listinfo/skunkworks | | | | | | | | | | | | | | | | | | | | | ------------ | | | | | | | | | | | | | | | | | | | | | Skunkworks Rules | | | | | | | | | | | | | | | | | | | | | http://my.co.ke/phpbb/viewtopic.php?f=24&t=94 | | | | | | | | | | | | | | | | | | | | | ------------ | | | | | | | | | | | | | | | | | | | | | Other services @ http://my.co...ke | | | | | | | | | | | | | | | | | | | _______________________________________________ | | | | | | | | | | skunkworks mailing list | | | | | | | | | | skunkworks@lists.my.co.ke | | | | | | | | | | ------------ | | | | | | | | | | List info, subscribe/unsubscribe | | | | | | | | | | http://lists.my.co.ke/cgi-bin/mailman/listinfo/skunkworks | | | | | | | | | | ------------ | | | | | | | | | | Skunkworks Rules | | | | | | | | | | http://my.co.ke/phpbb/viewtopic.php?f=24&t=94 | | | | | | | | | | ------------ | | | | | | | | | | Other services @ http://my.co.ke | | | | | | | | | _______________________________________________ | | | | | | skunkworks mailing list | | | | | | skunkworks@lists.my.co.ke | | | | | | ------------ | | | | | | List info, subscribe/unsubscribe | | | | | | http://lists.my.co.ke/cgi-bin/mailman/listinfo/skunkworks | | | | | | ------------ | | | | | | Skunkworks Rules | | | | | | http://my.co.ke/phpbb/viewtopic.php?f=24&t=94 | | | | | | ------------ | | | | | | Other services @ http://my.co..ke | | | | _______________________________________________ | skunkworks mailing list | skunkworks@lists.my.co.ke | ------------ | List info, subscribe/unsubscribe | http://lists.my.co.ke/cgi-bin/mailman/listinfo/skunkworks | ------------ | Skunkworks Rules | http://my.co.ke/phpbb/viewtopic.php?f=24&t=94 | ------------ | Other services @ http://my.co.ke