[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