/**
  * {@inheritdoc}
  */
 public function submitForm(array &$form, FormStateInterface $form_state)
 {
     $revision = $this->prepareRevertedRevision($this->revision);
     // The revision timestamp will be updated when the revision is saved. Keep the
     // original one for the confirmation message.
     $original_revision_timestamp = $revision->getRevisionCreationTime();
     $revision->revision_log = t('Copy of the revision from %date.', array('%date' => format_date($original_revision_timestamp)));
     $revision->save();
     $this->logger('content')->notice('@type: reverted %title revision %revision.', array('@type' => $this->revision->bundle(), '%title' => $this->revision->label(), '%revision' => $this->revision->getRevisionId()));
     drupal_set_message(t('@type %title has been reverted to the revision from %revision-date.', array('@type' => support_ticket_get_type_label($this->revision), '%title' => $this->revision->label(), '%revision-date' => format_date($original_revision_timestamp))));
     $form_state->setRedirect('entity.support_ticket.version_history', array('support_ticket' => $this->revision->id()));
 }
 /**
  * {@inheritdoc}
  */
 public function save(array $form, FormStateInterface $form_state)
 {
     $support_ticket = $this->entity;
     $insert = $support_ticket->isNew();
     $support_ticket->save();
     $support_ticket_link = $support_ticket->link($this->t('View'));
     $context = array('@support_ticket_type' => $support_ticket->getType(), '%title' => $support_ticket->label(), 'link' => $support_ticket_link);
     $t_args = array('@support_ticket_type' => support_ticket_get_type_label($support_ticket), '%title' => $support_ticket->label());
     if ($insert) {
         $this->logger('content')->notice('@support_ticket_type: added %title.', $context);
         drupal_set_message(t('@support_ticket_type %title has been created.', $t_args));
     } else {
         $this->logger('content')->notice('@support_ticket_type: updated %title.', $context);
         drupal_set_message(t('@support_ticket_type %title has been updated.', $t_args));
     }
     if ($support_ticket->id()) {
         $form_state->setValue('stid', $support_ticket->id());
         $form_state->set('stid', $support_ticket->id());
         $form_state->setRedirect('entity.support_ticket.canonical', array('support_ticket' => $support_ticket->id()));
         // Remove the preview entry from the temp store, if any.
         $store = $this->tempStoreFactory->get('support_ticket_preview');
         $store->delete($support_ticket->uuid());
     } else {
         // In the unlikely case something went wrong on save, the support_ticket will be
         // rebuilt and support_ticket form redisplayed the same way as in preview.
         drupal_set_message(t('The post could not be saved.'), 'error');
         $form_state->setRebuild();
     }
 }
 /**
  * {@inheritdoc}
  */
 public function buildRow(EntityInterface $entity)
 {
     /** @var \Drupal\support_ticket\SupportTicketInterface $entity */
     $mark = array('#theme' => 'mark', '#mark_type' => support_ticket_mark($entity->id(), $entity->getChangedTime()));
     $langcode = $entity->language()->getId();
     $uri = $entity->urlInfo();
     $options = $uri->getOptions();
     $options += $langcode != LanguageInterface::LANGCODE_NOT_SPECIFIED && isset($languages[$langcode]) ? array('language' => $languages[$langcode]) : array();
     $uri->setOptions($options);
     $row['title']['data'] = array('#type' => 'link', '#title' => $entity->label(), '#suffix' => ' ' . drupal_render($mark), '#url' => $uri);
     $row['type'] = SafeMarkup::checkPlain(support_ticket_get_type_label($entity));
     // @todo implement support_ticket_get_type_label
     $row['author']['data'] = array('#theme' => 'username', '#account' => $entity->getOwner());
     $row['status'] = $entity->isPublished() ? $this->t('published') : $this->t('not published');
     $row['changed'] = $this->dateFormatter->format($entity->getChangedTime(), 'short');
     $language_manager = \Drupal::languageManager();
     if ($language_manager->isMultilingual()) {
         $row['language_name'] = $language_manager->getLanguageName($langcode);
     }
     $row['operations']['data'] = $this->buildOperations($entity);
     return $row + parent::buildRow($entity);
 }