Example #1
0
 /**
  * Populates the array of calendar information
  * 
  * @return array
  */
 private function buildCal()
 {
     $counter = 0;
     $ms = new milestone();
     $tsk = new task();
     for ($j = 0; $j < $this->weeksInMonth; $j++) {
         for ($i = 0; $i < 7; $i++) {
             $counter++;
             $theday = $counter - $this->firstDay;
             if ($theday < 1) {
                 $this->calendar[$j][$i]["val"] = $this->daysLastMonth + $theday;
                 $this->calendar[$j][$i]["currmonth"] = 0;
             } elseif ($theday > $this->daysInMonth) {
                 $this->calendar[$j][$i]["val"] = $theday - $this->daysInMonth;
                 $this->calendar[$j][$i]["currmonth"] = 0;
             } else {
                 $miles = $ms->getTodayMilestones($this->month, $this->year, $theday, $this->project);
                 $milesnum = count($miles);
                 $tasks = $tsk->getTodayTasks($this->month, $this->year, $theday, $this->project);
                 $tasksnum = count($tasks);
                 $this->calendar[$j][$i] = array("val" => $theday, "milestones" => $miles, "milesnum" => $milesnum, "tasks" => $tasks, "tasksnum" => $tasksnum, "currmonth" => 1);
             }
         }
     }
     return $this;
 }
 private function addMilestones($project_id, $milestonesArray)
 {
     $milestonesHash = array();
     $addMilestone = new milestone();
     foreach ($milestonesArray->{'milestone'} as $milestone) {
         $name = $milestone->{'title'};
         $desc = $name;
         $end = $milestone->{'deadline'};
         $status = 1;
         if ($milestone->{'completed'} == "completed") {
             $status = 0;
         }
         $mid = $addMilestone->add($project_id, $name, $desc, $end, $status);
         if ($mid) {
             $iid = "" . $milestone->id;
             $milestonesHash[$iid] = $mid;
             ++$this->milesCount;
         }
     }
     return $milestonesHash;
 }
Example #3
0
 /**
  * Finish / close a tasklist
  *
  *
  * @param int $id Tasklist ID
  * @param bool $closeMilestones Determines if the parent milestone is closed too if $id is the last assigned tasklist to that ms
  * @return bool
  */
 function close_liste($id, $closeMilestones = true)
 {
     global $conn, $mylog;
     $id = (int) $id;
     $updStmt = $conn->prepare("UPDATE tasklist SET status = 0 WHERE ID = ?");
     $upd = $updStmt->execute(array($id));
     if ($closeMilestones) {
         // Close assigned milestone too, if no other open tasklists are assigned to it
         $milestone = $conn->query("SELECT milestone FROM tasklist WHERE ID = {$id}")->fetch();
         if ($milestone[0] > 0) {
             $cou = $conn->query("SELECT count(*) FROM tasklist WHERE milestone = {$milestone['0']} AND status = 1")->fetch();
             if ($cou[0] == 0) {
                 $miles = new milestone();
                 $miles->close($milestone[0]);
             }
         }
     }
     // Close tasks in this list
     $tasks = $this->getTasksFromList($id);
     if (!empty($tasks)) {
         $taskobj = new task();
         foreach ($tasks as $task) {
             $taskobj->close($task["ID"]);
         }
     }
     // Log entry
     if ($upd) {
         $nam = $conn->query("SELECT project, name FROM tasklist WHERE ID = {$id}")->fetch();
         $project = $nam[0];
         $name = $nam[1];
         $mylog->add($name, 'tasklist', 5, $project);
         return true;
     } else {
         return false;
     }
 }
