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

OO-3274: check if there is something to backup before doing it

parent 6e5f5f63
No related branches found
No related tags found
No related merge requests found
......@@ -136,8 +136,7 @@ public class TaxonomyDAO implements InitializingBean{
File directory = new File(storage, type);
directory.mkdirs();
Path relativePath = rootDirectory.toPath().relativize(directory.toPath());
String relativePathString = relativePath.toString();
return relativePathString;
return relativePath.toString();
}
public VFSContainer getDocumentsLibrary(Taxonomy taxonomy) {
......
......@@ -21,11 +21,13 @@ package org.olat.modules.taxonomy.manager;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import org.olat.basesecurity.IdentityRef;
import org.olat.core.id.Identity;
import org.olat.core.util.StringHelper;
import org.olat.core.util.vfs.VFSContainer;
import org.olat.core.util.vfs.VFSItem;
import org.olat.core.util.vfs.VFSManager;
import org.olat.modules.taxonomy.Taxonomy;
import org.olat.modules.taxonomy.TaxonomyCompetence;
......@@ -160,16 +162,27 @@ public class TaxonomyServiceImpl implements TaxonomyService {
merge(reloadedTaxonomyLevel, reloadedMergeTo);
} else {
VFSContainer library = taxonomyLevelDao.getDocumentsLibrary(reloadedTaxonomyLevel);
Taxonomy taxonomy = reloadedTaxonomyLevel.getTaxonomy();
VFSContainer lostAndFound = taxonomyDao.getLostAndFoundDirectoryLibrary(taxonomy);
String dir = StringHelper.transformDisplayNameToFileSystemName(reloadedTaxonomyLevel.getIdentifier());
dir += "_" + taxonomyLevel.getKey();
VFSContainer lastStorage = lostAndFound.createChildContainer(dir);
VFSManager.copyContent(library, lastStorage);
//delete the competences
taxonomyCompetenceDao.deleteCompetences(taxonomyLevel);
//questions
taxonomyRelationsDao.removeFromQuestionItems(taxonomyLevel);
if(library != null) {
Taxonomy taxonomy = reloadedTaxonomyLevel.getTaxonomy();
VFSContainer lostAndFound = taxonomyDao.getLostAndFoundDirectoryLibrary(taxonomy);
String dir = StringHelper.transformDisplayNameToFileSystemName(reloadedTaxonomyLevel.getIdentifier());
dir += "_" + taxonomyLevel.getKey();
VFSContainer lastStorage = lostAndFound.createChildContainer(dir);
if(lastStorage == null) {
VFSItem storageItem = lostAndFound.resolve(dir);
if(storageItem instanceof VFSContainer) {
lastStorage = (VFSContainer)storageItem;
} else {
lastStorage = lostAndFound.createChildContainer(UUID.randomUUID().toString());
}
}
VFSManager.copyContent(library, lastStorage);
//delete the competences
taxonomyCompetenceDao.deleteCompetences(taxonomyLevel);
//questions
taxonomyRelationsDao.removeFromQuestionItems(taxonomyLevel);
}
}
return taxonomyLevelDao.delete(reloadedTaxonomyLevel);
......
......@@ -213,13 +213,15 @@ public class TaxonomyLevelOverviewController extends BasicController implements
showWarning("warning.atleastone.level");
return;
}
taxonomyLevel = taxonomyService.getTaxonomyLevel(taxonomyLevel);
Taxonomy taxonomy = taxonomyLevel.getTaxonomy();
confirmDeleteCtrl = new DeleteTaxonomyLevelController(ureq, getWindowControl(), null, taxonomy);
List<TaxonomyLevel> levelToDelete = Collections.singletonList(taxonomyLevel);
confirmDeleteCtrl = new DeleteTaxonomyLevelController(ureq, getWindowControl(), levelToDelete, taxonomy);
listenTo(confirmDeleteCtrl);
String title = translate("confirmation.delete.level.title");
cmc = new CloseableModalController(getWindowControl(), "close", moveLevelCtrl.getInitialComponent(), true, title);
cmc = new CloseableModalController(getWindowControl(), "close", confirmDeleteCtrl.getInitialComponent(), true, title);
listenTo(cmc);
cmc.activate();
}
......
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