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>

Reply via email to