From 56b8ef85dca8d45ece4986f6a04d084bcbcb92f4 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 20 Apr 2015 11:19:06 +0200 Subject: [PATCH] OO-1516: better check if the map exists and show a warning if it doesn't --- .../olat/portfolio/manager/EPFrontendManager.java | 12 +++++------- .../portfolio/ui/structel/EPMapViewController.java | 11 ++++++++++- .../portfolio/ui/structel/_content/map_deleted.html | 1 + .../ui/structel/_i18n/LocalStrings_de.properties | 2 ++ .../ui/structel/_i18n/LocalStrings_en.properties | 2 ++ 5 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 src/main/java/org/olat/portfolio/ui/structel/_content/map_deleted.html diff --git a/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java b/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java index 52bd589c504..74c6186d44b 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 a7fa6e0b412..4e0419aebd8 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 00000000000..cd8e20c4e6b --- /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 958d727d42c..855a97aac76 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 a78df089f26..4b80986024d 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 -- GitLab