From adb23be7eeff682f8e97cf1d4dd3d2a2f9e65f09 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 25 Nov 2015 12:40:41 +0100
Subject: [PATCH] OO-1770: small fixes

---
 .../olat/course/nodes/fo/_i18n/LocalStrings_de.properties    | 2 +-
 .../olat/course/nodes/fo/_i18n/LocalStrings_en.properties    | 4 ++--
 .../org/olat/modules/fo/_i18n/LocalStrings_de.properties     | 2 +-
 .../org/olat/modules/fo/_i18n/LocalStrings_en.properties     | 1 +
 src/main/java/org/olat/modules/fo/manager/ForumManager.java  | 1 +
 src/main/java/org/olat/modules/fo/ui/ForumUserDataModel.java | 4 ++--
 .../java/org/olat/modules/fo/ui/MessageEditController.java   | 5 +++--
 .../java/org/olat/modules/fo/ui/MessageListController.java   | 2 +-
 .../java/org/olat/modules/fo/ui/_content/threadview.html     | 2 +-
 9 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/main/java/org/olat/course/nodes/fo/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/fo/_i18n/LocalStrings_de.properties
index 882939ada20..55e8092a374 100644
--- a/src/main/java/org/olat/course/nodes/fo/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/nodes/fo/_i18n/LocalStrings_de.properties
@@ -1,5 +1,5 @@
 #Mon Mar 02 09:54:04 CET 2009
-allow.guest.post=Erstellen von Beitr\u00E4ge mit Guastzugang zulassen
+allow.guest.post=G\u00E4sten das Erstellen von Beitr\u00E4gen gestatten
 allow.pseudonym.post=Anonyme Beitr\u00E4ge mit Pseudonym zulassen
 command.closefo=Ansicht schliessen
 command.show=Forum anzeigen
diff --git a/src/main/java/org/olat/course/nodes/fo/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/fo/_i18n/LocalStrings_en.properties
index b30675d654f..bdc08418cbe 100644
--- a/src/main/java/org/olat/course/nodes/fo/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/fo/_i18n/LocalStrings_en.properties
@@ -1,6 +1,6 @@
 #Wed Jan 26 19:01:16 CET 2011
-allow.guest.post=Erstellen von Beitr\u00E4ge mit Guastzugang zulassen
-allow.pseudonym.post=Anonyme Beitr\u00E4ge mit Pseudonym zulassen
+allow.guest.post=Allow guest posts
+allow.pseudonym.post=Allow anonymous posts using an alias
 command.closefo=Close view
 command.show=Display forum
 command.showpopup=Display forum in a new window
diff --git a/src/main/java/org/olat/modules/fo/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/fo/_i18n/LocalStrings_de.properties
index 4fac1a036fe..fc699e16b5f 100644
--- a/src/main/java/org/olat/modules/fo/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/fo/_i18n/LocalStrings_de.properties
@@ -24,7 +24,7 @@ close.thread=Diskussion beenden
 delete.att.ok=Die Datei wurde gel\u00F6scht.
 deleteok=Der Beitrag wurde gel\u00F6scht
 error.field.not.empty=Dieses Feld darf nicht leer sein.
-error.pseudonym=Pseudonym zu ähnlich einer existierende Benutzername
+error.pseudonym=Zu grosse \u00C4hnlichkeit zu bereits bestehendem Benutzer
 filter=Personenfilter
 filter.header.title=Nach Personen suchen
 filter.header.allUsers=Beitr\u00E4ge aller Personen
diff --git a/src/main/java/org/olat/modules/fo/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/fo/_i18n/LocalStrings_en.properties
index 8f51ba29c89..106b346c3db 100644
--- a/src/main/java/org/olat/modules/fo/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/fo/_i18n/LocalStrings_en.properties
@@ -23,6 +23,7 @@ close.thread=Close discussion
 delete.att.ok=File deleted.
 deleteok=This post has been deleted.
 error.field.not.empty=This field is mandatory.
+error.pseudonym=This name is too similar to an already existing user.
 filter=Filter for persons
 filter.header.allUsers=All contributions
 filter.header.title=Search for persons
