diff --git a/src/main/java/org/olat/core/commons/modules/bc/notifications/FolderNotificationsHandler.java b/src/main/java/org/olat/core/commons/modules/bc/notifications/FolderNotificationsHandler.java index 1d0707e3dee255a5ee8104bfb2920252d2d5f2b4..73922db23925145975026b9fbf5532d5c22c07a6 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/notifications/FolderNotificationsHandler.java +++ b/src/main/java/org/olat/core/commons/modules/bc/notifications/FolderNotificationsHandler.java @@ -34,6 +34,8 @@ import java.util.Locale; import org.apache.logging.log4j.Logger; import org.olat.core.commons.modules.bc.FileInfo; import org.olat.core.commons.modules.bc.FolderManager; +import org.olat.core.commons.services.doceditor.DocEditor; +import org.olat.core.commons.services.doceditor.DocEditor.Mode; import org.olat.core.commons.services.notifications.NotificationHelper; import org.olat.core.commons.services.notifications.NotificationsHandler; import org.olat.core.commons.services.notifications.NotificationsManager; @@ -44,6 +46,7 @@ import org.olat.core.commons.services.notifications.manager.NotificationsUpgrade import org.olat.core.commons.services.notifications.model.SubscriptionListItem; import org.olat.core.commons.services.notifications.model.TitleItem; import org.olat.core.commons.services.vfs.VFSMetadata; +import org.olat.core.commons.services.vfs.VFSVersionModule; import org.olat.core.gui.translator.Translator; import org.olat.core.gui.util.CSSHelper; import org.olat.core.id.context.BusinessControlFactory; @@ -78,6 +81,10 @@ public class FolderNotificationsHandler implements NotificationsHandler { private NotificationsManager notificationsManager; @Autowired private BusinessGroupService businessGroupService; + @Autowired + private VFSVersionModule versionModule; + @Autowired + private List<DocEditor> editors; @Override public SubscriptionInfo createSubscriptionInfo(final Subscriber subscriber, Locale locale, Date compareDate) { @@ -125,7 +132,11 @@ public class FolderNotificationsHandler implements NotificationsHandler { Long identityKey = fi.getAuthorIdentityKey(); Date modDate = fi.getLastModified(); - String desc = translator.translate("notifications.entry", new String[] { title, NotificationHelper.getFormatedName(identityKey) }); + // Documents may be edited with a document editor, so author is not the modifier + boolean anonymous = versionModule.getMaxNumberOfVersions() < 1 && hasDocumentEditor(fi.getMetaInfo()); + String desc = anonymous + ? translator.translate("notifications.entry.anonymous", new String[] { title }) + : translator.translate("notifications.entry", new String[] { title, NotificationHelper.getFormatedName(identityKey) }); String urlToSend = null; String businessPath = null; if(p.getBusinessPath() != null) { @@ -146,6 +157,15 @@ public class FolderNotificationsHandler implements NotificationsHandler { return si; } + private boolean hasDocumentEditor(VFSMetadata metaInfo) { + String suffix = FileUtils.getFileSuffix(metaInfo.getFilename()); + return editors.stream() + .filter(DocEditor::isEnable) + .filter(editor -> editor.isSupportingFormat(suffix, Mode.EDIT, true)) + .findFirst() + .isPresent(); + } + private void checkPublisher(Publisher p) { try { if("BusinessGroup".equals(p.getResName())) { diff --git a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_de.properties index b7a5b6275eb45d2e33ea323d1fcf49d3b1c4b555..c7d70ce2cb21f0d5db2f1fd26caec7aeeac6f162 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_de.properties @@ -1,5 +1,6 @@ #Mon Mar 02 09:54:04 CET 2009 notifications.entry=Datei "{0}" von {1} ver\u00E4ndert +notifications.entry.anonymous=Datei "{0}" ver\u00E4ndert notifications.header=In einem von Ihnen abonnierten Ordner befinden sich neue Dateien\: notifications.header.course=Ordner in Kurs "{0}" notifications.header.group=Ordner in Gruppe "{0}" diff --git a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_en.properties index b86581449a8975fcbb547bcc88f65ce0507e8c57..009b491db937ff54efc0138aa7bca0419b8fa368 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_en.properties @@ -1,5 +1,6 @@ #Sun Aug 15 17:55:18 CEST 2010 notifications.entry=File "{0}" altered by {1} +notifications.entry.anonymous=File "{0}" altered notifications.header=There are new files in a folder to which you subscribed\: notifications.header.course=Folder in course "{0}" notifications.header.group=Folder in group "{0}" diff --git a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_fr.properties index c2fe50610793444e7f60b17539c19bf25a15d725..481ee0ffe599d607dcd5edc227f954bda01a2a4d 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_fr.properties @@ -1,5 +1,6 @@ #Tue Feb 09 01:33:27 CET 2010 notifications.entry=Fichier "{0}" modifi\u00E9 par {1} +notifications.entry.anonymous=Fichier "{0}" modifi\u00E9 notifications.header=Dans un de vos dossiers abonn\u00E9s se trouvent de nouveaux fichiers\: notifications.header.course=Dossier dans le cours "{0}" notifications.header.group=Dossier dans le groupe "{0}" diff --git a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_it.properties index 471bf45a74ed3bfbce4e6c0972e3df0d2aab9ca8..1b9ca6d15095b4eb2ea20b9ca00cdfc1e1348728 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_it.properties @@ -1,5 +1,6 @@ #Thu Jun 17 15:44:21 CEST 2010 notifications.entry=File "{0}" modificato da {1} +notifications.entry.anonymous=File "{0}" modificato notifications.header=In una cartella da Lei abbonata si trovano nuovi file\: notifications.header.course=Cartella nel corso "{0}" notifications.header.group=Cartella nel gruppo "{0}" diff --git a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_nl_NL.properties b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_nl_NL.properties index 519358a57d20ee68b5fdaa32a18a8b58f622aab2..1bacfb718aadd72fdee0856246a6dfab8788330a 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_nl_NL.properties +++ b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_nl_NL.properties @@ -1,5 +1,6 @@ #Thu Sep 08 16:42:46 CEST 2011 notifications.entry=Bestand "{0}" aangepast door {1} +notifications.entry.anonymous=Bestand "{0}" aangepast notifications.header=Er zijn nieuwe bestanden in een map waarvoor u ingeschreven bent\: notifications.header.course=Map in cursus "{0}" notifications.header.group=Map in groep "{0}" diff --git a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_pl.properties b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_pl.properties index 32a074e0f4151ee6215b802e82dd5ad6bcf2dfac..ee7cf79c35bdb945cf22df834a1ff2d0bee65577 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_pl.properties +++ b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_pl.properties @@ -1,5 +1,6 @@ #Sun Mar 14 22:29:30 CET 2010 notifications.entry=Plik "{0}" zmieniony przez {1} +notifications.entry.anonymous=Plik "{0}" zmieniony notifications.header=S\u0105 nowe pliki w folderze, kt\u00F3ry subskrybujesz\: notifications.header.course=Folder w kursie "{0}" notifications.header.group=Folder w grupie "{0}" diff --git a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_pt_BR.properties index 4c2931e1d71a8fa8e8c6d76e3583c9026516564d..4ba52c2888107aba7ff18d14f1b2e3f6c272e028 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_pt_BR.properties +++ b/src/main/java/org/olat/core/commons/modules/bc/notifications/_i18n/LocalStrings_pt_BR.properties @@ -1,5 +1,6 @@ #Wed Jun 09 14:44:22 CEST 2010 notifications.entry=Arquivo "{0}" alterados por {1} +notifications.entry.anonymous=Arquivo "{0}" alterados notifications.header=H\u00E1 novos arquivos em uma pasta \u00E0 qual voc\u00EA se inscreveu\: notifications.header.course=Pasta no curso "{0}" notifications.header.group=Pasta no grupo "{0}"