Revision: 3954
Author: jprantan
Date: Fri Aug 27 01:54:06 2010
Log: Link from Test Execution Errors to Test Execution Log. Issue 627.
http://code.google.com/p/robotframework/source/detail?r=3954

Modified:
 /trunk/src/robot/serializing/logserializers.py
 /trunk/src/robot/serializing/templates.py

=======================================
--- /trunk/src/robot/serializing/logserializers.py      Mon May 31 05:21:54 2010
+++ /trunk/src/robot/serializing/logserializers.py      Fri Aug 27 01:54:06 2010
@@ -56,9 +56,9 @@

     def start_keyword(self, kw):
         kw.id = self._idgen.get_id('kw')
-        self._writer.start('table', {'class': 'keyword'})
+        self._writer.start('table', {'class': 'keyword', 'id': kw.id})
         self._write_keyword_name(kw)
-        self._writer.start('tr', {'id': kw.id})
+        self._writer.start('tr')
         self._writer.start('td', newline=True)
         self._writer.start('div', {'class': 'indent',
                                    'style': self._get_display_style(kw),
@@ -71,8 +71,11 @@
     def message(self, msg):
         self._writer.start('table', {'class': 'messages'})
         self._writer.start('tr')
- self._writer.element('td', msg.timestamp.split()[1], # log only time
-                             {'class': 'time'})
+        attrs = {'class': 'time'}
+        if msg.level in ['WARN', 'ERROR']:
+            # Allow linking from Test Execution Errors table
+            attrs['id'] = 'msg_%s' % msg.timestamp
+        self._writer.element('td', msg.timestamp.split()[1], attrs)
         self._writer.element('td', msg.level,
                              {'class': '%s level' % msg.level.lower()})
         self._writer.element('td', msg.message, {'class': 'msg'},
@@ -98,7 +101,7 @@
         self._writer.element('a', 'Expand All', attrs)

     def _write_keyword_name(self, kw):
-        self._writer.start('tr', {'id': kw.id})
+        self._writer.start('tr')
         self._writer.start('td')
         self._write_folding_button(kw)
         status = {'class': kw.status.lower()}
@@ -278,8 +281,13 @@

     def message(self, msg):
         self._writer.start('tr')
-        self._writer.element('td', msg.timestamp.replace(' ', ' '),
-                             {'class': 'time'}, escape=False)
+        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, + 'title': 'Link to log when error occurred during execution.'},
+                              escape=False, newline=False)
+        self._writer.end('td')
         self._writer.element('td', msg.level,
                              {'class': '%s level' % msg.level.lower()})
         self._writer.element('td', msg.message, {'class': 'msg'})
=======================================
--- /trunk/src/robot/serializing/templates.py   Wed Jun  9 10:18:43 2010
+++ /trunk/src/robot/serializing/templates.py   Fri Aug 27 01:54:06 2010
@@ -420,6 +420,12 @@
             open_parents(parent)
         }
     }
+    function set_message_visible(name) {
+        var element = document.getElementById(name)
+        if (element) {
+            open_parents(element)
+        }
+    }
 </script>

 <title>${title}</title>

Reply via email to