[Seaside] Seaside and urls
Esteban Lorenzano
estebanlm at gmail.com
Fri Nov 15 16:36:42 UTC 2013
On Nov 14, 2013, at 5:31 AM, Sabine Knöfel <sabine.knoefel at gmail.com> wrote:
> Hi Philipe,
>
> great. I will use it as soon as I switch to 3.0
>
> Regards
> Sabine
>
>
> On Wed, Nov 13, 2013 at 10:19 PM, Philippe Marschall [via Smalltalk] <[hidden email]> wrote:
> On Wed, Nov 13, 2013 at 4:59 PM, Esteban Lorenzano <[hidden email]> wrote:
>
> > I'm using Seaside-REST for that (even it is not its purpose), but I needed to hack it a bit (bah, not a BIT really...)
> >
> > See:
> >
> > in WARestfulFilter subclass: #EveRestFilter:
> >
> > EveRestFilter >>#shoppingList
> > <get>
> > <path: 'shopping-list'>
> >
> > self continueWithRoot: [ :root |
> > root startOn: EveUNOPSShoppingListPanel new ].
> >
> > EveRestFilter >>#continueWithRoot: aBlock
> > "Continues the execution of the application.
> > I will pass aBlock to the root class of app, which I assume is a REApplication.
> > Otherwise, this will fail"
> > | requestContext application session rootComponent |
> >
> > requestContext := self requestContext.
> > application := requestContext application.
> > session := self obtainSessionWithApplication: application context: requestContext.
> >
> > requestContext
> > push: session
> > during: [
> > rootComponent := requestContext rootComponentIfAbsent: [ nil ].
> > rootComponent ifNil: [
> > rootComponent := (application preferenceAt: #rootClass) new.
> > requestContext rootComponent: rootComponent ].
> > rootComponent do: aBlock.
> > self next handleFiltered: requestContext ].
> >
> > EveRestFilter >>#obtainSessionWithApplication: application context: requestContext
> > | sessionKey session |
> >
> > sessionKey := application trackingStrategy keyFromContext: requestContext.
> > session := sessionKey ifNotNil: [
> > application cache
> > at: sessionKey
> > ifAbsent: [ nil] ].
> >
> > session ifNil: [
> > session := application newSession.
> > application register: session ].
> >
> > ^ session
> >
> >
> > then in the main component:
> >
> > EveMainComponent>>startOn: aComponent
> > contentComponent show: aComponent
> >
> >
> >
> > is probably not the best way to do it, but is the easiest way I found, and it works :)
> In Seaside 3.1 there is WARestfulComponentFilter >> #startSessionWithRoot:
cool :)
but my intention was to not create a new session each time I use an URL instead a callback... this way (and using session cookies), I can use some "hard links" mixed with my app.
Esteban
>
> Cheers
> Philippe
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
> If you reply to this email, your message will be added to the discussion below:
> http://forum.world.st/Seaside-and-urls-tp4721764p4721861.html
> To start a new topic under Seaside General, email [hidden email]
> To unsubscribe from Seaside, click here.
> NAML
>
>
> View this message in context: Re: Seaside and urls
> Sent from the Seaside General mailing list archive at Nabble.com.
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20131115/6c0ee5b8/attachment.htm
More information about the seaside
mailing list