public function __invoke(Job $jobEntity, $options = []) { $options = array_merge($this->options, $options); $ats = $jobEntity->getAtsMode(); if ($ats->isDisabled()) { return ''; } $paramsHelper = $this->paramsHelper; $serverUrlHelper = $this->serverUrlHelper; $urlHelper = $this->urlHelper; if ($ats->isIntern() || $ats->isEmail()) { $query = ['subscriberUri' => $serverUrlHelper(array()) . '/subscriber/' . 1]; $route = 'lang/apply'; $params = ['applyId' => $jobEntity->getApplyId(), 'lang' => $paramsHelper('lang')]; if ($paramsHelper('channel')) { $params['channel'] = $paramsHelper('channel'); } $url = $urlHelper($route, $params, array('query' => $query)); } else { $url = $ats->getUri(); } if ($options['linkOnly']) { $result = $url; if ($options['absolute']) { $result = $serverUrlHelper($url); } } else { $translate = $this->translateHelper; $result = sprintf('<a href="%s" rel="nofollow">%s</a>', $url, $translate('Apply')); } return $result; }
public function setJob(JobInterface $job) { if (isset($this->jobs['__id__']) && $this->jobs['__id__'] == $job->getId()) { return $this; } $this->jobs = array('__id__' => $job->getId(), 'userId' => $job->getUser()->getId()); return $this; }
public function __invoke(Job $jobEntity, $options = []) { $options = array_merge($this->options, $options); $paramsHelper = $this->paramsHelper; $urlHelper = $this->urlHelper; $serverUrlHelper = $this->serverUrlHelper; $isExternalLink = false; if (!empty($jobEntity->getLink())) { $url = $jobEntity->getLink(); $isExternalLink = true; } elseif ($options['showPendingJobs']) { $url = $urlHelper('lang/jobs/approval', [], ['query' => ['id' => $jobEntity->getId()]], true); } else { $query = ['subscriberUri' => $serverUrlHelper([]) . '/subscriber/' . 1, 'id' => $jobEntity->getId()]; $route = 'lang/jobs/view'; $params = ['lang' => $paramsHelper('lang')]; if ($paramsHelper('channel')) { $params['channel'] = $paramsHelper('channel'); } $url = $urlHelper($route, $params, array('query' => $query)); } if ($options['linkOnly']) { $result = $url; if ($options['absolute'] && !$isExternalLink) { $result = $serverUrlHelper($url); } } else { $result = sprintf('<a href="%s" rel="%s" %s>%s</a>', $url, $options['rel'], $options['target'] ? "target=" . $options['target'] : "", strip_tags($jobEntity->getTitle())); } return $result; }
protected function copyAtsMode() { $atsMode = $this->source->getAtsMode(); $copy = ['mode' => $atsMode->getMode(), 'uri' => $atsMode->isUri() ? $atsMode->getUri() : '', 'email' => $atsMode->isEmail() ? $atsMode->getEmail() : '']; $this->target->setAtsMode($copy); }
protected function changeStatus(JobInterface $job, $status) { $oldStatus = $job->getStatus(); if ($status == $oldStatus->getName()) { return; } $user = $this->auth->getUser(); try { $job->changeStatus($status, sprintf('Status changed from %s to %s by %s', $oldStatus->getName(), $status, $user->getInfo()->getDisplayName())); $events = $this->serviceLocator->get('Jobs/Events'); $events->trigger(JobEvent::EVENT_STATUS_CHANGED, $this, ['job' => $job, 'status' => $oldStatus]); $this->notification()->success('Status successfully changed.'); } catch (\DomainException $e) { $this->notification()->error('Change status failed.'); } }