From 10fa8402c0817e4e4e29df6c25d4588ef8b9de5b Mon Sep 17 00:00:00 2001 From: bshuttle Date: Wed, 16 Aug 2006 16:21:49 +0000 Subject: [PATCH] add a checkout guard for triggers. --- plugins/ktcore/KTCorePlugin.php | 1 + plugins/ktcore/KTPortlets.php | 2 +- plugins/ktcore/KTWorkflowTriggers.inc.php | 34 +++++++++++++++++++++++++++++++++- plugins/ktcore/admin/workflows.php | 2 ++ 4 files changed, 37 insertions(+), 2 deletions(-) diff --git a/plugins/ktcore/KTCorePlugin.php b/plugins/ktcore/KTCorePlugin.php index 2f12415..570e94a 100644 --- a/plugins/ktcore/KTCorePlugin.php +++ b/plugins/ktcore/KTCorePlugin.php @@ -117,6 +117,7 @@ class KTCorePlugin extends KTPlugin { $this->registerWorkflowTrigger('ktcore.workflowtriggers.roleguard', 'RoleGuardTrigger', 'KTWorkflowTriggers.inc.php'); $this->registerWorkflowTrigger('ktcore.workflowtriggers.groupguard', 'GroupGuardTrigger', 'KTWorkflowTriggers.inc.php'); $this->registerWorkflowTrigger('ktcore.workflowtriggers.conditionguard', 'ConditionGuardTrigger', 'KTWorkflowTriggers.inc.php'); + $this->registerWorkflowTrigger('ktcore.workflowtriggers.checkoutguard', 'CheckoutGuardTrigger', 'KTWorkflowTriggers.inc.php'); $this->registerWorkflowTrigger('ktcore.workflowtriggers.copyaction', 'CopyActionTrigger', 'KTWorkflowTriggers.inc.php'); diff --git a/plugins/ktcore/KTPortlets.php b/plugins/ktcore/KTPortlets.php index 3f928f5..46cf0b3 100644 --- a/plugins/ktcore/KTPortlets.php +++ b/plugins/ktcore/KTPortlets.php @@ -146,7 +146,7 @@ class KTAdminModePortlet extends KTPortlet { class KTAdminSectionNavigation extends KTPortlet { - + var $bActive = true; function KTAdminSectionNavigation() { parent::KTPortlet(_kt("Administration")); } diff --git a/plugins/ktcore/KTWorkflowTriggers.inc.php b/plugins/ktcore/KTWorkflowTriggers.inc.php index 6435c20..6694a91 100644 --- a/plugins/ktcore/KTWorkflowTriggers.inc.php +++ b/plugins/ktcore/KTWorkflowTriggers.inc.php @@ -564,4 +564,36 @@ class CopyActionTrigger extends KTWorkflowTrigger { } } -?> \ No newline at end of file + +class CheckoutGuardTrigger extends KTWorkflowTrigger { + var $sNamespace = 'ktcore.workflowtriggers.checkoutguard'; + var $sFriendlyName; + var $sDescription; + var $oTriggerInstance; + var $aConfig = array(); + + // generic requirements - both can be true + var $bIsGuard = true; + var $bIsAction = false; + + var $bIsConfigurable = false; + + function CheckoutGuardTrigger() { + $this->sFriendlyName = _kt("Checkout Guard"); + $this->sDescription = _kt("Prevents a transition from being followed if the document is checked out.."); + } + + // override the allow transition hook. + function allowTransition($oDocument, $oUser) { + return (!$oDocument->getIsCheckedOut()); + } + + + function getConfigDescription() { + return _kt('This transition cannot be performed while the document is checked out.'); + } +} + + + +?> diff --git a/plugins/ktcore/admin/workflows.php b/plugins/ktcore/admin/workflows.php index 078344c..730161c 100755 --- a/plugins/ktcore/admin/workflows.php +++ b/plugins/ktcore/admin/workflows.php @@ -52,6 +52,8 @@ require_once(KT_LIB_DIR . '/roles/Role.inc'); class WorkflowNavigationPortlet extends KTPortlet { var $oWorkflow; var $sHelpPage = 'ktcore/admin/workflow.html'; + var $bActive = true; + function WorkflowNavigationPortlet($sTitle, $oWorkflow = null) { $this->oWorkflow = $oWorkflow; parent::KTPortlet($sTitle); -- libgit2 0.21.4