Commit 10fa8402c0817e4e4e29df6c25d4588ef8b9de5b
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
Showing
4 changed files
with
37 additions
and
2 deletions
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
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); | ... | ... |