diff options
author | bugreport%peshkin.net <> | 2005-10-20 05:16:12 +0200 |
---|---|---|
committer | bugreport%peshkin.net <> | 2005-10-20 05:16:12 +0200 |
commit | b2966165174d850b13be0e25eba6e9053142ed00 (patch) | |
tree | 76dacbad2b7941d582dc095f7a06352533411ade /template | |
parent | a38539a73699a6d03c6d129375cecde85267269a (diff) | |
download | bugzilla-b2966165174d850b13be0e25eba6e9053142ed00.tar.gz bugzilla-b2966165174d850b13be0e25eba6e9053142ed00.tar.xz |
Bug 149504 Permit a reference to a URL to be treated as an attachment
Patch by Joel Peshkin <bugreport@peshkin.net>
r=lpsolit, a=justdave
Diffstat (limited to 'template')
-rw-r--r-- | template/en/default/admin/params/attachment.html.tmpl | 5 | ||||
-rw-r--r-- | template/en/default/attachment/create.html.tmpl | 76 | ||||
-rw-r--r-- | template/en/default/attachment/edit.html.tmpl | 30 | ||||
-rw-r--r-- | template/en/default/attachment/list.html.tmpl | 2 |
4 files changed, 103 insertions, 10 deletions
diff --git a/template/en/default/admin/params/attachment.html.tmpl b/template/en/default/admin/params/attachment.html.tmpl index 963d89e08..ef89c4af0 100644 --- a/template/en/default/admin/params/attachment.html.tmpl +++ b/template/en/default/admin/params/attachment.html.tmpl @@ -25,6 +25,9 @@ %] [% param_descs = { + allow_attach_url => "If this option is on, it will be possible to " _ + "specify a URL when creating an attachment and " _ + "treat the URL itself as if it were an attachment.", maxpatchsize => "The maximum size (in kilobytes) of patches. $terms.Bugzilla will not " _ "accept patches greater than this number of kilobytes in size. " _ "To accept patches of any size (subject to the limitations of " _ @@ -44,4 +47,4 @@ convert_uncompressed_images => "If this option is on, attachments with content type image/bmp " _ "will be converted to image/png and compressed before uploading to " _ "the database to conserve disk space." } -%]
\ No newline at end of file +%] diff --git a/template/en/default/attachment/create.html.tmpl b/template/en/default/attachment/create.html.tmpl index 43af6e638..ba725eae7 100644 --- a/template/en/default/attachment/create.html.tmpl +++ b/template/en/default/attachment/create.html.tmpl @@ -17,6 +17,8 @@ # Rights Reserved. # # Contributor(s): Myk Melez <myk@mozilla.org> + # Joel Peshkin <bugreport@peshkin.net> + # Erik Stambaugh <erik@dasbistro.com> #%] [% PROCESS global/variables.none.tmpl %] @@ -53,6 +55,58 @@ onload="setContentTypeDisabledState();" %] +[% IF Param("allow_attach_url") %] + <script type="text/javascript"> + + function URLFieldHandler() { + var field_attachurl = document.getElementById("attachurl"); + var greyfields = new Array("data", "ispatch", "autodetect", + "list", "manual", "bigfile", + "contenttypeselection", + "contenttypeentry"); + var i; + if (field_attachurl.value.match(/^\s*$/)) { + for (i = 0; i < greyfields.length; i++) { + thisfield = document.getElementById(greyfields[i]); + if (thisfield) { + thisfield.removeAttribute("disabled"); + } + } + } else { + for (i = 0; i < greyfields.length; i++) { + thisfield = document.getElementById(greyfields[i]); + if (thisfield) { + thisfield.setAttribute("disabled", "disabled"); + } + } + } + } + + function DataFieldHandler() { + var field_data = document.getElementById("data"); + var greyfields = new Array("attachurl"); + if (field_data.value.match(/^\s*$/)) { + var i; + for (i = 0; i < greyfields.length; i++) { + thisfield = document.getElementById(greyfields[i]); + if (thisfield) { + thisfield.removeAttribute("disabled"); + } + } + } else { + for (i = 0; i < greyfields.length; i++) { + thisfield = document.getElementById(greyfields[i]); + if (thisfield) { + thisfield.setAttribute("disabled", "disabled"); + } + } + } + } + + </script> +[% END %] + + <form name="entryform" method="post" action="attachment.cgi" enctype="multipart/form-data"> <input type="hidden" name="bugid" value="[% bugid %]"> <input type="hidden" name="action" value="insert"> @@ -62,7 +116,11 @@ <th><label for="data">File:</label></th> <td> <em>Enter the path to the file on your computer.</em><br> - <input type="file" id="data" name="data" size="50"> + <input type="file" id="data" name="data" size="50" + [% IF Param("allow_attach_url") %] + onchange="DataFieldHandler()" + [% END %] + > </td> </tr> [% IF Param("maxlocalattachment") %] @@ -77,6 +135,17 @@ </td> </tr> [% END %] + [% IF Param("allow_attach_url") %] + <tr> + <th><label for="attachurl">AttachURL:</label></th> + <td> + <em>URL to be attached instead.</em><br> + <input type="text" id="attachurl" name="attachurl" size="60" + maxlength="2000" + onkeyup="URLFieldHandler()" onblur="URLFieldHandler()"> + </td> + </tr> + [% END %] <tr> <th><label for="description">Description:</label></th> <td> @@ -104,14 +173,15 @@ <input type="radio" id="list" name="contenttypemethod" value="list"> <label for="list">select from list:</label> - <select name="contenttypeselection" + <select name="contenttypeselection" id="contenttypeselection" onchange="this.form.contenttypemethod[1].checked = true;"> [% PROCESS "attachment/content-types.html.tmpl" %] </select><br> <input type="radio" id="manual" name="contenttypemethod" value="manual"> <label for="manual">enter manually:</label> - <input type="text" name="contenttypeentry" size="30" maxlength="200" + <input type="text" name="contenttypeentry" id="contenttypeentry" + size="30" maxlength="200" onchange="if (this.value) this.form.contenttypemethod[2].checked = true;"> </td> </tr> diff --git a/template/en/default/attachment/edit.html.tmpl b/template/en/default/attachment/edit.html.tmpl index e46d5e552..7addd3278 100644 --- a/template/en/default/attachment/edit.html.tmpl +++ b/template/en/default/attachment/edit.html.tmpl @@ -209,16 +209,21 @@ <b>Description:</b><br> <textarea rows="3" cols="25" name="description" wrap="soft">[% description FILTER html %]</textarea><br> - <b>Filename:</b><br> - <input type="text" size="20" name="filename" value="[% filename FILTER html %]"><br> - <b>Size: </b>[% datasize FILTER unitconvert %]<br> + [% IF isurl %] + <input type="hidden" name="filename" value="[% filename FILTER html %]"><br> + <input type="hidden" name="contenttypeentry" value="[% contenttype FILTER html %]"><br> + [% ELSE %] + <b>Filename:</b><br> + <input type="text" size="20" name="filename" value="[% filename FILTER html %]"><br> + <b>Size: </b>[% datasize FILTER unitconvert %]<br> - <b>MIME Type:</b><br> - <input type="text" size="20" name="contenttypeentry" value="[% contenttype FILTER html %]"><br> + <b>MIME Type:</b><br> + <input type="text" size="20" name="contenttypeentry" value="[% contenttype FILTER html %]"><br> <input type="checkbox" id="ispatch" name="ispatch" value="1" [% 'checked="checked"' IF ispatch %]> <label for="ispatch">patch</label> + [% END %] <input type="checkbox" id="isobsolete" name="isobsolete" value="1" [% 'checked="checked"' IF isobsolete %]> <label for="isobsolete">obsolete</label><br> @@ -237,7 +242,8 @@ </div> <input type="submit" value="Submit"><br><br> - <strong>Actions:</strong> <a href="attachment.cgi?id=[% attachid %]">View</a> + <strong>Actions:</strong> + <a href="attachment.cgi?id=[% attachid %]">View</a> [% IF ispatch && patchviewerinstalled %] | <a href="attachment.cgi?id=[% attachid %]&action=diff">Diff</a> [% END %] @@ -268,6 +274,18 @@ //--> </script> </td> + [% ELSIF isurl %] + <td width="75%"> + <a href="[% thedata FILTER html %]"> + [% IF datasize < 120 %] + [% thedata FILTER html %] + [% ELSE %] + [% thedata FILTER truncate(80) FILTER html %] + ... + [% thedata.match(".*(.{20})$").0 FILTER html %] + [% END %] + </a> + </td> [% ELSE %] <td id="noview" width="50%"> <p><b> diff --git a/template/en/default/attachment/list.html.tmpl b/template/en/default/attachment/list.html.tmpl index 61b68ee53..7de5fb371 100644 --- a/template/en/default/attachment/list.html.tmpl +++ b/template/en/default/attachment/list.html.tmpl @@ -43,6 +43,8 @@ <td valign="top"> [% IF attachment.ispatch %] <i>patch</i> + [% ELSIF attachment.isurl %] + <i>url</i> [% ELSE %] [% attachment.contenttype FILTER html %] [% END %] |