PageRenderTime 48ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/controllers/project.php

https://github.com/mbmccormick/issuebox
PHP | 215 lines | 174 code | 41 blank | 0 comment | 16 complexity | 0711f5af0061164ecf486d920359adb1 MD5 | raw file
  1. <?php
  2. function project_view()
  3. {
  4. Security_Authorize();
  5. $result = mysql_query("SELECT * FROM project WHERE id='" . params('id') . "'");
  6. $project = mysql_fetch_array($result);
  7. if ($project != null)
  8. {
  9. $result = mysql_query("SELECT * FROM issue WHERE projectid='$project[id]' ORDER BY isurgent DESC, number ASC");
  10. while($row = mysql_fetch_array($result))
  11. {
  12. $sql = mysql_query("SELECT COUNT(*) AS rowcount FROM comment WHERE issueid='$row[id]'");
  13. $return = mysql_fetch_array($sql);
  14. $count = $return[rowcount];
  15. $sql = mysql_query("SELECT id, username FROM user WHERE id='$row[createdby]'");
  16. $user = mysql_fetch_array($sql);
  17. if ($row[isclosed] == "0")
  18. $body .= "<div class='list-item issue open'>\n";
  19. else
  20. $body .= "<div class='list-item issue closed' style='display: none;'>\n";
  21. $body .= "<table cellpadding='0' cellspacing='0' style='width: 100%;'>\n";
  22. $body .= "<tr>\n";
  23. $body .= "<td valign='middle'>\n";
  24. $body .= "<h3>#$row[number]&nbsp;&nbsp;<a href='/issue/$row[id]'>" . FriendlyString($row[title], 62) . "</a></h3>";
  25. $body .= "</td>\n";
  26. $body .= "<td valign='middle' align='right'>\n";
  27. if ($row[isurgent] == "1")
  28. $body .= "<em class='urgent-indicator'>Urgent</em>";
  29. if ($row[isclosed] == "1")
  30. $body .= "<em class='closed-indicator'>Closed</em>";
  31. $body .= "</td>\n";
  32. $body .= "</tr>\n";
  33. $body .= "</table>\n";
  34. $body .= "<div id='issue$row[number]' class='wikiStyle truncate'>" . $row[body] . "</div>\n";
  35. $body .= "<br />\n";
  36. $body .= "<div class='options'>\n";
  37. if ($count == 1)
  38. $body .= "<a href='/issue/$row[id]'>$count comment</a>\n";
  39. else
  40. $body .= "<a href='/issue/$row[id]'>$count comments</a>\n";
  41. $body .= "&nbsp;Created " . FriendlyDate(1, strtotime($row[createddate])) . " by <a href='/user/$user[id]'>$user[username]</a>";
  42. $body .= "</div>\n";
  43. $body .= "</div>\n";
  44. }
  45. set("title", $project[name]);
  46. set("body", $body);
  47. set("project", $project);
  48. return html("project/view.php");
  49. }
  50. else
  51. {
  52. set("title", "Project Not Found");
  53. set("type", "project");
  54. return html("common/notfound.php");
  55. }
  56. }
  57. function project_list()
  58. {
  59. Security_Authorize();
  60. $result = mysql_query("SELECT * FROM project ORDER BY name ASC");
  61. while($row = mysql_fetch_array($result))
  62. {
  63. $sql = mysql_query("SELECT COUNT(*) AS rowcount FROM issue WHERE projectid='$row[id]' AND isclosed='0'");
  64. $return = mysql_fetch_array($sql);
  65. $open = $return['rowcount'];
  66. $sql = mysql_query("SELECT COUNT(*) AS rowcount FROM issue WHERE projectid='$row[id]' AND isclosed='1'");
  67. $return = mysql_fetch_array($sql);
  68. $closed = $return['rowcount'];
  69. $sql = mysql_query("SELECT COUNT(*) AS rowcount FROM issue WHERE projectid='$row[id]' AND isclosed='0' AND isurgent='1'");
  70. $return = mysql_fetch_array($sql);
  71. $urgent = $return['rowcount'];
  72. $body .= "<div class='list-item project'>\n";
  73. $body .= "<table cellpadding='0' cellspacing='0' style='width: 100%;'><tr>\n";
  74. $body .= "<td width='100%'>\n";
  75. $body .= "<h3><a href='/project/$row[id]'>" . FriendlyString($row['name'], 40) . "</a></h3><br />\n";
  76. $body .= "<p>" . FriendlyString($row['description'], 85) . "</p>\n";
  77. $body .= "</td>\n";
  78. $body .= "<td>\n";
  79. $body .= "<div class='counter'>\n";
  80. if ($urgent > 0)
  81. $body .= "<big class='urgent'>$open</big>\n";
  82. else
  83. $body .= "<big>$open</big>\n";
  84. $body .= "Open Issues\n";
  85. $body .= "</div>\n";
  86. $body .= "</td>\n";
  87. $body .= "<td>\n";
  88. $body .= "<div class='counter'>\n";
  89. $body .= "<big>$closed</big>\n";
  90. $body .= "Closed Issues\n";
  91. $body .= "</div>\n";
  92. $body .= "</td>\n";
  93. $body .= "</tr></table>\n";
  94. $body .= "</div>\n";
  95. }
  96. if (mysql_num_rows($result) == 0)
  97. {
  98. $body .= "<div class='list-item project'>\n";
  99. $body .= "<p>There are currently no projects to display.</p>\n";
  100. $body .= "</div>\n";
  101. }
  102. set("title", "Projects");
  103. set("body", $body);
  104. return html("project/list.php");
  105. }
  106. function project_add()
  107. {
  108. Security_Authorize();
  109. set("title", "New Project");
  110. return html("project/add.php");
  111. }
  112. function project_add_post()
  113. {
  114. Security_Authorize();
  115. $now = date("Y-m-d H:i:s");
  116. $sql = "INSERT INTO project (name, description, createdby, createddate) VALUES
  117. ('" . mysql_real_escape_string($_POST[name]) . "', '" . mysql_real_escape_string($_POST[description]) . "', '$_SESSION[CurrentUser_ID]', '" . $now . "')";
  118. if (!mysql_query($sql))
  119. {
  120. die('Error: ' . mysql_error());
  121. }
  122. $sql = mysql_query("SELECT * FROM project WHERE id='" . mysql_insert_id() . "'");
  123. $result = mysql_fetch_array($sql);
  124. LogActivity(1, $result[id], 1);
  125. header("Location: /&success=Your project was created successfully!");
  126. exit;
  127. }
  128. function project_edit()
  129. {
  130. Security_Authorize();
  131. $result = mysql_query("SELECT * FROM project WHERE id='" . params('id') . "'");
  132. $project = mysql_fetch_array($result);
  133. if ($project != null)
  134. {
  135. set("title", "Edit Project");
  136. set("project", $project);
  137. return html("project/edit.php");
  138. }
  139. else
  140. {
  141. set("title", "Project Not Found");
  142. set("type", "project");
  143. return html("common/notfound.php");
  144. }
  145. }
  146. function project_edit_post()
  147. {
  148. Security_Authorize();
  149. $now = date("Y-m-d H:i:s");
  150. $sql = "UPDATE project SET name='" . mysql_real_escape_string($_POST[name]) . "', description='" . mysql_real_escape_string($_POST[description]) . "' WHERE id='" . params('id') . "'";
  151. mysql_query($sql);
  152. LogActivity(1, params('id'), 2);
  153. header("Location: /project/" . params('id') . "&success=Your project was updated successfully!");
  154. exit;
  155. }
  156. function project_delete()
  157. {
  158. Security_Authorize();
  159. $sql = "DELETE FROM project WHERE id='" . params('id') . "'";
  160. mysql_query($sql);
  161. $sql = "SELECT * FROM issue WHERE projectid='" . params('id') . "'";
  162. $result = mysql_query($sql);
  163. while($row = mysql_fetch_array($result))
  164. {
  165. $sql = "DELETE FROM comment WHERE issueid='" . params('id') . "'";
  166. mysql_query($sql);
  167. }
  168. $sql = "DELETE FROM issue WHERE projectid='" . params('id') . "'";
  169. mysql_query($sql);
  170. PurgeActivity(1, params('id'));
  171. header("Location: /&success=Your project was deleted successfully!");
  172. exit;
  173. }
  174. ?>