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,6 +117,7 @@ class KTCorePlugin extends KTPlugin {
117 $this->registerWorkflowTrigger('ktcore.workflowtriggers.roleguard', 'RoleGuardTrigger', 'KTWorkflowTriggers.inc.php'); 117 $this->registerWorkflowTrigger('ktcore.workflowtriggers.roleguard', 'RoleGuardTrigger', 'KTWorkflowTriggers.inc.php');
118 $this->registerWorkflowTrigger('ktcore.workflowtriggers.groupguard', 'GroupGuardTrigger', 'KTWorkflowTriggers.inc.php'); 118 $this->registerWorkflowTrigger('ktcore.workflowtriggers.groupguard', 'GroupGuardTrigger', 'KTWorkflowTriggers.inc.php');
119 $this->registerWorkflowTrigger('ktcore.workflowtriggers.conditionguard', 'ConditionGuardTrigger', 'KTWorkflowTriggers.inc.php'); 119 $this->registerWorkflowTrigger('ktcore.workflowtriggers.conditionguard', 'ConditionGuardTrigger', 'KTWorkflowTriggers.inc.php');
  120 + $this->registerWorkflowTrigger('ktcore.workflowtriggers.checkoutguard', 'CheckoutGuardTrigger', 'KTWorkflowTriggers.inc.php');
120 121
121 $this->registerWorkflowTrigger('ktcore.workflowtriggers.copyaction', 'CopyActionTrigger', 'KTWorkflowTriggers.inc.php'); 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,7 +146,7 @@ class KTAdminModePortlet extends KTPortlet {
146 146
147 147
148 class KTAdminSectionNavigation extends KTPortlet { 148 class KTAdminSectionNavigation extends KTPortlet {
149 - 149 + var $bActive = true;
150 function KTAdminSectionNavigation() { 150 function KTAdminSectionNavigation() {
151 parent::KTPortlet(_kt("Administration")); 151 parent::KTPortlet(_kt("Administration"));
152 } 152 }
plugins/ktcore/KTWorkflowTriggers.inc.php
@@ -564,4 +564,36 @@ class CopyActionTrigger extends KTWorkflowTrigger { @@ -564,4 +564,36 @@ class CopyActionTrigger extends KTWorkflowTrigger {
564 } 564 }
565 } 565 }
566 566
567 -?>  
568 \ No newline at end of file 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,6 +52,8 @@ require_once(KT_LIB_DIR . '/roles/Role.inc');
52 class WorkflowNavigationPortlet extends KTPortlet { 52 class WorkflowNavigationPortlet extends KTPortlet {
53 var $oWorkflow; 53 var $oWorkflow;
54 var $sHelpPage = 'ktcore/admin/workflow.html'; 54 var $sHelpPage = 'ktcore/admin/workflow.html';
  55 + var $bActive = true;
  56 +
55 function WorkflowNavigationPortlet($sTitle, $oWorkflow = null) { 57 function WorkflowNavigationPortlet($sTitle, $oWorkflow = null) {
56 $this->oWorkflow = $oWorkflow; 58 $this->oWorkflow = $oWorkflow;
57 parent::KTPortlet($sTitle); 59 parent::KTPortlet($sTitle);