Chris@0: entity; Chris@0: Chris@0: $element['delete']['#type'] = 'submit'; Chris@0: $element['delete']['#value'] = $this->t('Cancel account'); Chris@0: $element['delete']['#submit'] = ['::editCancelSubmit']; Chris@18: $element['delete']['#access'] = $account->id() > 1 && $account->access('delete'); Chris@0: Chris@0: return $element; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function save(array $form, FormStateInterface $form_state) { Chris@0: $account = $this->entity; Chris@0: $account->save(); Chris@0: $form_state->setValue('uid', $account->id()); Chris@0: Chris@17: $this->messenger()->addStatus($this->t('The changes have been saved.')); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Provides a submit handler for the 'Cancel account' button. Chris@0: */ Chris@0: public function editCancelSubmit($form, FormStateInterface $form_state) { Chris@0: $destination = []; Chris@0: $query = $this->getRequest()->query; Chris@0: if ($query->has('destination')) { Chris@0: $destination = ['destination' => $query->get('destination')]; Chris@0: $query->remove('destination'); Chris@0: } Chris@0: // We redirect from user/%/edit to user/%/cancel to make the tabs disappear. Chris@0: $form_state->setRedirect( Chris@0: 'entity.user.cancel_form', Chris@0: ['user' => $this->entity->id()], Chris@0: ['query' => $destination] Chris@0: ); Chris@0: } Chris@0: Chris@0: }