| @@ 80-126 (lines=47) @@ | ||
| 77 | /** |
|
| 78 | * @return ViewModel |
|
| 79 | */ |
|
| 80 | public function listOpenJobsAction() |
|
| 81 | { |
|
| 82 | /* @var $request \Zend\Http\Request */ |
|
| 83 | $request = $this->getRequest(); |
|
| 84 | $params = $request->getQuery(); |
|
| 85 | $jsonFormat = 'json' == $params->get('format'); |
|
| 86 | $isRecruiter = $this->acl()->isRole(User::ROLE_RECRUITER); |
|
| 87 | ||
| 88 | if (!$jsonFormat && !$request->isXmlHttpRequest()) { |
|
| 89 | $session = new Session('Jobs\Index'); |
|
| 90 | $sessionKey = $this->auth()->isLoggedIn() ? 'userParams' : 'guestParams'; |
|
| 91 | $sessionParams = $session[$sessionKey]; |
|
| 92 | ||
| 93 | if ($sessionParams) { |
|
| 94 | foreach ($sessionParams as $key => $value) { |
|
| 95 | $params->set($key, $params->get($key, $value)); |
|
| 96 | } |
|
| 97 | } elseif ($isRecruiter) { |
|
| 98 | $params->set('by', 'me'); |
|
| 99 | } |
|
| 100 | /* @var $filterForm \Jobs\Form\ListFilter */ |
|
| 101 | $session[$sessionKey] = $params->toArray(); |
|
| 102 | ||
| 103 | $this->searchForm->bind($params); |
|
| 104 | ||
| 105 | } |
|
| 106 | ||
| 107 | if (!isset($params['sort'])) { |
|
| 108 | $params['sort'] = '-date'; |
|
| 109 | } |
|
| 110 | ||
| 111 | $paginator = $this->paginatorservice('Jobs/Admin', $params); |
|
| 112 | ||
| 113 | $return = array( |
|
| 114 | 'by' => $params->get('by', 'all'), |
|
| 115 | 'jobs' => $paginator, |
|
| 116 | 'showPendingJobs' => true, |
|
| 117 | ); |
|
| 118 | if (isset($this->searchForm)) { |
|
| 119 | $return['filterForm'] = $this->searchForm; |
|
| 120 | } |
|
| 121 | ||
| 122 | $model = new ViewModel(); |
|
| 123 | $model->setVariables($return); |
|
| 124 | $model->setTemplate('jobs/index/index'); |
|
| 125 | return $model; |
|
| 126 | } |
|
| 127 | } |
|
| 128 | ||
| @@ 91-137 (lines=47) @@ | ||
| 88 | * |
|
| 89 | * @return ViewModel |
|
| 90 | */ |
|
| 91 | protected function listJobs() |
|
| 92 | { |
|
| 93 | /* @var $request \Zend\Http\Request */ |
|
| 94 | $request = $this->getRequest(); |
|
| 95 | $params = $request->getQuery(); |
|
| 96 | $jsonFormat = 'json' == $params->get('format'); |
|
| 97 | $isRecruiter = $this->acl()->isRole(User::ROLE_RECRUITER); |
|
| 98 | ||
| 99 | if (!$jsonFormat && !$request->isXmlHttpRequest()) { |
|
| 100 | $session = new Session('Jobs\Index'); |
|
| 101 | $sessionKey = $this->auth()->isLoggedIn() ? 'userParams' : 'guestParams'; |
|
| 102 | $sessionParams = $session[$sessionKey]; |
|
| 103 | ||
| 104 | if ($sessionParams) { |
|
| 105 | foreach ($sessionParams as $key => $value) { |
|
| 106 | $params->set($key, $params->get($key, $value)); |
|
| 107 | } |
|
| 108 | } elseif ($isRecruiter) { |
|
| 109 | $params->set('by', 'me'); |
|
| 110 | } |
|
| 111 | ||
| 112 | $session[$sessionKey] = $params->toArray(); |
|
| 113 | ||
| 114 | $this->searchForm->bind($params); |
|
| 115 | ||
| 116 | } |
|
| 117 | ||
| 118 | if (!isset($params['sort'])) { |
|
| 119 | $params['sort'] = '-date'; |
|
| 120 | } |
|
| 121 | ||
| 122 | $paginator = $this->paginatorservice('Jobs/Job', $params); |
|
| 123 | ||
| 124 | $return = array( |
|
| 125 | 'by' => $params->get('by', 'all'), |
|
| 126 | 'jobs' => $paginator, |
|
| 127 | 'showPendingJobs' => false, |
|
| 128 | ); |
|
| 129 | if (isset($this->searchForm)) { |
|
| 130 | $return['filterForm'] = $this->searchForm; |
|
| 131 | } |
|
| 132 | ||
| 133 | $model = new ViewModel(); |
|
| 134 | $model->setVariables($return); |
|
| 135 | $model->setTemplate('jobs/index/index'); |
|
| 136 | return $model; |
|
| 137 | } |
|
| 138 | ||
| 139 | /** |
|
| 140 | * Handles the dashboard widget for the jobs module. |
|