summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorByron Jones <bjones@mozilla.com>2011-09-02 06:53:28 +0200
committerByron Jones <bjones@mozilla.com>2011-09-02 06:53:28 +0200
commitc11aacea6a5da8f9c891d169e164ffbf76724aee (patch)
treea7297d0ae9bc6c3007edd044ce214484dcd5505e
parent7a9a4fdc72fa194e1921ee157ae7f79507540f1c (diff)
downloadbugzilla-c11aacea6a5da8f9c891d169e164ffbf76724aee.tar.gz
bugzilla-c11aacea6a5da8f9c891d169e164ffbf76724aee.tar.xz
Bug 682822: Hide 'obsolete attachments' section when there are none to display
r=LpSolit, a=LpSolit
-rwxr-xr-xattachment.cgi71
-rw-r--r--template/en/default/attachment/create.html.tmpl26
2 files changed, 52 insertions, 45 deletions
diff --git a/attachment.cgi b/attachment.cgi
index 5eba13611..f0e818abe 100755
--- a/attachment.cgi
+++ b/attachment.cgi
@@ -474,40 +474,51 @@ sub viewall {
# Display a form for entering a new attachment.
sub enter {
- # Retrieve and validate parameters
- my $bug = Bugzilla::Bug->check(scalar $cgi->param('bugid'));
- my $bugid = $bug->id;
- Bugzilla::Attachment->_check_bug($bug);
- my $dbh = Bugzilla->dbh;
- my $user = Bugzilla->user;
-
- # Retrieve the attachments the user can edit from the database and write
- # them into an array of hashes where each hash represents one attachment.
- my $canEdit = "";
- if (!$user->in_group('editbugs', $bug->product_id)) {
- $canEdit = "AND submitter_id = " . $user->id;
- }
- my $attach_ids = $dbh->selectcol_arrayref("SELECT attach_id FROM attachments
- WHERE bug_id = ? AND isobsolete = 0 $canEdit
- ORDER BY attach_id", undef, $bugid);
+ # Retrieve and validate parameters
+ my $bug = Bugzilla::Bug->check(scalar $cgi->param('bugid'));
+ my $bugid = $bug->id;
+ Bugzilla::Attachment->_check_bug($bug);
+ my $dbh = Bugzilla->dbh;
+ my $user = Bugzilla->user;
- # Define the variables and functions that will be passed to the UI template.
- $vars->{'bug'} = $bug;
- $vars->{'attachments'} = Bugzilla::Attachment->new_from_list($attach_ids);
+ # Retrieve the attachments the user can edit from the database and write
+ # them into an array of hashes where each hash represents one attachment.
+
+ my ($can_edit, $not_private) = ('', '');
+ if (!$user->in_group('editbugs', $bug->product_id)) {
+ $can_edit = "AND submitter_id = " . $user->id;
+ }
+ if (!$user->is_insider) {
+ $not_private = "AND isprivate = 0";
+ }
+ my $attach_ids = $dbh->selectcol_arrayref(
+ "SELECT attach_id
+ FROM attachments
+ WHERE bug_id = ?
+ AND isobsolete = 0
+ $can_edit $not_private
+ ORDER BY attach_id",
+ undef, $bugid);
- my $flag_types = Bugzilla::FlagType::match({'target_type' => 'attachment',
- 'product_id' => $bug->product_id,
- 'component_id' => $bug->component_id});
- $vars->{'flag_types'} = $flag_types;
- $vars->{'any_flags_requesteeble'} =
- grep { $_->is_requestable && $_->is_requesteeble } @$flag_types;
- $vars->{'token'} = issue_session_token('create_attachment:');
+ # Define the variables and functions that will be passed to the UI template.
+ $vars->{'bug'} = $bug;
+ $vars->{'attachments'} = Bugzilla::Attachment->new_from_list($attach_ids);
+
+ my $flag_types = Bugzilla::FlagType::match({
+ 'target_type' => 'attachment',
+ 'product_id' => $bug->product_id,
+ 'component_id' => $bug->component_id
+ });
+ $vars->{'flag_types'} = $flag_types;
+ $vars->{'any_flags_requesteeble'} =
+ grep { $_->is_requestable && $_->is_requesteeble } @$flag_types;
+ $vars->{'token'} = issue_session_token('create_attachment:');
- print $cgi->header();
+ print $cgi->header();
- # Generate and return the UI (HTML page) from the appropriate template.
- $template->process("attachment/create.html.tmpl", $vars)
- || ThrowTemplateError($template->error());
+ # Generate and return the UI (HTML page) from the appropriate template.
+ $template->process("attachment/create.html.tmpl", $vars)
+ || ThrowTemplateError($template->error());
}
# Insert a new attachment into the database.
diff --git a/template/en/default/attachment/create.html.tmpl b/template/en/default/attachment/create.html.tmpl
index 863d83ad0..6be527a78 100644
--- a/template/en/default/attachment/create.html.tmpl
+++ b/template/en/default/attachment/create.html.tmpl
@@ -56,23 +56,19 @@ TUI_hide_default('attachment_text_field');
[% PROCESS attachment/createformcontents.html.tmpl %]
[%# Additional fields for attachments on existing bugs: %]
- <tr>
- <th>Obsoletes:</th>
- <td>
- <em>(optional) Check each existing attachment made obsolete by your new attachment.</em><br>
- [% IF attachments.size %]
+ [% IF attachments.size %]
+ <tr>
+ <th>Obsoletes:</th>
+ <td>
+ <em>(optional) Check each existing attachment made obsolete by your new attachment.</em><br>
[% FOREACH attachment = attachments %]
- [% IF ((attachment.isprivate == 0) || user.is_insider) %]
- <input type="checkbox" id="[% attachment.id %]"
- name="obsolete" value="[% attachment.id %]">
- <a href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">[% attachment.id %]: [% attachment.description FILTER html %]</a><br>
- [% END %]
+ <input type="checkbox" id="[% attachment.id %]"
+ name="obsolete" value="[% attachment.id %]">
+ <a href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">[% attachment.id %]: [% attachment.description FILTER html %]</a><br>
[% END %]
- [% ELSE %]
- [no attachments can be made obsolete]
- [% END %]
- </td>
- </tr>
+ </td>
+ </tr>
+ [% END %]
[% IF (user.id != bug.assigned_to.id) AND user.in_group("editbugs", bug.product_id) %]
<tr>