[Seaside] Seaside and urls

Esteban Lorenzano estebanlm at gmail.com
Wed Nov 13 15:59:35 UTC 2013


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 :)

Esteban

On Nov 13, 2013, at 12:24 PM, Tommaso <tommaso.dalsasso at gmail.com> wrote:

> Hello everybody,
> 
> I am building a web application with Seaside 3.0 and I would like to access single pages of the application with the URL, because I need to access them with other technologies (like javascript libraries).
> I was looking into Seaside-REST, but I am wondering if it is the correct way to implement this, also because I would probably loose the session.
> 
> Is there a way to provide some kind of routing to Seaside, or is REST the correct way?
> 
> Thank you.
> Tommaso Dal Sasso_______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



More information about the seaside mailing list