diff --git a/product/ERP5/Extensions/Grep.py b/product/ERP5/Extensions/Grep.py index a4be4c4424e66d1cacf2385282b593e820b52881..28605a4d6e276bb673ee2eaf7a961269b08aca8d 100644 --- a/product/ERP5/Extensions/Grep.py +++ b/product/ERP5/Extensions/Grep.py @@ -2,6 +2,11 @@ import re import cgi from Acquisition import aq_base +try: + from Products import ExternalEditor +except: + ExternalEditor = None + skip_meta_types = ('Image', 'File') def traverse(ob, r, result, command_line_arguments): @@ -40,8 +45,20 @@ def grep(self, pattern, A=0, B=0, r=1, i=0): for path, line in result: path = cgi.escape(path) line = cgi.escape(line) - html_element_list.append('<a href="%s/manage_workspace">%s</a>: %s<br/>' % ( -path, path, line.replace('\n', '<br/>'))) + if ExternalEditor is None: + html_element_list.append( + '<a href="%s/manage_workspace">%s</a>: %s<br/>' % + (path, path, line.replace('\n', '<br/>'))) + else: + # if we have ExternalEditor installed, add the "external edit" link + path_element_list = path.split('/') + external_editor_link = '%s/externalEdit_/%s' % ( + '/'.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"/></a> %s<br/>' + % (path, path, external_editor_link, line.replace('\n', '<br/>'))) + html_element_list.extend(['</body>', '</html>']) self.REQUEST.RESPONSE.setHeader('Content-Type', 'text/html') return '\n'.join(html_element_list)