diff --git a/src/main/java/org/olat/user/ProfileFormController.java b/src/main/java/org/olat/user/ProfileFormController.java index c2b25d24ce403fc4a38a2fe36f79136ef18d76d6..0ba1d0ee6cbf9e19080e6042a94badc23b7deb4b 100644 --- a/src/main/java/org/olat/user/ProfileFormController.java +++ b/src/main/java/org/olat/user/ProfileFormController.java @@ -98,6 +98,8 @@ public class ProfileFormController extends FormBasicController { private final boolean isAdministrativeUser; private final List<UserPropertyHandler> userPropertyHandlers; + private boolean portraitDeleted = false; + private boolean logoDeleted = false; private boolean emailChanged = false; private String changedEmail; private String currentEmail; @@ -386,19 +388,12 @@ public class ProfileFormController extends FormBasicController { if (source == portraitUpload) { if(event instanceof FileElementEvent) { if(FileElementEvent.DELETE.equals(event.getCommand())) { - File img = dps.getLargestPortrait(identityToModify.getName()); + portraitDeleted = true; + portraitUpload.setInitialFile(null); if(portraitUpload.getUploadFile() != null) { portraitUpload.reset(); - if(img != null) { - portraitUpload.setInitialFile(img); - } - } else if(img != null) { - dps.deletePortrait(identityToModify); - portraitUpload.setInitialFile(null); - notifyPortraitChanged(); } flc.setDirty(true); - } } else if (portraitUpload.isUploadSuccess()) { flc.setDirty(true); @@ -406,19 +401,12 @@ public class ProfileFormController extends FormBasicController { } else if (source == logoUpload) { if(event instanceof FileElementEvent) { if(FileElementEvent.DELETE.equals(event.getCommand())) { - File img = dps.getLargestLogo(identityToModify.getName()); + logoDeleted = true; + logoUpload.setInitialFile(null); if(logoUpload.getUploadFile() != null) { logoUpload.reset(); - if(img != null) { - logoUpload.setInitialFile(img); - } - } else if(img != null) { - dps.deleteLogo(identityToModify); - logoUpload.setInitialFile(null); - notifyPortraitChanged(); } flc.setDirty(true); - } } else if (logoUpload.isUploadSuccess()) { flc.setDirty(true); @@ -445,6 +433,14 @@ public class ProfileFormController extends FormBasicController { } } + if (portraitDeleted) { + File img = dps.getLargestPortrait(identityToModify.getName()); + if(img != null) { + dps.deletePortrait(identityToModify); + notifyPortraitChanged(); + } + } + File uploadedImage = portraitUpload.getUploadFile(); String uploadedFilename = portraitUpload.getUploadFileName(); if(uploadedImage != null) { @@ -452,6 +448,14 @@ public class ProfileFormController extends FormBasicController { notifyPortraitChanged(); } + if (logoDeleted) { + File img = dps.getLargestLogo(identityToModify.getName()); + if(img != null) { + dps.deleteLogo(identityToModify); + notifyPortraitChanged(); + } + } + if(logoUpload != null) { File uploadedLogo = logoUpload.getUploadFile(); String uploadedLogoname = logoUpload.getUploadFileName();