Exemplo n.º 1
0
 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."));
 }