|
From: Ulf E. <ulf...@us...> - 2005-08-22 20:31:05
|
Update of /cvsroot/phpbt/phpbt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18132/phpbt Modified Files: bug.php config-dist.php include.php install.php query.php Log Message: Added support to bookmark/monitor a set of bugs Index: bug.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/bug.php,v retrieving revision 1.140 retrieving revision 1.141 diff -u -r1.140 -r1.141 --- bug.php 22 Aug 2005 19:44:46 -0000 1.140 +++ bug.php 22 Aug 2005 20:30:56 -0000 1.141 @@ -75,6 +75,33 @@ } /// +/// Add (or remove) a bookmark for this bug +function bookmark_bug($bug_id, $add) { + global $u, $db, $now; + + if ($add) { + // Check that the user hasn't bookmarked this bug + if (!$db->getOne("select count(*) from ".TBL_BOOKMARK." where bug_id = $bug_id and user_id = $u")) { + // Add bookmark + $db->query("insert into ".TBL_BOOKMARK." (user_id, bug_id) values ($u, $bug_id)"); + } + } + else { + // Check that the user has bookmarked this bug + if ($db->getOne("select count(*) from ".TBL_BOOKMARK." where bug_id = $bug_id and user_id = $u")) { + // Remove bookmark + $db->query("delete from ".TBL_BOOKMARK." where user_id=$u and bug_id=$bug_id"); + } + } + if (isset($_POST['pos'])) { + $posinfo = "&pos={$_POST['pos']}"; + } else { + $posinfo = ''; + } + header("Location: bug.php?op=show&bugid=$bug_id$posinfo"); +} + +/// /// Beautify the bug comments function format_comments($comments) { global $me; @@ -638,6 +665,7 @@ $t->assign(array( 'error' => $error, 'already_voted' => $db->getOne("select count(*) from ".TBL_BUG_VOTE." where bug_id = $bugid and user_id = $u"), + 'already_bookmarked' => $db->getOne("select count(*) from ".TBL_BOOKMARK." where bug_id = $bugid and user_id = $u"), 'num_votes' => $db->getOne("select count(*) from ".TBL_BUG_VOTE." where bug_id = $bugid"), 'bug_dependencies' => $bug_dependencies, 'bug_blocks' => $bug_blocks @@ -720,6 +748,12 @@ case 'viewvotes': vote_view(check_id($_GET['bugid'])); break; + case 'addbookmark': + bookmark_bug(check_id($_GET['bugid']), true); + break; + case 'delbookmark': + bookmark_bug(check_id($_GET['bugid']), false); + break; } } else { header("Location: query.php"); Index: config-dist.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/config-dist.php,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- config-dist.php 22 Aug 2005 19:44:46 -0000 1.31 +++ config-dist.php 22 Aug 2005 20:30:56 -0000 1.32 @@ -64,6 +64,7 @@ define ('TBL_PROJECT_PERM', TBL_PREFIX.'project_perm'); define ('TBL_DATABASE', TBL_PREFIX.'database_server'); define ('TBL_SITE', TBL_PREFIX.'site'); +define ('TBL_BOOKMARK', TBL_PREFIX.'bookmark'); define ('ONEDAY', 86400); Index: include.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/include.php,v retrieving revision 1.136 retrieving revision 1.137 diff -u -r1.136 -r1.137 --- include.php 22 Aug 2005 19:44:46 -0000 1.136 +++ include.php 22 Aug 2005 20:30:56 -0000 1.137 @@ -220,11 +220,15 @@ $db->getRow(sprintf($QUERY['include-template-owner'], $u), DB_FETCHMODE_ORDERED); list($reporter_open, $reporter_closed) = $db->getRow(sprintf($QUERY['include-template-reporter'], $u), DB_FETCHMODE_ORDERED); + list($bookmarks_open, $bookmarks_closed) = + $db->getRow(sprintf($QUERY['include-template-bookmark'], $u), DB_FETCHMODE_ORDERED); $t->assign(array( 'owner_open' => $owner_open ? $owner_open : 0, 'owner_closed' => $owner_closed ? $owner_closed : 0, 'reporter_open' => $reporter_open ? $reporter_open : 0, 'reporter_closed' => $reporter_closed ? $reporter_closed : 0, + 'bookmarks_open' => $bookmarks_open ? $bookmarks_open : 0, + 'bookmarks_closed' => $bookmarks_closed ? $bookmarks_closed : 0, 'perm' => $perm, )); } Index: install.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/install.php,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- install.php 22 Aug 2005 19:44:46 -0000 1.49 +++ install.php 22 Aug 2005 20:30:56 -0000 1.50 @@ -125,6 +125,7 @@ '/TBL_PROJECT_PERM/' => $_POST['tbl_prefix'].'project_perm', '/TBL_DATABASE/' => $_POST['tbl_prefix'].'database_server', '/TBL_SITE/' => $_POST['tbl_prefix'].'site', + '/TBL_BOOKMARK/' => $_POST['tbl_prefix'].'bookmark', '/OPTION_ADMIN_EMAIL/' => $_POST['admin_login'], '/OPTION_ADMIN_PASS/' => $_POST['encrypt_pass'] ? md5($_POST['admin_pass']) : $_POST['admin_pass'], '/OPTION_PHPBT_EMAIL/' => $_POST['phpbt_email'], Index: query.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/query.php,v retrieving revision 1.102 retrieving revision 1.103 diff -u -r1.102 -r1.103 --- query.php 22 Aug 2005 19:44:46 -0000 1.102 +++ query.php 22 Aug 2005 20:30:56 -0000 1.103 @@ -53,7 +53,7 @@ } -function build_query($assignedto, $reportedby, $open) { +function build_query($assignedto, $reportedby, $open, $bookmarked) { global $db, $perm, $restricted_projects; $paramstr = ''; @@ -70,11 +70,13 @@ } // Open bugs assigned to the user -- a hit list - if ($assignedto || $reportedby) { + if ($assignedto || $reportedby || $bookmarked) { $query[] = 'b.status_id '.($open ? '' : 'not '). 'in ('.OPEN_BUG_STATUSES.')'; if ($assignedto) { $query[] = "assigned_to = {$_SESSION['uid']}"; + } else if ($bookmarked) { + $query[] = "b.bug_id = bookmark.bug_id AND bookmark.user_id = {$_SESSION['uid']}"; } else { $query[] = "b.created_by = {$_SESSION['uid']}"; } @@ -237,11 +239,11 @@ } } -function list_items($assignedto = 0, $reportedby = 0, $open = 0) { +function list_items($assignedto = 0, $reportedby = 0, $open = 0, $bookmarked = 0) { global $me, $db, $t, $select, $u, $default_db_fields, $all_db_fields, $QUERY; $query_db_fields = array( - 'bug_id' => 'bug_id', + 'bug_id' => 'b.bug_id', 'title' => 'title', 'description' => 'description', 'url' => 'url', @@ -267,7 +269,7 @@ ); $db_headers = array( - 'bug_id' => 'bug_id', + 'bug_id' => 'b.bug_id', 'title' => 'title', 'description' => 'description', 'url' => 'url', @@ -327,13 +329,13 @@ if (empty($_SESSION['queryinfo']['query']) or isset($op)) { list($_SESSION['queryinfo']['query'], $paramstr) = - build_query($assignedto, $reportedby, $open); + build_query($assignedto, $reportedby, $open, $bookmarked); } $desired_fields = !empty($_SESSION['db_fields']) ? $_SESSION['db_fields'] : $default_db_fields; - $query_fields = array('bug_id as bug_link_id', + $query_fields = array('b.bug_id as bug_link_id', 'severity.severity_color', 'priority.priority_color'); foreach ($desired_fields as $field) { $query_fields[] = $query_db_fields[$field]; @@ -400,6 +402,7 @@ $reportedby = !empty($_GET['reportedby']) ? $_GET['reportedby'] : 0; $assignedto = !empty($_GET['assignedto']) ? $_GET['assignedto'] : 0; $open = !empty($_GET['open']) ? $_GET['open'] : 0; +$bookmarked = !empty($_GET['bookmarked']) ? $_GET['bookmarked'] : 0; // Make sure the page variable is numeric, if it's populated if (!empty($_GET['page'])) $_GET['page'] = preg_replace('/[^0-9]/', '', $_GET['page']); @@ -419,11 +422,11 @@ else show_query(); break; case 'mybugs' : - if ($auth->is_authenticated()) list_items($assignedto, $reportedby, $open); + if ($auth->is_authenticated()) list_items($assignedto, $reportedby, $open, $bookmarked); else show_query(); break; default : show_query(); break; } -else list_items($assignedto, $reportedby, $open); +else list_items($assignedto, $reportedby, $open, $bookmarked); ?> |