<?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(){
Example #2
0
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"> &nbsp; ' . '<input type="submit" name="nodelete" value="No, Don\'t Delete">' . '</form>';
} else {
    header('Location:project_List.php');
}
include 'include/footer.inc.php';
Example #4
0
    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="#">&nbsp;' . Get_Project_Name($_REQUEST['PID']) . '&nbsp;</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'];
Example #6
0
             }
             $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 '&nbsp; &nbsp;<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);
Example #7
0
            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) {