From bc4529610cfa4dc5014394b6f632c684a4e106ca Mon Sep 17 00:00:00 2001 From: Neil Blakey-Milner Date: Wed, 5 Oct 2005 12:24:05 +0000 Subject: [PATCH] Add workflow control over the actions available in documents. --- presentation/lookAndFeel/knowledgeTree/administration/workflow/workflows.php | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+), 0 deletions(-) diff --git a/presentation/lookAndFeel/knowledgeTree/administration/workflow/workflows.php b/presentation/lookAndFeel/knowledgeTree/administration/workflow/workflows.php index 7e3d1b8..7a259c1 100644 --- a/presentation/lookAndFeel/knowledgeTree/administration/workflow/workflows.php +++ b/presentation/lookAndFeel/knowledgeTree/administration/workflow/workflows.php @@ -38,6 +38,8 @@ class KTWorkflowDispatcher extends KTStandardDispatcher { 'aStates' => KTWorkflowState::getByWorkflow($oWorkflow), 'aTransitions' => KTWorkflowTransition::getByWorkflow($oWorkflow), 'aPermissions' => KTPermission::getList(), + 'aActions' => KTDocumentActionUtil::getAllDocumentActions(), + 'aActionsSelected' => KTWorkflowUtil::getControlledActionsForWorkflow($oWorkflow), )); return $oTemplate; } @@ -48,6 +50,11 @@ class KTWorkflowDispatcher extends KTStandardDispatcher { $oWorkflow =& KTDispatcherValidation::validateWorkflow($this, $_REQUEST['fWorkflowId']); $oWorkflow->setName($_REQUEST['fName']); $oWorkflow->setHumanName($_REQUEST['fName']); + if (!empty($_REQUEST['fStartStateId'])) { + $oWorkflow->setStartStateId($_REQUEST['fStartStateId']); + } else { + $oWorkflow->setStartStateId(null); + } $res = $oWorkflow->update(); KTDispatcherValidation::notErrorFalse($this, $res, array( 'redirect_to' => array('editWorkflow', 'fWorkflowId=' . $oWorkflow->getId()), @@ -73,6 +80,19 @@ class KTWorkflowDispatcher extends KTStandardDispatcher { } // }}} + // {{{ do_setWorkflowActions + function do_setWorkflowActions() { + $oWorkflow =& KTDispatcherValidation::validateWorkflow($this, $_REQUEST['fWorkflowId']); + $res = KTWorkflowUtil::setControlledActionsForWorkflow($oWorkflow, $_REQUEST['fActions']); + KTDispatcherValidation::notErrorFalse($this, $res, array( + 'redirect_to' => array('editWorkflow', 'fWorkflowId=' . $oWorkflow->getId()), + 'message' => 'Error saving workflow controlled actions', + )); + $this->successRedirectTo('editWorkflow', 'Changes saved', 'fWorkflowId=' . $oWorkflow->getId()); + exit(0); + } + // }}} + // }}} // {{{ STATE HANDLING @@ -118,6 +138,8 @@ class KTWorkflowDispatcher extends KTStandardDispatcher { 'aTransitionsTo' => $aTransitionsTo, 'aTransitions' => $aTransitions, 'aTransitionsSelected' => $aTransitionsSelected, + 'aActions' => KTDocumentActionUtil::getDocumentActionsByNames(KTWorkflowUtil::getControlledActionsForWorkflow($oWorkflow)), + 'aActionsSelected' => KTWorkflowUtil::getEnabledActionsForState($oState), )); return $oTemplate; } @@ -153,6 +175,19 @@ class KTWorkflowDispatcher extends KTStandardDispatcher { } // }}} + // {{{ do_setStateActions + function do_setStateActions() { + $oWorkflow =& KTDispatcherValidation::validateWorkflow($this, $_REQUEST['fWorkflowId']); + $oState =& KTDispatcherValidation::validateWorkflowState($this, $_REQUEST['fStateId']); + $res = KTWorkflowUtil::setEnabledActionsForState($oState, $_REQUEST['fActions']); + KTDispatcherValidation::notErrorFalse($this, $res, array( + 'redirect_to' => array('editState', 'fWorkflowId=' . $oWorkflow->getId(), '&fStateId=' . $oState->getId()), + 'message' => 'Error saving state enabled actions', + )); + $this->successRedirectTo('editState', 'Actions set', 'fWorkflowId=' . $oWorkflow->getId() . '&fStateId=' . $oState->getId()); + exit(0); + } + // }}} // }}} // {{{ TRANSITION HANDLING -- libgit2 0.21.4