Example #4
0
 /**
  * Removes a user from a project
  *
  * @param int $user User ID of user to remove
  * @param int $id Project ID of project to remove from
  * @return bool
  */
 function deassign($user, $id)
 {
     global $conn;
     $sqlStmt = $conn->prepare("DELETE FROM projekte_assigned WHERE user = ? AND projekt = ?");
     $milestone = new milestone();
     // Delete the users assignments to closed milestones
     $donemiles = $milestone->getDoneProjectMilestones($id);
     if (!empty($donemiles)) {
         $sql1Stmt = $conn->prepare("DELETE FROM milestones_assigned WHERE user = ? AND milestone = ?");
         foreach ($donemiles as $dm) {
             $sql1 = $sql1Stmt->execute(array((int) $user, $dm['ID']));
         }
     }
     // Delete the users assignments to open milestones
     $openmiles = $milestone->getAllProjectMilestones($id, 100000);
     if (!empty($openmiles)) {
         $sql2Stmt = $conn->prepare("DELETE FROM milestones_assigned WHERE user = ? AND milestone = ?");
         foreach ($openmiles as $om) {
             $sql2 = $sql2Stmt->execute(array((int) $user, $om['ID']));
         }
     }
     $task = new task();
     $tasks = $task->getProjectTasks($id);
     // Delete tasks assignments of the user
     if (!empty($tasks)) {
         $sql3Stmt = $conn->prepare("DELETE FROM tasks_assigned WHERE user = ? AND task = ?");
         foreach ($tasks as $t) {
             $sql3 = $sql3Stmt->execute(array((int) $user, $t['ID']));
         }
     }
     // Finally remove the user from the project
     $del = $sqlStmt->execute(array((int) $user, (int) $id));
     if ($del) {
         $userObj = new user();
         $user = $userObj->getProfile($user);
         $this->mylog->add($user["name"], 'user', 7, $id);
         return true;
     } else {
         return false;
     }
 }
<?php
require("./init.php");
// check if user is logged in
if (!isset($_SESSION["userid"]))
{
    $template->assign("loginerror", 0);
    $template->display("login.tpl");
    die();
}

$milestone = new milestone();

$action = getArrayVal($_GET, "action");
$mid = getArrayVal($_GET, "mid");

$mode = getArrayVal($_GET, "mode");
$template->assign("mode", $mode);

$id = getArrayVal($_GET, "id");
$name = getArrayVal($_POST, "name");
$desc = getArrayVal($_POST, "desc");
$status = getArrayVal($_POST, "status");
$user = getArrayVal($_POST, "user");
$end = getArrayVal($_POST, "end");
$lim = getArrayVal($_POST, "lim");

$project = array();
$project['ID'] = $id;
$template->assign("project", $project);
// define the active tab in the project navigation
$classes = array("overview" => "overview", "msgs" => "msgs", "tasks" => "tasks", "miles" => "miles_active", "files" => "files", "users" => "users", "tracker" => "tracking");
Example #6
0
<?php

require "./init.php";
// check if user is logged in
if (!isset($_SESSION["userid"])) {
    $template->assign("loginerror", 0);
    $template->display("login.tpl");
    die;
}
$milestone = new milestone();
$action = getArrayVal($_GET, "action");
$mid = getArrayVal($_GET, "mid");
$mode = getArrayVal($_GET, "mode");
$template->assign("mode", $mode);
$id = getArrayVal($_GET, "id");
$name = getArrayVal($_POST, "name");
$desc = getArrayVal($_POST, "desc");
$status = getArrayVal($_POST, "status");
$user = getArrayVal($_POST, "user");
$end = getArrayVal($_POST, "end");
$lim = getArrayVal($_POST, "lim");
$project = array();
$project['ID'] = $id;
$template->assign("project", $project);
// define the active tab in the project navigation
$classes = array("overview" => "overview", "msgs" => "msgs", "tasks" => "tasks", "miles" => "miles_active", "files" => "files", "users" => "users", "tracker" => "tracking");
$template->assign("classes", $classes);
// check if the user belongs to the current project. die if he does not.
if (!chkproject($userid, $id)) {
    $errtxt = $langfile["notyourproject"];
    $noperm = $langfile["accessdenied"];
Example #7
0
     $errtxt = $langfile["nopermission"];
     $noperm = $langfile["accessdenied"];
     $template->assign("errortext", "{$errtxt}<br>{$noperm}");
     $template->display("error.tpl");
     die;
 }
 if (!chkproject($userid, $id)) {
     $errtxt = $langfile["notyourproject"];
     $noperm = $langfile["accessdenied"];
     $template->assign("errortext", "{$errtxt}<br>{$noperm}");
     $template->display("error.tpl");
     die;
 }
 $tasklist = new tasklist();
 $myproject = new project();
 $milestone = new milestone();
 // Get open and closed tasklists
 $lists = $tasklist->getProjectTasklists($id);
 $oldlists = $tasklist->getProjectTasklists($id, 0);
 // Get number of assignable users
 $project_members = $myproject->getProjectMembers($id, $myproject->countMembers($id));
 // Get all the milestones in the project
 $milestones = $milestone->getAllProjectMilestones($id);
 //get the current project
 $pro = $myproject->getProject($id);
 $projectname = $pro["name"];
 $title = $langfile['tasks'];
 $template->assign("title", $title);
 $template->assign("milestones", $milestones);
 $template->assign("projectname", $projectname);
 $template->assign("assignable_users", $project_members);
