Exporteren file libraries in Seaside

In Seaside kunnen we stylesheets, javascripts en andere externe files als file library in de image plaatsen.
Dit is handig voor als je geen beschikking hebt tot een echte webserver in je ontwikkelomgeving.

Scriptje om file libraries naar filesysteem te exporteren:

1
2
3
JQDeploymentLibrary new deployFiles.
JQUiDeploymentLibrary new deployFiles.
...

De file libraries komen terecht in de image folder als folder en kunnen daarna verplaatst worden naar je webserver.

Model validaties voor Seaside en JQuery

Ik doe wat form validatie met Seaside en de nieuwe JQuery integratie. De validatie code doe ik in het model. Ik heb een beetje gekeken naar hoe het in Rails gebeurd, maar daar worden alle validaties in een keer uitgevoerd. Het idee om JQuery te gebruiken is natuurlijk om per veld de validatie te kunnen doen en dan meteen feedback aan de gebruiker te kunnen geven bij het verlaten van het veld.

De validatie code laat ik nu dan triggeren in de setter van het veld.

1
2
3
4
5
 
emailBevestiging: value
 
  emailBevestiging := value.
  self valideer: #emailBevestiging.

Ik heb map gemaakt van veldnamen met validatieregels. De validatie regels zijn gewoon code blocks die aangeroepen worden door de valideer routine. Het is nog niet echt een DSL, waar met een beetje wil kan een niet programmeur wel de validatie regels erin begrijpen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
loadValidationRules
 
  self
    addRuleFor: #emailBevestiging
    with: [:veld :feedback |
 
      veld bevatGeldigeEmailadres
        ifFalse: [feedback value: 'Email adres bevestiging is ongeldig'.^].
 
      veld = email
        ifFalse: [feedback value: 'Email adres bevestiging is niet gelijk aan email'.^]].
 
  self
    addRuleFor: #email
    with: [:veld :feedback |
 
      veld bevatGeldigeEmailadres ifFalse: [feedback value: 'Email adres is ongeldig']]

Ik had de validatie regels eerst in aparte validatie methodes per veld, maar vind de rails manier waar je alle validaties bij elkaar bovenaan je class hebt staan wat prettiger. Ik heb nu een wat lange methode waarin ik alle validatieregels bij elkaar heb staan.