]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 682822: Hide 'obsolete attachments' section when there are none to display
authorByron Jones <bjones@mozilla.com>
Fri, 2 Sep 2011 04:53:28 +0000 (12:53 +0800)
committerByron Jones <bjones@mozilla.com>
Fri, 2 Sep 2011 04:53:28 +0000 (12:53 +0800)
r=LpSolit, a=LpSolit

attachment.cgi
template/en/default/attachment/create.html.tmpl

index 5eba13611967ccbf7d16a43393152dd254e0b69a..f0e818abee1a99537141c2c65584464cfc8f926d 100755 (executable)
@@ -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.
index 863d83ad079f3f343a141849a4eab148e32b6281..6be527a78fa3542deaae83ff8b137988ac1f9ac5 100644 (file)
@@ -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>