function view_today_page() { if ($this->request->get('async')) { $object_id = $this->request->post('object_id'); $priority = $this->request->post('priority'); $link = mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME); mysql_query("update healingcrystals_project_objects set priority='" . $priority . "' where id='" . $object_id . "'"); mysql_close($link); exit; } $selected_project = $_GET['selected_project']; $order_by = $_GET['order_by']; $sort_order = $_GET['sort_order']; $tab = empty($_GET['tab']) ? 'tab01' : $_GET['tab']; $user = Users::findById($this->request->getId('user_id')); $project_user = ProjectUsers::findById(array('user_id' => $user->getId(), 'project_id' => $this->active_project->getId())); if ($tab == 'tab01') { $entries = $this->logged_user->getOwnedTickets($user->getId(), $selected_project, $order_by, $sort_order); $this->smarty->assign(array('active_user' => $user, 'project_user' => $project_user, 'entries' => $entries, 'user_projects' => $user->getActiveProjects(), 'selected_project' => $selected_project, 'tab' => $tab)); } elseif ($tab == 'tab03') { $content = $this->logged_user->getHomeTabContent($user_id); $this->smarty->assign(array('active_user' => $user, 'project_user' => $project_user, 'page_view' => $page_view, 'tab' => $tab, 'home_tab_content' => $content)); } elseif ($tab == 'tab04') { $entries = $this->logged_user->getSubscribedTickets($user->getId(), $selected_project, $order_by, $sort_order); $this->smarty->assign(array('active_user' => $user, 'project_user' => $project_user, 'entries' => $entries, 'user_projects' => $user->getActiveProjects(), 'selected_project' => $selected_project, 'tab' => $tab)); } elseif ($tab == 'tab02') { $mark_completed = $_GET['mark_completed']; $completed_count = ''; $project_id = $this->active_project->getId(); $user_id = $user->getId(); $fyi_query = array(); if (!empty($mark_completed)) { $ids = explode(',', $mark_completed); $tickets = Tickets::findByIds($ids, STATE_VISIBLE, $this->logged_user->getVisibility()); foreach ($tickets as $ticket) { if ($ticket->isOpen() && $ticket->canChangeCompleteStatus($this->logged_user)) { $complete = $ticket->complete($this->logged_user); if ($complete && !is_error($complete)) { $updated++; $fyi_query[] = "update healingcrystals_assignments_action_request a , healingcrystals_project_objects b set a.is_fyi='-1', last_modified=now() where a.comment_id=b.id and b.type='Comment' and b.project_id='" . $ticket->getProjectId() . "' and b.parent_id='" . $ticket->getId() . "' and a.user_id='" . $this->logged_user->getId() . "' and a.is_fyi='1'"; } // if } // if } // foreach } $link = mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME, $link); foreach ($fyi_query as $query) { mysql_query($query, $link); } $entries = array(); $temp = array(); $query = "select b.*, a.is_owner, d.category_name, f.object_id as temp\n from healingcrystals_assignments a \n\t\t\tinner join healingcrystals_project_objects b on (a.object_id=b.id and (b.type='Ticket' or (b.type='Task' and b.parent_type='Ticket'))) \n\t\t\tleft outer join healingcrystals_project_objects e on b.milestone_id=e.id \n\t\t\tleft outer join healingcrystals_project_object_categories c on b.id=c.object_id \n\t\t\tleft outer join healingcrystals_project_milestone_categories d on c.category_id=d.id \n\t\t\tleft outer join healingcrystals_starred_objects f on (b.id=f.object_id and f.user_id='" . $user_id . "') \n\t\t\tinner join healingcrystals_assignments_action_request g on (g.user_id='" . $user_id . "' and g.is_fyi='1' and exists(select * from healingcrystals_project_objects h where h.id=g.comment_id and h.parent_id=b.id)) \n\t\t\twhere a.user_id='" . $user_id . "' and \n (a.is_owner='1' or g.user_id='" . $user_id . "') and \n b.project_id='" . $this->active_project->getId() . "' and \n\t\t\tb.completed_on is null and b.state='3' and b.visibility='1' \n order by b.due_on desc"; $result = mysql_query($query); while ($entry = mysql_fetch_assoc($result)) { $item_class = array_var($entry, 'type'); $item = new $item_class(); $item->loadFromRow($entry); if (!in_array($entry['id'], $temp)) { $milestone_id = $item->getMilestoneId(); if (!empty($milestone_id)) { $query_1 = "select * from healingcrystals_project_objects where id='" . $milestone_id . "'"; $result_1 = mysql_query($query_1); if (mysql_num_rows($result_1)) { $item_1 = new Milestone($milestone_id); } } $entries[] = array('obj' => $item, 'id' => $entry['id'], 'logged_user_is_responsible' => $entry['is_owner'], 'department' => array($entry['category_name']), 'milestone_obj' => $item_1, 'team_name' => $entry['team_name']); $temp[] = $entry['id']; if (!empty($milestone_id)) { unset($item_1); } } else { $entries[array_search($entry['id'], $temp)]['department'][] = $entry['category_name']; } unset($item); } $action_request_comments = array(); $fyi_comments = array(); $fyi_read_comments = array(); $query = "select b.id \n from healingcrystals_assignments_action_request a \n\t\t\tinner join healingcrystals_project_objects b on a.comment_id=b.id \n\t\t\tinner join healingcrystals_projects c on b.project_id=c.id \n\t\t\twhere a.is_action_request='1' and a.user_id='" . $user_id . "' \n\t\t\tand b.project_id='" . $this->active_project->getId() . "' \n\t\t\torder by c.name, a.date_added desc"; $result = mysql_query($query); while ($entry = mysql_fetch_assoc($result)) { $action_request_comments[] = new Comment($entry['id']); } $query = "select b.id \n from healingcrystals_assignments_action_request a \n\t\t\tinner join healingcrystals_project_objects b on a.comment_id=b.id \n\t\t\tinner join healingcrystals_projects c on b.project_id=c.id \n\t\t\twhere a.is_fyi='1' and a.user_id='" . $user_id . "' \n\t\t\tand b.project_id='" . $this->active_project->getId() . "' \n\t\t\torder by c.name, a.date_added desc"; $result = mysql_query($query); while ($entry = mysql_fetch_assoc($result)) { $fyi_comments[] = new Comment($entry['id']); } $query = "select b.id \n from healingcrystals_assignments_action_request a \n\t\t\tinner join healingcrystals_project_objects b on a.comment_id=b.id \n\t\t\tinner join healingcrystals_projects c on b.project_id=c.id \n\t\t\twhere a.is_fyi='R' and a.user_id='" . $user_id . "' \n\t\t\tand b.project_id='" . $this->active_project->getId() . "' \n\t\t\torder by a.fyi_marked_read_on, a.last_modified desc, c.name"; $result = mysql_query($query); while ($entry = mysql_fetch_assoc($result)) { $fyi_read_comments[] = new Comment($entry['id']); } mysql_close($link); $this->smarty->assign(array('active_user' => $user, 'project_user' => $project_user, 'entries' => $entries, 'user_projects' => $user->getActiveProjects(), 'selected_project' => $selected_project, 'tab' => $tab, 'action_request_comments' => $action_request_comments, 'fyi_comments' => $fyi_comments, 'fyi_read_comments' => $fyi_read_comments, 'home_tab_content' => $home_tab_content)); } }
/** * Show and process reorder task form * * @param void * @return null */ function reorder_tickets() { $this->wireframe->print_button = false; $milestone = Milestones::findById($this->request->get('milestone_id')); if (instance_of($milestone, 'Milestone')) { $milestone_id = $milestone->getId(); } else { $milestone_id = null; } // if if (!$this->request->isSubmitted()) { $this->httpError(HTTP_ERR_BAD_REQUEST, null, true, true); } // if if (!Ticket::canManage($this->logged_user, $this->active_project)) { $this->httpError(HTTP_ERR_FORBIDDEN, null, true, true); } // if $order_data = $this->request->post('reorder_ticket'); $ids = array_keys($order_data); if (is_foreachable($order_data)) { $x = 1; foreach ($order_data as $key => $value) { $order_data[$key] = $x; $x++; } // foreach } // if $tickets = Tickets::findByIds($ids, STATE_VISIBLE, $this->logged_user->getVisibility()); if (is_foreachable($tickets)) { foreach ($tickets as $ticket) { $ticket->setMilestoneId($milestone_id); $ticket->setPosition(array_var($order_data, $ticket->getId())); $ticket->save(); } // foreach } // if $this->httpOk(); }