* {@inheritdoc}
*/
public function getQuestion() {
- return $this->t('Are you sure you want to delete %state from %workflow?', ['%state' => $this->workflow->getState($this->stateId)->label(), '%workflow' => $this->workflow->label()]);
+ return $this->t('Are you sure you want to delete %state from %workflow?', ['%state' => $this->workflow->getTypePlugin()->getState($this->stateId)->label(), '%workflow' => $this->workflow->label()]);
}
/**
* The form structure.
*/
public function buildForm(array $form, FormStateInterface $form_state, WorkflowInterface $workflow = NULL, $workflow_state = NULL) {
- if (!$workflow->hasState($workflow_state)) {
+ if (!$workflow->getTypePlugin()->hasState($workflow_state)) {
throw new NotFoundHttpException();
}
$this->workflow = $workflow;
$this->stateId = $workflow_state;
+
+ if ($this->workflow->getTypePlugin()->workflowStateHasData($this->workflow, $this->workflow->getTypePlugin()->getState($this->stateId))) {
+ $form['#title'] = $this->getQuestion();
+ $form['description'] = ['#markup' => $this->t('This workflow state is in use. You cannot remove this workflow state until you have removed all content using it.')];
+ return $form;
+ }
+
return parent::buildForm($form, $form_state);
}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
- $workflow_label = $this->workflow->getState($this->stateId)->label();
+ $workflow_label = $this->workflow->getTypePlugin()->getState($this->stateId)->label();
$this->workflow
- ->deleteState($this->stateId)
- ->save();
+ ->getTypePlugin()
+ ->deleteState($this->stateId);
+ $this->workflow->save();
drupal_set_message($this->t(
'State %label deleted.',