Commit: 688153af0567592a26f72231e9bb3a9585d12f19 Author: Felipe Pena <[email protected]> Sun, 23 Dec 2012 19:54:01 -0200 Parents: d63b0311be5dc790761359607934e242cc963830 Branches: master
Link: http://git.php.net/?p=web/bugs.git;a=commitdiff;h=688153af0567592a26f72231e9bb3a9585d12f19 Log: - Added "Related reports" tab to display the related bug reports Changed paths: M include/functions.php M www/bug.php Diff: diff --git a/include/functions.php b/include/functions.php index 2a8647c..56df589 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1882,6 +1882,15 @@ function make_ticket_links($text) ); } +function get_ticket_links($text) +{ + $matches = array(); + + preg_match_all('/(?<![>a-z])(?:bug(?:fix)?|feat(?:ure)?|doc(?:umentation)?|req(?:uest)?|duplicated of)\s+#?([0-9]+)/i', $text, $matches); + + return $matches; +} + function handle_pear_errors ($error_obj) { response_header("Oops! We are sorry that you are unable to report an undocumented feature today."); diff --git a/www/bug.php b/www/bug.php index db489b0..d33b56e 100644 --- a/www/bug.php +++ b/www/bug.php @@ -230,6 +230,8 @@ if (isset($_POST['ncomment']) && !isset($_POST['preview']) && $edit == 3) { } $res = bugs_add_comment($bug_id, $_POST['in']['commentemail'], $_POST['in']['name'], $ncomment, 'comment'); + + mark_related_bugs($_POST['in']['commentemail'], $_POST['in']['name'], $ncomment); } while (false); @@ -349,6 +351,8 @@ if (isset($_POST['ncomment']) && !isset($_POST['preview']) && $edit == 3) { // Add normal comment if (!empty($ncomment)) { $res = bugs_add_comment($bug_id, $from, '', $ncomment, 'comment'); + + mark_related_bugs($from, '', $ncomment); } } } elseif (isset($_POST['in']) && isset($_POST['preview']) && $edit == 2) { @@ -523,6 +527,8 @@ if (isset($_POST['ncomment']) && !isset($_POST['preview']) && $edit == 3) { // Add normal comment if (!empty($ncomment)) { $res = bugs_add_comment($bug_id, $from, $comment_name, $ncomment, 'comment'); + + mark_related_bugs($from, $comment_name, $ncomment); } } } elseif (isset($_POST['in']) && isset($_POST['preview']) && $edit == 1) { @@ -1062,7 +1068,8 @@ if ($show_bug_info && is_array($bug_comments) && count($bug_comments) && $bug['s 'type_all' => 'All', 'type_comment' => 'Comments', 'type_log' => 'Changes', - 'type_svn' => 'Git/SVN commits' + 'type_svn' => 'Git/SVN commits', + 'type_related' => 'Related reports' ); if (!isset($_COOKIE['history_tab']) || !isset($history_tabs[$_COOKIE['history_tab']])) { @@ -1149,6 +1156,21 @@ response_footer($bug_JS); // Helper functions +function mark_related_bugs($from, $comment_name, $ncomment) +{ + global $bug_id; + + $related = get_ticket_links($ncomment); + + /** + * Adds a new comment on the related bug pointing to the current report + */ + for ($i = 0; $i < count($related[0]); ++$i) { + bugs_add_comment($related[1][$i], $from, $comment_name, + 'Related To: Bug #'. $bug_id, 'related'); + } +} + function output_note($com_id, $ts, $email, $comment, $comment_type, $comment_name, $is_hidden = false) { global $edit, $bug_id, $dbh, $is_trusted_developer, $logged_in; -- PHP Webmaster List Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
