Closed Bug 98602 Opened 23 years ago Closed 23 years ago

Templatize createattachment.cgi

Categories

(Bugzilla :: Attachments & Requests, defect)

2.15
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Bugzilla 2.16

People

(Reporter: myk, Assigned: myk)

References

Details

Attachments

(6 files, 1 obsolete file)

createattachment.cgi should be templatized as part of the overall effort to templatize the entire application, the tracking bug for which is bug 86168. Probably the best way to do this is to incorporate attachment creation capabilities into attachment.cgi. When doing this work, keep in mind the features requested in bugs 87420, 87770, 93749, 97768, and possibly 98096. bug 87420 - Pressing back on "create attachment". bug 87770 - createattachment should work with no parameters. bug 93749 - Bugzilla tells me to `Create an Attachment' when I already did bug 97768 - Create Attachment: MIME types for Microsoft Word, Excel, Powerpoint, etc. bug 98096 - Creating an attachment should give more information.
Blocks: 98601
Blocks: 86397
The patch I just attached extends attachment.cgi with templates and logic for creating attachments. It supports content (MIME) type autosensing (bug 86397), tells you the right thing when you have created an attachment (bug 93749), allows installations to customize MIME types (bug 97768), allows you to comment on the bug when creating the attachment (bug 98601), and also allows you to obsolete old attachments when creating a new one (bug number?). Issues include: 1. It uses TT's "wrap" plugin to wrap comments, and that plugin also wraps long URLs. 2. It doesn't take mid-air collisions into account. 3. It may not handle empty form field values (if it doesn't, then neither does the current version). 4. May or may not address bug 87420. 5. Does not address bug 87770 or bug 98096.
>obsolete old attachments when creating a new one (bug number?). Bug 98111
Thanks Jake. Adding dependency from bug 98111, targeting to 2.16, and accepting.
Blocks: 98111
Status: NEW → ASSIGNED
Target Milestone: --- → Bugzilla 2.16
Where does it use wrap, and what for? Also, why do we need content types if it has autosense? The point of autosense was to remove the need for content types.
> Where does it use wrap, and what for? It uses wrap to wrap the comments field on the server side. I could have made the comments field wrap on the browser side (like the comments field in show_bug.cgi), but that behavior is a bug according to bug 11901, so I thought I should fix the problem in any new code. > Also, why do we need content types if it has autosense? The point of > autosense was to remove the need for content types. There seems to be mixed support for autosensing among browsers, (f.e. Mozilla in bug 54940), so I designed the new screen to allow the user to specify a content type if they know their browser won't assign one correctly. The default is "autosense".
I agree 100% with having the ability to specify the MIME type on the upload screen. When I create a diff, I name it <bug#>.dif... I know if I use IE to upload it, it will report its MIME type as some strange Excel file. So for that reason alone, I'd love to have the ability to say "This is text/plain" on the upload screen.
> I agree 100% with having the ability to specify the MIME type on the upload > screen. When I create a diff, I name it <bug#>.dif... I know if I use IE to > upload it, it will report its MIME type as some strange Excel file. So for that > reason alone, I'd love to have the ability to say "This is text/plain" on the > upload screen. Although technically this can be accomplished without giving the user the ability to specify the type, since the "patch" checkbox overrides the "content type" fields and sets the type to "text/plain", the essential point is correct: users may sometimes have a reason to request a specific type, and it is useful to enable them to do so. Perhaps after we implement this feature if it turns out that autosense works 99% of the time we can go back and remove this feature and make people use the "edit attachment" screen to modify the type the last 1% of the time. At this point I think an intermediate step between the current situation (all manual entry) and the ideal situation (all autosensing) is best.
> It uses wrap to wrap the comments field on the server side. I could > have made the comments field wrap on the browser side (like the comments > field in show_bug.cgi), but that behavior is a bug according to bug 11901, > so I thought I should fix the problem in any new code. I guess you all know by now I want to see display-time wrapping, and I haven't seen any statement as to why we shouldn't do it that way. As such, I'd rather not wrap any hard wrap any comments since once we do we can't fix them. At the moment, at least comments will display-wrap properly if we fix Bugzilla to display-wrap.
>At the >moment, at least comments will display-wrap properly if we fix Bugzilla to >display-wrap. Not true. Comments in Bugzilla are hard-wrapped by the browser and stored in the database with the hard wraps intact. Switching to client-side soft wrapping only works for future comments, which makes the switch a much more complicated affair.
Attachment #49170 - Attachment is obsolete: true
>1. It uses TT's "wrap" plugin to wrap comments, and that plugin also wraps long >URLs. I fixed this by requiring a newer version of Text::Wrap. >2. It doesn't take mid-air collisions into account. This should be resolved in bug 99215. >3. It may not handle empty form field values (if it doesn't, then neither does >the current version). I think this is irrelevant if it hasn't come up before. >4. May or may not address bug 87420. It does, the two screens are at different URLs. >5. Does not address bug 87770 or bug 98096. It doesn't. Removing them from the dependency list. So, ready to review.
No longer blocks: 87770, 98096
Keywords: patch, review
>> At the moment, at least comments will display-wrap properly if we fix >> Bugzilla to display-wrap. > Not true. I was referring specifically to attachment descriptions on attachment creations, which aren't currently wrapped at all.
Comment on attachment 51376 [details] [diff] [review] patch v2: addresses URL wrapping issue >Index: attachment.cgi >=================================================================== >RCS file: /cvsroot/mozilla/webtools/bugzilla/attachment.cgi,v >retrieving revision 1.2 >diff -u -r1.2 attachment.cgi >--- attachment.cgi 2001/08/31 21:40:33 1.2 >+++ attachment.cgi 2001/09/29 01:45:30 ... >@@ -276,23 +404,129 @@ ... >+ # Insert a comment about the new attachment into the database. >+ my $comment = "Created an attachment (id=$attachid): $::FORM{'description'}\n\n"; >+ if ( $::FORM{'comment'} ) { >+ use Text::Wrap; >+ $Text::Wrap::columns = 80; >+ $Text::Wrap::huge = 'overflow'; >+ $comment .= Text::Wrap::wrap('', '', $::FORM{'comment'}); >+ } >+ AppendComment($::FORM{'bugid'}, >+ $::COOKIE{"Bugzilla_login"}, >+ $comment); ... This will cause long descriptions of the attachment to not be properly wraped. ... >+ # Send mail to let people know the attachment has been created. Uses a >+ # special syntax of the "open" and "exec" commands to capture the output of >+ # "processmail", which "system" doesn't allow, without running the command >+ # through a shell, which backticks (``) do. >+ #system ("./processmail", $bugid , $::userid); >+ #my $mailresults = `./processmail $bugid $::userid`; >+ my $mailresults = ''; >+ open(PMAIL, "-|") or exec('./processmail', $::FORM{'bugid'}, $::COOKIE{'Bugzilla_login'}); >+ $mailresults .= $_ while <PMAIL>; >+ close(PMAIL); ... I can't say that I'm really fond of this different mail layout... maybe it's just because I'm used to it, but I like the output given when creating/changing bugs better than the "new" one given when updating attachments. ... >+ # !!! Create TT filter and move value_quote logic into template! >+ $vars->{'description'} = value_quote($description); ... Doesn't the FILTER method used for quoting <>& also do "? (I thought I saw that message on the TT mailing list).
Attachment #51376 - Flags: review-
>This will cause long descriptions of the attachment to not be properly wraped. Why not? >I can't say that I'm really fond of this different mail layout... maybe it's >just because I'm used to it, but I like the output given when creating/changing >bugs better than the "new" one given when updating attachments. The update attachment code calls processmail just like the update bug code, so the mail layout should be the same. How is it different? >Doesn't the FILTER method used for quoting <>& also do "? (I thought I saw >that message on the TT mailing list). Yep, it was in a response to my message. :-) I guess I just forgot (or I did this attachment before I found that out).
>>This will cause long descriptions of the attachment to not be properly wraped. > >Why not? If I read all the code right, the description is pulled into $comment before the wraping takes effect. >The update attachment code calls processmail just like the update bug code, so >the mail layout should be the same. How is it different? It's not the mail that's different, it's the changed notice and the list of e-mail addresses on the web page.
>If I read all the code right, the description is pulled into $comment before >the wraping takes effect. Right, which means the description will be wrapped. Is that improper? >It's not the mail that's different, it's the changed notice and the list of >e-mail addresses on the web page. Oh, I understand what you mean now. This problem is addressed in my patches for bug 98801.
Ok, so I finally figured out what Jake was talking about via a conversation with him in the IRC channel, and he's right, patch v2 didn't wrap the description. Patch v3 fixes that. Re: the way the "created" notification displays, the patches on this bug use the old method (the one everyone likes) when an attachment gets created. The new method (used when an attachment is updated, which everyone hates) is not a part of these patches, and it won't be a part of attachment updating after bug 98801 gets fixed. Ready for re-review.
Comment on attachment 52328 [details] [diff] [review] patch v3: resolves wrapping issue The Create New Attachment link still links to createattachment.cgi instead of attachment.cgi?bugid=1&action=enter. Also, when I entered that URL by hand I got an error: Template process failed: file error - attachment/enter.atml: not found enter.atml does exist: [jake@c539723-a attachment]$ pwd /var/www/bugzilla/template/default/attachment [jake@c539723-a attachment]$ ll total 24 drwxr-xr-x 2 jake apache 4096 Oct 5 20:42 CVS -rwxr-xr-x 1 jake apache 7121 Oct 6 12:20 edit.atml -rwxr-xr-x 1 jake apache 1641 Aug 30 23:54 list.atml -rwxr-xr-x 1 jake apache 353 Aug 30 23:54 updated.atml -rwxr-xr-x 1 jake apache 2106 Aug 30 23:54 viewall.atml
Attachment #52328 - Flags: review-
OK, I take that back, enter.atml didn't exist... :) Silly me. patch doesn't seem work very well when it spans multiple directories. It still needs that link change, though...
The latest patch does these things: 1. updates the link to createattachment.cgi to point it to the new version of the "create attachment" screen located at attachment.cgi?bugid=###&action=enter; 2. changes the name of the contenttypes.atml file to contenttypes to conform with the standard for naming template fragments versus complete templates; 3. adds a message to the "created" screen telling the user what content type was auto-detected if the user chose content type auto-detection.
Blocks: 103885
Comment on attachment 52536 [details] [diff] [review] patch v4: createattachment -> attachment Maybe I'm just blind, but I don't see edit.atml in this patch... (but I know there are changes requried in it... at the very least 'mimetype' -> 'contenttype'). Also, this fails the test (sh runtests.sh): main::validateFilename() called too early to check prototype at attachment.cgi line 100 (#1) (W prototype) You've called a function that has a prototype before the parser saw a definition or declaration for it, and Perl could not check that the call conforms to the prototype. You need to either add an early prototype declaration for the subroutine in question, or move the subroutine definition ahead of the call to get proper prototype checking. Alternatively, if you are certain that you're calling the function correctly, you may put an ampersand before the name to avoid the warning. See perlsub. attachment.cgi syntax OK # Failed test (t/001compile.t at line 70) not ok 2 - attachment.cgi--WARNING Also (again), when I made a really long comment while attaching a bug, it put my comment in the Additional comments field twice... once wrapped and once not.
Attachment #52536 - Flags: review-
please run tests before posting patches
The latest patch: 1. Passes tests. 2. Wraps comments right! 3. Reorganizes "content type" entry field. 4. Includes changes to enter.atml. 5. Applies cleanly with the "-p0" option to patch. Ready for review!
The latest patch fixes up a few inconsistencies in the use of the words "mimetype" and "contenttype" as variable names. It also replaces a few instances where something is being value_quoted for use in HTML templates with the "html" filter.
Comment on attachment 53295 [details] [diff] [review] patch v6: misc cleanup (apply with "-p0" option to patch) Looks good to me... r=jake
Attachment #53295 - Flags: review+
Comment on attachment 53295 [details] [diff] [review] patch v6: misc cleanup (apply with "-p0" option to patch) + $bugid == $::FORM{'bugid'} + || DisplayError("Attachment #$attachid ($description) is attached to + bug #$bugid, but you flagged it for obsoletion when creating + a new attachment to bug #$::FORM{'bugid'}.") + && exit; + + if ( $isobsolete ) + { + $description = html_quote($description); + DisplayError("Attachment #$attachid ($description) is already obsolete."); + exit; + } You fail to html_quote $description for the first error. A whole load of code for entering patches seems to have appeared in attachment.cgi, but not been removed from anywhere. Why is this? Gerv
Attachment #53295 - Flags: review+
> You fail to html_quote $description for the first error. Fixed in the latest patch. > A whole load of code for entering patches seems to have appeared in > attachment.cgi, but not been removed from anywhere. Why is this? Because the new code only gets used if you have the attachment tracker turned on; the old code still gets used on installations that do not use the attachment tracker. In addition to fixing the bug Gerv mentions, I found another bug that prevented users who were not logged in from creating attachments. That bug has also been fixed in the latest patch. Jake, Gerv, re-review?
Comment on attachment 53379 [details] [diff] [review] patch v7: escapes description and fixes addl. bug r=gerv. Gerv
Attachment #53379 - Flags: review+
Comment on attachment 53379 [details] [diff] [review] patch v7: escapes description and fixes addl. bug OK, this looks good to me...
Attachment #53379 - Flags: review+
RCS file: /cvsroot/mozilla/webtools/bugzilla/template/default/attachment/contenttypes,v done Checking in template/default/attachment/contenttypes; /cvsroot/mozilla/webtools/bugzilla/template/default/attachment/contenttypes,v <-- contenttypes initial revision: 1.1 done RCS file: /cvsroot/mozilla/webtools/bugzilla/template/default/attachment/created.atml,v done Checking in template/default/attachment/created.atml; /cvsroot/mozilla/webtools/bugzilla/template/default/attachment/created.atml,v <-- created.atml initial revision: 1.1 done Checking in template/default/attachment/edit.atml; /cvsroot/mozilla/webtools/bugzilla/template/default/attachment/edit.atml,v <-- edit.atml new revision: 1.4; previous revision: 1.3 done RCS file: /cvsroot/mozilla/webtools/bugzilla/template/default/attachment/enter.atml,v done Checking in template/default/attachment/enter.atml; /cvsroot/mozilla/webtools/bugzilla/template/default/attachment/enter.atml,v <-- enter.atml initial revision: 1.1 done Checking in template/default/attachment/list.atml; /cvsroot/mozilla/webtools/bugzilla/template/default/attachment/list.atml,v <-- list.atml new revision: 1.2; previous revision: 1.1 done Checking in template/default/attachment/viewall.atml; /cvsroot/mozilla/webtools/bugzilla/template/default/attachment/viewall.atml,v <-- viewall.atml new revision: 1.2; previous revision: 1.1 done
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Keywords: patch, review
Resolution: --- → FIXED
Blocks: 91664
Component: Creating/Changing Bugs → attachment and request management
QA Contact: matty_is_a_geek → default-qa
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: