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,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); |