Commit 90117fd4e3e69b78731025348b45604bb9e5675c

Authored by kevin_fourie
1 parent c0e0a141

Merged in from DEV trunk...

KTS-2507
" Workflow Transitions reset after adding new transition to existing workflow."

Fixed
When adding a new transition the old data should remain intact.

Committed By: Jonathan Byrne
Reviewed By: Kevin Fourie

KTS-2524
"Create document indexer shutdown script"
Implemented. Also did a few other small fixes...

Committed By: Conrad Vermeulen
Reviewed By: Kevin Fourie

KTS-2524
"Create document indexer shutdown script"
Implemented. 

Committed By: Conrad Vermeulen
Reviewed By: Kevin Fourie

KTS-2520
"Fatal Error when deleting a state in a workflow and selecting a replacement state."
Fixed typo. KTWorkflowTransitions should have been KTWorkflowTransition.

Committed By: Kevin Fourie
Reviewed By: Jonathan Byrne



git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/STABLE/trunk@7430 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/workflow/workflowutil.inc.php
@@ -831,7 +831,7 @@ class KTWorkflowUtil { @@ -831,7 +831,7 @@ class KTWorkflowUtil {
831 if (PEAR::isError($res)) { return $res; } 831 if (PEAR::isError($res)) { return $res; }
832 832
833 Document::clearAllCaches(); 833 Document::clearAllCaches();
834 - KTWorkflowTransitions::clearAllCaches(); 834 + KTWorkflowTransition::clearAllCaches();
835 } 835 }
836 } 836 }
837 837
plugins/ktcore/admin/workflowsv2.php
@@ -625,7 +625,7 @@ class KTWorkflowAdminV2 extends KTAdminDispatcher { @@ -625,7 +625,7 @@ class KTWorkflowAdminV2 extends KTAdminDispatcher {
625 625
626 $to = (array) KTUtil::arrayGet($_REQUEST, 'fTo'); 626 $to = (array) KTUtil::arrayGet($_REQUEST, 'fTo');
627 $from = (array) KTUtil::arrayGet($_REQUEST, 'fFrom'); 627 $from = (array) KTUtil::arrayGet($_REQUEST, 'fFrom');
628 - 628 +
629 // we do not trust any of this data. 629 // we do not trust any of this data.
630 $states = KTWorkflowState::getByWorkflow($this->oWorkflow); 630 $states = KTWorkflowState::getByWorkflow($this->oWorkflow);
631 $states = KTUtil::keyArray($states); 631 $states = KTUtil::keyArray($states);
@@ -656,8 +656,16 @@ class KTWorkflowAdminV2 extends KTAdminDispatcher { @@ -656,8 +656,16 @@ class KTWorkflowAdminV2 extends KTAdminDispatcher {
656 $source_state_ids[] = $oState->getId(); 656 $source_state_ids[] = $oState->getId();
657 } 657 }
658 } 658 }
659 -  
660 - $res = KTWorkflowAdminUtil::saveTransitionSources($oTransition, $source_state_ids); 659 +
  660 + $aFromTransitionID = array_keys($_REQUEST['fFrom']);
  661 + //run through all transitions to change
  662 + foreach ($aFromTransitionID as $iCurrentId)
  663 + {
  664 + if($oTransition->getId() == $iCurrentId)
  665 + {
  666 + $res = KTWorkflowAdminUtil::saveTransitionSources($oTransition, $source_state_ids);
  667 + }
  668 + }
