Actually, I was lazy and went with the approach of layering userprefs on top
of appdata as follows:

    container.rpcRegister('set_pref', function(rpcArgs, data) {

        var prefName = rpcArgs['a'][1];
        var prefKey = 'up_' + prefName;
        var prefValue = rpcArgs['a'][2];

        var data = {};
        data[prefKey] = prefValue;

        osapi.appdata.update({
            userid : '@me',
            groupid : '@self',
            appId : '@app',
            data : data

        }).execute(function(response) {
        });
    });

This is with anticipation that appdata and userprefs will align as discussed
here:

http://code.google.com/p/opensocial-resources/issues/detail?id=1182

Of course this also requires you to implement appdata server side.  Right
now I¹m just using the JsonDb implementation (in-memory), but we¹ll be
writing a persistent layer soon.

I also ran into issues with the correct token (the gadget one with the appid
that you¹ll need to use to index the data) being passed to the appdata
request.  You can search for my other thread about this.

doug


On 7/25/11 6:53 PM, "Henry Saputra" <henry.sapu...@gmail.com> wrote:

> If you want the user pref to be persisted in the database you need to
> implement the server handler for it.
> 
> I remember Doug Davies has tried to add persistent layer for user
> pref. Maybe he could share his progress.
> 
> Including him in the email.
> 
> - Henry
> 
> On Mon, Jul 25, 2011 at 3:42 PM, Mat Schaffer <m...@schaffer.me> wrote:
>> > So with some research it looks like I'm supposed to be implementing my own
>> > server module. Is that pretty much accurate?
>> >
>> > Again, any advice or RTFMs (with a link to the respective FMs) is
>> > appreciated.
>> >
>> > Thanks,
>> > Mat
>> >
>> > On Fri, Jul 22, 2011 at 10:20 AM, Mat Schaffer <m...@schaffer.me> wrote:
>> >
>>> >> So I noticed that UserPref items don't work on the sample container which
>>> >> makes sense after finding this thread:
>>> >> http://markmail.org/message/tlwtlo4mrnrpz4w5
>>> >>
>>> >> Is there any good example of best-practice for implementing user prefs in
>>> >> my containing application? Do I just make my own shindig-container.js and
>>> >> handleOpenUserPrefsDialog? And does the page we point to just render
>>> >> information into a div with id of `this.id`?
>>> >>
>>> >> The gmodule code appears to be obfuscated, so it's a bit hard to tell >>>
what
>>> >> the right course of action would be. Any documentation or assistance
>>> would
>>> >> be appreciated.
>>> >>
>>> >> Thanks,
>>> >> Mat
>>> >>
>> >
> 
> 

Reply via email to