Exemple #1
0
 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;
 }
Exemple #3
0
 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;
 }
Exemple #4
0
 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.');
     }
 }