public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $searchQuery = $request->request->get('code'); $clientId = $session->get('client/id'); $loggedInUserId = $session->get('user/id'); $projects = $this->getRepository(UbirimiClient::class)->getProjectsByPermission($clientId, $session->get('user/id'), Permission::PERM_BROWSE_PROJECTS, 'array'); $projects = Util::array_column($projects, 'id'); // search first for a perfect match $issueResult = $this->getRepository(Issue::class)->getByParameters(array('project' => $projects, 'code_nr' => $searchQuery), $loggedInUserId, null, $loggedInUserId); if ($issueResult) { $issue = $issueResult->fetch_array(MYSQLI_ASSOC); return new Response($issue['id']); } else { return new Response('-1'); } }
public function indexAction(Request $request, SessionInterface $session) { if (Util::checkUserIsLoggedIn()) { $clientId = $session->get('client/id'); $clientSettings = $session->get('client/settings'); } else { $clientId = $this->getRepository(UbirimiClient::class)->getClientIdAnonymous(); $clientSettings = $this->getRepository(UbirimiClient::class)->getSettings($clientId); } $client = $this->getRepository(UbirimiClient::class)->getById($clientId); $date = $request->request->get('date'); $project = $request->request->get('project'); if ($project == 'all') { $projectsMenu = $this->getRepository(UbirimiClient::class)->getProjectsByPermission($session->get('client/id'), $session->get('user/id'), Permission::PERM_BROWSE_PROJECTS, 'array'); $projectIds = Util::array_column($projectsMenu, 'id'); } else { $projectIds = array($project); } $historyList = null; $endDate = $date; $startDate = date_sub(new \DateTime($date, new \DateTimeZone($clientSettings['timezone'])), date_interval_create_from_date_string('2 days')); do { $historyList = Util::getProjectHistory($projectIds, 0, null, date_format($startDate, 'Y-m-d'), $endDate); if (null == $historyList && date_format($startDate, 'Y-m-d H:i:s') == $client['date_created']) { break; } $startDate = date_sub($startDate, date_interval_create_from_date_string('2 days')); $startDate->setTime(0, 0, 0); if (date_format($startDate, 'Y-m-d') < $client['date_created']) { $startDate = new \DateTime($client['date_created'], new \DateTimeZone($clientSettings['timezone'])); break; } } while ($historyList == null); $historyData = array(); $userData = array(); while ($historyList && ($history = $historyList->fetch_array(MYSQLI_ASSOC))) { $historyData[substr($history['date_created'], 0, 10)][$history['user_id']][$history['date_created']][] = $history; $userData[$history['user_id']] = array('picture' => $history['avatar_picture'], 'first_name' => $history['first_name'], 'last_name' => $history['last_name']); } $index = 0; return $this->render(__DIR__ . '/../Resources/views/project/_activityStream.php', get_defined_vars()); }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $projectId = $session->get('selected_project_id'); $userId = $request->get('id'); $loggedInUserId = $session->get('user/id'); $user = $this->getRepository(UbirimiUser::class)->getById($userId); if ($user['client_id'] != $session->get('client/id')) { return new RedirectResponse('/general-settings/bad-link-access-denied'); } $clientSettings = $this->getRepository(UbirimiClient::class)->getSettings($session->get('client/id')); $groups = $this->getRepository(UbirimiGroup::class)->getByUserIdAndProductId($userId, SystemProduct::SYS_PRODUCT_YONGO); $stats = $this->getRepository(IssueStatistic::class)->getUnresolvedIssuesByProjectForUser($userId); $hasAdministrationGlobalPermission = $this->getRepository(UbirimiUser::class)->hasGlobalPermission($session->get('client/id'), $userId, GlobalPermission::GLOBAL_PERMISSION_YONGO_ADMINISTRATORS); $hasSystemAdministrationGlobalPermission = $this->getRepository(UbirimiUser::class)->hasGlobalPermission($session->get('client/id'), $userId, GlobalPermission::GLOBAL_PERMISSION_YONGO_SYSTEM_ADMINISTRATORS); $projectsForBrowsing = $this->getRepository(UbirimiClient::class)->getProjectsByPermission($session->get('client/id'), $session->get('user/id'), Permission::PERM_BROWSE_PROJECTS, 'array'); $projectIds = array(); if ($projectsForBrowsing) { $projectIds = Util::array_column($projectsForBrowsing, 'id'); } $menuSelectedCategory = 'user'; $session->set('selected_product_id', SystemProduct::SYS_PRODUCT_YONGO); $hoursPerDay = $session->get('yongo/settings/time_tracking_hours_per_day'); $daysPerWeek = $session->get('yongo/settings/time_tracking_days_per_week'); $historyList = Util::getProjectHistory($projectIds, 0, $userId); $historyData = array(); $userData = array(); while ($historyList && ($history = $historyList->fetch_array(MYSQLI_ASSOC))) { $historyData[substr($history['date_created'], 0, 10)][$history['user_id']][$history['date_created']][] = $history; $userData[$history['user_id']] = array('picture' => $history['avatar_picture'], 'first_name' => $history['first_name'], 'last_name' => $history['last_name']); } $index = 0; $startDate = date_sub(new \DateTime(Util::getServerCurrentDateTime(), new \DateTimeZone($clientSettings['timezone'])), date_interval_create_from_date_string('1 months')); $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / User: '******'first_name'] . ' ' . $user['last_name'] . ' / Profile'; return $this->render(__DIR__ . '/../../Resources/views/user/ViewSummary.php', get_defined_vars()); }
</div> <?php } ?> </div> <?php if ($strategyIssue) { ?> <?php $strategyIssue->data_seek(0); ?> <?php while ($issue = $strategyIssue->fetch_array(MYSQLI_ASSOC)) { ?> <?php if (!in_array($issue['status'], Util::array_column($statuses, 'id'))) { continue; } $workflowUsed = UbirimiContainer::get()['repository']->get(YongoProject::class)->getWorkflowUsedForType($issue['issue_project_id'], $issue['type']); $stepWorkflowFrom = UbirimiContainer::get()['repository']->get(Workflow::class)->getStepByWorkflowIdAndStatusId($workflowUsed['id'], $issue[Field::FIELD_STATUS_CODE]); $parentId = -1; if ($issue['parent_id']) { $parentId = $issue['parent_id']; } ?> <div style="width: 100%" id="issue_in_column_<?php echo $columns[$i]['id'] . '_' . $issue['id'] . '_' . $issue['issue_project_id'] . '_' . $stepWorkflowFrom['id'] . '_' . $workflowUsed['id'] . '_' . $index . '_' . $parentId; ?> " class="draggableIssueAgileBasic draggableIssueAgile_<?php echo $index; ?>
public function deleteById($boardId) { $boardColumnsArray = UbirimiContainer::get()['repository']->get(Board::class)->getColumns($boardId, 'array'); if ($boardColumnsArray) { $boardColumnsIds = Util::array_column($boardColumnsArray, 'id'); $query = "delete from agile_board_column_status where agile_board_column_id IN (" . implode(', ', $boardColumnsIds) . ')'; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->execute(); } $query = "delete from agile_board_column where agile_board_id = ?"; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->bind_param("i", $boardId); $stmt->execute(); $query = "delete from agile_board_project where agile_board_id = ?"; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->bind_param("i", $boardId); $stmt->execute(); $sprintIdsArray = UbirimiContainer::get()['repository']->get(Sprint::class)->getByBoardId($boardId, 'array', 'id'); for ($i = 0; $i < count($sprintIdsArray); $i++) { $query = "delete from agile_board_sprint_issue where agile_board_sprint_id = ?"; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->bind_param("i", $sprintIdsArray[$i]); $stmt->execute(); } $query = "delete from agile_board_sprint where agile_board_id = ?"; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->bind_param("i", $boardId); $stmt->execute(); $query = "delete from agile_board where id = ? limit 1"; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->bind_param("i", $boardId); $stmt->execute(); }