/modules/tasks/includes/tasks.inc.php
PHP | 393 lines | 373 code | 8 blank | 12 comment | 69 complexity | b90fd2df499f673c7179736837e0a626 MD5 | raw file
- <div class="navbar">
- <div class="navbar-inner">
- <div class="container">
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-tasks-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </a>
- <a class="brand" href="<?php echo $basehref; ?>tasks/">Tasks</a>
- <div class="nav-tasks-collapse nav-collapse collapse">
- <ul class="nav nav-pills">
- <li class="active"><a href="#incomplete" data-toggle="tab">Incomplete</a></li>
- <li><a href="#pastdue" data-toggle="tab">Past Due <span class="badge badge-important">6</span></a></li>
- <li><a href="#duethisweek" data-toggle="tab">Due This Week <span class="badge badge-important">3</span></a></li>
- <li><a href="#completed" data-toggle="tab">Completed <span class="badge badge-success">26</span></a></li>
- <li><a href="#milestones" data-toggle="tab">Milestones</a></li>
- <li><a href="#calendar" data-toggle="tab">Calendar</a></li>
- </ul>
- <div class="pull-right">
- <form class="navbar-search">
- <input type="text" id="searchbox" class="search-query" placeholder="Search Tasks" data-provide="typeahead">
- </form>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="row">
- <div class="span6 pull-left">
- <?php $clocked_in = checkIfClockedIn(); ?>
- <form action="">
- <div class="timeclock">
- <input type="submit" id="timeclock" value="<?php if($clocked_in): ?>Clock Out<? else: ?>Clock In<? endif; ?>" class="btn">
- <span id="stopwatch"><?php if($clocked_in) echo getDuration(); else echo '00:00:00'; ?></span>
- </div>
- </form>
- </div>
- <div class="span6 pull-right">
- <button href="#addTask" role="button" class="btn btn-success pull-right" type="button" data-toggle="modal"><i class="icon-plus icon-white"></i> Add A New Task</button>
- </div>
- </div>
- <br clear="all" /><br clear="all" />
- <?php
- if(!isset($_POST['doAddTask'])) $_POST['doAddTask'] = "0";
- if($_POST['doAddTask'] == "1" && $_POST['projectid'] && $link) {
- // check if we should add a new project
- if($_POST['projectid'] == "0") {
- $project_sql = "INSERT INTO projects (
- `project_name`,
- `project_payment_type`,
- `project_hourly_rate`,
- `project_onetime_cost`,
- `project_half_upfront`,
- `created`,
- `clientid`,
- `userid`
- ) VALUES (
- '" . $_POST['new_project'] . "',
- '" . $_POST['project_payment_type'] . "',
- '" . $_POST['project_hourly_rate'] . "',
- '" . $_POST['project_onetime_cost'] . "',
- '" . $_POST['project_half_upfront'] . "',
- NOW(),
- '" . $_POST['clientid'] . "',
- '" . $_SESSION['userid_auth'] . "'
- )";
- $project_q = mysql_query($project_sql);
- $projectid = mysql_insert_id();
- } elseif($_POST['projectid'] != "X") {
- $projectid = $_POST['projectid'];
- }
- // add the task
- if($_POST['startdate']) $created = $_POST['startdate'];
- else $created = "NOW()";
- $insert_sql = "INSERT INTO tasks (
- `task_title`,
- `task_describe`,
- `created`,
- `userid`,
- `milestoneid`,
- `priority`,
- `duedate`,
- `projectid`
- ) VALUES (
- '" . $_POST['task_title'] . "',
- '" . $_POST['task_describe'] . "',
- $created,
- '" . $_SESSION['userid_auth'] . "',
- '0',
- '" . $_POST['priority'] . "',
- '" . $_POST['duedate'] . "',
- '" . $projectid . "'
- )";
- //echo $insert_sql . "<br />";
- $q = mysql_query($insert_sql);
- //$_SESSION["command_results"]["addtask"] = "Your task was added to the list.";
- //display_command_results("addtask");
- }
- // set date format
- if(getSetting("dateFormat", $_SESSION['userid_auth']) == "0") {
- $date_format_setting = "%b %e %Y";
- } else {
- $date_format_setting = getSetting("dateFormat", $_SESSION['userid_auth']);
- }
- if(!isset($_POST['search'])) $_POST['search'] = "";
- if ($_POST['search']) {
- $level_auth = getCurrentUserAccessLevel();
- $group_auth = getCurrentUserGroupID();
- $search_project = "Project: ";
- $search_client = "Client: ";
- // PROJECTS SECTION
- if(substr($_POST['search'], 0, strlen($search_project)) == $search_project) {
- $project_sql = "SELECT id FROM projects WHERE project_name LIKE '%" . str_replace($search_project, "", $_POST['search']) . "%'";
- $project_q = mysql_query($project_sql);
- while($i = mysql_fetch_object($project_q)) {
- $project_id = $i->id;
- }
- $sql = "SELECT tasks.`id` AS `id`,
- tasks.`task_title` AS `task_title`,
- tasks.`task_describe` AS `task_describe`,
- DATE_FORMAT(tasks.`created`, '" . $date_format_setting . ", %l:%i %p') AS `fcreated`,
- DATE_FORMAT(tasks.`modified`, '" . $date_format_setting . ", %l:%i %p') AS `fmodified`,
- DATE_FORMAT(tasks.`duedate`, '" . $date_format_setting . "') AS `fduedate`,
- tasks.`modified` AS `modified`,
- tasks.`duedate` AS `duedate`,
- tasks.`milestoneid` AS `milestoneid`,
- tasks.`projectid` AS `projectid`
- FROM tasks, projects, users
- WHERE projects.`userid`='" . $_SESSION['userid_auth'] . "'
- AND projects.`id` = tasks.`projectid`
- AND tasks.milestoneid='0'
- AND tasks.completed='0'
- AND tasks.projectid='" . $project_id . "'
- AND users.id=projects.userid";
- if($level_auth < "11" || ($level_auth == "11" && getSetting("onlyShowProjectsInMyGroup", $_SESSION['userid_auth']) == "1"))
- $sql .= "
- AND users.groupid = '" . $group_auth . "'";
- $sql .= " ORDER BY tasks.modified, tasks.priority ASC, tasks.created ASC";
- $search_text = "Tasks for the project <span id=\"searchcriteria\">Project: </span><span id=\"searchterm\">".str_replace($search_project, "", $_POST['search'])."</span>";
- // CLIENTS SECTION
- } elseif(substr($_POST['search'], 0, strlen($search_client)) == $search_client) {
- $client_sql = "SELECT id FROM clients WHERE fullname LIKE '%" . str_replace($search_client, "", $_POST['search']) . "%'";
- $client_q = mysql_query($client_sql);
- while($i = mysql_fetch_object($client_q)) {
- $clientid = $i->id;
- }
- $sql = "SELECT tasks.`id` AS `id`,
- tasks.`task_title` AS `task_title`,
- tasks.`task_describe` AS `task_describe`,
- DATE_FORMAT(tasks.`created`, '" . $date_format_setting . ", %l:%i %p') AS `fcreated`,
- DATE_FORMAT(tasks.`modified`, '" . $date_format_setting . ", %l:%i %p') AS `fmodified`,
- DATE_FORMAT(tasks.`duedate`, '" . $date_format_setting . "') AS `fduedate`,
- tasks.`modified` AS `modified`,
- tasks.`duedate` AS `duedate`,
- tasks.`projectid` AS `projectid`
- FROM tasks, projects, clients, users
- WHERE tasks.projectid=projects.id
- AND projects.clientid=clients.id
- AND clients.id='" . $clientid . "'
- AND projects.`userid`='" . $_SESSION['userid_auth'] . "'
- AND tasks.milestoneid='0'
- AND tasks.completed='0'
- AND users.id=projects.userid";
- if($level_auth < "11" || ($level_auth == "11" && getSetting("onlyShowProjectsInMyGroup", $_SESSION['userid_auth']) == "1"))
- $sql .= "
- AND users.groupid = '" . $group_auth . "'";
- $sql .= "
- ORDER BY tasks.modified, tasks.priority ASC, tasks.created ASC";
- $search_text = "Tasks for the client <span id=\"searchcriteria\">Project: </span><span id=\"searchterm\">".str_replace($search_client, "", $_POST['search'])."</span>";
- // TASKS SECTION
- } else {
- $sql = "SELECT tasks.`id` AS `id`,
- `task_title`,
- `task_describe`,
- completed,
- DATE_FORMAT(tasks.`created`, '" . $date_format_setting . ", %l:%i %p') AS `fcreated`,
- DATE_FORMAT(tasks.`modified`, '" . $date_format_setting . ", %l:%i %p') AS `fmodified`,
- tasks.`modified` AS `modified`,
- DATE_FORMAT(tasks.`duedate`, '" . $date_format_setting . "') AS `fduedate`,
- tasks.`duedate` AS `duedate`,
- milestoneid,
- projectid
- FROM tasks, projects, users
- WHERE projects.`userid`='" . $_SESSION['userid_auth'] . "'";
- if($level_auth < "11" || ($level_auth == "11" && getSetting("onlyShowProjectsInMyGroup", $_SESSION['userid_auth']) == "1"))
- $sql .= "
- AND users.groupid = '" . $group_auth . "'";
- $sql .= "
- AND users.id=projects.userid
- AND milestoneid='0'
- AND completed='0'
- AND task_title LIKE '%" . $_POST['search'] . "%'
- ORDER BY tasks.modified, tasks.priority ASC, tasks.created ASC";
- $search_text = "Search results for the search term <span id=\"searchcriteria\"></span><span id=\"searchterm\">".$_POST['search']."</span>";
- }
- // NO SEARCH, LOAD EVERYTHING
- } else {
- $sql = "SELECT tasks.`id`,
- tasks.`task_title`,
- tasks.`task_describe`,
- tasks.`completed`,
- DATE_FORMAT(tasks.`created`, '" . $date_format_setting . ", %l:%i %p') AS `fcreated`,
- DATE_FORMAT(tasks.`modified`, '" . $date_format_setting . ", %l:%i %p') AS `fmodified`,
- tasks.`modified` AS `modified`,
- DATE_FORMAT(tasks.`duedate`, '" . $date_format_setting . "') AS `fduedate`,
- tasks.`duedate` AS `duedate`,
- tasks.`milestoneid`,
- tasks.`projectid`
- FROM tasks, projects, users
- WHERE projects.id=tasks.projectid
- AND users.id=projects.userid";
- if($level_auth < "11" || ($level_auth == "11" && getSetting("onlyShowProjectsInMyGroup", $_SESSION['userid_auth']) == "1"))
- $sql .= "
- AND users.groupid = '" . $group_auth . "'";
- $sql .= "
- AND tasks.milestoneid='0'
- AND tasks.completed='0'
- ORDER BY tasks.sort ASC, tasks.priority ASC, tasks.created DESC";
- }
- //if($debugmode) echo "<div><pre>sql:<br />".$sql."</pre><br /></div>";
- $q = mysql_query($sql) or die("SQL Error: " . mysql_error());
- $total_numrows = mysql_num_rows($q);
- if($_POST['search']) echo "<p><strong>" . $search_text . "</strong></p>";
- ?>
- <div class="tab-content">
- <div class="tab-pane active" id="incomplete">
- <table id="tasks" class="table table-striped table-bordered table-condensed table-hover table-pager">
- <thead>
- <tr>
- <th> </th>
- <th> </th>
- <th>Task</th>
- <th>Milestone</th>
- <th>Project</th>
- <th>Due</th>
- <th>Last Updated</th>
- <th> </th>
- <th> </th>
- </tr>
- </thead>
- <tbody><?php
- if(($_POST['search'] && $total_numrows) || $total_numrows) {
- $j = 0;
- while($i = mysql_fetch_object($q)) {
- $id = $i->id;
- $task_title = $i->task_title;
- $completed = $i->completed;
- $fcreated = $i->fcreated;
- $fmodified = $i->fmodified;
- $modified = $i->modified;
- $fduedate = $i->fduedate;
- $duedate = $i->duedate;
- $project_name = getProjectName($i->projectid);
- if($j % 2 == 0) $rowcolor = "row"; else $rowcolor = "altrow";
- ?>
- <tr id="item_<?php echo $id; ?>">
- <td><input type="checkbox"<?php if($completed) echo ' checked="checked"'; ?> id="<? echo $id; ?>" title="Mark Completed"></td>
- <td><input type="radio" id="<?php echo $id; ?>" name="timeclock"<? if($clocked_in == $id) echo ' checked="checked" title="Clock Out"'; else echo ' title="Clock In"'; ?>></td>
- <td><a href="/modules/tasks/ajax/get_task.php?id=<?php echo $id; ?>" class="lightbox" rel="lightbox"><? echo $task_title; ?></a></td>
- <td><?php echo $milestone_name; ?></td>
- <td><?php echo $project_name; ?></td>
- <td><?php if($duedate != "0000-00-00" && $duedate != "") echo $fduedate; else echo '-'; ?></td>
- <td><?php if($modified == "0000-00-00 00:00:00") echo $fcreated; else echo $fmodified; ?></td>
- <td><button class="btn btn-danger pull-right delete" type="button" id="<?php echo $id; ?>"><i class="icon-trash icon-white"></i></button></td>
- <td><?php if(!$_POST['search']): ?><a class="btn pull-right drag" type="button"><i class="icon-align-justify icon-white"></i></a><? endif; ?></td>
- </tr>
- <?php
- $j++;
- }
- } elseif($_POST['search'] && !$total_numrows) {
- ?><tr class="notice"><td colspan="9">There are no incomplete tasks matching your search.</td></tr><?php
- } elseif(!$total_numrows) {
- ?><tr class="notice"><td colspan="9">No incomplete tasks. Time for a break!</td></tr><?php
- }
- ?>
- </tbody>
- <?php if($total_numrows > "10") pagination('8'); ?>
- </table>
- </div>
- <div class="tab-pane" id="pastdue">
- <h3>Past Due</h3>
- </div>
- <div class="tab-pane" id="duethisweek">
- <h3>Due This Week</h3>
- </div>
- <div class="tab-pane" id="completed">
- <h3>Completed</h3>
- </div>
- <div class="tab-pane" id="milestones">
- <h3>Milestones</h3>
- </div>
- <div class="tab-pane" id="calendar">
- <h3>Calendar</h3>
- </div>
- </div>
- <!-- Modal -->
- <div id="addTask" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="addTaskLabel" aria-hidden="true">
- <form method="post" action="<? echo $basehref; ?>tasks/" class="form-horizontal">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">?—</button>
- <h3 id="addTaskLabel">Add A New Task</h3>
- </div>
- <div class="modal-body">
- <div class="control-group">
- <label class="control-label" for="task_title">Task Title</label>
- <div class="controls">
- <input type="text" id="task_title" name="task_title" placeholder="Task Title">
- </div>
- </div>
- <div class="control-group">
- <label class="control-label" for="task_describe">Description</label>
- <div class="controls">
- <textarea id="task_describe" name="task_describe" class="blurred" cols="52" rows="4" placeholder="Description"></textarea>
- </div>
- </div>
- <div class="control-group">
- <label class="control-label" for="startdate">Start</label>
- <div class="controls">
- <input type="text" name="fstartdate" id="startdate" placeholder="Start">
- </div>
- </div>
- <div class="control-group">
- <label class="control-label" for="duedate">Due</label>
- <div class="controls">
- <input type="text" name="fduedate" id="duedate" placeholder="Due">
- </div>
- </div>
- <div class="control-group">
- <label class="control-label" for="duedate">Priority</label>
- <div class="controls">
- <select id="prioritydropdown" name="priority">
- <option value="1">High</option>
- <option value="2" selected="selected">Normal</option>
- <option value="3">Low</option>
- </select>
- </div>
- </div>
- <div id="project" class="control-group">
- <label class="control-label" for="projectsdropdown">Project</label>
- <div class="controls">
- <select id="projectsdropdown" name="projectid">
- <option value="X">Please select...</option>
- <option value="0">Add A New Project</option>
- <?php
- $projects = getProjectsDropdown($seldb);
- // dbug($projects, 'projects: ', $debugmode);
- foreach($projects AS $project) {
- echo $project;
- }
- ?>
- </select>
- </div>
- </div>
- <div id="new_project" class="control-group">
- <label class="control-label" for="new_project_title">New Project Name</label>
- <div class="controls">
- <input type="text" id="new_project_name" name="new_project_name" placeholder="New Project Name">
- </div>
- </div>
- <div id="payment_type" class="control-group">
- <label class="control-label" for="paymenttypedropdown">Payment Type</label>
- <div class="controls">
- <select id="paymenttypedropdown" name="project_payment_type">
- <option value="hourly" selected="selected">Hourly</option>
- <option value="onetime">One-Time</option>
- <option value="none">None</option>
- </select>
- </div>
- </div>
- <div id="onetime_half_upfront" class="control-group">
- <div class="controls">
- <label class="checkbox">
- <input type="checkbox"> Payment of half up-front
- </label>
- </div>
- </div>
- </div>
- <div class="modal-footer">
- <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
- <button type="submit" class="btn btn-primary">Add Task</button>
- <input type="hidden" name="doAddTask" value="1" />
- </div>
- </form>
- </div>
- <? mysql_close($link); ?>