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