<?php include 'include/header.inc.php'; echo '<div class="hidden" id="phpbread"><a href="project_List.php">My Projects</a>->'; echo '<a href="project_Summary.php?PID=' . $_REQUEST['PID'] . '">'; echo Get_Project_Name($_REQUEST['PID']); echo '</a>->'; echo Get_Iteration_Name($_REQUEST['IID']); echo '</div>'; ?> <script> $(function() { document.title = 'Practical Agile: '+$("#phpbread").text().substring(13); $("#breadcrumbs").html($("#phpbread").html()); if ($("#phpnavicons")){ $("#navicons").html($("#phpnavicons").html()); } $('.date').datepicker({ numberOfMonths: 2, dateFormat: "yy-mm-dd", showButtonPanel: true }); }); </script> <script> $(document).ready(function(){
function print_releasesummary($proj, $tsql) { global $DBConn; $Res = mysqli_query($DBConn, $tsql); $s = '<table align="center" width=20%><tr><td class="larger">' . Get_Project_Name($proj) . '</td>'; $c = '<tr><td bgcolor="#F2F2F2" align="Right" class="larger">Cards</td>'; $p = '<tr><td bgcolor="#F2F2F2" align="Right" class="larger">Points</td>'; while ($Row = mysqli_fetch_assoc($Res)) { $s .= '<td align="center" class="larger" bgcolor="#F2F2F2"><b>' . $Row['Status'] . '<b></td>'; $c .= '<td align="center" bgcolor="#FaF2F2">' . $Row['relcount'] . '</td>'; $p .= '<td align="center" bgcolor="#FaF2F2">' . $Row['relsize'] . '</td>'; } $s .= '</tr>'; $p .= '</tr>'; $c .= '</tr></table>'; echo $s . $p . $c; }
} } } mysqli_query($DBConn, 'DELETE FROM from upload u left Join story s on u.AID = s.AID where s.Project_ID =' . ($_REQUEST['PID'] + 0)); mysqli_query($DBConn, 'DELETE FROM story WHERE Project_ID = ' . ($_REQUEST['PID'] + 0)); mysqli_query($DBConn, 'DELETE FROM story_status WHERE Project_ID = ' . ($_REQUEST['PID'] + 0)); mysqli_query($DBConn, 'DELETE FROM story_type WHERE Project_ID = ' . ($_REQUEST['PID'] + 0)); mysqli_query($DBConn, 'DELETE FROM iteration WHERE Project_ID = ' . ($_REQUEST['PID'] + 0)); mysqli_query($DBConn, 'DELETE FROM tags WHERE Project_ID = ' . ($_REQUEST['PID'] + 0)); mysqli_query($DBConn, 'DELETE FROM user_project WHERE Project_ID = ' . ($_REQUEST['PID'] + 0)); mysqli_query($DBConn, 'DELETE FROM audit WHERE PID = ' . ($_REQUEST['PID'] + 0)); if (mysqli_query($DBConn, 'DELETE FROM project WHERE ID = ' . $_REQUEST['PID'])) { $showForm = false; $deleted = true; header('Location:project_List.php'); } } else { if ($_REQUEST['nodelete']) { auditit($_REQUEST['PID'], 0, $_SESSION['Email'], 'Deleted Project ', Get_Project_Name($_REQUEST['PID'])); $showForm = false; $deleted = false; } } if ($showForm) { echo '<br>Are you sure you want to delete:<br><ul>' . '<li>points</li>' . '<li>comments</li>' . '<li>object</li>' . '<li> stories</li>' . '<li>iteration</li>' . '<li>story-status</li>' . '<li>story type and</li>' . '<li>tags</li>' . '<li>audit logs</li>' . '<li>Uploaded files</li>' . '</ul> as well as this project?<p>'; echo '<br>Users are <b>not</b> deleted<br>'; echo '<form method="post" action="?">' . 'Are you sure you want to delete this Project?<br />' . '<input type="hidden" name="PID" value="' . $_REQUEST['PID'] . '">' . '<input type="submit" name="delete" value="Yes, Delete"> ' . '<input type="submit" name="nodelete" value="No, Don\'t Delete">' . '</form>'; } else { header('Location:project_List.php'); } include 'include/footer.inc.php';
echo '<li><a href="releaseDetails_List.php">Release Planning</a>'; echo $rels; echo '</li><li></li>'; echo '<li><a href="project_Edit.php">New Project</a></li>'; echo '<li><a href="user_List.php">User Admin</a></li>'; echo '<li><a href="sizeType_List.php">Story Size Type</a></li>'; echo '<li><a href="size_List.php">Story Sizes</a></li>'; echo '<li><a href="report_List.php">Reports Admin</a></li>'; echo '<li><a href="hint_Import.php">Import Hints</a></li>'; echo '<li>'; echo '<li><a href="audit_Truncate.php">Truncate Audit table</a></li>'; echo '</ul></li>'; } // Project specific Stuff if (isset($_REQUEST['PID'])) { echo '<li><a href="#"> ' . Get_Project_Name($_REQUEST['PID']) . ' </a><ul>'; echo '<li><a href="project_Summary.php?PID=' . $_REQUEST['PID'] . '">Project Summary</a></li>'; echo '<li><a href="iteration_List.php?PID=' . $_REQUEST['PID'] . '">Iterations (& history)</a></li>'; echo '<li></li>'; if ($isProjectAdmin) { echo '<li><a href="releaseDetails_List.php">Release Planning</a>'; echo $rels; echo '</li>'; echo '<li><a href="project_Edit.php?PID=' . $_REQUEST['PID'] . '">Edit Project</a></li>'; echo '<li><a href="storyType_List.php?PID=' . $_REQUEST['PID'] . '">Story Type</a></li>'; echo '<li><a href="storyStatus_List.php?PID=' . $_REQUEST['PID'] . '">Story Status</a></li>'; echo '<li><a href="tags_Reset.php?PID=' . $_REQUEST['PID'] . '">Clear unused Tags</a></li>'; echo '<li></li>'; } echo '<li><a href="story_Import.php?PID=' . $_REQUEST['PID'] . '&etype=project">Import Stories</a></li>'; echo '<li><a href="story_Export.php?PID=' . $_REQUEST['PID'] . '&etype=project">Export Project</a></li>';
} // filename for download if (empty($_GET['etype'])) { $filename = "iteration_export.csv"; } else { $filename = $_GET['etype'] . "_export.csv"; } header("Content-Disposition: attachment; filename=\"{$filename}\""); header("Content-Type: text/csv; charset=UTF-16LE"); $out = fopen("php://output", 'w'); $flag = false; $sql = 'SELECT ID as Story, Epic_Rank, Iteration_Rank, ' . ' (select a.ID from story as a where a.AID = story.Parent_Story_ID) as Parent_Story_ID, ' . ' (select release_details.Name from release_details where release_details.ID = story.Release_ID) as Release_Name, ' . ' (select iteration.Name from iteration where iteration.ID = story.Iteration_ID) as Iteration, ' . ' (select user.Friendly_Name from user where user.ID = story.Owner_ID) as Owner, ' . ' Type, Status, Size, Blocked, Summary, Col_1, As_A, Col_2, Acceptance, Tags'; //add numchildren if we are exporting the project if (!empty($_GET['etype'])) { $sql .= ', (select count(c.ID) from story as c where c.Project_ID=' . $_GET['PID'] . ' and c.Parent_Story_ID = story.AID ) as Num_Children'; $audittext = ' Project ' . Get_Project_Name($_GET['PID']); } else { $audittext = ' Iteration ' . Get_Iteration_Name($_GET['IID']); } $sql .= ' FROM story where story.Project_ID=' . $_GET['PID']; if (!empty($_GET['QID'])) { $qsql = 'SELECT QSQL, Qorder, queries.Desc as qdesc FROM queries where ID=' . $_REQUEST['QID']; $QRes = mysqli_query($DBConn, $qsql); $QRow = mysqli_fetch_assoc($QRes); $audittext = ' Query ' . $_GET['QID'] . ' ' . $QRow['qdesc']; $cond = " " . $QRow['QSQL']; $cond = str_replace('{User}', $_SESSION['ID'], $cond); $cond = str_replace('{Iteration}', $_REQUEST['IID'], $cond); $cond = str_replace('{Project}', $_REQUEST['PID'], $cond); $cond = str_replace('{Backlog}', $Project['Backlog_ID'], $cond); $sql .= ' and ' . $cond . ' ' . $QRow['Qorder'];
} $menu .= '</select> to / from this release (Only work NOT already in a release will be added)'; echo $menu; echo ' <input type="hidden" name="Type" value="tree">'; echo ' <input type="hidden" name="Root" value="release">'; echo ' <input type="hidden" name="RID" value="' . $_REQUEST['RID'] . '">'; echo ' <input type="hidden" name="PID" value="' . $Rowp['relproj'] . '">'; echo '</form>'; } // print the tree $instr = rtrim($instr, ","); $sql = 'SELECT * FROM story where project_ID=' . $Rowp['relproj'] . ' and AID IN(' . $instr . ') order by story.project_ID, story.Epic_Rank'; $tree_Res = mysqli_query($DBConn, $sql); echo ' <a href="#" class="btnCollapseAll" id="' . $Rowp['relproj'] . '">Collapse</a>/'; echo '<a href="#" class="btnExpandAll" id="' . $Rowp['relproj'] . '">Expand</a>'; echo '<div class="tree" id="tree' . $Rowp['relproj'] . '"><ul><li class="larger">' . Get_Project_Name($Rowp['relproj']) . '<ul>'; GetTree($tree_Res, 'nodnd'); echo '</li></ul></ul>'; echo '</div>'; } } elseif ($_REQUEST['Root'] == 0) { // Project Tree echo '<table align="center" width=90%><tr><td align="center">'; print_summary($Project['Points_Object_ID'], True); // with velocity echo '</td></tr><tr><td align="center">'; print_Graphx($Project['Points_Object_ID'], False); // Not Small echo '</td></tr></table>'; $sql = 'SELECT * FROM story where story.Project_ID=' . $_REQUEST['PID'] . ' and Parent_Story_ID=0 order by story.Epic_Rank'; GetTreeRoot($sql);
if ($Usr['Admin_User'] == 1) { mysqli_query($DBConn, 'DELETE from user_project where User_ID =' . $_REQUEST['id']); if ($_REQUEST['proj']) { foreach ($_REQUEST['proj'] as $proj) { $sql = 'INSERT into user_project set User_ID=' . $_REQUEST['id'] . ', Project_ID=' . $proj . ' '; $audit = " "; if (isset($_REQUEST['Readonly' . $proj])) { $sql .= ', Readonly =1'; $audit .= 'Read only: True'; } if (isset($_REQUEST['proj_admin' . $proj])) { $sql .= ', Project_Admin=1'; $audit .= 'Proj Admin: True'; } mysqli_query($DBConn, $sql); auditit($proj, 0, $_SESSION['Email'], 'Alter access', $_REQUEST['EMail'], Get_Project_Name($proj) . '" ' . $audit); } } } } else { $error = 'The form failed to process correctly.' . mysqli_error($DBConn); } } } if (!empty($error)) { echo '<div class="error">' . $error . '</div>'; } if ($showForm) { if ($Usr['Admin_User'] == 1 || $_REQUEST['id'] == $_SESSION['ID']) { if (!empty($_REQUEST['id'])) { $user_Res = mysqli_query($DBConn, 'SELECT * FROM user WHERE ID = ' . $_REQUEST['id']);
require_once 'include/dbconfig.inc.php'; require_once 'include/common.php'; $user_details = check_user($_SESSION['user_identifier']); if (!$user_details) { exit; } global $statuscolour; global $Project; global $Sizecount; global $OSizecount; global $Toggle; global $Iterationcount; global $OIterationcount; global $DBConn; global $LockedIteration; $dummy = Get_Project_Name($_GET['PID']); $dummy = buildstatuspop($_GET['PID']); $sumpts = 0; $sql = 'SELECT * FROM story where story.Project_ID=' . $_GET['PID'] . ' and story.Iteration_ID=' . $_GET['IID'] . ' and 0=(select count(Parent_Story_ID) from story as p where p.Parent_Story_ID = story.AID) order by story.Iteration_Rank'; $story_Res = mysqli_query($DBConn, $sql); echo '<ul id="sortable-' . $_GET['LorR'] . '" class="connectedSortable mh15">'; if ($story_Row = mysqli_fetch_assoc($story_Res)) { do { echo '<li class="storybox" id=story_' . $story_Row['AID'] . '>'; PrintStory($story_Row); echo '</li>'; $sumpts += $story_Row['Size']; } while ($story_Row = mysqli_fetch_assoc($story_Res)); } echo '</ul>'; echo '{6B89778E-1B36-4E75-A7F2-301656217750}' . $sumpts;
echo "<div class='aut'>By: " . $row['User_Name'] . ' @ ' . $row['Comment_Date'] . "</div>"; /* The following sql checks whether there's any reply for the comment */ $q = "SELECT * FROM comment WHERE Parent_ID = " . $row['ID']; $r = mysqli_query($DBConn, $q); if (mysqli_num_rows($r) > 0) { echo '<ul id="commentreply_' . $row['ID'] . '">'; while ($row = mysqli_fetch_assoc($r)) { PreviewGetComments($row); } echo "</ul>"; } echo "</li>"; } $Res = mysqli_query($DBConn, 'SELECT * FROM story WHERE AID=' . $_REQUEST['id']); $Row = mysqli_fetch_assoc($Res); Get_Project_Name($Row['Project_ID']); echo '<div id="container">'; echo '<div class="left">' . $Row['Type'] . ': #' . $Row['ID']; $istring = Get_Iteration_Name($Row['Iteration_ID'], False); if ($istring != 'Backlog') { echo ' - ' . $istring; } if ($Row['Owner_ID'] != 0) { echo ' (' . Get_User($Row['Owner_ID'], 0) . ')'; } echo '</div>' . '<div class="right">' . $Row['Size'] . ' pts.' . '</div>' . '<div title="Click here to toggle expanded view" id="summary">' . ' ' . $Row['Summary'] . ' ' . '</div>' . '<div id="detail">'; if (strlen($Row['As_A']) > 0) { echo '<b>As a:</b> ' . html_entity_decode($Row['As_A'], ENT_QUOTES) . '<br>'; } echo '<b>' . $Project['Desc_1'] . '</b>' . html_entity_decode($Row['Col_1'], ENT_QUOTES) . '<br>'; if (strlen($Row['Col_2']) > 0) {