public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $loggedInUserId = $session->get('user/id');
     $issuesPerPage = $session->get('user/issues_per_page');
     $searchParameters = array();
     $parseURLData = null;
     $getFilter = isset($_GET['filter']) ? $_GET['filter'] : null;
     $getPage = isset($_GET['page']) ? $_GET['page'] : 1;
     $getSortColumn = isset($_GET['sort']) ? $_GET['sort'] : 'created';
     $getSortOrder = isset($_GET['order']) ? $_GET['order'] : 'desc';
     $getSearchQuery = isset($_GET['search_query']) ? $_GET['search_query'] : null;
     $getSummaryFlag = isset($_GET['summary_flag']) ? $_GET['summary_flag'] : null;
     $getDescriptionFlag = isset($_GET['description_flag']) ? $_GET['description_flag'] : null;
     $getCommentsFlag = isset($_GET['comments_flag']) ? $_GET['comments_flag'] : null;
     $getProjectIds = isset($_GET['project']) ? explode('|', $_GET['project']) : null;
     $getAssigneeIds = isset($_GET['assignee']) ? explode('|', $_GET['assignee']) : null;
     $getReportedIds = isset($_GET['reporter']) ? explode('|', $_GET['reporter']) : null;
     $getIssueTypeIds = isset($_GET['type']) ? explode('|', $_GET['type']) : null;
     $getIssueStatusIds = isset($_GET['status']) ? explode('|', $_GET['status']) : null;
     $getIssuePriorityIds = isset($_GET['priority']) ? explode('|', $_GET['priority']) : null;
     $getProjectComponentIds = isset($_GET['component']) ? explode('|', $_GET['component']) : null;
     $getProjectVersionIds = isset($_GET['version']) ? explode('|', $_GET['version']) : null;
     $getIssueResolutionIds = isset($_GET['resolution']) ? explode('|', $_GET['resolution']) : null;
     // date filters
     $getDateDueAfter = isset($_GET['date_due_after']) ? $_GET['date_due_after'] : null;
     $getDateDueBefore = isset($_GET['date_due_before']) ? $_GET['date_due_before'] : null;
     $getDateCreatedAfter = isset($_GET['date_created_after']) ? $_GET['date_created_after'] : null;
     $getDateCreatedBefore = isset($_GET['date_created_before']) ? $_GET['date_created_before'] : null;
     $getSearchParameters = array('search_query' => $getSearchQuery, 'summary_flag' => $getSummaryFlag, 'description_flag' => $getDescriptionFlag, 'comments_flag' => $getCommentsFlag, 'project' => $getProjectIds, 'assignee' => $getAssigneeIds, 'reporter' => $getReportedIds, 'filter' => $getFilter, 'type' => $getIssueTypeIds, 'status' => $getIssueStatusIds, 'priority' => $getIssuePriorityIds, 'component' => $getProjectComponentIds, 'version' => $getProjectVersionIds, 'resolution' => $getIssueResolutionIds, 'sort' => $getSortColumn, 'sort_order' => $getSortOrder, 'render_checkbox' => true, 'checkbox_in_header' => true, 'date_due_after' => $getDateDueAfter, 'date_due_before' => $getDateDueBefore, 'date_created_after' => $getDateCreatedAfter, 'date_created_before' => $getDateCreatedBefore);
     $parseURLData = parse_url($_SERVER['REQUEST_URI']);
     if (isset($parseURLData['query'])) {
         UbirimiContainer::get()['session']->set('bulk_change_choose_issue_query_url', $parseURLData['query']);
         if (Util::searchQueryNotEmpty($getSearchParameters)) {
             $issues = $this->getRepository(Issue::class)->getByParameters($getSearchParameters, $loggedInUserId, null, $loggedInUserId);
             $issuesCount = $issues->num_rows;
             $getSearchParameters['link_to_page'] = '/yongo/issue/printable-list';
         }
     }
     $columns = array('code', 'summary', 'priority', 'status', 'created', 'updated', 'reporter', 'assignee');
     $menuSelectedCategory = 'issue';
     $errorNoIssuesSelected = false;
     if ($request->request->has('next_step_2')) {
         $issueIdsArray = array();
         foreach ($_POST as $key => $value) {
             if (substr($key, 0, 15) == "issue_checkbox_") {
                 $issueIdsArray[] = (int) str_replace("issue_checkbox_", "", $key);
             }
         }
         if (count($issueIdsArray)) {
             UbirimiContainer::get()['session']->set('bulk_change_issue_ids', $issueIdsArray);
             return new RedirectResponse('/yongo/issue/bulk-operation');
         } else {
             $errorNoIssuesSelected = true;
         }
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Bulk: Choose Issues';
     return $this->render(__DIR__ . '/../../../Resources/views/issue/bulk/ChooseIssue.php', get_defined_vars());
 }
 public function indexAction(Request $request, SessionInterface $session)
 {
     $clientId = $session->get('client/id');
     $loggedInUserId = $session->get('user/id');
     $issuesPerPage = $session->get('user/issues_per_page');
     $searchParameters = array();
     $parseURLData = null;
     $getFilter = $request->get('filter');
     $getPage = $request->get('page');
     $getSortColumn = $request->get('sort') ? $request->get('sort') : 'created';
     $getSortOrder = $request->get('order') ? $request->get('order') : 'desc';
     $getSearchQuery = $request->get('search_query');
     $getSummaryFlag = $request->get('summary_flag');
     $getDescriptionFlag = $request->get('description_flag');
     $getCommentsFlag = $request->get('comments_flag');
     $getProjectIds = $request->get('project') ? explode('|', $request->get('project')) : null;
     if ($getProjectIds) {
         $projectsData = $this->getRepository(YongoProject::class)->getByIds($getProjectIds);
         if (!$projectsData) {
             return new RedirectResponse('/general-settings/bad-link-access-denied');
         }
         while ($projectsData && ($data = $projectsData->fetch_array(MYSQLI_ASSOC))) {
             if (Util::checkUserIsLoggedIn()) {
                 if ($data['client_id'] != $clientId) {
                     return new RedirectResponse('/general-settings/bad-link-access-denied');
                 }
             } else {
                 $hasBrowsingPermission = $this->getRepository(YongoProject::class)->userHasPermission(array($data['id']), Permission::PERM_BROWSE_PROJECTS);
                 if (!$hasBrowsingPermission) {
                     return new RedirectResponse('/general-settings/bad-link-access-denied');
                 }
             }
         }
     }
     $getAssigneeIds = $request->get('assignee') ? explode('|', $request->get('assignee')) : null;
     $getReportedIds = $request->get('reporter') ? explode('|', $request->get('reporter')) : null;
     $getIssueTypeIds = $request->get('type') ? explode('|', $request->get('type')) : null;
     $getIssueStatusIds = $request->get('status') ? explode('|', $request->get('status')) : null;
     $getIssuePriorityIds = $request->get('priority') ? explode('|', $request->get('priority')) : null;
     $getProjectComponentIds = $request->get('component') ? explode('|', $request->get('component')) : null;
     $getProjectVersionIds = $request->get('version') ? explode('|', $request->get('version')) : null;
     $getIssueResolutionIds = $request->get('resolution') ? explode('|', $request->get('resolution')) : null;
     $getSearchParameters = array('search_query' => $getSearchQuery, 'summary_flag' => $getSummaryFlag, 'description_flag' => $getDescriptionFlag, 'comments_flag' => $getCommentsFlag, 'project' => $getProjectIds, 'assignee' => $getAssigneeIds, 'reporter' => $getReportedIds, 'filter' => $getFilter, 'type' => $getIssueTypeIds, 'status' => $getIssueStatusIds, 'priority' => $getIssuePriorityIds, 'component' => $getProjectComponentIds, 'version' => $getProjectVersionIds, 'resolution' => $getIssueResolutionIds, 'sort' => $getSortColumn, 'sort_order' => $getSortOrder);
     $parseURLData = parse_url($_SERVER['REQUEST_URI']);
     if (!$parseURLData['query']) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     if (Util::searchQueryNotEmpty($getSearchParameters)) {
         $issues = $this->getRepository(Issue::class)->getByParameters($getSearchParameters, $loggedInUserId, null, $loggedInUserId);
         $issuesCount = $issues->num_rows;
         $getSearchParameters['link_to_page'] = '/yongo/issue/printable-list';
     }
     $columns = array('code', 'summary', 'priority', 'status', 'created', 'updated', 'reporter', 'assignee');
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Print List';
     $menuSelectedCategory = null;
     return $this->render(__DIR__ . '/../../Resources/views/issue/search/SearchListPrintable.php', get_defined_vars());
 }
 public function indexAction(Request $request, SessionInterface $session)
 {
     $issuesPerPage = $session->get('user/issues_per_page');
     $loggedInUserId = $session->get('user/id');
     $searchParameters = array();
     $parseURLData = null;
     $getFilter = $request->get('filter');
     $getPage = $request->get('page');
     $getSortColumn = $request->get('sort') ? $request->get('sort') : 'created';
     $getSortOrder = $request->get('order') ? $request->get('order') : 'desc';
     $getSearchQuery = $request->get('search_query');
     $getSummaryFlag = $request->get('summary_flag');
     $getDescriptionFlag = $request->get('description_flag');
     $getCommentsFlag = $request->get('comments_flag');
     $getProjectIds = $request->get('project') ? explode('|', $request->get('project')) : null;
     $getAssigneeIds = $request->get('assignee') ? explode('|', $request->get('assignee')) : null;
     $getReportedIds = $request->get('reporter') ? explode('|', $request->get('reporter')) : null;
     $getIssueTypeIds = $request->get('type') ? explode('|', $request->get('type')) : null;
     $getIssueStatusIds = $request->get('status') ? explode('|', $request->get('status')) : null;
     $getIssuePriorityIds = $request->get('priority') ? explode('|', $request->get('priority')) : null;
     $getProjectComponentIds = $request->get('component') ? explode('|', $request->get('component')) : null;
     $getProjectVersionIds = $request->get('version') ? explode('|', $request->get('version')) : null;
     $getIssueResolutionIds = $request->get('resolution') ? explode('|', $request->get('resolution')) : null;
     $getSearchParameters = array('search_query' => $getSearchQuery, 'summary_flag' => $getSummaryFlag, 'description_flag' => $getDescriptionFlag, 'comments_flag' => $getCommentsFlag, 'project' => $getProjectIds, 'assignee' => $getAssigneeIds, 'reporter' => $getReportedIds, 'filter' => $getFilter, 'type' => $getIssueTypeIds, 'status' => $getIssueStatusIds, 'priority' => $getIssuePriorityIds, 'component' => $getProjectComponentIds, 'version' => $getProjectVersionIds, 'resolution' => $getIssueResolutionIds, 'sort' => $getSortColumn, 'sort_order' => $getSortOrder);
     $parseURLData = parse_url($_SERVER['REQUEST_URI']);
     if (isset($parseURLData['query'])) {
         if (Util::searchQueryNotEmpty($getSearchParameters)) {
             $issues = $this->getRepository(Issue::class)->getByParameters($getSearchParameters, $loggedInUserId);
             $issuesCount = $issues->num_rows;
             $getSearchParameters['link_to_page'] = '/yongo/issue/printable-list';
         }
     }
     $columns = array('code', 'summary', 'priority', 'status', 'created', 'updated', 'reporter', 'assignee');
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Print List Full Content';
     $menuSelectedCategory = null;
     return $this->render(__DIR__ . '/../../Resources/views/issue/search/SearchListPrintableContent.php', get_defined_vars());
 }
