Commit 10fa8402c0817e4e4e29df6c25d4588ef8b9de5b

Authored by bshuttle
1 parent 00b34f1b

add a checkout guard for triggers.

fixes KTS-1128


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5850 c91229c3-7414-0410-bfa2-8a42b809f60b
plugins/ktcore/KTCorePlugin.php
... ... @@ -117,6 +117,7 @@ class KTCorePlugin extends KTPlugin {
117 117 $this->registerWorkflowTrigger('ktcore.workflowtriggers.roleguard', 'RoleGuardTrigger', 'KTWorkflowTriggers.inc.php');
118 118 $this->registerWorkflowTrigger('ktcore.workflowtriggers.groupguard', 'GroupGuardTrigger', 'KTWorkflowTriggers.inc.php');
119 119 $this->registerWorkflowTrigger('ktcore.workflowtriggers.conditionguard', 'ConditionGuardTrigger', 'KTWorkflowTriggers.inc.php');
  120 + $this->registerWorkflowTrigger('ktcore.workflowtriggers.checkoutguard', 'CheckoutGuardTrigger', 'KTWorkflowTriggers.inc.php');
120 121  
121 122 $this->registerWorkflowTrigger('ktcore.workflowtriggers.copyaction', 'CopyActionTrigger', 'KTWorkflowTriggers.inc.php');
122 123  
... ...
plugins/ktcore/KTPortlets.php
... ... @@ -146,7 +146,7 @@ class KTAdminModePortlet extends KTPortlet {
146 146  
147 147  
148 148 class KTAdminSectionNavigation extends KTPortlet {
149   -
  149 + var $bActive = true;
150 150 function KTAdminSectionNavigation() {
151 151 parent::KTPortlet(_kt("Administration"));
152 152 }
... ...
plugins/ktcore/KTWorkflowTriggers.inc.php
... ... @@ -564,4 +564,36 @@ class CopyActionTrigger extends KTWorkflowTrigger {
564 564 }
565 565 }
566 566  
567   -?>
568 567 \ No newline at end of file
  568 +
  569 +class CheckoutGuardTrigger extends KTWorkflowTrigger {
  570 + var $sNamespace = 'ktcore.workflowtriggers.checkoutguard';
  571 + var $sFriendlyName;
  572 + var $sDescription;
  573 + var $oTriggerInstance;
  574 + var $aConfig = array();
  575 +
  576 + // generic requirements - both can be true
  577 + var $bIsGuard = true;
  578 + var $bIsAction = false;
  579 +
  580 + var $bIsConfigurable = false;
  581 +
  582 + function CheckoutGuardTrigger() {
  583 + $this->sFriendlyName = _kt("Checkout Guard");
  584 + $this->sDescription = _kt("Prevents a transition from being followed if the document is checked out..");
  585 + }
  586 +
  587 + // override the allow transition hook.
  588 + function allowTransition($oDocument, $oUser) {
  589 + return (!$oDocument->getIsCheckedOut());
  590 + }
  591 +
  592 +
  593 + function getConfigDescription() {
  594 + return _kt('This transition cannot be performed while the document is checked out.');
  595 + }
  596 +}
  597 +
  598 +
  599 +
  600 +?>
... ...
plugins/ktcore/admin/workflows.php
... ... @@ -52,6 +52,8 @@ require_once(KT_LIB_DIR . '/roles/Role.inc');
52 52 class WorkflowNavigationPortlet extends KTPortlet {
53 53 var $oWorkflow;
54 54 var $sHelpPage = 'ktcore/admin/workflow.html';
  55 + var $bActive = true;
  56 +
55 57 function WorkflowNavigationPortlet($sTitle, $oWorkflow = null) {
56 58 $this->oWorkflow = $oWorkflow;
57 59 parent::KTPortlet($sTitle);
... ...