Example #8
0
 /**
  * Return a message including its answers
  *
  * @param int $id Eindeutige Nummer der Nachricht
  * @return array $message Eigenschaften der Nachricht
  */
 function getMessage($id)
 {
     global $conn;
     $id = (int) $id;
     $messageStmt = $conn->prepare("SELECT * FROM messages WHERE ID = ? LIMIT 1");
     $messageStmt->execute(array($id));
     $message = $messageStmt->fetch();
     $milesobj = new milestone();
     if (!empty($message)) {
         $repliesStmt = $conn->prepare("SELECT COUNT(*) FROM messages WHERE replyto = ?");
         $repliesStmt->execute(array($id));
         $replies = $repliesStmt->fetch();
         $replies = $replies[0];
         $user = new user();
         $avatar = $user->getAvatar($message["user"]);
         $userGender = $conn->query("SELECT gender FROM user WHERE ID = {$message['user']}")->fetch();
         $gender = $userGender[0];
         $message["gender"] = $gender;
         $project = $conn->query("SELECT name FROM projekte WHERE ID = {$message['project']}")->fetch();
         $message["pname"] = $project[0];
         $posted = date(CL_DATEFORMAT . " - H:i", $message["posted"]);
         $message["postdate"] = $posted;
         $message["endstring"] = $posted;
         $message["replies"] = $replies;
         $message["avatar"] = $avatar;
         $message["title"] = $message["title"];
         $message["text"] = $message["text"];
         $message["username"] = $message["username"];
         $attached = $this->getAttachedFiles($message["ID"]);
         $message["files"] = $attached;
         if ($message["milestone"] > 0) {
             $miles = $milesobj->getMilestone($message["milestone"]);
         } else {
             $miles = array();
         }
         $message["milestones"] = $miles;
         return $message;
     } else {
         return false;
     }
 }
 /**
  * Finish / close a tasklist
  *
  * @param int $id Tasklist ID
  * @return bool
  */
 function close_liste($id)
 {
     $id = (int) $id;
     $upd = mysql_query("UPDATE tasklist SET status = 0 WHERE ID = {$id}");
     // Close assigned milestone too, if no other open tasklists are assigned to it
     $sql = mysql_query("SELECT milestone FROM tasklist WHERE ID = {$id}");
     $milestone = mysql_fetch_row($sql);
     if ($milestone[0] > 0) {
         $sql2 = mysql_query("SELECT count(*) FROM tasklist WHERE milestone = {$milestone['0']} AND status = 1");
         $cou = mysql_fetch_row($sql2);
         if ($cou[0] == 0) {
             $miles = new milestone();
             $miles->close($milestone[0]);
         }
     }
     $tasks = $this->getTasksFromList($id);
     if (!empty($tasks)) {
         $taskobj = new task();
         foreach ($tasks as $task) {
             $taskobj->close($task["ID"]);
         }
     }
     // Log entry
     if ($upd) {
         $nam = mysql_query("SELECT project, name FROM tasklist WHERE ID = {$id}");
         $nam = mysql_fetch_row($nam);
         $project = $nam[0];
         $name = $nam[1];
         $this->mylog->add($name, 'tasklist', 5, $project);
         return true;
     } else {
         return false;
     }
 }
