You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by Jason Eggers <Ja...@infinitecampus.com> on 2010/05/22 06:15:03 UTC
[SOLVED] RE: Passing params to a view
Got it. I missed something obvious and didn't pass the view-params in the dashboard setup to the gadgets.
var urlParams = gadgets.util.getUrlParameters()
gadgetList[g].viewParams = urlParams['view-params'];
Thanks for everyone's help!
Jason
________________________________________
From: Jason Eggers [Jason.Eggers@infinitecampus.com]
Sent: Friday, May 21, 2010 8:48 PM
To: dev@shindig.apache.org
Subject: RE: Passing params to a view
It looks like the server isn't adding the view-params to the url. When I output document.location.href I get:
http://localhost:8000/gadgets/ifr?container=default&mid=9&nocache=1&country=ALL&lang=ALL&view=canvas&parent=http%3A%2F%2Flocalhost%3A8000&st=john.doe:john.doe:appid:cont:url:0:default&url=http%3A%2F%2Flocalhost%3A8000%2Fgadgets%2Fcases.xml#rpctoken=1091508789
Any ideas on how to configure the server to include the view-params?
________________________________________
From: Jason Eggers [Jason.Eggers@infinitecampus.com]
Sent: Friday, May 21, 2010 8:12 PM
To: dev@shindig.apache.org
Subject: RE: Passing params to a view
John,
This is the url: http://localhost:8000/dashboard?view=canvas&gadget=9&view-params={%22id%22%3A%221234%22}
>From looking at views.js in the past I've tried the following to pull the id as well:
var p = gadgets.views.params;
var i = 0;
for (var i in p)
{
alert('p[\''+i+'\'] is ' + p[i])
}
alert('id: '+p['id']);
alert('id: '+p.id);
Thanks,
Jason
________________________________________
From: John Hjelmstad [fargo@google.com]
Sent: Friday, May 21, 2010 7:35 PM
To: dev@shindig.apache.org
Subject: Re: Passing params to a view
Do you have a representative URL?
Your value should be a serialized JSON blob:
http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/views/views.js
var urlParams = gadgets.util.getUrlParameters();
// View parameters are passed as a single parameter.
if (urlParams["view-params"]) {
params = gadgets.json.parse(urlParams["view-params"]) || params;
}
On Fri, May 21, 2010 at 5:09 PM, Jason Eggers <
Jason.Eggers@infinitecampus.com> wrote:
> Thanks Chirag,
>
> I've tried this as well and put that back in there. It adds the parameter
> to the url but I'm unable to pull view-params in the gadget by either using:
> gadgets.util.getUrlParameters() (contains container, mid, nocache, country,
> lang, view, parent, st, url, and rpctoken)
> or
> gadgets.views.getParams() (completely empty)
>
> Is there another way to pull those params through?
>
> Thanks!
> Jason
>
> ________________________________________
> From: Chirag Shah [chiragshah1@gmail.com]
> Sent: Friday, May 21, 2010 5:23 PM
> To: dev@shindig.apache.org
> Subject: Re: Passing params to a view
>
> This isn't documented very well, but try adding the following to the
> url. The representation of view-param is json.
>
> url += '&view-params=' + encodeURIComponent(paramStr);
>
> Thanks,
> Chirag
>
> On Fri, May 21, 2010 at 11:38 AM, Jason Eggers
> <Ja...@infinitecampus.com> wrote:
> > Does anyone know how to do the following? I've got a custom gadget that I
> want to link to itself while passing an ID to view more details on that
> item. This gadget is using the views feature. Currently on the home/default
> view (http://localhost:8000/dashboard) there is a link that makes a call
> to requestNavigateTo:
> >
> > gadgets.views.requestNavigateTo('canvas',{'id':'1234'})
> >
> > This redirects the page to
> http://localhost:8000/dashboard?view=canvas&gadget=9&appParams={}<
> http://localhost:8000/dashboard?view=canvas&gadget=9&appParams=%7b%7d>
> which is mostly correct except for no params seem to be passed to the
> gadget. I've had to override the getUrlForView to get the url to form
> correctly:
> > gadgets.IfrGadgetService.prototype.getUrlForView = function(
> > view) {
> > return '/dashboard?view='+view;
> > }
> >
> > Along with modifying requestNavigateTo to pass the gadget param:
> >
> > gadgets.IfrGadgetService.prototype.requestNavigateTo = function(view,
> > opt_params) {
> > var id =
> gadgets.container.gadgetService.getGadgetIdFromModuleId(this.f);
> > var url = gadgets.container.gadgetService.getUrlForView(view);
> > url += '&gadget='+id; //customization
> >
> > if (opt_params) {
> > var paramStr = gadgets.json.stringify(opt_params);
> > if (paramStr.length > 0) {
> > url += '&appParams=' + encodeURIComponent(paramStr);
> > }
> > }
> >
> > if (url && document.location.href.indexOf(url) == -1) {
> > document.location.href = url;
> > }
> > };
> >
> > I'm trying to pull the params a number of ways including:
> > gadgets.views.getParams()
> > gadgets.util.getUrlParameters()
> >
> > My question is how do I go about passing a view parameter through to the
> gadget?
> >
> > We're currently using Shindig 1.1 Beta 5.
> >
> > Many thanks,
> > Jason
> >
>