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();
 }