Пример #1
0
 public function index()
 {
     $myID = getUserID();
     $project_id = $this->input->get('id');
     $query = $this->mdb->project_get($project_id);
     if ($query->num_rows()) {
         $row = $query->row();
         $visitorType = visitor_type($row->id, $myID);
         $items = array('id' => $row->id, 'name' => $row->project_name, 'safe_name' => htmlentities($row->project_name), 'description' => $row->description, 'visitor_type' => $visitorType, 'is_admin' => $row->creator_id == $myID ? 1 : 0);
         //update last visit
         $this->mdb->setLastVisit($myID, $row->id);
         generate_json(array('status' => 1, 'items' => $items, 'message' => ''));
     } else {
         generate_json(array('status' => 0, 'message' => 'Project not found.'));
     }
 }
Пример #2
0
 public function index()
 {
     $myID = getUserID();
     $myEmail = getUserEmail();
     $pID = (int) $this->input->get('id');
     $visitorType = visitor_type($pID, $myID);
     $query = $this->mdb->project_get($pID);
     if ($query->num_rows()) {
         $row = $query->row();
         switch ($visitorType) {
             case 'invited':
                 $this->mdb->project_member_remove($row->id, $myID);
                 break;
         }
         generate_json(array('status' => 1));
     } else {
         generate_json(array('status' => 0, 'message' => 'Project does not exists.'));
     }
 }
Пример #3
0
function validate_access($type, $data)
{
    $ci = get_instance();
    $typeArr = explode("|", $type);
    $return = false;
    foreach ($typeArr as $type) {
        switch ($type) {
            //project_id|user_id
            case 'valid_member':
                $vType = visitor_type($data['project_id'], $data['user_id']);
                $return = $vType == 'member' ? true : false;
                break;
                //project_id|user_id
            //project_id|user_id
            case 'is_moderator':
                $query = $ci->db->query("select * from project_members where project_id = ? and user_id = ? and is_accepted = 1 and project_role > 0", array($data['project_id'], $data['user_id']));
                return $query->num_rows() ? true : false;
                break;
        }
    }
    return $return;
}
Пример #4
0
 public function init($id = 0)
 {
     requirelogin();
     updateLastActive();
     $myID = getUserID();
     $pid = (int) $this->input->get('pid');
     $tid = (int) $this->input->get('tid');
     $query = $this->tdb->getTaskInfo($pid, $tid);
     if ($query->num_rows()) {
         $row = $query->row();
         $priorities = $this->config->item('priorities');
         $status = $row->status == 1 ? 'completed' : 'active';
         $status = $row->is_accepted == 1 ? $status : 'pending';
         $priorityColors = array('bg-light', 'bg-warning dker', 'bg-danger');
         $start = 'TBA';
         $startOrig = '';
         $end = 'TBA';
         $endOrig = '';
         $dateCompleted = 'TBA';
         $isOverdue = 0;
         if (strtotime($row->date_start)) {
             $start = convert_datetime($row->date_start);
             $start = date("M d, Y", strtotime($row->date_start));
             $startOrig = date("m/d/Y", strtotime($row->date_start));
         }
         if (strtotime($row->date_end)) {
             $end = convert_datetime($row->date_end);
             $end = date("M d, Y", strtotime($row->date_end));
             $endOrig = date("m/d/Y", strtotime($row->date_end));
             $endDateOnly = date("Y-m-d", strtotime($row->date_end));
             $endDateOnlyStr = strtotime($endDateOnly);
             $isOverdue = strtotime(date("Y-m-d")) >= $endDateOnlyStr ? 1 : 0;
         }
         if (strtotime($row->date_completed)) {
             $dateCompleted = convert_datetime($row->date_completed);
             $dateCompleted = date("M d, Y", strtotime($row->date_completed));
         }
         $isModerator = validate_access('is_moderator', array('project_id' => $pid, 'user_id' => $myID));
         $qMember = $this->mdb->taskMembers_get(array('task_id' => $row->id, 'user_id' => $myID));
         $qIsMember = 0;
         $qIsInvited = 0;
         $qIsRequesting = 0;
         if ($qMember->num_rows()) {
             $qMemberRow = $qMember->row();
             $qIsMember = $qMemberRow->is_accepted == 1 ? 1 : 0;
             $qIsInvited = $qMemberRow->is_accepted == 0 && $qMemberRow->assigned_by > 0 ? 1 : 0;
             $qIsRequesting = $qMemberRow->is_accepted == 0 && $qMemberRow->assigned_by == 0 ? 1 : 0;
         }
         $members = array();
         $qMembers = $this->mdb->taskMembers_get2(array('task_id' => $row->id));
         foreach ($qMembers->result() as $member) {
             $description = 'Pending';
             if ($member->is_accepted == 1) {
                 $description = $member->id == $row->creator_id ? 'Task Master' : 'Member';
             }
             $members[] = array('id' => $member->id, 'display_name' => $member->display_name, 'description' => $description);
         }
         $item = array('id' => $row->id, 'name' => $row->title, 'safe_name' => htmlentities($row->title), 'project_id' => $row->project_id, 'description' => htmlentities($row->description), 'priority' => $row->priority, 'priority_name' => $priorities[$row->priority], 'priority_class' => isset($priorityColors[$row->priority]) ? $priorityColors[$row->priority] : $priorityColors[0], 'status' => $row->status, 'status_name' => ucfirst($status), 'date_start' => $start, 'date_start_orig' => $startOrig, 'date_end' => $end, 'date_end_orig' => $endOrig, 'is_overdue' => $isOverdue, 'date_completed' => $dateCompleted, 'remarks' => $row->remarks, 'is_moderator' => $isModerator ? 1 : 0, 'is_creator' => $myID == $row->creator_id, 'is_accepted' => $row->is_accepted, 'is_member' => $qIsMember, 'visitor_type' => visitor_type($pid, $myID), 'is_invited' => $qIsInvited, 'members' => $members, 'parent_task' => $row->parent_task, 'task_master' => array('id' => $row->creator_id, 'name' => $row->task_master));
         generate_json(array('status' => 1, 'item' => $item));
     } else {
         generate_json(array('status' => 0, 'message' => 'Failed to load data.'));
     }
 }