diff --git a/src/main/java/org/olat/instantMessaging/InstantMessagingModule.java b/src/main/java/org/olat/instantMessaging/InstantMessagingModule.java index b237ed28e36f57ee7bb3f27478b579be8f919acf..45f190df8338bed4ad57c260cfe4953a4ddd6b97 100644 --- a/src/main/java/org/olat/instantMessaging/InstantMessagingModule.java +++ b/src/main/java/org/olat/instantMessaging/InstantMessagingModule.java @@ -46,14 +46,22 @@ public class InstantMessagingModule extends AbstractOLATModule implements Config private static final String CONFIG_ENABLED = "im.enabled"; private static final String CONFIG_GROUP_ENABLED = "im.enabled.group"; + private static final String CONFIG_GROUP_ANONYM_ENABLED = "im.enabled.group.anonym"; + private static final String CONFIG_GROUP_ANONYM_DEFAULT_ENABLED = "im.enabled.group.anonym.default"; private static final String CONFIG_COURSE_ENABLED = "im.enabled.course"; + private static final String CONFIG_COURSE_ANONYM_ENABLED = "im.enabled.course.anonym"; + private static final String CONFIG_COURSE_ANONYM_DEFAULT_ENABLED = "im.enabled.course.anonym.default"; private static final String CONFIG_PRIVATE_ENABLED = "im.enabled.private"; private static final String CONFIG_ONLINESTATUS_ENABLED = "im.enabled.onlinestatus"; private static final String CONFIG_GROUPPEERS_ENABLED = "im.enabled.grouppeers"; private boolean enabled = false; private boolean groupEnabled = false; + private boolean groupAnonymEnabled = false; + private boolean groupAnonymDefaultEnabled = false; private boolean courseEnabled = false; + private boolean courseAnonymEnabled = false; + private boolean courseAnonymDefaultEnabled = false; private boolean privateEnabled = false; private boolean onlineStatusEnabled = false; private boolean groupPeersEnabled = false; @@ -67,10 +75,26 @@ public class InstantMessagingModule extends AbstractOLATModule implements Config if(StringHelper.containsNonWhitespace(enabledObj)) { groupEnabled = "true".equals(enabledObj); } + enabledObj = getStringPropertyValue(CONFIG_GROUP_ANONYM_ENABLED, true); + if(StringHelper.containsNonWhitespace(enabledObj)) { + groupAnonymEnabled = "true".equals(enabledObj); + } + enabledObj = getStringPropertyValue(CONFIG_GROUP_ANONYM_DEFAULT_ENABLED, true); + if(StringHelper.containsNonWhitespace(enabledObj)) { + groupAnonymDefaultEnabled = "true".equals(enabledObj); + } enabledObj = getStringPropertyValue(CONFIG_COURSE_ENABLED, true); if(StringHelper.containsNonWhitespace(enabledObj)) { courseEnabled = "true".equals(enabledObj); } + enabledObj = getStringPropertyValue(CONFIG_COURSE_ANONYM_ENABLED, true); + if(StringHelper.containsNonWhitespace(enabledObj)) { + courseAnonymEnabled = "true".equals(enabledObj); + } + enabledObj = getStringPropertyValue(CONFIG_COURSE_ANONYM_DEFAULT_ENABLED, true); + if(StringHelper.containsNonWhitespace(enabledObj)) { + courseAnonymDefaultEnabled = "true".equals(enabledObj); + } enabledObj = getStringPropertyValue(CONFIG_PRIVATE_ENABLED, true); if(StringHelper.containsNonWhitespace(enabledObj)) { privateEnabled = "true".equals(enabledObj); @@ -89,7 +113,11 @@ public class InstantMessagingModule extends AbstractOLATModule implements Config protected void initDefaultProperties() { enabled = getBooleanConfigParameter(CONFIG_ENABLED, true); groupEnabled = getBooleanConfigParameter(CONFIG_GROUP_ENABLED, true); + groupAnonymEnabled= getBooleanConfigParameter(CONFIG_GROUP_ANONYM_ENABLED, true); + groupAnonymDefaultEnabled = getBooleanConfigParameter(CONFIG_GROUP_ANONYM_DEFAULT_ENABLED, false); courseEnabled = getBooleanConfigParameter(CONFIG_COURSE_ENABLED, true); + courseAnonymEnabled = getBooleanConfigParameter(CONFIG_COURSE_ANONYM_ENABLED, true); + courseAnonymDefaultEnabled = getBooleanConfigParameter(CONFIG_COURSE_ANONYM_DEFAULT_ENABLED, true); privateEnabled = getBooleanConfigParameter(CONFIG_PRIVATE_ENABLED, true); onlineStatusEnabled = getBooleanConfigParameter(CONFIG_ONLINESTATUS_ENABLED, true); groupPeersEnabled = getBooleanConfigParameter(CONFIG_GROUPPEERS_ENABLED, true); @@ -135,6 +163,38 @@ public class InstantMessagingModule extends AbstractOLATModule implements Config setStringProperty(CONFIG_GROUP_ENABLED, Boolean.toString(enabled), true); } + /** + * Flag to enable/disable the anonymous mode in the group chat. If enabled, + * the user can toggle between his real identity and a anonymous identity during + * the chat. + * + * @return true: group chat room can be used anonymously; false: no anonym + * group chat rooms available + */ + public boolean isGroupAnonymEnabled() { + return groupAnonymEnabled; + } + + public void setGroupAnonymEnabled(boolean enabled) { + setStringProperty(CONFIG_GROUP_ANONYM_ENABLED, Boolean.toString(enabled), true); + } + + /** + * Flag to set the anonymous mode as the default mode when entering the + * group chat. This is only used when isGroupAnonymEnabled() is set to + * true. + * + * @return true: group chat room entered anonym by default. false: group + * chat room entered with the real identity. + */ + public boolean isGroupAnonymDefaultEnabled() { + return groupAnonymDefaultEnabled; + } + + public void setGroupAnonymDefaultEnabled(boolean enabled) { + setStringProperty(CONFIG_GROUP_ANONYM_DEFAULT_ENABLED, Boolean.toString(enabled), true); + } + /** * Flag to enable/disable the course chat. If enabled, the course users are * allowed to chat in the course chat room. See isPrivateEnabled() to check @@ -151,6 +211,38 @@ public class InstantMessagingModule extends AbstractOLATModule implements Config setStringProperty(CONFIG_COURSE_ENABLED, Boolean.toString(enabled), true); } + /** + * Flag to enable/disable the anonymous mode in the course chat. If enabled, + * the user can toggle between his real identity and a anonymous identity + * during the chat. + * + * @return true: course chat room can be used anonymously; false: no anonym + * course chat rooms available + */ + public boolean isCourseAnonymEnabled() { + return courseAnonymEnabled; + } + + public void setCourseAnonymEnabled(boolean enabled) { + setStringProperty(CONFIG_COURSE_ANONYM_ENABLED, Boolean.toString(enabled), true); + } + + /** + * Flag to set the anonymous mode as the default mode when entering the + * course chat. This is only used when isCourseAnonymEnabled() is set to + * true. + * + * @return true: course chat room entered anonym by default. false: course + * chat room entered with the real identity. + */ + public boolean isCourseAnonymDefaultEnabled() { + return courseAnonymDefaultEnabled; + } + + public void setCourseAnonymDefaultEnabled(boolean enabled) { + setStringProperty(CONFIG_COURSE_ANONYM_DEFAULT_ENABLED, Boolean.toString(enabled), true); + } + /** * Flag to enable/disable private messaging between any user. When enabled * users are allowed to send private messages to other users. diff --git a/src/main/java/org/olat/instantMessaging/ui/ChatController.java b/src/main/java/org/olat/instantMessaging/ui/ChatController.java index c187a9b9f5037a096a7f2b986735a0012e569291..6e9affe4f17429a94b14aecab115df811e62a95a 100644 --- a/src/main/java/org/olat/instantMessaging/ui/ChatController.java +++ b/src/main/java/org/olat/instantMessaging/ui/ChatController.java @@ -54,9 +54,12 @@ import org.olat.core.id.OLATResourceable; import org.olat.core.util.Formatter; import org.olat.core.util.StringHelper; import org.olat.core.util.event.GenericEventListener; +import org.olat.core.util.resource.OresHelper; +import org.olat.group.BusinessGroup; import org.olat.instantMessaging.CloseInstantMessagingEvent; import org.olat.instantMessaging.InstantMessage; import org.olat.instantMessaging.InstantMessagingEvent; +import org.olat.instantMessaging.InstantMessagingModule; import org.olat.instantMessaging.InstantMessagingService; import org.olat.instantMessaging.model.Buddy; import org.olat.user.DisplayPortraitManager; @@ -125,17 +128,29 @@ public class ChatController extends BasicController implements GenericEventListe jsc = new JSAndCSSComponent("intervall", this.getClass(), null, null, false, null, 2500); mainVC.put("updatecontrol", jsc); - boolean anonym = "CourseModule".equals(ores.getResourceableTypeName()); - imService.listenChat(getIdentity(), getOlatResourceable(), anonym, vip, this); - - + // configure anonym mode depending on configuration. separate configurations for course and group chats + InstantMessagingModule imModule = CoreSpringFactory.getImpl(InstantMessagingModule.class); + boolean offerAnonymMode, defaultAnonym; + if ("CourseModule".equals(ores.getResourceableTypeName())) { + offerAnonymMode = imModule.isCourseAnonymEnabled(); + defaultAnonym = offerAnonymMode && imModule.isCourseAnonymDefaultEnabled(); + } else if ("BusinessGroup".equals(ores.getResourceableTypeName())){ + offerAnonymMode = imModule.isGroupAnonymEnabled(); + defaultAnonym = offerAnonymMode && imModule.isGroupAnonymDefaultEnabled(); + } else { + offerAnonymMode = false; + defaultAnonym = false; + } + + // register to chat events for this resource + imService.listenChat(getIdentity(), getOlatResourceable(), defaultAnonym, vip, this); if(privateReceiverKey == null) { buddyList = new Roster(getIdentity().getKey()); List<Buddy> buddies = imService.getBuddiesListenTo(getOlatResourceable()); buddyList.addBuddies(buddies); - //course started as anonym - rosterCtrl = new RosterForm(ureq, getWindowControl(), buddyList, anonym); + //chat started as anonymous depending on configuratino + rosterCtrl = new RosterForm(ureq, getWindowControl(), buddyList, defaultAnonym, offerAnonymMode); listenTo(rosterCtrl); } else { buddyList = null; diff --git a/src/main/java/org/olat/instantMessaging/ui/InstantMessagingAdminController.java b/src/main/java/org/olat/instantMessaging/ui/InstantMessagingAdminController.java index 1c0738f995de8f6289afbd667e75d311458367a6..bd5fe9489f7e875c5442ce17cf101b3852a4021a 100644 --- a/src/main/java/org/olat/instantMessaging/ui/InstantMessagingAdminController.java +++ b/src/main/java/org/olat/instantMessaging/ui/InstantMessagingAdminController.java @@ -50,7 +50,11 @@ public class InstantMessagingAdminController extends FormBasicController { private MultipleSelectionElement imEnabledEl; private MultipleSelectionElement imEnableGroupEl; + private MultipleSelectionElement imEnableGroupAnonymEl; + private MultipleSelectionElement imEnableGroupAnonymDefaultEl; private MultipleSelectionElement imEnableCourseEl; + private MultipleSelectionElement imEnableCourseAnonymEl; + private MultipleSelectionElement imEnableCourseAnonymDefaultEl; private MultipleSelectionElement imEnablePrivateEl; private MultipleSelectionElement imEnableGroupPeersEl; private MultipleSelectionElement imEnableOnlineStatusEl; @@ -85,11 +89,29 @@ public class InstantMessagingAdminController extends FormBasicController { imEnableGroupEl = uifactory.addCheckboxesHorizontal("im.module.enabled.group", chatOptionsFlc, enabledKeys, enabledValues, null); imEnableGroupEl.select(enabledKeys[0], imModule.isGroupEnabled()); imEnableGroupEl.addActionListener(listener, FormEvent.ONCHANGE); + + imEnableGroupAnonymEl = uifactory.addCheckboxesHorizontal("im.module.enabled.group.anonym", chatOptionsFlc, enabledKeys, enabledValues, null); + imEnableGroupAnonymEl.select(enabledKeys[0], imModule.isGroupAnonymEnabled()); + imEnableGroupAnonymEl.addActionListener(listener, FormEvent.ONCHANGE); + + imEnableGroupAnonymDefaultEl = uifactory.addCheckboxesHorizontal("im.module.enabled.group.anonym.default", chatOptionsFlc, enabledKeys, enabledValues, null); + imEnableGroupAnonymDefaultEl.select(enabledKeys[0], imModule.isGroupAnonymDefaultEnabled()); + imEnableGroupAnonymDefaultEl.addActionListener(listener, FormEvent.ONCHANGE); + + uifactory.addSpacerElement("spacer", chatOptionsFlc, true); imEnableCourseEl = uifactory.addCheckboxesHorizontal("im.module.enabled.course", chatOptionsFlc, enabledKeys, enabledValues, null); imEnableCourseEl.select(enabledKeys[0], imModule.isCourseEnabled()); imEnableCourseEl.addActionListener(listener, FormEvent.ONCHANGE); - + + imEnableCourseAnonymEl = uifactory.addCheckboxesHorizontal("im.module.enabled.course.anonym", chatOptionsFlc, enabledKeys, enabledValues, null); + imEnableCourseAnonymEl.select(enabledKeys[0], imModule.isCourseAnonymEnabled()); + imEnableCourseAnonymEl.addActionListener(listener, FormEvent.ONCHANGE); + + imEnableCourseAnonymDefaultEl = uifactory.addCheckboxesHorizontal("im.module.enabled.course.anonym.default", chatOptionsFlc, enabledKeys, enabledValues, null); + imEnableCourseAnonymDefaultEl.select(enabledKeys[0], imModule.isCourseAnonymDefaultEnabled()); + imEnableCourseAnonymDefaultEl.addActionListener(listener, FormEvent.ONCHANGE); + FormLayoutContainer messageOptionsFlc = FormLayoutContainer.createDefaultFormLayout("flc_messageOptions", getTranslator()); formLayout.add(messageOptionsFlc); @@ -113,14 +135,30 @@ public class InstantMessagingAdminController extends FormBasicController { // disable all options when the module is turned off if (imEnabledEl.isSelected(0)) { imEnableGroupEl.setEnabled(true); + imEnableGroupAnonymEl.setEnabled(true); + if (imEnableGroupAnonymEl.isSelected(0)) { + imEnableGroupAnonymDefaultEl.setEnabled(true); + } else { + imEnableGroupAnonymDefaultEl.setEnabled(false); + } imEnableCourseEl.setEnabled(true); + imEnableCourseAnonymEl.setEnabled(true); + if (imEnableCourseAnonymEl.isSelected(0)) { + imEnableCourseAnonymDefaultEl.setEnabled(true); + } else { + imEnableCourseAnonymDefaultEl.setEnabled(false); + } imEnablePrivateEl.setEnabled(true); imEnableGroupPeersEl.setEnabled(true); imEnableOnlineStatusEl.setEnabled(true); } else { // everything is disabled imEnableGroupEl.setEnabled(false); + imEnableGroupAnonymEl.setEnabled(false); + imEnableGroupAnonymDefaultEl.setEnabled(false); imEnableCourseEl.setEnabled(false); + imEnableCourseAnonymEl.setEnabled(false); + imEnableCourseAnonymDefaultEl.setEnabled(false); imEnablePrivateEl.setEnabled(false); imEnableGroupPeersEl.setEnabled(false); imEnableOnlineStatusEl.setEnabled(false); @@ -137,8 +175,16 @@ public class InstantMessagingAdminController extends FormBasicController { imModule.setEnabled(imEnabledEl.isSelected(0)); } else if(source == imEnableGroupEl) { imModule.setGroupEnabled(imEnableGroupEl.isSelected(0)); + } else if(source == imEnableGroupAnonymEl) { + imModule.setGroupAnonymEnabled(imEnableGroupAnonymEl.isSelected(0)); + } else if(source == imEnableGroupAnonymDefaultEl) { + imModule.setGroupAnonymDefaultEnabled(imEnableGroupAnonymDefaultEl.isSelected(0)); } else if(source == imEnableCourseEl) { imModule.setCourseEnabled(imEnableCourseEl.isSelected(0)); + } else if(source == imEnableCourseAnonymEl) { + imModule.setCourseAnonymEnabled(imEnableCourseAnonymEl.isSelected(0)); + } else if(source == imEnableCourseAnonymDefaultEl) { + imModule.setCourseAnonymDefaultEnabled(imEnableCourseAnonymDefaultEl.isSelected(0)); } else if(source == imEnablePrivateEl) { imModule.setPrivateEnabled(imEnablePrivateEl.isSelected(0)); } else if(source == imEnableGroupPeersEl) { diff --git a/src/main/java/org/olat/instantMessaging/ui/RosterForm.java b/src/main/java/org/olat/instantMessaging/ui/RosterForm.java index 3a1c38085c7ea0912a39b2de80e30f250f703c57..cadf942bd54391dcd57e92a07f29cc78cd385520 100644 --- a/src/main/java/org/olat/instantMessaging/ui/RosterForm.java +++ b/src/main/java/org/olat/instantMessaging/ui/RosterForm.java @@ -46,13 +46,15 @@ public class RosterForm extends FormBasicController { private final Roster buddyList; private final String fullName; - private final boolean anonym; + private final boolean defaultAnonym; + private final boolean offerAnonymMode; private static final String[] anonKeys = new String[]{ "name", "anon"}; - public RosterForm(UserRequest ureq, WindowControl wControl, Roster buddyList, boolean anonym) { + public RosterForm(UserRequest ureq, WindowControl wControl, Roster buddyList, boolean defaultAnonym, boolean offerAnonymMode) { super(ureq, wControl, "roster"); - this.anonym = anonym; + this.defaultAnonym = defaultAnonym; + this.offerAnonymMode = offerAnonymMode; this.buddyList = buddyList; fullName = CoreSpringFactory.getImpl(UserManager.class).getUserDisplayName(getIdentity().getUser()); @@ -61,10 +63,12 @@ public class RosterForm extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + // for simplicity we initialize the form even when the anonymous mode is disabled + // and just hide the form elements in the GUI String[] theValues = new String[]{ fullName, translate("anonymous") }; toggle = uifactory.addRadiosVertical("toggle", "toogle.anonymous", formLayout, anonKeys, theValues); - if(anonym) { + if(defaultAnonym) { toggle.select("anon", true); } else { toggle.select("name", true); @@ -77,6 +81,8 @@ public class RosterForm extends FormBasicController { if(formLayout instanceof FormLayoutContainer) { FormLayoutContainer layoutCont = (FormLayoutContainer)formLayout; layoutCont.contextPut("roster", buddyList); + // hide the form elements in the GUI when no anonym mode is possible + layoutCont.contextPut("offerAnonymMode", Boolean.valueOf(offerAnonymMode)); } } diff --git a/src/main/java/org/olat/instantMessaging/ui/_chelp/instant-messenger-admin.html b/src/main/java/org/olat/instantMessaging/ui/_chelp/instant-messenger-admin.html index 2a20f7f66e07732e716a1016851691d39ad963d9..6cf251e36b31e16eb920c716e9d406c4e5dfd519 100644 --- a/src/main/java/org/olat/instantMessaging/ui/_chelp/instant-messenger-admin.html +++ b/src/main/java/org/olat/instantMessaging/ui/_chelp/instant-messenger-admin.html @@ -5,11 +5,11 @@ <b>$r.translate("im.module.enabled")</b>$r.translate("chelp.admin.enabled") </p> <p> - <b>$r.translate("im.module.enabled.group")</b>$r.translate("chelp.admin.group") + <b>$r.translate("im.module.enabled.group")</b>$r.translate("chelp.admin.group") $r.translate("chelp.admin.anonym") </p> <p> - <b>$r.translate("im.module.enabled.course")</b>$r.translate("chelp.admin.course") + <b>$r.translate("im.module.enabled.course")</b>$r.translate("chelp.admin.course") $r.translate("chelp.admin.anonym") </p> <p> diff --git a/src/main/java/org/olat/instantMessaging/ui/_content/roster.html b/src/main/java/org/olat/instantMessaging/ui/_content/roster.html index 64211ca8283aff20b7e56e53ce035ab17a3fe6c2..3e1ef9a13b9d660c0d5bc4d6b732d74aed94f3c2 100644 --- a/src/main/java/org/olat/instantMessaging/ui/_content/roster.html +++ b/src/main/java/org/olat/instantMessaging/ui/_content/roster.html @@ -1,7 +1,9 @@ <div class="o_groupchat_roster"> - <div>$r.render("toggle")</div> - $r.render("nickname") - <hr/> + #if ($offerAnonymMode) + <div>$r.render("toggle")</div> + $r.render("nickname") + <hr/> + #end <ul> #foreach($entry in $roster.entries) <li class="#if($entry.vip) o_instantmessaging_vip #end #if($entry.anonym) o_instantmessaging_anonymous #end"> diff --git a/src/main/java/org/olat/instantMessaging/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/instantMessaging/ui/_i18n/LocalStrings_de.properties index 0c2825ee44c4a89354f34521f190c41b82146874..c3afdb2cb1e4902dac0da68d5262a067c38b87f4 100644 --- a/src/main/java/org/olat/instantMessaging/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/instantMessaging/ui/_i18n/LocalStrings_de.properties @@ -10,8 +10,9 @@ chelp.add2=Sofern Sie Betreuer oder Betreuerin einer Gruppe sind, k\u00F6nnen Si chelp.add3=Diese Personen erscheinen dann auf Ihrer Gruppenliste im Chat sofern die Gruppe die Anzeige der Gruppenmitglieder zul\u00E4sst. Gruppenbetreuer werden in der Kontaktliste mit fetter Schrift dargestellt chelp.add4=Wie Sie die Anzeige der Gruppenmitglieder in Ihrer Gruppe konfigurieren erfahren Sie hier\: chelp.add5=Gruppenbetreuer werden in der Kontaktliste mit fetter Schrift dargestellt. -chelp.admin.course=W\u00E4hlen Sie diese Einstellung um den den Chatraum als Kurswerkzeug einzuschalten. Wenn eingeschaltet k\u00F6nnen Besitzer eines Kurses in jedem Kurs einen Chatraum konfigurieren. +chelp.admin.course=W\u00E4hlen Sie diese Einstellung um den den Chatraum als Kurswerkzeug einzuschalten. Wenn eingeschaltet k\u00F6nnen Besitzer eines Kurses in jedem Kurs einen Chatraum konfigurieren. chelp.admin.enabled=Mit dieser Einstellung k\u00F6nnen Sie die gesamte Instant-Messaging Funktionalit\u00E4t ein- und ausschalten. Wenn ausgeschaltet sind Chat und Kurznachrichten deaktiviert. +chelp.admin.anonym=Zusätzlich können Sie eine anonyme Teilnahme zulassen und festlegen, ob als Standardwert die richtige Identität oder ein Pseudonym verwendet werden soll. chelp.admin.group=W\u00E4hlen Sie diese Einstellung um den den Chatraum als Gruppenwerkzeug einzuschalten. Wenn eingeschaltet k\u00F6nnen Gruppenbetreuer f\u00FCr jede Gruppe einen Chatraum konfigurieren. chelp.admin.grouppeers=Mit dieser Einstellung erlauben Sie das Chatten und Versenden von Kurznachrichten unter Gruppenteilnehmern. Wenn eingeschaltet erscheint die Liste aller Gruppenmitglieder der Gruppen, in denen man Mitglied ist. Zus\u00E4tzlich muss in der Gruppenadministration die Anzeige der Mitgliederliste freigeschaltet sein. Diese Personen k\u00F6nnen f\u00FCr einen Chat oder eine Kurznachricht direkt angew\u00E4hlt werden. chelp.admin.intro=Mit dem Instant-Messaging k\u00F6nnen die Funktionen "Chat" und "Kurznachrichten" freigeschaltet werden. Die folgenden Konfigurationsparameter stehen zur Verf\u00FCgung\: @@ -24,7 +25,7 @@ chelp.group1=An verschiedenen Orten in OpenOLAT gibt es Chatr\u00E4ume (z.B. Gru chelp.group2=Klicken Sie auf den Link <i>Chatraum betreten</i>. chelp.group3=Ein Chatfenster geht auf und Sie betreten den Gruppen-/Kurs-Chat. Ist bereits eine Historie vorhanden, k\u00F6nnen Sie diese anzeigen lassen um sich \u00FCber den bisherigen Gespr\u00E4chsverlauf zu informieren. chelp.group4=Nachrichten an einen Chatraum werden an alle Personen im jeweiligen Raum gesendet. -chelp.group5=Die Liste der Teilnehmer ist neben dem Chatfenster ersichtlich. M\u00F6chten Sie sich anonym \u00E4ussern so k\u00F6nnen Sie ein Pseudonym w\u00E4hlen. Teilnehmer des Chats sehen dann ihren richtigen Namen nicht. +chelp.group5=Die Liste der Teilnehmer ist neben dem Chatfenster ersichtlich. M\u00F6chten Sie sich anonym \u00E4ussern so k\u00F6nnen Sie ein Pseudonym w\u00E4hlen. Teilnehmer des Chats sehen dann ihren richtigen Namen nicht. Diese Option muss vom Systemadministrator eingeschaltet werden und ist auf Ihrem System unter Umständen nicht verfügbar. chelp.group6=Falls Sie den Raum wieder verlassen m\u00F6chten, schliessen Sie das Fenster. chelp.imgAlt1=Ansicht einer Gruppenliste mit Kontakten in verschiedenen Status chelp.instant-messenger-admin.title=Instant-Messaging\: Modul Konfiguration @@ -106,7 +107,11 @@ im.message.subject=Titel\: im.module.enable.title=Instant-Messaging Modul im.module.enabled=Chat und Kurznachrichten einschalten\: im.module.enabled.course=Chat als Kurswerkzeug\: +im.module.enabled.course.anonym=Anonyme Teilnahme ermöglichen +im.module.enabled.course.anonym.default=Anonym als Standardeinstellung im.module.enabled.group=Chat als Gruppenwerkzeug\: +im.module.enabled.group.anonym=Anonyme Teilnahme ermöglichen +im.module.enabled.group.anonym.default=Anonym als Standardeinstellung im.module.enabled.grouppeers=Gruppenkontakte anzeigen\: im.module.enabled.onlineStatus=Online Status anzeigen\: im.module.enabled.private=Alle Benutzer kontaktierbar\: diff --git a/src/main/java/org/olat/instantMessaging/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/instantMessaging/ui/_i18n/LocalStrings_en.properties index 0e325ab20c2400cf27b6c8093e408d342f8207e7..f585a81a1f185d0d7e807d4f758a343b15b6f475 100644 --- a/src/main/java/org/olat/instantMessaging/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/instantMessaging/ui/_i18n/LocalStrings_en.properties @@ -12,6 +12,7 @@ chelp.add4=How the members display settings can be modified is described here\: chelp.add5=Group coaches are printed in bold font. chelp.admin.course=Use this setting to enable the chat room feature as a course tool. When enabled, every course owner can configure a chat room for each individual course. chelp.admin.enabled=Using this setting the entire Instant-Messaging functionality is enabled or disabled. When disabled all chat and messaging features are turned off. +chelp.admin.anonym=In addition you can allow anonymous chat participation and define if the users real identity or a nickname is shown by default. chelp.admin.group=Use this setting to enable the chat room feature as a group tool. When enabled, every group coach can configure a chat room for each individual group. chelp.admin.grouppeers=With this settings the sending of private messages and chats is allowed between group peers. When enabled a list of the group members appears for those groups for which the group member display is configured. Those group peers can be contacted using the messaging feature. chelp.admin.intro=The Instant-Messaging module allows enabling of the "chat" and "messaging" features. The following configuration parameters are available\: @@ -24,7 +25,7 @@ chelp.group1=Links to chat rooms are found at different places in OpenOLAT (e.g. chelp.group2=Click on the link <i>Start chat</i>. chelp.group3=A new window will be opened and you can start your group/course chat. If a chat history is available you can display it to learn what the discussion is about and what has already been said. chelp.group4=Messages to a chat room are sent to all persons in that room. -chelp.group5=A list of all participants will be displayed next to your chat window. If you want to participate anonymously you can select a nick name. Chat participants will then not see your real identity. +chelp.group5=A list of all participants will be displayed next to your chat window. If you want to participate anonymously you can select a nick name. Chat participants will then not see your real identity. This option must be enabled by the system amdinistrator. It might not be available on your system. chelp.group6=If you want to exit the chat room, just close that window. chelp.imgAlt1=Image of a group list with contacts of different statuses chelp.instant-messenger.title=Instant Messaging functions @@ -101,7 +102,11 @@ im.message.subject=Subject\: im.module.enable.title=Instant-Messaging module im.module.enabled=Enable chat and messaging\: im.module.enabled.course=Chat as course tool\: +im.module.enabled.course.anonym=Allow anonymous participation +im.module.enabled.course.anonym.default=Anonym by default im.module.enabled.group=Chat as group tool\: +im.module.enabled.group.anonym=Allow anonymous participation +im.module.enabled.group.anonym.default=Anonym by default im.module.enabled.grouppeers=Show group peers\: im.module.enabled.onlineStatus=Show online status\: im.module.enabled.private=All users can be contacted\: