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]