Revision: 3957
Author: pekka.klarck
Date: Fri Aug 27 03:20:17 2010
Log: 1) combine set_message_visible and set_element_visible, 2) null checks
for open parents, 3) open parents correctly also when the element to show
is open but it's parents are not
http://code.google.com/p/robotframework/source/detail?r=3957
Modified:
/trunk/src/robot/serializing/logserializers.py
/trunk/src/robot/serializing/templates.py
=======================================
--- /trunk/src/robot/serializing/logserializers.py Fri Aug 27 01:54:06 2010
+++ /trunk/src/robot/serializing/logserializers.py Fri Aug 27 03:20:17 2010
@@ -284,7 +284,7 @@
self._writer.start('td', {'class': 'time'}, newline=False)
self._writer.element('a', msg.timestamp.replace(' ', ' '),
{'href': "#msg_%s" % msg.timestamp,
- 'onclick': "set_message_visible('msg_%s')" %
msg.timestamp,
+ 'onclick': "set_element_visible('msg_%s')" %
msg.timestamp,
'title': 'Link to log when error occurred
during execution.'},
escape=False, newline=False)
self._writer.end('td')
=======================================
--- /trunk/src/robot/serializing/templates.py Fri Aug 27 01:54:06 2010
+++ /trunk/src/robot/serializing/templates.py Fri Aug 27 03:20:17 2010
@@ -398,33 +398,35 @@
}
return hash.slice(1).replace(/%%20/g, ' ')
}
- function set_element_visible(name) {
- var elements = document.body.getElementsByTagName('a')
+ function set_element_visible(id_or_name) {
+ var element = document.getElementById(id_or_name)
+ if (element) {
+ open_parents(element)
+ return
+ }
+ var elements = document.getElementsByName(id_or_name)
for (var i=0; i<elements.length; i++) {
- if (elements[i].getAttribute('name') == name) {
- open_parents(elements[i])
- return
- }
+ open_parents(elements[i])
}
}
// Find right type of parent element, open it and its parents
function open_parents(element) {
var parent = element.parentNode
+ if (!parent) {
+ return
+ }
// Find a parent table with id
while (parent.nodeName != 'TABLE' || parent.getAttribute('id') ==
null) {
parent = parent.parentNode
+ if (!parent) {
+ return
+ }
}
var element_id = parent.getAttribute('id')
if (document.getElementById(element_id+'_children').style.display
== 'none') {
toggle_child_visibility(element_id)
- open_parents(parent)
- }
- }
- function set_message_visible(name) {
- var element = document.getElementById(name)
- if (element) {
- open_parents(element)
- }
+ }
+ open_parents(parent)
}
</script>