Forum: Nitro [PATCH/RFC] Make element ids unique

Posted by Arne Brasseur (Guest)
on 2007-11-27 06:42
(Received via mailing list)
Hi devs,

The template compiler for elements automatically sets the instance
variable @id based on either an explicit id attribute in the html or the
name of the class.

e.g.
class LoginBox
def render
%~<div id="@id">...</div>~
end
end

<LoginBox />
<LoginBox />
<LoginBox />
<LoginBox id="my_id"/>
<LoginBox id="my_id"/>

This will result in
<div id="login_box">...</div>
<div id="login_box">...</div>
<div id="login_box">...</div>
<div id="my_id">...</div>
<div id="my_id">...</div>

Also, when nesting elements the children are kept in a Dictionary and
the @id is used as lookup key, so in the above example only the third
and the fifth box would be visible for the parent.

The attached patch changes the element compiler to make ids unique by
adding a number where necessary, so the above example would become


<div id="login_box">...</div>
<div id="login_box_1">...</div>
<div id="login_box_2">...</div>
<div id="my_id">...</div>
<div id="my_id_1">...</div>

Are there any objections to this being applied?

Thank you!
(ab)
Posted by George Moschovitis (Guest)
on 2007-11-27 09:23
(Received via mailing list)
I have done something similar in the past, but due to  some problems I
removed it.
The bad thing is that I do not remember the actual problems any more :(

In any case, thanks for the patch. I will have a  look at it and apply 
it if
it doesnt break my tests/apps.

thanks,
-g.
This topic is locked and can not be replied to.