Skip to content
Snippets Groups Projects
Commit d720308c authored by srosse's avatar srosse
Browse files

OO-4375: remove metadata if last revision is deleted

Remove the file metadata if its last revision is deleted and the file
doesn't exist
parent 0ca4b195
No related branches found
No related tags found
No related merge requests found
...@@ -66,6 +66,7 @@ import org.olat.core.id.Identity; ...@@ -66,6 +66,7 @@ import org.olat.core.id.Identity;
import org.olat.core.util.Formatter; import org.olat.core.util.Formatter;
import org.olat.core.util.Util; import org.olat.core.util.Util;
import org.olat.core.util.async.ProgressDelegate; import org.olat.core.util.async.ProgressDelegate;
import org.olat.core.util.vfs.VFSItem;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
/** /**
...@@ -210,7 +211,23 @@ public class VFSTrashController extends FormBasicController implements ProgressD ...@@ -210,7 +211,23 @@ public class VFSTrashController extends FormBasicController implements ProgressD
private void doDelete(List<VersionsDeletedFileRow> rowsToDelete) { private void doDelete(List<VersionsDeletedFileRow> rowsToDelete) {
for(VersionsDeletedFileRow row:rowsToDelete) { for(VersionsDeletedFileRow row:rowsToDelete) {
VFSRevision revision = vfsRepositoryService.getRevision(new VFSRevisionRefImpl(row.getRevisionKey())); VFSRevision revision = vfsRepositoryService.getRevision(new VFSRevisionRefImpl(row.getRevisionKey()));
vfsRepositoryService.deleteRevisions(getIdentity(), Collections.singletonList(revision)); doDelete(revision);
}
}
private void doDelete(VFSRevision revision) {
VFSMetadata metadata = revision.getMetadata();
vfsRepositoryService.deleteRevisions(getIdentity(), Collections.singletonList(revision));
dbInstance.commit();
if(metadata.isDeleted()) {
List<VFSRevision> revisions = vfsRepositoryService.getRevisions(metadata);
if(revisions.isEmpty()) {
VFSItem item = vfsRepositoryService.getItemFor(metadata);
if(item == null || !item.exists()) {
vfsRepositoryService.deleteMetadata(metadata);
}
}
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment