2018-04-29 11:58:46 +00:00
< ? php
namespace Drupal\opencase_entities\Form ;
use Drupal\Core\Entity\ContentEntityForm ;
use Drupal\Core\Form\FormStateInterface ;
/**
* Form controller for Actor edit forms .
*
* @ ingroup opencase_entities
*/
class OCActorForm extends ContentEntityForm {
/**
* { @ inheritdoc }
*/
public function buildForm ( array $form , FormStateInterface $form_state ) {
/* @var $entity \Drupal\opencase_entities\Entity\OCActor */
$form = parent :: buildForm ( $form , $form_state );
if ( ! $this -> entity -> isNew ()) {
$form [ 'new_revision' ] = [
'#type' => 'checkbox' ,
'#title' => $this -> t ( 'Create new revision' ),
'#default_value' => FALSE ,
'#weight' => 10 ,
];
}
$entity = $this -> entity ;
return $form ;
}
/**
* { @ inheritdoc }
*/
public function save ( array $form , FormStateInterface $form_state ) {
$entity = $this -> entity ;
2020-05-13 14:41:59 +00:00
// Always make a new revision for a person. They are not changed often and people are likely to
// want to know what has happened to them over time.
$entity -> setNewRevision ();
$entity -> setRevisionCreationTime ( REQUEST_TIME );
$entity -> setRevisionUserId ( \Drupal :: currentUser () -> id ());
2018-04-29 11:58:46 +00:00
$status = parent :: save ( $form , $form_state );
switch ( $status ) {
case SAVED_NEW :
2021-11-27 15:19:16 +00:00
\Drupal :: messenger () -> addMessage ( $this -> t ( 'Created %label.' , [
2018-04-29 11:58:46 +00:00
'%label' => $entity -> label (),
]));
break ;
default :
2021-11-27 15:19:16 +00:00
\Drupal :: messenger () -> addMessage ( $this -> t ( 'Saved %label.' , [
2018-04-29 11:58:46 +00:00
'%label' => $entity -> label (),
]));
}
2021-09-17 13:21:56 +00:00
// If you have unpublished the entity and you can't see unpublished entities, redirect to a more informative message than just "Access Denied".
2022-04-03 12:39:01 +00:00
if ( is_array ( $form_state -> getValue ( 'status' )) && $form_state -> getValue ( 'status' )[ 'value' ] == false && ! \Drupal :: currentUser () -> hasPermission ( 'view unpublished actor entities' )) {
2021-11-27 15:19:16 +00:00
\Drupal :: messenger () -> addMessage ( $this -> t ( 'The record for "%label" is now unpublished & hidden from you.' , [
2021-09-17 14:04:43 +00:00
'%label' => $entity -> label (),
]));
$form_state -> setRedirect ( '<front>' );
2021-09-17 13:21:56 +00:00
} else {
$form_state -> setRedirect ( 'entity.oc_actor.canonical' , [ 'oc_actor' => $entity -> id ()]);
}
2018-04-29 11:58:46 +00:00
}
}