diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php
index 054be2674..00e7c24fa 100644
--- a/SeedDMS_Core/Core/inc.ClassDocument.php
+++ b/SeedDMS_Core/Core/inc.ClassDocument.php
@@ -1745,6 +1745,10 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */
foreach ($resArr as $row) {
/** @var SeedDMS_Core_DocumentContent $content */
$content = new $classname($row["id"], $this, $row["version"], $row["comment"], $row["date"], $row["createdBy"], $row["dir"], $row["orgFileName"], $row["fileType"], $row["mimeType"], $row['fileSize'], $row['checksum']);
+ /* TODO: Better use content id as key in $this->_content. This
+ * would allow to remove a single content object in removeContent().
+ * Currently removeContent() must clear $this->_content completely
+ */
if($user) {
if($content->getAccessMode($user) >= M_READ)
array_push($this->_content, $content);
@@ -2018,6 +2022,13 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */
return false;
}
+ /* Invalidate the content list and the latest content of this document,
+ * otherwise getContent() and getLatestContent()
+ * will still return the content just deleted.
+ */
+ $this->_latestContent = null;
+ $this->_content = null;
+
/* Check if 'onPostRemoveDocument' callback is set */
if(isset($this->_dms->callbacks['onPostRemoveContent'])) {
foreach($this->_dms->callbacks['onPostRemoveContent'] as $callback) {
diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml
index f5d232221..ced81b2e8 100644
--- a/SeedDMS_Core/package.xml
+++ b/SeedDMS_Core/package.xml
@@ -25,6 +25,8 @@
GPL License
- add method SeedDMS_Core_Document::setParent() as an alias for setFolder()
+- clear the save content list and latest content in SeedDMS_Core_Document after
+ a version has been deleted.