/** * Adds a job item to the xml export. * * @param $item * The job item entity. */ protected function addItem(JobItemInterface $item) { $this->startElement('group'); $this->writeAttribute('id', $item->id()); // Add a note for the source label. $this->writeElement('note', $item->getSourceLabel()); // @todo: Write in nested groups instead of flattening it. $data = \Drupal::service('tmgmt.data')->filterTranslatable($item->getData()); foreach ($data as $key => $element) { $this->addTransUnit($item->id() . '][' . $key, $element, $this->job); } $this->endElement(); }
/** * {@inheritdoc} */ public function rejectDataItem(JobItemInterface $job_item, array $key, array $values = NULL) { $key = '[' . implode('][', $key) . ']'; $job_item->addMessage('Rejected data item @key for job item @item in job @job.', array('@key' => $key, '@item' => $job_item->id(), '@job' => $job_item->getJobId())); return TRUE; }
/** * {@inheritdoc} */ public function getPreviewUrl(JobItemInterface $job_item) { if ($job_item->getJob()->isActive() && !($job_item->isAborted() || $job_item->isAccepted())) { return new Url('tmgmt_content.job_item_preview', ['tmgmt_job_item' => $job_item->id()], ['query' => ['key' => \Drupal::service('tmgmt_content.key_access')->getKey($job_item)]]); } else { return NULL; } }
/** * Generates a key from job item data that can be used in the URL. * * @param \Drupal\tmgmt\JobItemInterface $tmgmt_job_item * Job item. * * @return string * Returns hashed key that is safe to use in the URL. */ public function getKey(JobItemInterface $tmgmt_job_item) { return Crypt::hmacBase64($tmgmt_job_item->id(), Settings::getHashSalt()); }
/** * {@inheritdoc} */ public function addTaskItem(JobItemInterface $job_item) { // Save the task to get an id. if ($this->isNew()) { $this->save(); } $local_task = LocalTaskItem::create(array('tltid' => $this->id(), 'tjiid' => $job_item->id())); $local_task->save(); return $local_task; }
/** * {@inheritdoc} */ public function getSourceLangCode(JobItemInterface $job_item) { $source_languages = \Drupal::state()->get('tmgmt.test_source_languages', array()); if (isset($source_languages[$job_item->id()])) { return $source_languages[$job_item->id()]; } return 'en'; }