function do_deletestate() { $oForm = $this->form_deletestate(); $res = $oForm->validate(); $errors = $res['errors']; $data = $res['results']; if (!empty($errors)) { return $oForm->handleError(); } $this->startTransaction(); if (is_null($this->oState)) { return $this->errorRedirectTo("basic", _kt("No state selected")); } $replacement = $data['replacement']; KTWorkflowUtil::replaceState($this->oState, $replacement); if ($this->oWorkflow->getStartStateId() == $this->oState->getId()) { $this->oWorkflow->setStartStateId($replacement->getId()); $res = $this->oWorkflow->update(); if (PEAR::isError($res)) { $this->errorRedirectTo("basic", sprintf(_kt("Failed to update workflow: %s"), $res->getMessage())); } } $res = $this->oState->delete(); if (PEAR::isError($res)) { $this->errorRedirectTo("basic", sprintf(_kt("Failed to delete state: %s"), $res->getMessage())); } $this->successRedirectTo('basic', _kt("State deleted.")); }