[Erp5-report] r23821 - /erp5/trunk/products/ERP5/Extensions/Grep.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Sep 25 16:24:33 CEST 2008
Author: fabien
Date: Thu Sep 25 16:24:29 2008
New Revision: 23821
URL: http://svn.erp5.org?rev=23821&view=rev
Log:
modify grep method to be xhtml valid and to highlight what is grepped
highlight is enable by default, but it's possible to disable it passing the parameter highlight with value 0 to the url
Modified:
erp5/trunk/products/ERP5/Extensions/Grep.py
Modified: erp5/trunk/products/ERP5/Extensions/Grep.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Extensions/Grep.py?rev=23821&r1=23820&r2=23821&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Extensions/Grep.py (original)
+++ erp5/trunk/products/ERP5/Extensions/Grep.py Thu Sep 25 16:24:29 2008
@@ -34,22 +34,43 @@
result.append((ob.absolute_url(), path, "\n".join(context)))
break
-def grep(self, pattern, A=0, B=0, r=1, i=0):
+def grep(self, pattern, A=0, B=0, r=1, i=0, highlight=1):
if not _checkPermission(Permissions.ManagePortal, self):
raise Unauthorized(self)
command_line_arguments = {} # emulate grep command line args
command_line_arguments['A'] = int(A)
command_line_arguments['B'] = int(B)
command_line_arguments['r'] = int(r)
+ highlight = int(highlight)
re_flags = 0
if int(i) :
re_flags = re.IGNORECASE
result = []
traverse(self, re.compile(pattern, re_flags), result, command_line_arguments)
- html_element_list = ['<html>', '<body>']
+
+ doctype = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
+ html = '<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">'
+ head = '''<head>
+ <title>Grep result</title>
+ <style type="text/css">
+ body{
+ background-color: #F9F9F9;
+ font-family: Verdana,Tahoma,Georgia,Geneva,Arial,Sans,sans-serif;
+ }
+ img{
+ border:0;
+ }
+ .highlight{
+ background-color: #8DFF6F;
+ }
+ </style>
+</head>'''
+ html_element_list = [doctype, html, head, '<body>' '<p>']
for url, path, line in result:
path = cgi.escape(path)
line = cgi.escape(line)
+ if highlight:
+ line = line.replace(pattern, '<span class="highlight">%s</span>' % pattern)
if ExternalEditor is None:
html_element_list.append(
'<a href="%s/manage_workspace">%s</a>: %s<br/>' %
@@ -61,11 +82,11 @@
'/'.join(path_element_list[:-1]), path_element_list[-1])
html_element_list.append(
'<a href="%s/manage_workspace">%s</a> <a href="%s">'
- '<img border="0" src="misc_/ExternalEditor/edit_icon" '\
+ '<img src="misc_/ExternalEditor/edit_icon" '\
'alt="externalEditor Icon"/></a> %s<br/>'
% (url, path, external_editor_link, line.replace('\n', '<br/>')))
- html_element_list.extend(['</body>', '</html>'])
+ html_element_list.extend(['</p>', '</body>', '</html>'])
self.REQUEST.RESPONSE.setHeader('Content-Type', 'text/html')
return '\n'.join(html_element_list)
More information about the Erp5-report
mailing list