661 if (PEAR::isError($res)) { 669 if (PEAR::isError($res)) {
662 $this->errorRedirectTo('basic', sprintf(_kt("Failed to set transition origins: %s"), $res->getMessage())); 670 $this->errorRedirectTo('basic', sprintf(_kt("Failed to set transition origins: %s"), $res->getMessage()));
663 } 671 }
search2/indexing/indexerCore.inc.php
@@ -32,13 +32,13 @@ class QueryResultItem @@ -32,13 +32,13 @@ class QueryResultItem
32 protected $status; 32 protected $status;
33 protected $folderId; 33 protected $folderId;
34 34
35 -  
36 public function __construct($document_id, $rank=null, $title=null, $text=null) 35 public function __construct($document_id, $rank=null, $title=null, $text=null)
37 { 36 {
38 - $this->document_id=$document_id; 37 + $this->document_id=(int) $document_id;
39 $this->rank= $rank; 38 $this->rank= $rank;
40 $this->title=$title; 39 $this->title=$title;
41 $this->text = $text; 40 $this->text = $text;
  41 + $this->live = true;
42 $this->loadDocumentInfo(); 42 $this->loadDocumentInfo();
43 } 43 }
44 44
@@ -57,14 +57,13 @@ class QueryResultItem @@ -57,14 +57,13 @@ class QueryResultItem
57 return true; // should not be reached 57 return true; // should not be reached
58 } 58 }
59 59
60 - private function loadDocumentInfo() 60 + public function loadDocumentInfo()
61 { 61 {
62 $sql = "SELECT 62 $sql = "SELECT
63 - f.folder_id, f.full_path, f.name, dcv.size as filesize, dcv.major_version, 63 + d.folder_id, f.full_path, f.name, dcv.size as filesize, dcv.major_version,
64 dcv.minor_version, dcv.filename, cou.name as checkoutuser, w.human_name as workflow, ws.human_name as workflowstate, 64 dcv.minor_version, dcv.filename, cou.name as checkoutuser, w.human_name as workflow, ws.human_name as workflowstate,
65 mt.mimetypes as mimetype, md.mime_doc as mimedoc, d.checkedout, mbu.name as modifiedbyuser, d.modified, 65 mt.mimetypes as mimetype, md.mime_doc as mimedoc, d.checkedout, mbu.name as modifiedbyuser, d.modified,
66 cbu.name as createdbyuser, ou.name as owneruser, d.immutable, d.status_id, d.created 66 cbu.name as createdbyuser, ou.name as owneruser, d.immutable, d.status_id, d.created
67 -  
68 FROM 67 FROM
69 documents d 68 documents d
70 INNER JOIN document_metadata_version dmv ON d.metadata_version_id = dmv.id 69 INNER JOIN document_metadata_version dmv ON d.metadata_version_id = dmv.id
@@ -78,7 +77,6 @@ class QueryResultItem @@ -78,7 +77,6 @@ class QueryResultItem
78 LEFT JOIN users mbu ON d.modified_user_id=mbu.id 77 LEFT JOIN users mbu ON d.modified_user_id=mbu.id
79 LEFT JOIN users cbu ON d.creator_id=cbu.id 78 LEFT JOIN users cbu ON d.creator_id=cbu.id
80 LEFT JOIN users ou ON d.owner_id=ou.id 79 LEFT JOIN users ou ON d.owner_id=ou.id
81 -  
82 WHERE 80 WHERE
83 d.id=$this->document_id"; 81 d.id=$this->document_id";
84 82
@@ -87,10 +85,9 @@ class QueryResultItem @@ -87,10 +85,9 @@ class QueryResultItem
87 if (PEAR::isError($result) || empty($result)) 85 if (PEAR::isError($result) || empty($result))
88 { 86 {
89 $this->live = false; 87 $this->live = false;
90 - return; 88 + throw new Exception('QueryResultItem::loadDocumentInfo failed');
91 } 89 }
92 90
93 - $this->live = true;  
94 if (is_null($result['name'])) 91 if (is_null($result['name']))
95 { 92 {
96 $this->fullpath = '(orphaned)'; 93 $this->fullpath = '(orphaned)';
@@ -137,7 +134,7 @@ class QueryResultItem @@ -137,7 +134,7 @@ class QueryResultItem
137 case 'Title': return (string) $this->title; 134 case 'Title': return (string) $this->title;
138 case 'FullPath': return (string) $this->fullpath; 135 case 'FullPath': return (string) $this->fullpath;
139 case 'IsLive': return (bool) $this->live; 136 case 'IsLive': return (bool) $this->live;
140 - case 'Filesize': return (int) $this->filesize; 137 + case 'Filesize': return $this->filesize;
141 case 'Version': return (string) $this->version; 138 case 'Version': return (string) $this->version;
142 case 'Filename': return (int)$this->filename; 139 case 'Filename': return (int)$this->filename;
143 case 'FolderId': return (int)$this->folderId; 140 case 'FolderId': return (int)$this->folderId;
@@ -180,7 +177,13 @@ class QueryResultItem @@ -180,7 +177,13 @@ class QueryResultItem
180 case 'Status': 177 case 'Status':
181 return $this->status; 178 return $this->status;
182 case 'CanBeReadByUser': 179 case 'CanBeReadByUser':
183 - return (bool) $this->live && (Permission::userHasDocumentReadPermission($this->Document) || Permission::adminIsInAdminMode()); 180 + if (!$this->live)
  181 + return false;
  182 + if (Permission::userHasDocumentReadPermission($this->Document))
  183 + return true;
  184 + if (Permission::adminIsInAdminMode())
  185 + return true;
  186 + return false;
184 default: 187 default:
185 throw new Exception("Unknown property '$property' to get on MatchResult"); 188 throw new Exception("Unknown property '$property' to get on MatchResult");
186 } 189 }
@@ -1170,6 +1173,15 @@ abstract class Indexer @@ -1170,6 +1173,15 @@ abstract class Indexer
1170 } 1173 }
1171 1174
1172 /** 1175 /**
  1176 + * Shuts down the indexer
  1177 + *
  1178 + */
  1179 + public function shutdown()
  1180 + {
  1181 + // do nothing generally
  1182 + }
  1183 +
  1184 + /**
1173 * Returns the name of the indexer. 1185 * Returns the name of the indexer.
1174 * 1186 *
1175 * @return string 1187 * @return string
search2/indexing/indexers/JavaXMLRPCLuceneIndexer.inc.php
@@ -115,6 +115,16 @@ class JavaXMLRPCLuceneIndexer extends Indexer @@ -115,6 +115,16 @@ class JavaXMLRPCLuceneIndexer extends Indexer
115 } 115 }
116 116
117 /** 117 /**
  118 + * Shut down the java server
  119 + *
  120 + */
  121 + public function shutdown()
  122 + {
  123 + $this->lucene->shutdown();
  124 + }
  125 +
  126 +
  127 + /**
118 * Enter description here... 128 * Enter description here...
119 * 129 *
120 * @param string $query 130 * @param string $query