/** * Render RSS feed for a spcific filter * * @param void * @return null */ function rss() { if ($this->active_filter->isNew()) { $this->httpError(HTTP_ERR_NOT_FOUND); } // if if (!$this->active_filter->canUse($this->logged_user)) { $this->httpError(HTTP_ERR_FORBIDDEN); } // if require_once ANGIE_PATH . '/classes/feed/init.php'; $feed = new Feed($this->owner_company->getName() . ' - ' . $this->active_filter->getName(), $this->active_filter->getUrl()); $assignments = AssignmentFilters::executeFilter($this->logged_user, $this->active_filter, false); if (is_foreachable($assignments)) { $project_ids = array(); foreach ($assignments as $assignment) { if (!in_array($assignment->getProjectId(), $project_ids)) { $project_ids[] = $assignment->getProjectId(); } // if } // foreach $projects = array(); if (is_foreachable($project_ids)) { $rows = db_execute_all('SELECT id, name FROM ' . TABLE_PREFIX . 'projects WHERE id IN (?)', $project_ids); if (is_foreachable($rows)) { foreach ($rows as $row) { $projects[$row['id']] = $row['name']; } // foreach } // if } // if foreach ($assignments as $assignment) { $title = '[' . array_var($projects, $assignment->getProjectId()) . '] ' . $assignment->getVerboseType() . ' "' . $assignment->getName() . '"'; $this->smarty->assign('_assignment', $assignment); $body = $this->smarty->fetch(get_template_path('_feed_body', 'assignment_filters', RESOURCES_MODULE)); $item = new FeedItem($title, $assignment->getViewUrl(), $body, $assignment->getCreatedOn()); $item->setId($assignment->getViewUrl()); $feed->addItem($item); } // foreach } // if print render_rss_feed($feed); die; }
/** * Show tasks for a given user * * @param void * @return null */ function user_tasks() { $filter = new AssignmentFilter(); $filter->setUserFilter(USER_FILTER_LOGGED_USER); $filter->setProjectFilter(PROJECT_FILTER_SELECTED); $filter->setProjectFilterData(array($this->active_project->getId())); $filter->setStatusFilter(STATUS_FILTER_ACTIVE); $filter->setOrderBy('priority DESC'); $filter->setObjectsPerPage(30); if ($this->request->isApiCall()) { $this->serveData(AssignmentFilters::executeFilter($this->logged_user, $filter, false), 'assignments'); } else { list($assignments, $pagination) = AssignmentFilters::executeFilter($this->logged_user, $filter, null, (int) $this->request->get('page')); $this->smarty->assign(array('assignments' => $assignments, 'pagination' => $pagination)); } // if }
/** * Show assignments index * * @param void * @return null */ function index() { list($assignments, $pagination) = AssignmentFilters::executeFilter($this->logged_user, $this->active_filter, null, (int) $this->request->get('page')); $this->wireframe->addRssFeed($this->owner_company->getName() . ' - ' . $this->active_filter->getName(), $this->active_filter->getRssUrl($this->logged_user), FEED_RSS); $this->smarty->assign(array('assignments' => $assignments, 'pagination' => $pagination, 'grouped_filters' => AssignmentFilters::findGrouped($this->logged_user))); }
/** * Shows a assignments page * */ function assignments() { $filter_id = $this->request->getId('filter_id'); if (!$filter_id) { $filter_id = UserConfigOptions::getValue('default_assignments_filter', $this->logged_user); } // if if ($filter_id) { $active_filter = AssignmentFilters::findById($filter_id); } // if $page = $this->getPaginationPage(); $per_page = 15; $pagination = null; if (instance_of($active_filter, 'AssignmentFilter')) { list($assignments, $pagination) = AssignmentFilters::executeFilter($this->logged_user, $active_filter, true, $page, $per_page); } else { $assignments = array(); } // if $this->smarty->assign(array("objects" => $assignments, "page_title" => lang('Assignments'), 'grouped_filters' => AssignmentFilters::findGrouped($this->logged_user), "active_filter" => $active_filter, 'pagination' => $pagination, 'pagination_url' => assemble_url('mobile_access_assignments'))); }
/** * Render iCalendar feed * * @param void * @return null */ function ical() { $filter = new AssignmentFilter(); $filter->setUserFilter(USER_FILTER_SELECTED); $filter->setUserFilterData(array($this->active_user->getId())); $filter->setProjectFilter(PROJECT_FILTER_ACTIVE); $filter->setStatusFilter(STATUS_FILTER_ACTIVE); render_icalendar(lang(":user's calendar", array('user' => $this->active_user->getDisplayName())), AssignmentFilters::executeFilter($this->logged_user, $filter, false)); die; }