[Seaside] Seaside and urls

Esteban A. Maringolo emaringolo at gmail.com
Fri Nov 15 14:14:08 UTC 2013


Is there some documentation about this?

Is there any Metacello configuration ready to be used with Pharo 2?

Regards,

Esteban A. Maringolo


2013/11/13 Philippe Marschall <philippe.marschall at gmail.com>:
> On Wed, Nov 13, 2013 at 4:59 PM, Esteban Lorenzano <estebanlm at gmail.com> 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:
>
> Cheers
> Philippe
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


More information about the seaside mailing list