Here is the list of the most complex expressions used in the code. A complex expression is an expression that requires more than 20 tokens to be build.
Literal arrays are omitted.
| File | Count | Expression |
|---|---|---|
| /app/Core/Ldap/User.php:182 | 1 | array_values(array_filter(array($this->getAttributeUsername( ), $this->getAttributeName( ), $this->getAttributeEmail( ), $this->getAttributeGroup( ), $this->getAttributePhoto( ), $this->getAttributeLanguage( ), ))) |
| /app/Core/Ldap/User.php:182 | 1 | array_filter(array($this->getAttributeUsername( ), $this->getAttributeName( ), $this->getAttributeEmail( ), $this->getAttributeGroup( ), $this->getAttributePhoto( ), $this->getAttributeLanguage( ), )) |
| /libs/jsonrpc/src/JsonRPC/HttpClient.php:274 | 1 | curl_setopt_array($ch, array(CURLOPT_URL => trim($this->url), CURLOPT_RETURNTRANSFER => true, CURLOPT_CONNECTTIMEOUT => $this->timeout, CURLOPT_MAXREDIRS => 2, CURLOPT_SSL_VERIFYPEER => $this->verifySslCertificate, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $payload, CURLOPT_HTTPHEADER => $requestHeaders, CURLOPT_HEADERFUNCTION => function ($curl, $header) use (&$headers) { /**/ } )) |
| /libs/picodb/lib/PicoDb/Table.php:695 | 1 | trim(sprintf('SELECT %s FROM %s %s %s %s %s %s %s', $this->sqlSelect, $this->db->escapeIdentifier($this->name), implode(' ', $this->joins), $this->conditionBuilder->build( ), empty($this->groupBy) ? '' : 'GROUP BY ' . implode(', ', $this->groupBy), $this->sqlOrder, $this->sqlLimit, $this->sqlOffset)) |
| /app/Pagination/DashboardPagination.php:34 | 1 | $paginator = $this->paginator->setUrl('DashboardController', 'show', array('user_id' => $userId, 'pagination' => 'tasks-' . $projectId), 'project-tasks-' . $projectId)->setMax(15)->setOrder(TaskModel::TABLE . '.priority')->setDirection('DESC')->setFormatter($this->taskListSubtaskAssigneeFormatter->withUserId($userId))->setQuery($query)->calculateOnlyIf($this->request->getStringParam('pagination') === 'tasks-' . $projectId) |
| /app/Validator/ColumnRestrictionValidator.php:25 | 1 | $v = new Validator($values, array(new Validators\Required('project_id', t('This field is required')), new Validators\Integer('project_id', t('This value must be an integer')), new Validators\Required('role_id', t('This field is required')), new Validators\Integer('role_id', t('This value must be an integer')), new Validators\Required('rule', t('This field is required')), new Validators\Required('column_id', t('This field is required')), new Validators\Integer('column_id', t('This value must be an integer')), )) |
| /app/Validator/TaskValidator.php:100 | 1 | $rules = array(new Validators\Required('tasks', t('Field required')), new Validators\Required('column_id', t('Field required')), new Validators\Required('swimlane_id', t('Field required')), new Validators\Integer('category_id', t('This value must be an integer')), new Validators\Integer('swimlane_id', t('This value must be an integer')), ) |
| /app/Validator/ColumnMoveRestrictionValidator.php:25 | 1 | $v = new Validator($values, array(new Validators\Required('project_id', t('This field is required')), new Validators\Integer('project_id', t('This value must be an integer')), new Validators\Required('role_id', t('This field is required')), new Validators\Integer('role_id', t('This value must be an integer')), new Validators\Required('src_column_id', t('This field is required')), new Validators\Integer('src_column_id', t('This value must be an integer')), new Validators\Required('dst_column_id', t('This field is required')), new Validators\Integer('dst_column_id', t('This value must be an integer')), )) |
| /libs/picodb/lib/PicoDb/Table.php:487 | 1 | $this->joins[] = sprintf('LEFT JOIN %s AS %s ON %s=%s', $this->db->escapeIdentifier($table1), $this->db->escapeIdentifier($alias1), $this->db->escapeIdentifier($alias1) . '.' . $this->db->escapeIdentifier($column1), $this->db->escapeIdentifier($table2) . '.' . $this->db->escapeIdentifier($column2)) |
| /libs/picodb/lib/PicoDb/Table.php:511 | 1 | $this->joins[] = sprintf('JOIN %s AS %s ON %s=%s', $this->db->escapeIdentifier($table1), $this->db->escapeIdentifier($alias1), $this->db->escapeIdentifier($alias1) . '.' . $this->db->escapeIdentifier($column1), $this->db->escapeIdentifier($table2) . '.' . $this->db->escapeIdentifier($column2)) |
| /libs/jsonrpc/src/JsonRPC/HttpClient.php:336 | 1 | $options = array('http' => array('method' => 'POST', 'protocol_version' => 1.1, 'timeout' => $this->timeout, 'max_redirects' => 2, 'header' => implode("\r\n", $headers), 'content' => $payload, 'ignore_errors' => true, ), 'ssl' => array('verify_peer' => $this->verifySslCertificate, 'verify_peer_name' => $this->verifySslCertificate, )) |
| /libs/jsonrpc/src/JsonRPC/Request/BatchRequestParser.php:24 | 1 | $responses[] = RequestParser::create( )->withPayload($payload)->withProcedureHandler($this->procedureHandler)->withMiddlewareHandler($this->middlewareHandler)->withLocalException($this->localExceptions)->parse( ) |
| /libs/picodb/lib/PicoDb/Table.php:397 | 1 | $sql = sprintf('SELECT SUM(%s) FROM %s ' . implode(' ', $this->joins) . $this->conditionBuilder->build( ) . $this->sqlOrder . $this->sqlLimit . $this->sqlOffset, $this->db->escapeIdentifier($column), $this->db->escapeIdentifier($this->name)) |
| /libs/picodb/lib/PicoDb/Table.php:419 | 1 | $sql = sprintf('UPDATE %s SET %s=%s+%d ' . $this->conditionBuilder->build( ), $this->db->escapeIdentifier($this->name), $this->db->escapeIdentifier($column), $this->db->escapeIdentifier($column), $value) |
| /libs/picodb/lib/PicoDb/Table.php:440 | 1 | $sql = sprintf('UPDATE %s SET %s=%s-%d ' . $this->conditionBuilder->build( ), $this->db->escapeIdentifier($this->name), $this->db->escapeIdentifier($column), $this->db->escapeIdentifier($column), $value) |
| /libs/picodb/lib/PicoDb/Table.php:464 | 1 | $this->joins[] = sprintf('LEFT JOIN %s ON %s=%s', $this->db->escapeIdentifier($table), $this->db->escapeIdentifier($alias ?: $table) . '.' . $this->db->escapeIdentifier($foreign_column), $this->db->escapeIdentifier($local_table ?: $this->name) . '.' . $this->db->escapeIdentifier($local_column)) |
| /libs/picodb/lib/PicoDb/LargeObject.php:74 | 1 | $result = $this->db->getStatementHandler( )->withSql(InsertBuilder::getInstance($this->db, $this->conditionBuilder)->withTable($this->name)->withColumns($columns)->build( ))->withNamedParams($data)->withLobParam($blobColumn, $blobDescriptor)->execute( ) |
| /libs/picodb/lib/PicoDb/LargeObject.php:136 | 1 | $result = $this->db->getStatementHandler( )->withSql(UpdateBuilder::getInstance($this->db, $this->conditionBuilder)->withTable($this->name)->withColumns($columns)->build( ))->withPositionalParams($values)->withLobParam($blobColumn, $blobDescriptor)->execute( ) |
| /libs/picodb/lib/PicoDb/Table.php:212 | 1 | $sql = UpdateBuilder::getInstance($this->db, $this->conditionBuilder)->withTable($this->name)->withColumns(array_keys($data))->withSumColumns(array_keys($this->sumColumns))->build( ) |
| /libs/picodb/lib/PicoDb/Table.php:377 | 1 | $sql = sprintf('SELECT COUNT(*) FROM %s ' . implode(' ', $this->joins) . $this->conditionBuilder->build( ) . $this->sqlOrder . $this->sqlLimit . $this->sqlOffset, $this->db->escapeIdentifier($this->name)) |
| /app/Console/TaskOverdueNotificationCommand.php:30 | 1 | $tasks = $this->taskFinderModel->getOverdueTasksQuery( )->beginOr( )->eq(TaskModel::TABLE . '.project_id', $input->getOption('project'))->eq(ProjectModel::TABLE . '.identifier', $input->getOption('project'))->closeOr( )->findAll( ) |
| /app/Export/TransitionExport.php:64 | 1 | $values = array((int) $transition['id'], $transition['title'], $transition['src_column'], $transition['dst_column'], $transition['name'] ?: $transition['username'], date($this->dateParser->getUserDateTimeFormat( ), $transition['date']), round($transition['time_spent'] / 3600, 2)) |
| /app/Import/TaskImport.php:139 | 1 | $v = new Validator($values, array(new Validators\Integer('project_id', t('This value must be an integer')), new Validators\Required('project_id', t('The project is required')), new Validators\Required('title', t('The title is required')), new Validators\MaxLength('title', t('The maximum length is %d characters', 65535), 65535), new Validators\MaxLength('reference', t('The maximum length is %d characters', 255), 255), )) |
| /app/Import/UserImport.php:110 | 1 | $v = new Validator($values, array(new Validators\MaxLength('username', t('The maximum length is %d characters', 255), 255), new Validators\Unique('username', t('The username must be unique'), $this->db->getConnection( ), UserModel::TABLE, 'id'), new Validators\MinLength('password', t('The minimum length is %d characters', 6), 6), new Validators\Email('email', t('Email address invalid')), new Validators\Integer('is_ldap_user', t('This value must be an integer')), )) |
| /app/Api/Procedure/TaskExternalLinkProcedure.php:56 | 1 | $values = array('task_id' => $task_id, 'title' => $title ?: $link->getTitle( ), 'url' => $link->getUrl( ), 'link_type' => $provider->getType( ), 'dependency' => $dependency, ) |
| /app/Api/Procedure/UserProcedure.php:102 | 1 | $values = array('username' => $user->getUsername( ), 'name' => $user->getName( ), 'email' => $user->getEmail( ), 'role' => $user->getRole( ), 'is_ldap_user' => 1, ) |
| /app/Action/SubtaskTimerMoveTaskColumn.php:82 | 1 | $subtaskID = $this->subtaskModel->create(array('title' => $this->getParam('subtask'), 'user_id' => $data['task']['creator_id'], 'task_id' => $data['task']['id'], 'status' => SubtaskModel::STATUS_INPROGRESS, )) |
| /app/Filter/TaskSubtaskAssigneeFilter.php:92 | 1 | $subquery = $this->db->table(SubtaskModel::TABLE)->columns(SubtaskModel::TABLE . '.task_id')->join(UserModel::TABLE, 'id', 'user_id', SubtaskModel::TABLE)->neq(SubtaskModel::TABLE . '.status', SubtaskModel::STATUS_DONE) |
| /app/Validator/CommentValidator.php:25 | 1 | $rules = array(new Validators\Required('task_id', t('This value is required')), new Validators\Required('user_id', t('This value is required')), new Validators\Required('subject', t('This field is required')), new Validators\Required('emails', t('This field is required')), ) |
| /app/Validator/AuthValidator.php:38 | 1 | $v = new Validator($values, array(new Validators\Required('username', t('The username is required')), new Validators\MaxLength('username', t('The maximum length is %d characters', 191), 191), new Validators\Required('password', t('The password is required')), )) |
| /app/Api/Procedure/TaskProcedure.php:155 | 1 | $values = $this->filterValues(array('id' => $id, 'title' => $title, 'color_id' => $color_id, 'owner_id' => $owner_id, 'date_due' => $date_due, 'description' => $description, 'category_id' => $category_id, 'score' => $score, 'recurrence_status' => $recurrence_status, 'recurrence_trigger' => $recurrence_trigger, 'recurrence_factor' => $recurrence_factor, 'recurrence_timeframe' => $recurrence_timeframe, 'recurrence_basedate' => $recurrence_basedate, 'reference' => $reference, 'priority' => $priority, 'tags' => $tags, 'date_started' => $date_started, 'time_spent' => $time_spent, 'time_estimated' => $time_estimated, )) |
| /app/Api/Procedure/TaskProcedure.php:108 | 1 | $values = array('title' => $title, 'project_id' => $project_id, 'color_id' => $color_id, 'column_id' => $column_id, 'owner_id' => $owner_id, 'creator_id' => $creator_id, 'date_due' => $date_due, 'description' => $description, 'category_id' => $category_id, 'score' => $score, 'swimlane_id' => $swimlane_id, 'recurrence_status' => $recurrence_status, 'recurrence_trigger' => $recurrence_trigger, 'recurrence_factor' => $recurrence_factor, 'recurrence_timeframe' => $recurrence_timeframe, 'recurrence_basedate' => $recurrence_basedate, 'reference' => $reference, 'priority' => $priority, 'tags' => $tags, 'date_started' => $date_started, 'time_spent' => $time_spent, 'time_estimated' => $time_estimated, ) |
| /app/Validator/LinkValidator.php:47 | 1 | $v = new Validator($values, array(new Validators\Required('id', t('Field required')), new Validators\Required('opposite_id', t('Field required')), new Validators\Required('label', t('Field required')), new Validators\Unique('label', t('This label must be unique'), $this->db->getConnection( ), LinkModel::TABLE), )) |
| /app/Validator/LinkValidator.php:26 | 1 | $v = new Validator($values, array(new Validators\Required('label', t('Field required')), new Validators\Unique('label', t('This label must be unique'), $this->db->getConnection( ), LinkModel::TABLE), new Validators\NotEquals('label', 'opposite_label', t('The labels must be different')), )) |
| /app/Validator/ActionValidator.php:25 | 1 | $v = new Validator($values, array(new Validators\Required('project_id', t('The project id is required')), new Validators\Integer('project_id', t('This value must be an integer')), new Validators\Required('event_name', t('This value is required')), new Validators\Required('action_name', t('This value is required')), new Validators\Required('params', t('This value is required')), )) |
| /app/Validator/PasswordResetValidator.php:55 | 1 | $v = new Validator($values, array(new Validators\Required('captcha', t('This value is required')), new Validators\Required('username', t('The username is required')), new Validators\MaxLength('username', t('The maximum length is %d characters', 191), 191), )) |
| /app/Controller/UserViewController.php:60 | 1 | $subtask_paginator = $this->paginator->setUrl('UserViewController', 'timesheet', array('user_id' => $user['id'], 'pagination' => 'subtasks'))->setMax(20)->setOrder('start')->setDirection('DESC')->setQuery($this->subtaskTimeTrackingModel->getUserQuery($user['id']))->calculateOnlyIf($this->request->getStringParam('pagination') === 'subtasks') |
| /app/Controller/ExternalTaskCreationController.php:49 | 1 | $values = $externalTask->getFormValues( ) + array('external_uri' => $externalTask->getUri( ), 'external_provider' => $providerName, 'project_id' => $project['id'], 'swimlane_id' => $values['swimlane_id'], 'column_id' => $values['column_id'], 'color_id' => $this->colorModel->getDefaultColor( ), 'owner_id' => $this->userSession->getId( ), ) |
| /app/Controller/TaskListController.php:43 | 1 | $paginator = $this->paginator->setUrl('TaskListController', 'show', array('project_id' => $project['id']))->setMax(30)->setOrder($order)->setDirection($direction)->setFormatter($formatter)->setQuery($this->taskLexer->build($search)->withFilter(new TaskProjectFilter($project['id']))->getQuery( ))->calculate( ) |
| /app/Controller/AnalyticController.php:47 | 1 | $paginator = $this->paginator->setUrl('AnalyticController', 'timeComparison', array('project_id' => $project['id']))->setMax(30)->setOrder(TaskModel::TABLE . '.id')->setQuery($this->taskQuery->withFilter(new TaskProjectFilter($project['id']))->getQuery( ))->calculate( ) |
| /app/Controller/ProjectCreationController.php:96 | 1 | $project = array('name' => $values['name'], 'is_private' => $values['is_private'], 'identifier' => $values['identifier'], 'per_swimlane_task_limits' => array_key_exists('per_swimlane_task_limits', $values) ? $values['per_swimlane_task_limits'] : 0, 'task_limit' => $values['task_limit'], ) |
| /app/Controller/TaskModificationController.php:98 | 1 | $params = array('project' => $project, 'values' => $values, 'errors' => $errors, 'task' => $task, 'tags' => $this->taskTagModel->getList($task['id']), 'users_list' => $this->projectUserRoleModel->getAssignableUsersList($task['project_id']), 'categories_list' => $this->categoryModel->getList($task['project_id']), ) |
| /app/Core/User/UserProperty.php:23 | 1 | $properties = array('username' => $user->getUsername( ), 'name' => $user->getName( ), 'email' => $user->getEmail( ), 'role' => $user->getRole( ), $user->getExternalIdColumn( ) => $user->getExternalId( ), ) |
| /app/Controller/GroupListController.php:56 | 1 | $paginator = $this->paginator->setUrl('GroupListController', 'users', array('group_id' => $group_id))->setMax(30)->setOrder(UserModel::TABLE . '.username')->setQuery($this->groupMemberModel->getQuery($group_id))->calculate( ) |
| /app/Core/Paginator.php:443 | 1 | $html .= $this->container['helper']->url->link(t('Next') . ' →', $this->controller, $this->action, $this->getUrlParams($this->page + 1, $this->order, $this->direction), false, 'js-modal-replace', t('Next'), false, $this->anchor) |
| /app/Core/Event/EventManager.php:47 | 1 | $events = array(TaskLinkModel::EVENT_CREATE_UPDATE => t('Task link creation or modification'), TaskModel::EVENT_MOVE_COLUMN => t('Move a task to another column'), TaskModel::EVENT_UPDATE => t('Task modification'), TaskModel::EVENT_CREATE => t('Task creation'), TaskModel::EVENT_OPEN => t('Reopen a task'), TaskModel::EVENT_CLOSE => t('Closing a task'), TaskModel::EVENT_CREATE_UPDATE => t('Task creation or modification'), TaskModel::EVENT_ASSIGNEE_CHANGE => t('Task assignee change'), TaskModel::EVENT_DAILY_CRONJOB => t('Daily background job for tasks'), TaskModel::EVENT_MOVE_SWIMLANE => t('Move a task to another swimlane'), SubtaskModel::EVENT_CREATE_UPDATE => t('Subtask creation or modification'), ) |
| /app/Helper/FormHelper.php:230 | 1 | $params = array('name' => $name, 'css' => $this->errorClass($errors, $name), 'required' => isset($attributes['required']) && $attributes['required'], 'tabindex' => isset($attributes['tabindex']) ? $attributes['tabindex'] : '-1', 'labelPreview' => t('Preview'), 'previewUrl' => $this->helper->url->to('TaskAjaxController', 'preview'), 'labelWrite' => t('Write'), 'labelTitle' => t('Title'), 'placeholder' => t('Write your text in Markdown'), 'autofocus' => isset($attributes['autofocus']) && $attributes['autofocus'], 'suggestOptions' => array('triggers' => array('#' => $this->helper->url->to('TaskAjaxController', 'suggest', array('search' => 'SEARCH_TERM')), )), ) |
| /app/Core/Paginator.php:412 | 1 | $html .= $this->container['helper']->url->link('← ' . t('Previous'), $this->controller, $this->action, $this->getUrlParams($this->page - 1, $this->order, $this->direction), false, 'js-modal-replace', t('Previous'), false, $this->anchor) |
| /app/Helper/SubtaskHelper.php:87 | 1 | $html .= $this->helper->url->icon('play-circle-o', t('Start timer'), 'SubtaskStatusController', 'timer', array('timer' => 'start', 'project_id' => $task['project_id'], 'task_id' => $subtask['task_id'], 'subtask_id' => $subtask['id']), false, 'js-subtask-toggle-timer') |
| /app/Helper/TaskHelper.php:302 | 1 | $link = $this->helper->url->link($provider->getMenuAddLabel( ), 'ExternalTaskCreationController', 'step1', array('project_id' => $column['project_id'], 'swimlane_id' => $swimlane['id'], 'column_id' => $column['id'], 'provider_name' => $provider->getName( )), false, 'js-modal-large') |
| /app/Import/TaskImport.php:160 | 1 | $values = array('task_id' => $taskId, 'title' => $link->getTitle( ) ?: $link->getUrl( ), 'url' => $link->getUrl( ), 'link_type' => $provider->getType( ), 'dependency' => key($dependencies), ) |
| /app/Helper/SubtaskHelper.php:84 | 1 | $html .= $this->helper->url->icon('pause', t('Stop timer'), 'SubtaskStatusController', 'timer', array('timer' => 'stop', 'project_id' => $task['project_id'], 'task_id' => $subtask['task_id'], 'subtask_id' => $subtask['id']), false, 'js-subtask-toggle-timer') |
| /app/Formatter/BoardColumnFormatter.php:82 | 1 | $column['tasks'] = $this->boardTaskFormatter->withTasks($this->tasks)->withTags($this->tags)->withSwimlaneId($this->swimlaneId)->withColumnId($column['id'])->format( ) |
| /app/Formatter/ProjectApiFormatter.php:31 | 1 | $this->project['url'] = array('board' => $this->helper->url->to('BoardViewController', 'show', array('project_id' => $this->project['id']), '', true), 'list' => $this->helper->url->to('TaskListController', 'show', array('project_id' => $this->project['id']), '', true), ) |
| /app/User/DatabaseBackendUserProvider.php:29 | 1 | $users = $this->userQuery->withFilter(new UserNameFilter($input))->getQuery( )->columns(UserModel::TABLE . '.id', UserModel::TABLE . '.username', UserModel::TABLE . '.name')->eq(UserModel::TABLE . '.is_active', 1)->asc(UserModel::TABLE . '.name')->asc(UserModel::TABLE . '.username')->findAll( ) |
| /app/Auth/DatabaseAuth.php:62 | 1 | $user = $this->db->table(UserModel::TABLE)->columns('id', 'password')->eq('username', $this->username)->eq('disable_login_form', 0)->eq('is_ldap_user', 0)->eq('is_active', 1)->findOne( ) |
| /app/Auth/ApiAccessTokenAuth.php:65 | 1 | $user = $this->db->table(UserModel::TABLE)->columns('id', 'password')->eq('username', $this->username)->eq('api_access_token', $this->password)->notNull('api_access_token')->eq('is_active', 1)->findOne( ) |
| /app/Controller/TaskCreationController.php:129 | 1 | $values = array('swimlane_id' => $this->request->getIntegerParam('swimlane_id', key($swimlanesList)), 'column_id' => $this->request->getIntegerParam('column_id'), 'color_id' => $this->colorModel->getDefaultColor( ), ) |
| /app/Controller/UserCredentialController.php:47 | 1 | $values = array('id' => $this->userSession->getId( ), 'password' => isset($values['password']) ? $values['password'] : '', 'confirmation' => isset($values['confirmation']) ? $values['confirmation'] : '', ) |
| /app/Controller/ProjectUserOverviewController.php:67 | 1 | $paginator = $this->paginator->setUrl('ProjectUserOverviewController', $action, array('user_id' => $user_id))->setMax(50)->setOrder(TaskModel::TABLE . '.id')->setQuery($query)->calculate( ) |
| /app/Controller/UserListController.php:42 | 1 | $paginator = $paginator->setUrl('UserListController', 'search', array('search' => $search))->setQuery($this->userQuery->withFilter(new UserNameFilter($search))->getQuery( ))->calculate( ) |
| /app/Controller/ICalendarController.php:107 | 1 | $conditions = array("($start_column >= '$start_time' AND $start_column <= '$end_time')", "($start_column <= '$start_time' AND $end_column >= '$start_time')", "($start_column <= '$start_time' AND ($end_column = '0' OR $end_column IS NULL))", ) |
| /app/Controller/ICalendarController.php:88 | 1 | $queryStartAndDueDate = QueryBuilder::create( )->withQuery($this->taskFinderModel->getICalQuery( ))->withFilter(new TaskStatusFilter(TaskModel::STATUS_OPEN))->withFilter(new TaskProjectFilter($project['id']))->getQuery( )->addCondition($this->getConditionForTasksWithStartAndDueDate($startRange, $endRange, $startColumn, 'date_due')) |
| /app/Controller/ICalendarController.php:81 | 1 | $queryDueDateOnly = QueryBuilder::create( )->withQuery($this->taskFinderModel->getICalQuery( ))->withFilter(new TaskStatusFilter(TaskModel::STATUS_OPEN))->withFilter(new TaskProjectFilter($project['id']))->withFilter(new TaskDueDateRangeFilter(array($startRange, $endRange)))->getQuery( ) |
| /app/Controller/ICalendarController.php:48 | 1 | $queryStartAndDueDate = QueryBuilder::create( )->withQuery($this->taskFinderModel->getICalQuery( ))->withFilter(new TaskStatusFilter(TaskModel::STATUS_OPEN))->withFilter(new TaskAssigneeFilter($user['id']))->getQuery( )->addCondition($this->getConditionForTasksWithStartAndDueDate($startRange, $endRange, $startColumn, 'date_due')) |
| /app/Controller/ICalendarController.php:41 | 1 | $queryDueDateOnly = QueryBuilder::create( )->withQuery($this->taskFinderModel->getICalQuery( ))->withFilter(new TaskStatusFilter(TaskModel::STATUS_OPEN))->withFilter(new TaskDueDateRangeFilter(array($startRange, $endRange)))->withFilter(new TaskAssigneeFilter($user['id']))->getQuery( ) |
| /app/Controller/UserModificationController.php:50 | 1 | $values = array('id' => $this->userSession->getId( ), 'username' => isset($values['username']) ? $values['username'] : '', 'name' => isset($values['name']) ? $values['name'] : '', 'email' => isset($values['email']) ? $values['email'] : '', 'timezone' => isset($values['timezone']) ? $values['timezone'] : '', 'language' => isset($values['language']) ? $values['language'] : '', 'filter' => isset($values['filter']) ? $values['filter'] : '', ) |
| /app/Controller/TaskViewController.php:109 | 1 | $subtask_paginator = $this->paginator->setUrl('TaskViewController', 'timetracking', array('task_id' => $task['id'], 'project_id' => $task['project_id'], 'pagination' => 'subtasks'))->setMax(15)->setOrder('start')->setDirection('DESC')->setQuery($this->subtaskTimeTrackingModel->getTaskQuery($task['id']))->calculateOnlyIf($this->request->getStringParam('pagination') === 'subtasks') |
| /app/Model/TaskReorderModel.php:68 | 1 | $taskIDs = $this->db->table(TaskModel::TABLE)->eq('project_id', $projectID)->eq('swimlane_id', $swimlaneID)->eq('column_id', $columnID)->orderBy('date_due', $direction)->asc('id')->findAllByColumn('id') |
| /app/Model/TaskReorderModel.php:49 | 1 | $taskIDs = $this->db->table(TaskModel::TABLE)->eq('tasks.project_id', $projectID)->eq('tasks.swimlane_id', $swimlaneID)->eq('tasks.column_id', $columnID)->orderBy('u.name', $direction)->orderBy('u.username', $direction)->orderBy('u.id', $direction)->left(UserModel::TABLE, 'u', 'id', TaskModel::TABLE, 'owner_id')->findAllByColumn('tasks.id') |
| /libs/SimpleValidator/Validators/Email.php:29 | 1 | if(!(ctype_alnum($c) || $c === '.' || $c === '!' || $c === '#' || $c === '$' || $c === '%' || $c === '&' || $c === '\'' || $c === '*' || $c === '+' || $c === '-' || $c === '/' || $c === '=' || $c === '?' || $c === '^' || $c === '_' || $c === '`' || $c === '{' || $c === '|' || $c === '}' || $c === '~')) { /**/ } |
| /app/Template/custom_filter/index.php:21 | 1 | if(($filter['user_id'] == $this->user->getId( ) || $this->user->isAdmin( ) || $this->projectRole->getProjectUserRole($project['id']) == \Kanboard\Core\Security\Role::PROJECT_MANAGER) && $this->user->hasProjectAccess('CustomFilterController', 'edit', $project['id'])) : /**/ endif |
| /app/Filter/TaskTitleFilter.php:35 | 1 | if(ctype_digit($this->value) || (strlen($this->value) > 1 && $this->value[0] === '#' && ctype_digit(substr($this->value, 1)))) { /**/ } else { /**/ } |
| /app/Helper/ProjectRoleHelper.php:208 | 1 | if($this->role->isCustomProjectRole($role) && $task['owner_id'] != $this->userSession->getId( ) && $this->hasRestriction($task['project_id'], $role, ProjectRoleRestrictionModel::RULE_TASK_UPDATE_ASSIGNED)) { /**/ } |
| /libs/phpqrcode/lib/PHPQRCode/QRmask.php:198 | 1 | if(($this->runLength[$i - 2] == $fact) && ($this->runLength[$i - 1] == $fact) && ($this->runLength[$i + 1] == $fact) && ($this->runLength[$i + 2] == $fact)) { /**/ } |
| /libs/jsonrpc/src/JsonRPC/Validator/RpcFormatValidator.php:25 | 1 | if(!isset($payload['jsonrpc']) || !isset($payload['method']) || !is_string($payload['method']) || $payload['jsonrpc'] !== '2.0' || (isset($payload['params']) && !is_array($payload['params']))) { /**/ } |
| /app/Model/SwimlaneModel.php:405 | 1 | $swimlaneIds = $this->db->table(self::TABLE)->eq('is_active', 1)->eq('project_id', $projectId)->neq('id', $swimlaneId)->asc('position')->findAllByColumn('id') |
| /app/Model/SwimlaneModel.php:443 | 1 | $values = array('name' => $swimlane['name'], 'description' => $swimlane['description'], 'position' => $swimlane['position'], 'is_active' => $swimlane['is_active'] ? self::ACTIVE : self::INACTIVE, 'project_id' => $projectDstId, ) |
| /app/Model/ColumnMoveRestrictionModel.php:159 | 1 | $result = $this->db->table(self::TABLE)->persist(array('project_id' => $project_dst_id, 'role_id' => $role_dst_id, 'src_column_id' => $src_column_id, 'dst_column_id' => $dst_column_id, 'only_assigned' => (int) $row['only_assigned'], )) |
| /app/Model/ProjectDuplicationModel.php:151 | 1 | $values = array('name' => $name ?: $this->getClonedProjectName($project['name']), 'is_active' => 1, 'last_modified' => time( ), 'token' => '', 'is_public' => 0, 'is_private' => $private ? 1 : $is_private, 'owner_id' => $owner_id, 'priority_default' => $project['priority_default'], 'priority_start' => $project['priority_start'], 'priority_end' => $project['priority_end'], 'per_swimlane_task_limits' => empty($project['per_swimlane_task_limits']) ? 0 : 1, 'task_limit' => $project['task_limit'], 'identifier' => $identifier, ) |
| /app/Model/TaskLinkModel.php:238 | 1 | $result2 = $this->db->table(self::TABLE)->eq('opposite_task_id', $link['task_id'])->eq('task_id', $link['opposite_task_id'])->eq('link_id', $link_id)->remove( ) |
| /app/Model/FileModel.php:149 | 1 | $values = array($this->getForeignKey( ) => $foreign_key_id, 'name' => substr($name, 0, 255), 'path' => $path, 'is_image' => $this->isImage($name) ? 1 : 0, 'size' => $size, 'user_id' => $this->userSession->getId( ) ?: 0, 'date' => time( ), ) |
| /app/Model/ProjectDailyStatsModel.php:61 | 1 | $metrics = $this->db->table(self::TABLE)->columns('day', 'avg_lead_time', 'avg_cycle_time')->eq('project_id', $project_id)->gte('day', $from)->lte('day', $to)->asc('day')->findAll( ) |
| /app/Model/BoardModel.php:62 | 1 | $values = array('title' => $column['title'], 'position' => ++$position, 'project_id' => $project_id, 'task_limit' => $column['task_limit'], 'description' => $column['description'], 'hide_in_dashboard' => $column['hide_in_dashboard'] ?: 0, ) |
| /app/Formatter/SubtaskTimeTrackingCalendarFormatter.php:22 | 1 | $events[] = array('id' => $row['id'], 'subtask_id' => $row['subtask_id'], 'title' => t('#%d', $row['task_id']) . ' ' . $row['subtask_title'] . $user, 'start' => date('Y-m-d\TH:i:s', $row['start']), 'end' => date('Y-m-d\TH:i:s', $row['end'] ?: time( )), 'backgroundColor' => $this->colorModel->getBackgroundColor($row['color_id']), 'borderColor' => $this->colorModel->getBorderColor($row['color_id']), 'textColor' => 'black', 'url' => $this->helper->url->to('TaskViewController', 'show', array('task_id' => $row['task_id'], 'project_id' => $row['project_id'])), 'editable' => false, ) |
| /app/Formatter/TaskSuggestMenuFormatter.php:40 | 2 | $tasks = $this->query->columns(TaskModel::TABLE . '.id', TaskModel::TABLE . '.title', ProjectModel::TABLE . '.name AS project_name')->asc(TaskModel::TABLE . '.id')->limit($this->limit)->findAll( ) |
| /app/Formatter/TaskAutoCompleteFormatter.php:39 | 2 | $tasks = $this->query->columns(TaskModel::TABLE . '.id', TaskModel::TABLE . '.title', ProjectModel::TABLE . '.name AS project_name')->asc(TaskModel::TABLE . '.id')->limit($this->limit)->findAll( ) |
| /app/Formatter/UserAutoCompleteFormatter.php:48 | 1 | $result[] = array('id' => $user->getInternalId( ), 'username' => $user->getUsername( ), 'external_id' => $user->getExternalId( ), 'external_id_column' => $user->getExternalIdColumn( ), 'value' => $user->getName( ) === '' ? $user->getUsername( ) : $user->getName( ), 'label' => $user->getName( ) === '' ? $user->getUsername( ) : $user->getName( ) . ' (' . $user->getUsername( ) . ')', ) |
| /app/Job/UserMentionJob.php:63 | 1 | $users = $this->db->table(UserModel::TABLE)->columns('id', 'username', 'name', 'email', 'language')->eq('notifications_enabled', 1)->neq('id', $this->userSession->getId( ))->in('username', array_unique($matches[1]))->findAll( ) |
| /app/Model/SwimlaneModel.php:180 | 1 | $swimlanes = $this->db->table(self::TABLE)->columns('id', 'name', 'description', 'project_id', 'position', 'is_active', 'task_limit')->subquery("SELECT COUNT(*) FROM " . TaskModel::TABLE . " WHERE swimlane_id=" . self::TABLE . ".id AND is_active='1'", 'nb_open_tasks')->subquery("SELECT COUNT(*) FROM " . TaskModel::TABLE . " WHERE swimlane_id=" . self::TABLE . ".id AND is_active='0'", 'nb_closed_tasks')->eq('project_id', $project_id)->asc('position')->asc('name')->findAll( ) |
| /app/Model/SwimlaneModel.php:295 | 1 | $result = $this->db->table(self::TABLE)->eq('id', $swimlaneId)->eq('project_id', $projectId)->update(array('is_active' => self::INACTIVE, 'position' => 0, )) |
| /app/Model/SwimlaneModel.php:369 | 1 | $swimlanes = $this->db->table(self::TABLE)->eq('project_id', $projectId)->eq('is_active', 1)->asc('position')->asc('id')->findAllByColumn('id') |
| /app/Model/ProjectUserRoleModel.php:45 | 1 | $userProjects = $this->db->hashtable(ProjectModel::TABLE)->eq(self::TABLE . '.user_id', $user_id)->in(ProjectModel::TABLE . '.is_active', $status)->join(self::TABLE, 'project_id', 'id')->getAll(ProjectModel::TABLE . '.id', ProjectModel::TABLE . '.name') |
| /app/Model/ProjectRoleModel.php:174 | 1 | $r2 = $this->db->table(ProjectGroupRoleModel::TABLE)->eq('project_id', $project_id)->eq('role', $role['role'])->update(array('role' => Role::PROJECT_MEMBER)) |
| /app/Model/SubtaskModel.php:100 | 1 | $query = $this->db->table(self::TABLE)->eq('user_id', $userId)->eq(TaskModel::TABLE . '.is_active', TaskModel::STATUS_OPEN)->join(Taskmodel::TABLE, 'id', 'task_id') |
| /app/Model/ProjectUserRoleModel.php:154 | 1 | $userMembers = $this->db->table(self::TABLE)->columns(UserModel::TABLE . '.id', UserModel::TABLE . '.username', UserModel::TABLE . '.name')->join(UserModel::TABLE, 'id', 'user_id')->eq(UserModel::TABLE . '.is_active', 1)->eq(self::TABLE . '.project_id', $project_id)->neq(self::TABLE . '.role', Role::PROJECT_VIEWER)->findAll( ) |
| /app/Model/ProjectRoleRestrictionModel.php:66 | 1 | $restrictions = $this->db->table(self::TABLE)->columns(self::TABLE . '.restriction_id', self::TABLE . '.project_id', self::TABLE . '.role_id', self::TABLE . '.rule')->eq(self::TABLE . '.project_id', $project_id)->findAll( ) |
| /app/Model/ProjectGroupRoleModel.php:52 | 1 | $roles = $this->db->table(self::TABLE)->join(GroupMemberModel::TABLE, 'group_id', 'group_id', self::TABLE)->eq(GroupMemberModel::TABLE . '.user_id', $user_id)->eq(self::TABLE . '.project_id', $project_id)->findAllByColumn('role') |
| /app/Model/TaskPositionModel.php:33 | 1 | $result = $this->db->table(TaskModel::TABLE)->eq('id', $task_id)->eq('project_id', $project_id)->update(['swimlane_id' => $swimlane_id, 'column_id' => $column_id, 'position' => $position, 'date_moved' => time( ), 'date_modification' => time( ), ]) |
| /app/Model/TaskPositionModel.php:21 | 1 | $result = $this->db->table(TaskModel::TABLE)->eq('project_id', $project_id)->eq('swimlane_id', $swimlane_id)->eq('column_id', $column_id)->columns('MAX(position) AS pos')->findOne( ) |
| /app/Model/ProjectPermissionModel.php:74 | 1 | $groupMembers = $this->projectGroupRoleQuery->withFilter(new ProjectGroupRoleProjectFilter($project_id))->withFilter(new ProjectGroupRoleUsernameFilter($input))->getQuery( )->columns(UserModel::TABLE . '.id', UserModel::TABLE . '.username', UserModel::TABLE . '.name', UserModel::TABLE . '.email', UserModel::TABLE . '.avatar_path')->findAll( ) |
| /app/Model/ProjectPermissionModel.php:61 | 1 | $userMembers = $this->projectUserRoleQuery->withFilter(new ProjectUserRoleProjectFilter($project_id))->withFilter(new ProjectUserRoleUsernameFilter($input))->getQuery( )->columns(UserModel::TABLE . '.id', UserModel::TABLE . '.username', UserModel::TABLE . '.name', UserModel::TABLE . '.email', UserModel::TABLE . '.avatar_path')->findAll( ) |
| /app/Model/ColumnRestrictionModel.php:73 | 1 | $restrictions = $this->db->table(self::TABLE)->columns(self::TABLE . '.restriction_id', self::TABLE . '.project_id', self::TABLE . '.role_id', self::TABLE . '.column_id', self::TABLE . '.rule', 'pr.role', 'c.title as column_title')->left(ColumnModel::TABLE, 'c', 'id', self::TABLE, 'column_id')->left(ProjectRoleModel::TABLE, 'pr', 'role_id', self::TABLE, 'role_id')->eq(self::TABLE . '.project_id', $project_id)->findAll( ) |
| /app/Model/TaskExternalLinkModel.php:33 | 1 | $links = $this->db->table(self::TABLE)->columns(self::TABLE . '.*', UserModel::TABLE . '.name AS creator_name', UserModel::TABLE . '.username AS creator_username')->eq('task_id', $task_id)->asc('title')->join(UserModel::TABLE, 'id', 'creator_id')->findAll( ) |
| /app/Model/CustomFilterModel.php:114 | 1 | $filters = $this->db->table(self::TABLE)->columns(self::TABLE . '.user_id', self::TABLE . '.filter', self::TABLE . '.name', self::TABLE . '.is_shared', self::TABLE . '.append')->eq('project_id', $src_project_id)->findAll( ) |
| /app/Model/PasswordResetModel.php:59 | 1 | $result = $this->db->table(self::TABLE)->insert(array('token' => $token, 'user_id' => $user_id, 'date_expiration' => $expiration ?: time( ) + self::DURATION, 'date_creation' => time( ), 'ip' => $this->request->getIpAddress( ), 'user_agent' => $this->request->getUserAgent( ), 'is_active' => 1, )) |
| /app/Model/ProjectRoleModel.php:166 | 1 | $r1 = $this->db->table(ProjectUserRoleModel::TABLE)->eq('project_id', $project_id)->eq('role', $role['role'])->update(array('role' => Role::PROJECT_MEMBER)) |
| /app/Model/TaskTagModel.php:68 | 1 | $tags = $this->db->table(TagModel::TABLE)->columns(TagModel::TABLE . '.id', TagModel::TABLE . '.name', TagModel::TABLE . '.color_id', self::TABLE . '.task_id')->in(self::TABLE . '.task_id', $task_ids)->join(self::TABLE, 'tag_id', 'id')->asc(TagModel::TABLE . '.name')->findAll( ) |
| /app/Model/SubtaskTaskConversionModel.php:28 | 1 | $task_id = $this->taskCreationModel->create(array('project_id' => $project_id, 'title' => $subtask['title'], 'time_estimated' => $subtask['time_estimated'], 'time_spent' => $subtask['time_spent'], 'owner_id' => $subtask['user_id'], 'swimlane_id' => $parent_task['swimlane_id'], 'priority' => $parent_task['priority'], 'column_id' => $parent_task['column_id'], 'category_id' => $parent_task['category_id'], 'color_id' => $parent_task['color_id'])) |
| /app/Model/ProjectDailyColumnStatsModel.php:210 | 1 | $stats = $this->db->table(TaskModel::TABLE)->columns('column_id', 'SUM(score) AS score')->eq('project_id', $project_id)->eq('is_active', TaskModel::STATUS_OPEN)->notNull('score')->groupBy('column_id')->findAll( ) |
| /app/Model/TaskStatusModel.php:86 | 1 | $task_ids = $this->db->table(TaskModel::TABLE)->eq('swimlane_id', $swimlane_id)->eq('column_id', $column_id)->eq(TaskModel::TABLE . '.is_active', TaskModel::STATUS_OPEN)->findAllByColumn('id') |
| /app/Model/ProjectModel.php:503 | 1 | $file_ids = $this->db->table(TaskFileModel::TABLE)->eq(TaskModel::TABLE . '.project_id', $project_id)->join(TaskModel::TABLE, 'id', 'task_id', TaskFileModel::TABLE)->findAllByColumn(TaskFileModel::TABLE . '.id') |
| /app/Model/ProjectDailyColumnStatsModel.php:230 | 1 | $stats = $this->db->table(TaskModel::TABLE)->columns('column_id', 'COUNT(*) AS total')->eq('project_id', $project_id)->in('is_active', $this->getTaskStatusConfig( ))->groupBy('column_id')->findAll( ) |
| /app/Model/UserModel.php:355 | 1 | $project_ids = $db->table(ProjectModel::TABLE)->eq('is_private', 1)->eq(ProjectUserRoleModel::TABLE . '.user_id', $user_id)->join(ProjectUserRoleModel::TABLE, 'project_id', 'id')->findAllByColumn(ProjectModel::TABLE . '.id') |
| /app/Model/TaskReorderModel.php:13 | 1 | $taskIDs = $this->db->table(TaskModel::TABLE)->eq('project_id', $projectID)->eq('swimlane_id', $swimlaneID)->eq('column_id', $columnID)->orderBy('priority', $direction)->asc('id')->findAllByColumn('id') |
| /app/Model/TaskReorderModel.php:30 | 1 | $taskIDs = $this->db->table(TaskModel::TABLE)->eq('tasks.project_id', $projectID)->eq('tasks.swimlane_id', $swimlaneID)->eq('tasks.column_id', $columnID)->asc('u.name')->asc('u.username')->orderBy('tasks.priority', $direction)->left(UserModel::TABLE, 'u', 'id', TaskModel::TABLE, 'owner_id')->findAllByColumn('tasks.id') |
| /app/Model/TaskPositionModel.php:179 | 1 | $tasks_ids = $this->db->table(TaskModel::TABLE)->eq('is_active', 1)->eq('swimlane_id', $swimlane_id)->eq('project_id', $project_id)->eq('column_id', $column_id)->neq('id', $task_id)->asc('position')->asc('id')->findAllByColumn('id') |
| /app/Model/TaskPositionModel.php:271 | 1 | $changes = array('project_id' => $task['project_id'], 'position' => $new_position, 'column_id' => $new_column_id, 'swimlane_id' => $new_swimlane_id, 'src_column_id' => $task['column_id'], 'dst_column_id' => $new_column_id, 'date_moved' => $task['date_moved'], 'recurrence_status' => $task['recurrence_status'], 'recurrence_trigger' => $task['recurrence_trigger'], ) |
| /app/Model/MetadataModel.php:102 | 1 | $results[] = $this->db->table($this->getTable( ))->eq($this->getEntityKey( ), $entity_id)->eq('name', $key)->update(array('value' => $value, 'changed_on' => $timestamp, 'changed_by' => $user_id, )) |
| /app/Model/MetadataModel.php:111 | 1 | $results[] = $this->db->table($this->getTable( ))->insert(array('name' => $key, 'value' => $value, $this->getEntityKey( ) => $entity_id, 'changed_on' => $timestamp, 'changed_by' => $user_id, )) |