[Seaside] Standalone package for WABuilder / WAHtmlCanvas ?

H. Hirzel hannes.hirzel at gmail.com
Tue Sep 19 15:55:18 UTC 2017


Thank you for the answer, Philippe.

(For some reason I can post messages to the mailing list but do not
receive answers.
I had to check http://lists.squeakfoundation.org/pipermail/seaside/2017-September/032832.html
to find it).


This is what tried to get a Standalone HTML builder Seaside type:
----------------------------------------------------------------------------------------------

I loaded Name: ConfigurationOfSeaside3-JohanBrichau.335 [1]

There I read the message #baseline320: spec [2]

It told me that I need probably only need   #baseline320common: spec.  [3]



The interesting part in  is #baseline320common: spec


	package: 'Seaside-Canvas' with: [
				spec requires: #('Seaside-Core' ). ];
			package: 'Seaside-Component' with: [
				spec requires: #('Seaside-Core' ). ];
			package: 'Seaside-Core' with: [
				spec requires: #('Grease' ). ];

So I went for Grease ConfigurationOfGrease-JohanBrichau.345 [4] which
I loaded manually.

(ConfigurationOfGrease project version: #stable) load


Then I manually loaded
- Seaside-Core and
- Seaside-Canvas

from

MCHttpRepository
	location: 'http://smalltalkhub.com/mc/Seaside/Seaside32/main'
	user: ''
	password: ''


A test showed that this is not sufficient.

Print-it of
    WAHtmlCanvas builder render: [ :html |
		html unorderedList: [
			html listItem: 'an item' ]]


was

    '[closure] in UndefinedObject>>DoIt'


I wonder what I am missing here or what I need in addition.

Regards
Hannes














-----------------------------------------------------------------------------------------------------------------

[1]

Name: ConfigurationOfSeaside3-JohanBrichau.335
Author: JohanBrichau
Time: 14 July 2017, 10:34:35.516326 am
UUID: 7fdfd376-538a-408a-9aab-5573418cd3a8
Ancestors: ConfigurationOfSeaside3-JohanBrichau.334

bugfix release 3.2.4

-----------------------------------------
[2] baseline320: spec
  "This groups all baseline"

  <version: '3.2.0-baseline'>

  self baseline320common: spec.
  self baseline311gemstone: spec.
  self baseline320pharo: spec.
  self baseline320squeak: spec.
  self baseline312slime: spec.
  self baseline320filesystem: spec.
  self baseline320adaptors: spec.
  self baseline311comet: spec.
  self baseline311javascript: spec.
  self baseline311jquery: spec.
  self baseline311jqueryui: spec.
  self baseline311rss: spec.
  self baseline320rest: spec.
  self baseline311scriptaculous: spec.
  self baseline311json: spec.
  self baseline311ob: spec.
  self baseline320gettext: spec.
  self baseline320welcome: spec.
  self baseline320security: spec


----------------------------------------------

[3]

baseline320common: spec

	spec for: #'squeakCommon' do: [
		 spec blessing: #'baseline'.
 		spec repository: 'http://smalltalkhub.com/mc/Seaside/Seaside32/main'.
		spec project: 'Grease' with: [
			spec
				versionString: #bleedingEdge;
				className: 'ConfigurationOfGrease';
				loads: #( 'Grease-Core');
				repository:
'http://smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main' ].
			
		spec project: 'Parasol' with: [
			spec
				className: 'ConfigurationOfParasol';
				versionString: #development;
				repository: 'http://ss3.gemtalksystems.com/ss/Parasol'].
			
		spec
			project: 'Grease Core Tests'
			copyFrom: 'Grease' with: [
				spec loads: #('Core Tests') ].
			
		spec
			package: 'Seaside-Canvas' with: [
				spec requires: #('Seaside-Core' ). ];
			package: 'Seaside-Component' with: [
				spec requires: #('Seaside-Core' ). ];
			package: 'Seaside-Core' with: [
				spec requires: #('Grease' ). ];
			package: 'Seaside-Development' with: [
				spec requires: #('Seaside-Tools-Web' 'Seaside-Flow'). ];
			package: 'Seaside-Email' with: [
				spec requires: #('Seaside-Core' ). ];
			package: 'Seaside-Environment' with: [
				spec requires: #('Seaside-Core' 'Seaside-Canvas' 'Seaside-Session'
'Seaside-Component' 'Seaside-RenderLoop' 'Seaside-Tools-Core'
'Seaside-Widgets' ). ];
			package: 'Seaside-Examples' with: [
				spec requires: #('Seaside-Component' 'Seaside-Canvas'
'Seaside-Tools-Core' 'Seaside-Development' 'JQuery-Core'). ];
			package: 'Seaside-Flow' with: [
				spec requires: #('Seaside-Core' 'Seaside-Component'
'Seaside-RenderLoop' 'Seaside-Tools-Core' ). ];
			package: 'Seaside-InternetExplorer' with: [
				spec requires: #('Seaside-Core' ). ];
			package: 'Seaside-RenderLoop' with: [
				spec requires: #('Seaside-Component' 'Seaside-Session' ). ];
			package: 'Seaside-Session' with: [
				spec requires: #('Seaside-Core' 'Seaside-Canvas' ). ];
			package: 'Seaside-Tools-Core' with: [
				spec requires: #('Seaside-Core' 'Seaside-Component'
'Seaside-RenderLoop' 'Seaside-Session' ). ];
			package: 'Seaside-Tools-Web' with: [
				spec requires: #('Seaside-Tools-Core' 'Seaside-RenderLoop'
'Seaside-Widgets' ). ];
			package: 'Seaside-Widgets' with: [
				spec requires: #('Seaside-Component' 'Seaside-Canvas' ). ];
			package: 'Seaside-Tests-Canvas' with: [
				spec requires: #('Seaside-Tests-Core' 'Seaside-Canvas' ). ];
			package: 'Seaside-Tests-Component' with: [
				spec requires: #('Seaside-Component' 'Seaside-Tests-Core' ). ];
			package: 'Seaside-Tests-Core' with: [
				spec requires: #('Seaside-Core' 'Grease Core Tests' ). ];
			package: 'Seaside-Tests-Development' with: [
				spec requires: #('Seaside-Development' 'Seaside-Tests-Tools-Web'
'Seaside-Tests-Environment' ). ];
			package: 'Seaside-Tests-Email' with: [
				spec requires: #('Seaside-Email' 'Seaside-Tests-Core' ). ];
			package: 'Seaside-Tests-Environment' with: [
				spec requires: #('Seaside-Environment' 'Seaside-Tests-Component'
'Seaside-Tests-RenderLoop' 'Seaside-Tests-Session'
'Seaside-Tests-Canvas' ). ];
			package: 'Seaside-Tests-Examples' with: [
				spec requires: #('Seaside-Examples' 'Seaside-Tests-Environment' ). ];
			package: 'Seaside-Tests-Flow' with: [
				spec requires: #('Seaside-Flow' 'Seaside-Tests-Functional' ). ];
			package: 'Seaside-Tests-Functional' with: [
				spec requires: #('Seaside-Environment' 'Seaside-Tests-Core'
'Seaside-Widgets' ). ];
			package: 'Seaside-Tests-InternetExplorer' with: [
				spec requires: #('Seaside-InternetExplorer' 'Seaside-Tests-Core' ). ];
			package: 'Seaside-Tests-RenderLoop' with: [
				spec requires: #('Seaside-RenderLoop' 'Seaside-Tests-Session' ). ];
			package: 'Seaside-Tests-Session' with: [
				spec requires: #('Seaside-Tests-Core' 'Seaside-Session'
'Seaside-Tests-Canvas'). ];
			package: 'Seaside-Tests-Tools-Web' with: [
				spec requires: #('Seaside-Tools-Web' 'Seaside-Tests-Environment' ). ];
			package: 'Seaside-Tests-UTF8' with: [
				spec requires: #('Seaside-Tests-Core' ) ];
			package: 'Seaside-Tests-Webdriver' with: [
				spec requires: #('Seaside-Tests-Core' 'Parasol') ].
		spec
			group: 'default' with: #('Core' 'JSON' 'Email' 'Javascript'
'JQuery' 'JQueryUI');
			group: 'OneClick' with: #('Tests' 'Development');
			group: 'CI' with: #('Tests' 'Development Tests');
			group: 'Core' with: #('Seaside-Core' 'Seaside-Canvas'
'Seaside-Session' 'Seaside-Component' 'Seaside-RenderLoop'
'Seaside-Tools-Core' 'Seaside-Flow' 'Seaside-Environment'
'Seaside-Widgets' );
			group: 'Tests' with: #('Core' 'Seaside-Tests-Core'
'Seaside-Tests-Canvas' 'Seaside-Tests-Session'
'Seaside-Tests-Component' 'Seaside-Tests-RenderLoop'
'Seaside-Tests-Environment' 'Seaside-Tests-Flow' 'Seaside-Tests-UTF8'
'Seaside-Tests-InternetExplorer' 'Seaside-Tests-Email'
'Seaside-Tests-Examples' 'RSS Tests' 'Welcome Tests' 'Comet Tests'
'REST Tests' 'Swagger Tests');
			group: 'Development' with: #('Core' 'Seaside-Development' );
			group: 'Development Tests' with: #('Development' 'Core'
'Seaside-Tests-Development');
			group: 'Email' with: #('Seaside-Email');
			group: 'Examples' with: #('Core' 'Seaside-Examples' );
			group: 'Base' with: #('Core')  ].

----------------------------------------
[4]
Name: ConfigurationOfGrease-JohanBrichau.345
Author: JohanBrichau
Time: 19 September 2017, 10:12:38.403028 am
UUID: 6daecd28-e815-0d00-aabb-64700eaf75ef
Ancestors: ConfigurationOfGrease-JohanBrichau.344

Symbolic names should be symbols

------------------------------------------------------------------------------------------------------------------------





On 9/14/17, H. Hirzel <hannes.hirzel at gmail.com> wrote:
> Hello
>
> Is there a ConfigurationOf ... file which loads what is needed to run
> WABuilder with WAHtmlCanvas  [1] stand-alone (no need other Seaside
> package loaded)  to generate HTML Seaside style?
>
> If not which packages of the Seaside distribution would I need to load
> manually?
>
> Recently there was a request on the Pharo list for this.
>
> Thank you in advance.
>
> Hannes
>
>
> ------------------------------------------------
> [1]
>
>  WAObject subclass: #WABuilder
> 	instanceVariableNames: 'fullDocument rootBlock rootClass
> documentClass scriptGeneratorClass rendererClass codec actionUrl
> resourceUrl'
> 	classVariableNames: ''
> 	poolDictionaries: ''
> 	category: 'Seaside-Core-Rendering'
>
>
>
> This is a convenience class which provides a result of a rendering
> operation as a string. It is expected to be used like this:
>
>  WAHtmlCanvas builder render: [ :html |
> 	html anchor
> 		url: 'htttp://www.seaside.st';
> 		with: 'Seaside Homepage' ]
>
>
> ..................
>
> WABuilderCanvasTest has more examples.
>
>
> testBody
> 	| actual |
> 	actual := WAHtmlCanvas builder render: [ :html |
> 		html unorderedList: [
> 			html listItem: 'an item' ] ].
> 	self assert: actual = '<ul><li>an item</li></ul>'
>
>
> testFullDocument
> 	| actual |
> 	actual := WAHtmlCanvas builder fullDocument: true; render: [ :html |
> 		html unorderedList: [
> 			html listItem: 'an item' ] ].
> 	self assert: actual = '<html><head><title></title></head><body
> onload="onLoad()"><ul><li>an item</li></ul><script
> type="text/javascript">function onLoad(){};</script></body></html>'
>
>
> testFullDocumentWithBlock
> 	| actual |
> 	actual := WAHtmlCanvas builder fullDocument: true;
> 		rootBlock: [ :root |
> 			root title: 'title'.
> 			root stylesheet add: 'body{font-size:12px;}'.
> 			root javascript add: 'alert("loaded")' ];
> 		render: [ :html |
> 			html unorderedList: [
> 				html listItem: 'an item' ] ].
> 	self assert: actual =  '<html><head><title>title</title><style
> type="text/css">body{font-size:12px;}</style><script
> type="text/javascript">alert("loaded")</script></head><body
> onload="onLoad()"><ul><li>an item</li></ul><script
> type="text/javascript">function onLoad(){};</script></body></html>'
>


More information about the seaside mailing list