Issue #3346218 by Kaushik1216, Harlor, urvashi_vora, xjm, pradhumanjain2311, nayana_mvr, smustgrave, larowlan, catch: Status message on comment edit is 'Your comment has been posted.'
parent
e021637080
commit
67f56fc232
|
@ -16,6 +16,7 @@ use Drupal\Core\Form\FormStateInterface;
|
||||||
use Drupal\Core\Link;
|
use Drupal\Core\Link;
|
||||||
use Drupal\Core\Render\RendererInterface;
|
use Drupal\Core\Render\RendererInterface;
|
||||||
use Drupal\Core\Session\AccountInterface;
|
use Drupal\Core\Session\AccountInterface;
|
||||||
|
use Drupal\Core\StringTranslation\TranslatableMarkup;
|
||||||
use Drupal\Core\Url;
|
use Drupal\Core\Url;
|
||||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||||
|
|
||||||
|
@ -379,6 +380,7 @@ class CommentForm extends ContentEntityForm {
|
||||||
public function save(array $form, FormStateInterface $form_state) {
|
public function save(array $form, FormStateInterface $form_state) {
|
||||||
$comment = $this->entity;
|
$comment = $this->entity;
|
||||||
$entity = $comment->getCommentedEntity();
|
$entity = $comment->getCommentedEntity();
|
||||||
|
$is_new = $this->entity->isNew();
|
||||||
$field_name = $comment->getFieldName();
|
$field_name = $comment->getFieldName();
|
||||||
$uri = $entity->toUrl();
|
$uri = $entity->toUrl();
|
||||||
$logger = $this->logger('comment');
|
$logger = $this->logger('comment');
|
||||||
|
@ -392,16 +394,8 @@ class CommentForm extends ContentEntityForm {
|
||||||
'%subject' => $comment->getSubject(),
|
'%subject' => $comment->getSubject(),
|
||||||
'link' => Link::fromTextAndUrl(t('View'), $comment->toUrl()->setOption('fragment', 'comment-' . $comment->id()))->toString(),
|
'link' => Link::fromTextAndUrl(t('View'), $comment->toUrl()->setOption('fragment', 'comment-' . $comment->id()))->toString(),
|
||||||
]);
|
]);
|
||||||
|
// Add an appropriate message upon submitting the comment form.
|
||||||
// Explain the approval queue if necessary.
|
$this->messenger()->addStatus($this->getStatusMessage($comment, $is_new));
|
||||||
if (!$comment->isPublished()) {
|
|
||||||
if (!$this->currentUser->hasPermission('administer comments')) {
|
|
||||||
$this->messenger()->addStatus($this->t('Your comment has been queued for review by site administrators and will be published after approval.'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$this->messenger()->addStatus($this->t('Your comment has been posted.'));
|
|
||||||
}
|
|
||||||
$query = [];
|
$query = [];
|
||||||
// Find the current display page for this comment.
|
// Find the current display page for this comment.
|
||||||
$field_definition = $this->entityFieldManager->getFieldDefinitions($entity->getEntityTypeId(), $entity->bundle())[$field_name];
|
$field_definition = $this->entityFieldManager->getFieldDefinitions($entity->getEntityTypeId(), $entity->bundle())[$field_name];
|
||||||
|
@ -421,4 +415,28 @@ class CommentForm extends ContentEntityForm {
|
||||||
$form_state->setRedirectUrl($uri);
|
$form_state->setRedirectUrl($uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets an appropriate status message when a comment is saved.
|
||||||
|
*
|
||||||
|
* @param \Drupal\comment\CommentInterface $comment
|
||||||
|
* The comment being saved.
|
||||||
|
* @param bool $is_new
|
||||||
|
* TRUE if a new comment is created. $comment->isNew() cannot be used here
|
||||||
|
* because the comment has already been saved by the time the message is
|
||||||
|
* rendered.
|
||||||
|
*
|
||||||
|
* @return \Drupal\Core\StringTranslation\TranslatableMarkup
|
||||||
|
* A translatable string containing the appropriate status message.
|
||||||
|
*/
|
||||||
|
protected function getStatusMessage(CommentInterface $comment, bool $is_new): TranslatableMarkup {
|
||||||
|
if (!$comment->isPublished() && !$this->currentUser->hasPermission('administer comments')) {
|
||||||
|
return $this->t('Your comment has been queued for review by site administrators and will be published after approval.');
|
||||||
|
}
|
||||||
|
// Check whether the comment is new or not.
|
||||||
|
if ($is_new) {
|
||||||
|
return $this->t('Your comment has been posted.');
|
||||||
|
}
|
||||||
|
return $this->t('Your comment has been updated.');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -178,7 +178,7 @@ class CommentPreviewTest extends CommentTestBase {
|
||||||
// Check that saving a comment produces a success message.
|
// Check that saving a comment produces a success message.
|
||||||
$this->drupalGet('comment/' . $comment->id() . '/edit');
|
$this->drupalGet('comment/' . $comment->id() . '/edit');
|
||||||
$this->submitForm($edit, 'Save');
|
$this->submitForm($edit, 'Save');
|
||||||
$this->assertSession()->pageTextContains('Your comment has been posted.');
|
$this->assertSession()->pageTextContains('Your comment has been updated.');
|
||||||
|
|
||||||
// Check that the comment fields are correct after loading the saved comment.
|
// Check that the comment fields are correct after loading the saved comment.
|
||||||
$this->drupalGet('comment/' . $comment->id() . '/edit');
|
$this->drupalGet('comment/' . $comment->id() . '/edit');
|
||||||
|
|
Loading…
Reference in New Issue