diff --git a/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java b/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java index 52bd589c504e901b74e448df4cb1708729ffb23f..74c6186d44bc2f9a0ec14c8bfb9da598306c7aab 100755 --- a/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java +++ b/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java @@ -609,19 +609,17 @@ public class EPFrontendManager implements UserDataDeletable, DeletableGroupData * sync map with its former source (template) */ public boolean synchronizeStructuredMapToUserCopy(PortfolioStructureMap map) { - final EPStructuredMap userMap = (EPStructuredMap) map; - final EPStructureManager structMgr = structureManager; // only remove - // synthetic access - // warnings - + if(map == null) return false; + + final EPStructuredMap userMap = (EPStructuredMap)map; Boolean synched = coordinator.getSyncer().doInSync(map.getOlatResource(), new SyncerCallback<Boolean>() { public Boolean execute() { if (userMap.getStructuredMapSource() == null) { return Boolean.FALSE; } // need to reload it, I don't know why Long templateKey = userMap.getStructuredMapSource().getKey(); userMap.setLastSynchedDate(new Date()); - PortfolioStructure template = structMgr.loadPortfolioStructureByKey(templateKey); - structMgr.syncStructureRecursively(template, userMap, true); + PortfolioStructure template = structureManager.loadPortfolioStructureByKey(templateKey); + structureManager.syncStructureRecursively(template, userMap, true); return Boolean.TRUE; } }); diff --git a/src/main/java/org/olat/portfolio/ui/structel/EPMapViewController.java b/src/main/java/org/olat/portfolio/ui/structel/EPMapViewController.java index a7fa6e0b4129cafaee8dc48b4d2d99d44c407663..4e0419aebd8426ce04ab61f18cb5281a30cb889f 100644 --- a/src/main/java/org/olat/portfolio/ui/structel/EPMapViewController.java +++ b/src/main/java/org/olat/portfolio/ui/structel/EPMapViewController.java @@ -107,7 +107,16 @@ public class EPMapViewController extends BasicController implements Activateable if (map instanceof EPStructuredMap && (map.getStatus() == null || !map.getStatus().equals(StructureStatusEnum.CLOSED) )){ map = (PortfolioStructureMap) ePFMgr.loadPortfolioStructureByKey(map.getKey()); boolean syncOk = ePFMgr.synchronizeStructuredMapToUserCopy(map); - if (syncOk) showInfo("synced.map.success"); + if (syncOk) { + showInfo("synced.map.success"); + } else if(map == null) { + showWarning("synced.map.deleted"); + putInitialPanel(createVelocityContainer("map_deleted")); + return; + } else { + showError("synced.map.error"); + + } } if(EPSecurityCallbackFactory.isLockNeeded(secCallback)) { diff --git a/src/main/java/org/olat/portfolio/ui/structel/_content/map_deleted.html b/src/main/java/org/olat/portfolio/ui/structel/_content/map_deleted.html new file mode 100644 index 0000000000000000000000000000000000000000..cd8e20c4e6b17a9bdf64926b507d942cd978797d --- /dev/null +++ b/src/main/java/org/olat/portfolio/ui/structel/_content/map_deleted.html @@ -0,0 +1 @@ +<div class="o_warning">$r.translate("synced.map.deleted")</div> \ No newline at end of file diff --git a/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_de.properties index 958d727d42c84d42e680047e42acf3cc6fa41eab..855a97aac76fbcfbbef9930bdcbea0f7b5cf0699 100644 --- a/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_de.properties @@ -97,6 +97,8 @@ map.share.invitation.mail.success=Die eingeladenen Personen wurden erfolgreich p map.share.invitation.mail.failure=Fehler beim Versenden der E-Mail. Die eingeladenen Personen konnten nicht per E-Mail benachrichtigt werden. Versuchen Sie es später noch einmal oder kontaktieren Sie den Support. map.is.closed.hint=Mappe geschlossen synced.map.success=Diese Mappe wurde mit der ursprünglichen Vorlage synchronisiert. +synced.map.deleted=Diese Mappe wurde gelöscht. +synced.map.error=Diese Mappe konnte nicht mit der ursprünglichen Vorlage synchronisiert werden. map.style.default=Schlicht map.style.comic=Comic map.style.leather=Leder diff --git a/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_en.properties index a78df089f26c55d187b50fc9343b6cb4a8d3771e..4b80986024d5c5940d816e4018422d9f5ed3cb8f 100644 --- a/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_en.properties @@ -134,6 +134,8 @@ restrict.show.limited=Show only those binders released for me restrictions.not.conform=You haven't abided by all restrictions. Please mind the requirements. save.and.open.map=Save and open binder synced.map.success=This folder has been synchronized with its original template. +synced.map.deleted=This folder was deleted. +synced.map.error=This folder cannot be synchronized with its original template. template.alreadyInUse=This template has already been copied by at least one user. When modifying your template this copy will be synchronized as well. It is possible to delete elements or expand your template; however, links to artefacts already existing may be lost\! toc=Table of contents view.map=Open