Пример #1
0
 /**
  * Get project iCalendar
  *
  * @access public
  */
 public function project()
 {
     $token = $this->request->getStringParam('token');
     $project = $this->project->getByToken($token);
     // Token verification
     if (empty($project)) {
         throw AccessForbiddenException::getInstance()->withoutLayout();
     }
     // Common filter
     $queryBuilder = new QueryBuilder();
     $queryBuilder->withQuery($this->taskFinder->getICalQuery())->withFilter(new TaskStatusFilter(TaskModel::STATUS_OPEN))->withFilter(new TaskProjectFilter($project['id']));
     // Calendar properties
     $calendar = new iCalendar('Kanboard');
     $calendar->setName($project['name']);
     $calendar->setDescription($project['name']);
     $calendar->setPublishedTTL('PT1H');
     $this->renderCalendar($queryBuilder, $calendar);
 }
Пример #2
0
 public function createTaskFilter(Container $container)
 {
     $container['taskQuery'] = $container->factory(function ($c) {
         $builder = new QueryBuilder();
         $builder->withQuery($c['taskFinderModel']->getExtendedQuery());
         return $builder;
     });
     $container['taskLexer'] = $container->factory(function ($c) {
         $builder = new LexerBuilder();
         $builder->withQuery($c['taskFinderModel']->getExtendedQuery())->withFilter(TaskAssigneeFilter::getInstance()->setCurrentUserId($c['userSession']->getId()))->withFilter(new TaskCategoryFilter())->withFilter(TaskColorFilter::getInstance()->setColorModel($c['colorModel']))->withFilter(new TaskColumnFilter())->withFilter(new TaskCommentFilter())->withFilter(TaskCreationDateFilter::getInstance()->setDateParser($c['dateParser']))->withFilter(TaskCreatorFilter::getInstance()->setCurrentUserId($c['userSession']->getId()))->withFilter(new TaskDescriptionFilter())->withFilter(TaskDueDateFilter::getInstance()->setDateParser($c['dateParser']))->withFilter(new TaskIdFilter())->withFilter(TaskLinkFilter::getInstance()->setDatabase($c['db']))->withFilter(TaskModificationDateFilter::getInstance()->setDateParser($c['dateParser']))->withFilter(new TaskProjectFilter())->withFilter(new TaskReferenceFilter())->withFilter(new TaskStatusFilter())->withFilter(TaskSubtaskAssigneeFilter::getInstance()->setCurrentUserId($c['userSession']->getId())->setDatabase($c['db']))->withFilter(new TaskSwimlaneFilter())->withFilter(new TaskTitleFilter(), true);
         return $builder;
     });
     return $container;
 }
Пример #3
0
 /**
  * Set the query
  *
  * @access public
  * @param  Table $query
  * @return LexerBuilder
  */
 public function withQuery(Table $query)
 {
     $this->query = $query;
     $this->queryBuilder->withQuery($this->query);
     return $this;
 }