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.')); } }
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.')); } }
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; }
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.')); } }