]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 579749: Linkify the URL found in attachments (restore the is_url behavior) if...
authorFrédéric Buclin <LpSolit@gmail.com>
Sun, 18 Jul 2010 22:44:55 +0000 (00:44 +0200)
committerFrédéric Buclin <LpSolit@gmail.com>
Sun, 18 Jul 2010 22:44:55 +0000 (00:44 +0200)
r/a=LpSolit

template/en/default/attachment/edit.html.tmpl

index d1861a7d3eaa79bd17ca21837af714d4ef160e10..b9e2497fd5c0d3f194291dd035616295c652b23e 100644 (file)
             </b></p>
           </div>
         [% ELSIF attachment.is_viewable %]
-          <div >
+          <div>
             [% INCLUDE global/textarea.html.tmpl
               id      = 'editFrame'
               name    = 'comment'
               defaultcontent = (attachment.contenttype.match('^text\/')) ?
                                  attachment.data.replace('(.*\n|.+)', '>$1') : undef
             %]
-            <iframe id="viewFrame" src="attachment.cgi?id=[% attachment.id %]">
-              <b>You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
-              <a href="attachment.cgi?id=[% attachment.id %]">View the attachment on a separate page</a>.</b>
-            </iframe>
+            [%# The regexp is stolen from quoteUrls(), see Template.pm %]
+            [% safe_protocols = constants.SAFE_PROTOCOLS.join('|') %]
+            [% IF attachment.contenttype == 'text/plain'
+                  && attachment.data.match("^($safe_protocols):" _ '[^\s<>\"]+[\w\/]$') %]
+              <p>
+                <a href="[% attachment.data FILTER html %]">
+                  [% IF attachment.datasize < 120 %]
+                    [% attachment.data FILTER html %]
+                  [% ELSE %]
+                    [% attachment.data FILTER truncate(80) FILTER html %]
+                    ...
+                    [% attachment.data.match('.*(.{20})$').0 FILTER html %]
+                  [% END %]
+                </a>
+              </p>
+            [% ELSE %]
+              <iframe id="viewFrame" src="attachment.cgi?id=[% attachment.id %]">
+                <b>You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
+                <a href="attachment.cgi?id=[% attachment.id %]">View the attachment on a separate page</a>.</b>
+              </iframe>
+            [% END %]
             <script type="text/javascript">
               <!--
               var patchviewerinstalled = 0;