Example #10
0
 /**
  * Return a message including its answers
  *
  * @param int $id Eindeutige Nummer der Nachricht
  * @return array $message Eigenschaften der Nachricht
  */
 function getMessage($id)
 {
     $id = (int) $id;
     $sel = mysql_query("SELECT * FROM messages WHERE ID = {$id} LIMIT 1");
     $message = mysql_fetch_array($sel, MYSQL_ASSOC);
     $tagobj = new tags();
     $milesobj = new milestone();
     if (!empty($message)) {
         $replies = mysql_query("SELECT COUNT(*) FROM messages WHERE replyto = {$id}");
         $replies = mysql_fetch_row($replies);
         $replies = $replies[0];
         $user = new user();
         $avatar = $user->getAvatar($message["user"]);
         $sel = mysql_query("SELECT gender FROM user WHERE ID = {$message['user']}");
         $ds = mysql_fetch_row($sel);
         $gender = $ds[0];
         $message["gender"] = $gender;
         $project = mysql_query("SELECT name FROM projekte WHERE ID = {$message['project']}");
         $project = mysql_fetch_row($project);
         $project = $project[0];
         $project["name"] = stripslashes($project["name"]);
         $message["pname"] = $project;
         $posted = date(CL_DATEFORMAT . " - H:i", $message["posted"]);
         $message["postdate"] = $posted;
         $message["endstring"] = $posted;
         $message["replies"] = $replies;
         $message["avatar"] = $avatar;
         $message["title"] = stripslashes($message["title"]);
         $message["text"] = stripslashes($message["text"]);
         $message["username"] = stripslashes($message["username"]);
         $message["tagsarr"] = $tagobj->splitTagStr($message["tags"]);
         $message["tagnum"] = count($message["tagsarr"]);
         $attached = $this->getAttachedFiles($message["ID"]);
         $message["files"] = $attached;
         if ($message["milestone"] > 0) {
             $miles = $milesobj->getMilestone($message["milestone"]);
         } else {
             $miles = array();
         }
         $message["milestones"] = $miles;
         return $message;
     } else {
         return false;
     }
 }
Example #11
0
 /**
  * Copy a project
  * by: Daniel Tlach <*****@*****.**>,
  * Philipp Kiszka <*****@*****.**>
  *
  * @param int $id ID of project to copy
  * @return int $insid New project's ID
  */
 function makecopy($id)
 {
     // copy project
     $q = mysql_query("INSERT INTO projekte (`name`, `desc`, `end`, `start`, `status`, `budget`) SELECT `name`, `desc`, `end`, `start`, `status`, `budget` FROM projekte WHERE ID = " . (int) $id);
     $insid = mysql_insert_id();
     $uid = $_SESSION['userid'];
     $this->assign($uid, $insid);
     $milesobj = new milestone();
     $objtasklist = new tasklist();
     $objtask = new task();
     if ($q) {
         $pname = $this->getProject($insid);
         $name = $pname["name"] . " Copy";
         mysql_query("UPDATE projekte SET `name` = '{$name}' WHERE ID = " . $insid . " LIMIT 1");
         // now copy the milestones
         $miles = $milesobj->getAllProjectMilestones($id);
         if (!empty($miles)) {
             // go through the milestones
             foreach ($miles as $ms) {
                 // copy milestone
                 $msid = $milesobj->add($insid, $ms["name"], $ms["desc"], $ms["end"], 1);
                 // get all tasklists for milestone
                 $qb = mysql_query("SELECT * FROM tasklist WHERE project = {$id} AND milestone = {$ms['ID']}");
                 if ($qb) {
                     // go through the tasklists
                     while ($tl = mysql_fetch_array($qb)) {
                         // copy tasklist
                         $tlid = $objtasklist->add_liste($insid, $tl["name"], $tl["desc"], 0, $msid);
                         // get tasks for the tasklist
                         $tasks = $objtasklist->getTasksFromList($tl["ID"]);
                         if (!empty($tasks)) {
                             foreach ($tasks as $task) {
                                 $taskobj->add($task["end"], $task["title"], $task["text"], $tlid, $uid, $insid);
                             }
                             // tasks END
                         }
                     }
                     // tasklists END
                 }
             }
             // milestones END
         }
         // get all tasklists and tasks that do not belong to a milestone
         $qb = mysql_query("SELECT * FROM tasklist WHERE project = {$id} AND milestone = 0");
         if ($qb) {
             // go through the tasklists
             while ($tl = mysql_fetch_array($qb)) {
                 // copy tasklist
                 $tlid = $objtasklist->add_liste($insid, $tl["name"], $tl["desc"], 0, $msid);
                 // get tasks for the tasklist
                 $tasks = $objtasklist->getTasksFromList($tl["ID"]);
                 if (!empty($tasks)) {
                     foreach ($tasks as $task) {
                         $taskobj->add($task["end"], $task["title"], $task["text"], $tlid, $uid, $insid);
                     }
                     // tasks END
                 }
             }
             // tasklists END
         }
         mkdir(CL_ROOT . "/files/" . CL_CONFIG . "/{$insid}/", 0777);
         $this->mylog->add($name, 'projekt', 1, $insid);
         return $insid;
     } else {
         return false;
     }
 }