Example #4
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     if (Util::checkUserIsLoggedIn()) {
         $issuesPerPage = $session->get('user/issues_per_page');
         $clientSettings = $session->get('client/settings');
     } else {
         $issuesPerPage = 25;
         $httpHOST = Util::getHttpHost();
         $clientId = $this->getRepository(UbirimiClient::class)->getByBaseURL($httpHOST, 'array', 'id');
         $loggedInUserId = null;
         $clientSettings = $this->getRepository(UbirimiClient::class)->getSettings($clientId);
     }
     $clientId = $session->get('client/id');
     $loggedInUserId = $session->get('user/id');
     $sectionPageTitle = $clientSettings['title_name'] . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Search';
     $session->set('selected_product_id', SystemProduct::SYS_PRODUCT_YONGO);
     $selectedProductId = $session->get('selected_product_id');
     $cliMode = false;
     $projectsForBrowsing = $this->getRepository(UbirimiClient::class)->getProjectsByPermission($clientId, $loggedInUserId, Permission::PERM_BROWSE_PROJECTS);
     $searchParameters = array();
     $parseURLData = null;
     $projectIds = null;
     if ($projectsForBrowsing) {
         $projectIdsAndNames = Util::getAsArray($projectsForBrowsing, array('id', 'name'));
         $projectsForBrowsing->data_seek(0);
         $projectIds = Util::getAsArray($projectsForBrowsing, array('id'));
         $searchCriteria = $this->getRepository(Issue::class)->getSearchParameters($projectsForBrowsing, $clientId);
         $issuesResult = null;
         $SLAs = UbirimiContainer::get()['repository']->get(Sla::class)->getByProjectIds($projectIds);
     }
     if ($request->request->has('search')) {
         $searchParameters = $this->getRepository(Issue::class)->prepareDataForSearchFromPostGet($projectIds, $_POST, $_GET);
         $redirectLink = str_replace("%7C", "|", http_build_query($searchParameters));
         return new RedirectResponse('/yongo/issue/search?' . $redirectLink);
     } else {
         $getFilter = $request->get('filter');
         $currentSearchPage = $request->get('page');
         $currentSearchPage = isset($currentSearchPage) ? $currentSearchPage : 1;
         $getSearchParameters = $this->getRepository(Issue::class)->prepareDataForSearchFromURL($_GET, $issuesPerPage);
         // check to see if the project Ids are all belonging to the client
         $getProjectIds = isset($_GET['project']) ? explode('|', $_GET['project']) : null;
         if ($getProjectIds && !(count($getProjectIds) == 1 && $getProjectIds[0] == -1)) {
             if (!$this->getRepository(YongoProject::class)->checkProjectsBelongToClient($clientId, $getProjectIds)) {
                 return new RedirectResponse('/general-settings/bad-link-access-denied');
             }
         }
         $parseURLData = parse_url($_SERVER['REQUEST_URI']);
         if (isset($parseURLData['query']) && $projectsForBrowsing) {
             if (Util::searchQueryNotEmpty($getSearchParameters)) {
                 $issuesResult = $this->getRepository(Issue::class)->getByParameters($getSearchParameters, $loggedInUserId, null, $loggedInUserId);
                 $issues = $issuesResult[0];
                 $issuesCount = $issuesResult[1];
                 $countPages = ceil($issuesCount / $issuesPerPage);
                 $getSearchParameters['count_pages'] = $countPages;
                 $getSearchParameters['link_to_page'] = '/yongo/issue/search';
             }
         }
     }
     $columns = array('code', 'summary', 'priority', 'status', 'created', 'updated', 'reporter', 'assignee', 'settings_menu');
     if (Util::checkUserIsLoggedIn()) {
         $columns = explode('#', $session->get('user/issues_display_columns'));
         $columns[] = 'settings_menu';
         $columns[] = '';
     }
     $hasGlobalBulkPermission = $this->getRepository(UbirimiUser::class)->hasGlobalPermission($clientId, $loggedInUserId, GlobalPermission::GLOBAL_PERMISSION_YONGO_BULK_CHANGE);
     $customFilters = $this->getRepository(IssueFilter::class)->getAllByUser($loggedInUserId);
     if ($getFilter) {
         $menuSelectedCategory = 'filters';
     } else {
         $menuSelectedCategory = 'issue';
     }
     $extraParameters = array();
     if ($getFilter) {
         $extraParameters[] = 'filter=' . $getFilter;
     }
     $extraParametersURL = '';
     if (count($extraParameters)) {
         $extraParametersURL = implode('&', $extraParameters);
     }
     $urlIssuePrefix = '/yongo/issue/';
     $parseData = parse_url($_SERVER['REQUEST_URI']);
     $query = isset($parseData['query']) ? $parseData['query'] : '';
     if (isset($query) && $query != '') {
         $session->set('last_search_parameters', $parseData['query']);
     } else {
         $session->remove('last_search_parameters');
     }
     return $this->render(__DIR__ . '/../../Resources/views/issue/search/Search.php', get_defined_vars());
 }
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $menuSelectedCategory = 'home';
     $clientId = $session->get('client/id');
     $projectsForBrowsing = $this->getRepository(UbirimiClient::class)->getProjects($clientId, null, null, true);
     $clientSettings = $this->getRepository(UbirimiClient::class)->getSettings($clientId);
     $session->set('selected_product_id', SystemProduct::SYS_PRODUCT_HELP_DESK);
     $selectedProductId = $session->get('selected_product_id');
     $cliMode = false;
     if ($projectsForBrowsing) {
         $projectIdsAndNames = Util::getAsArray($projectsForBrowsing, array('id', 'name'));
         $projectsForBrowsing->data_seek(0);
         $projectIds = Util::getAsArray($projectsForBrowsing, array('id'));
         $searchCriteria = $this->getRepository(Issue::class)->getSearchParameters($projectsForBrowsing, $session->get('client/id'), 1);
         $issuesResult = null;
     }
     if ($request->request->has('search')) {
         $searchParameters = $this->getRepository(Issue::class)->prepareDataForSearchFromPostGet($projectIds, $request->request->all(), $request->query->all());
         $redirectLink = str_replace("%7C", "|", http_build_query($searchParameters));
         return new RedirectResponse('/helpdesk/customer-portal/tickets?' . $redirectLink);
     } else {
         $getSearchParameters = $this->getRepository(Issue::class)->prepareDataForSearchFromURL($request->query->all(), 30);
         $getSearchParameters['helpdesk_flag'] = 1;
         // check to see if the project Ids are all belonging to the client
         $getProjectIds = $request->request->has('project') ? explode('|', $request->query->get('project')) : null;
         if ($getProjectIds) {
             for ($pos = 0; $pos < count($getProjectIds); $pos++) {
                 $projectFilter = $this->getRepository(YongoProject::class)->getById($getProjectIds[$pos]);
                 if ($projectFilter['client_id'] != $session->get('client/id')) {
                     return new RedirectResponse('/general-settings/bad-link-access-denied');
                 }
             }
         }
         $parseURLData = parse_url($_SERVER['REQUEST_URI']);
         $projectsForBrowsing = array(229);
         if (isset($parseURLData['query']) && $projectsForBrowsing) {
             if (Util::searchQueryNotEmpty($getSearchParameters)) {
                 $issuesResult = $this->getRepository(Issue::class)->getByParameters($getSearchParameters, $session->get('user/id'));
                 $issues = $issuesResult[0];
                 $issuesCount = $issuesResult[1];
                 $issuesPerPage = $session->get('user/issues_per_page');
                 $currentSearchPage = isset($_GET['page']) ? $_GET['page'] : 1;
                 $countPages = ceil($issuesCount / 30);
                 $getSearchParameters['count_pages'] = $countPages;
                 $getSearchParameters['link_to_page'] = '/helpdesk/customer-portal/tickets';
             }
         }
     }
     $SLAs = $this->getRepository(Sla::class)->getByProjectIds(array(229));
     $columns = array('code', 'summary', 'priority', 'status', 'created', 'updated', 'reporter', 'assignee', 'settings_menu');
     if (Util::checkUserIsLoggedIn()) {
         $columns = explode('#', $session->get('user/issues_display_columns'));
         $columns[] = 'settings_menu';
         $columns[] = '';
     }
     $parseData = parse_url($_SERVER['REQUEST_URI']);
     $query = isset($parseData['query']) ? $parseData['query'] : '';
     if (isset($query)) {
         $session->set('last_search_parameters', $parseData['query']);
     } else {
         $session->remove('last_search_parameters');
     }
     return $this->render(__DIR__ . '/../../Resources/views/customer_portal/ListIssue.php', get_defined_vars());
 }