Hello all. I'm working on a component that makes a 'slide show.' It doesn't accept input as its only every used do display images. I'm writing it so that users can have total control (if they wish) over how the images are cycled, how the rotation starts, and what to do at the end of the cycle. For example:

<div t:type="gc/slideshow" interval="3" transition="SlideShow.CrossfadeTransition">
       <div>one</div>
       <div>2</div>
       <div>three</div>
       <div>4</div>
   </div>

At the moment each child div represents what will become a slide (this will probably be configurable). Obviously the image cycling is controlled completely on the client side by javascript. The server side of it includes the needed JS, collects the parameters (interval and transition), and add a bit of script to instantiate a slideshow object in JS on the client. This all works quite nicely, and now I have a question.

The 'transition' parameter is a string. It points to a client-side function that will handle the transitioning from one slide to the next. The 'SlideShow.CrossfadeTransition' function uses scriptaculous Effect.Fade/Appear to do a smooth crossfade from slide to slide. There is also a pre-packaged 'SlideShow.AbruptTransition', which simply flips to the next slide with no effect. My question is on the 'transition' parameter. Its nice as a string because its simple - point it a function and it will call it. However because T5 is virtually ignorant of JS, specifically of what's available to the client-side runtime, there is no way to know if the function exists.

Is this a problem? Obviously it makes it untestable, unless the testing framework actually handles JS errors (I'm not aware of this). It seems that testing the rendering of the internal Form component would face the same problem - how does it test if the error rendering effect works or not (in terms of the JS)?

Thanks for your input!

Sincerely,
Chris

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to