diff --git a/src/main/java/org/olat/modules/fo/manager/ForumManager.java b/src/main/java/org/olat/modules/fo/manager/ForumManager.java
index 34300a1df1b..e404f2be379 100644
--- a/src/main/java/org/olat/modules/fo/manager/ForumManager.java
+++ b/src/main/java/org/olat/modules/fo/manager/ForumManager.java
@@ -324,6 +324,7 @@ public class ForumManager {
 		query.append("select msg from fomessage as msg")
 		     .append(" left join fetch msg.creator as creator")
 		     .append(" left join fetch msg.modifier as creator")
+		     .append(" left join fetch msg.threadtop as threadtop")
 		     .append(" where msg.key=:messageKey");
 		
 		List<Message> messages = dbInstance.getCurrentEntityManager()
diff --git a/src/main/java/org/olat/modules/fo/ui/ForumUserDataModel.java b/src/main/java/org/olat/modules/fo/ui/ForumUserDataModel.java
index 4eca55c8002..b9cfde911de 100644
--- a/src/main/java/org/olat/modules/fo/ui/ForumUserDataModel.java
+++ b/src/main/java/org/olat/modules/fo/ui/ForumUserDataModel.java
@@ -93,8 +93,8 @@ public class ForumUserDataModel extends DefaultFlexiTableDataModel<ForumUser>
 		replies("table.user.replies"),
 		threads("table.user.threads"),
 		lastModified("table.lastModified"),
-		numOfWords("table.numOfCharacters"),
-		numOfCharacters("table.numOfWords");
+		numOfWords("table.numOfWords"),
+		numOfCharacters("table.numOfCharacters");
 		
 		private final String i18nKey;
 		
diff --git a/src/main/java/org/olat/modules/fo/ui/MessageEditController.java b/src/main/java/org/olat/modules/fo/ui/MessageEditController.java
index 23bc74e3015..74f853c2f7e 100644
--- a/src/main/java/org/olat/modules/fo/ui/MessageEditController.java
+++ b/src/main/java/org/olat/modules/fo/ui/MessageEditController.java
@@ -377,7 +377,7 @@ public class MessageEditController extends FormBasicController {
 		}
 
 		message.setBody(body.trim());
-		if(usePseudonymEl != null && usePseudonymEl.isAtLeastSelected(1)) {
+		if(usePseudonymEl != null && (usePseudonymEl.isAtLeastSelected(1) || guestOnly)) {
 			message.setPseudonym(pseudonymEl.getValue());
 			if(guestOnly) {
 				ureq.getUserSession().putEntry("FOPseudo" + forum.getKey(), message.getPseudonym());
@@ -425,9 +425,10 @@ public class MessageEditController extends FormBasicController {
 			fm.markAsRead(getIdentity(), forum, message);
 			persistTempUploadedFiles(message);
 			notifiySubscription();
+			Long threadTopKey = message.getThreadtop() == null ? null : message.getThreadtop().getKey();
+
 			//commit before sending events
 			DBFactory.getInstance().commit();
-			Long threadTopKey = message.getThreadtop() == null ? null : message.getThreadtop().getKey();
 			ForumChangedEvent event = new ForumChangedEvent(ForumChangedEvent.NEW_MESSAGE, threadTopKey, message.getKey(), getIdentity());
 			CoordinatorManager.getInstance().getCoordinator().getEventBus().fireEventToListenersOf(event, forum);	
 			ThreadLocalUserActivityLogger.log(ForumLoggingAction.FORUM_REPLY_MESSAGE_CREATE, getClass(),
diff --git a/src/main/java/org/olat/modules/fo/ui/MessageListController.java b/src/main/java/org/olat/modules/fo/ui/MessageListController.java
index 3fcdeb2ff96..3d491d8ec33 100644
--- a/src/main/java/org/olat/modules/fo/ui/MessageListController.java
+++ b/src/main/java/org/olat/modules/fo/ui/MessageListController.java
@@ -597,7 +597,7 @@ public class MessageListController extends BasicController implements GenericEve
 			mainVC.put("mark_" + msgCount, markCtrl.getInitialComponent());
 		}
 		
-		if(userIsMsgCreator) {
+		if(userIsMsgCreator && !StringHelper.containsNonWhitespace(m.getPseudonym())) {
 			OLATResourceable messageOres = OresHelper.createOLATResourceableInstance("Forum", m.getKey());
 			String businessPath = BusinessControlFactory.getInstance().getAsString(getWindowControl().getBusinessControl())
 					+ "[Message:" + m.getKey() + "]";
diff --git a/src/main/java/org/olat/modules/fo/ui/_content/threadview.html b/src/main/java/org/olat/modules/fo/ui/_content/threadview.html
index 343bcaaf258..8a2a270fe74 100644
--- a/src/main/java/org/olat/modules/fo/ui/_content/threadview.html
+++ b/src/main/java/org/olat/modules/fo/ui/_content/threadview.html
@@ -15,7 +15,7 @@
 				<i class="o_icon o_icon-fw o_icon_actions"></i>
 				<span class="caret"></span>
 			</button>
-			<ul class="dropdown-menu dropdown-menu-right">
+			<ul class="dropdown-menu">
 				#if($r.available("close.thread") && $r.visible("close.thread"))
 					<li>$r.render("close.thread")</li>
 				#end
-- 
GitLab