Commit:    4a031e576841b49ed7b7182e8aedd84a9b8e290d
Author:    Felipe Pena <[email protected]>         Wed, 12 Sep 2012 12:07:54 
-0300
Parents:   31876f44191dd7e4544f1dfa947fae408b7f67a4
Branches:  master

Link:       
http://git.php.net/?p=web/bugs.git;a=commitdiff;h=4a031e576841b49ed7b7182e8aedd84a9b8e290d

Log:
- Fixed bug #63068 (Auto bug closing via commit messages don't update the bug 
history)

Bugs:
https://bugs.php.net/63068

Changed paths:
  M  include/functions.php
  M  www/rpc.php


Diff:
diff --git a/include/functions.php b/include/functions.php
index 6d1b892..2a8647c 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -1654,6 +1654,18 @@ function bugs_add_comment ($bug_id, $from, $from_name, 
$comment, $type = 'commen
 }
 
 /**
+ * Change bug status
+ */
+function bugs_status_change ($bug_id, $new_status)
+{
+       global $dbh;
+       
+       return $dbh->prepare("
+               UPDATE bugdb SET status = ? WHERE id = ? LIMIT 1
+       ")->execute(array($new_status, $bug_id));
+}
+
+/**
  * Verify bug password
  *
  * @return bool
diff --git a/www/rpc.php b/www/rpc.php
index 60f5da0..a4c3d1e 100644
--- a/www/rpc.php
+++ b/www/rpc.php
@@ -45,31 +45,34 @@ if (!bugs_has_access($bug_id, $bug, $pwd, $user_flags)) {
 if (!empty($_POST['ncomment']) && !empty($_POST['user'])) {
        $user = htmlspecialchars(trim($_POST['user']));
        $ncomment = htmlspecialchars(trim($_POST['ncomment']));
-       $prep = $dbh->prepare("
-               INSERT INTO bugdb_comments (bug, email, ts, comment, 
reporter_name, comment_type)
-               VALUES (?, ?, NOW(), ?, ?, 'svn')
-       ");
-       $res = $prep->execute(array ($bug_id, "{$user}@php.net", $ncomment, 
$user));
+       $from = "{$user}@php.net";
+
+       /* svn log comment */
+       bugs_add_comment($bug_id, $from, $user, $ncomment, 'svn');
 
        if ($res) {
                /* Close the bug report as requested if it is not already 
closed */
                if (!empty($_POST['status'])
                        && $bug['status'] !== 'Closed' 
                        && $_POST['status'] === 'Closed') {
-                       $prep = $dbh->prepare("
-                               UPDATE bugdb
-                                 SET status = 'Closed'
-                                 WHERE id = ?
-                                 LIMIT 1
-                       ");
-                       $prep->execute(array($bug_id));
+                       /* Change the bug status to Closed */
+                       bugs_status_change($bug_id, 'Closed');
                        
                        $in = $bug;
                        /* Just change the bug status */
                        $in['status'] = $_POST['status'];
                        
+                       $changed = bug_diff($bug, $in);
+                       if (!empty($changed)) {
+                               $log_comment = bug_diff_render_html($changed);
+                               if (!empty($log_comment)) {
+                                       /* Add a log of status change */
+                                       $res = bugs_add_comment($bug_id, $from, 
'', $log_comment, 'log');
+                               }
+                       }
+                       
                        /* Send a mail notification when automatically closing 
a bug */
-                       mail_bug_updates($bug, $in, "{$user}@php.net", 
$ncomment, 2, $bug_id);
+                       mail_bug_updates($bug, $in, $from, $ncomment, 2, 
$bug_id);
                }
                
                echo json_encode(array('result' => array('status' => $bug)));


--
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to