crm_core-8.x-3.x-dev/modules/crm_core_user_sync/src/Form/RelationForm.php
modules/crm_core_user_sync/src/Form/RelationForm.php
<?php
namespace Drupal\crm_core_user_sync\Form;
use Drupal\Core\Entity\ContentEntityForm;
use Drupal\Core\Form\FormStateInterface;
/**
* Form controller for the relation entity edit forms.
*/
class RelationForm extends ContentEntityForm {
/**
* {@inheritdoc}
*/
public function form(array $form, FormStateInterface $form_state) {
$individual_id = $this->getRequest()->query->get('individual_id');
$user_id = $this->getRequest()->query->get('user_id');
if ($individual_id || $user_id) {
$relation = $this->getEntity();
$relation->setIndividualId($individual_id);
$relation->setUserId($user_id);
$this->setEntity($relation);
}
$form = parent::form($form, $form_state);
if ($individual_id) {
$form['individual_id']['widget']['#disabled'] = TRUE;
}
if ($user_id) {
$form['user_id']['widget']['#disabled'] = TRUE;
}
return $form;
}
/**
* {@inheritdoc}
*/
public function save(array $form, FormStateInterface $form_state) {
$entity = $this->getEntity();
$result = $entity->save();
$link = $entity->toLink($this->t('View'))->toString();
$logger_arguments = ['link' => $link];
if ($result == SAVED_NEW) {
$this->messenger()->addMessage($this->t('New relation has been created.'));
$this->logger('crm_core_user_sync')->notice('Created new relation', $logger_arguments);
}
else {
$this->messenger()->addMessage($this->t('The relation has been updated.'));
$this->logger('crm_core_user_sync')->notice('Relation updated', $logger_arguments);
}
$form_state->setRedirect('entity.crm_core_user_sync_relation.collection');
return $result;
}
}
