/** * {@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); }