Commit 12b1e16270f8cabac4e880a71e5ea2d8b8507d76
1 parent
ce00e2b7
BBS-1011
"Auto Workflow Assignment: When a document is move from within KTE to the assigned linked folder the correct worklfow is not initiated." Moved the triggers into the document util copy action, fixes both webdav and KT tools. Committed by: Megan Watson Reviewed by: Conrad Vermeulen git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@7318 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
2 changed files
with
26 additions
and
28 deletions
lib/documentmanagement/documentutil.inc.php
| ... | ... | @@ -898,7 +898,6 @@ class KTDocumentUtil { |
| 898 | 898 | $sReason = ''; |
| 899 | 899 | } |
| 900 | 900 | |
| 901 | - | |
| 902 | 901 | $oDocumentTransaction = new DocumentTransaction($oDocument, sprintf(_kt("Copied to folder \"%s\". %s"), $oDestinationFolder->getName(), $sReason), 'ktcore.transactions.copy'); |
| 903 | 902 | $oDocumentTransaction->create(); |
| 904 | 903 | |
| ... | ... | @@ -906,6 +905,24 @@ class KTDocumentUtil { |
| 906 | 905 | $oDocumentTransaction = new DocumentTransaction($oNewDocument, sprintf(_kt("Copied from original in folder \"%s\". %s"), $oSrcFolder->getName(), $sReason), 'ktcore.transactions.copy'); |
| 907 | 906 | $oDocumentTransaction->create(); |
| 908 | 907 | |
| 908 | + | |
| 909 | + $oKTTriggerRegistry = KTTriggerRegistry::getSingleton(); | |
| 910 | + $aTriggers = $oKTTriggerRegistry->getTriggers('copyDocument', 'postValidate'); | |
| 911 | + foreach ($aTriggers as $aTrigger) { | |
| 912 | + $sTrigger = $aTrigger[0]; | |
| 913 | + $oTrigger = new $sTrigger; | |
| 914 | + $aInfo = array( | |
| 915 | + 'document' => $oNewDocument, | |
| 916 | + 'old_folder' => $oSrcFolder, | |
| 917 | + 'new_folder' => $oDestinationFolder, | |
| 918 | + ); | |
| 919 | + $oTrigger->setInfo($aInfo); | |
| 920 | + $ret = $oTrigger->postValidate(); | |
| 921 | + if (PEAR::isError($ret)) { | |
| 922 | + return $ret; | |
| 923 | + } | |
| 924 | + } | |
| 925 | + | |
| 909 | 926 | return $oNewDocument; |
| 910 | 927 | } |
| 911 | 928 | |
| ... | ... | @@ -1013,15 +1030,15 @@ class KTDocumentUtil { |
| 1013 | 1030 | |
| 1014 | 1031 | return KTPermissionUtil::updatePermissionLookup($oDocument); |
| 1015 | 1032 | } |
| 1016 | - | |
| 1033 | + | |
| 1017 | 1034 | /** |
| 1018 | 1035 | * Delete a selected version of the document. |
| 1019 | 1036 | */ |
| 1020 | 1037 | function deleteVersion($oDocument, $iVersionID, $sReason){ |
| 1021 | - | |
| 1038 | + | |
| 1022 | 1039 | $oDocument =& KTUtil::getObject('Document', $oDocument); |
| 1023 | 1040 | $oVersion =& KTDocumentMetadataVersion::get($iVersionID); |
| 1024 | - | |
| 1041 | + | |
| 1025 | 1042 | $oStorageManager =& KTStorageManagerUtil::getSingleton(); |
| 1026 | 1043 | |
| 1027 | 1044 | global $default; |
| ... | ... | @@ -1037,17 +1054,17 @@ class KTDocumentUtil { |
| 1037 | 1054 | if (PEAR::isError($oVersion) || ($oVersion == false)) { |
| 1038 | 1055 | return PEAR::raiseError(_kt('Invalid document version object.')); |
| 1039 | 1056 | } |
| 1040 | - | |
| 1057 | + | |
| 1041 | 1058 | $iContentId = $oVersion->getContentVersionId(); |
| 1042 | 1059 | $oContentVersion = KTDocumentContentVersion::get($iContentId); |
| 1043 | - | |
| 1060 | + | |
| 1044 | 1061 | if (PEAR::isError($oContentVersion) || ($oContentVersion == false)) { |
| 1045 | 1062 | DBUtil::rollback(); |
| 1046 | 1063 | return PEAR::raiseError(_kt('Invalid document content version object.')); |
| 1047 | 1064 | } |
| 1048 | 1065 | |
| 1049 | 1066 | DBUtil::startTransaction(); |
| 1050 | - | |
| 1067 | + | |
| 1051 | 1068 | // now delete the document version |
| 1052 | 1069 | $res = $oStorageManager->deleteVersion($oVersion); |
| 1053 | 1070 | if (PEAR::isError($res) || ($res == false)) { |
| ... | ... | @@ -1064,11 +1081,11 @@ class KTDocumentUtil { |
| 1064 | 1081 | |
| 1065 | 1082 | return PEAR::raiseError(_kt('There was a problem deleting the document from storage.')); |
| 1066 | 1083 | } |
| 1067 | - | |
| 1084 | + | |
| 1068 | 1085 | // change status for the metadata version |
| 1069 | 1086 | $oVersion->setStatusId(VERSION_DELETED); |
| 1070 | 1087 | $oVersion->update(); |
| 1071 | - | |
| 1088 | + | |
| 1072 | 1089 | // set the storage path to empty |
| 1073 | 1090 | // $oContentVersion->setStoragePath(''); |
| 1074 | 1091 | ... | ... |
plugins/ktcore/KTDocumentActions.php
| ... | ... | @@ -1242,25 +1242,6 @@ class KTDocumentCopyAction extends KTDocumentAction { |
| 1242 | 1242 | |
| 1243 | 1243 | $this->commitTransaction(); |
| 1244 | 1244 | |
| 1245 | - // FIXME do we need to refactor all trigger usage into the util function? | |
| 1246 | - $oKTTriggerRegistry = KTTriggerRegistry::getSingleton(); | |
| 1247 | - $aTriggers = $oKTTriggerRegistry->getTriggers('copyDocument', 'postValidate'); | |
| 1248 | - foreach ($aTriggers as $aTrigger) { | |
| 1249 | - $sTrigger = $aTrigger[0]; | |
| 1250 | - $oTrigger = new $sTrigger; | |
| 1251 | - $aInfo = array( | |
| 1252 | - 'document' => $oNewDoc, | |
| 1253 | - 'old_folder' => $this->oDocumentFolder, | |
| 1254 | - 'new_folder' => $data['browse'], | |
| 1255 | - ); | |
| 1256 | - $oTrigger->setInfo($aInfo); | |
| 1257 | - $ret = $oTrigger->postValidate(); | |
| 1258 | - } | |
| 1259 | - | |
| 1260 | - //$aOptions = array('user' => $oUser); | |
| 1261 | - //$oDocumentTransaction = & new DocumentTransaction($oNewDoc, 'Document copied from old version.', 'ktcore.transactions.create', $aOptions); | |
| 1262 | - //$res = $oDocumentTransaction->create(); | |
| 1263 | - | |
| 1264 | 1245 | $_SESSION['KTInfoMessage'][] = _kt('Document copied.'); |
| 1265 | 1246 | |
| 1266 | 1247 | controllerRedirect('viewDocument', 'fDocumentId=' . $oNewDoc->getId()); | ... | ... |