diff --git a/src/main/webapp/app/course/manage/course-update.component.ts b/src/main/webapp/app/course/manage/course-update.component.ts
index beb9d3162bb1..315fe2e8c2d1 100644
--- a/src/main/webapp/app/course/manage/course-update.component.ts
+++ b/src/main/webapp/app/course/manage/course-update.component.ts
@@ -156,6 +156,7 @@ export class CourseUpdateComponent implements OnInit {
editorGroupName: new FormControl(this.course.editorGroupName),
instructorGroupName: new FormControl(this.course.instructorGroupName),
description: new FormControl(this.course.description),
+ courseInformationSharingMessagingCodeOfConduct: new FormControl(this.course.courseInformationSharingMessagingCodeOfConduct),
organizations: new FormControl(this.courseOrganizations),
startDate: new FormControl(this.course.startDate),
endDate: new FormControl(this.course.endDate),
@@ -520,6 +521,14 @@ export class CourseUpdateComponent implements OnInit {
this.courseForm.controls['registrationConfirmationMessage'].setValue(message);
}
+ /**
+ * Updates courseInformationSharingMessagingCodeOfConduct on markdown change
+ * @param message new courseInformationSharingMessagingCodeOfConduct
+ */
+ updateCourseInformationSharingMessagingCodeOfConduct(message: string) {
+ this.courseForm.controls['courseInformationSharingMessagingCodeOfConduct'].setValue(message);
+ }
+
/**
* Auxiliary method checking if online course is currently true
*/
diff --git a/src/main/webapp/app/entities/course.model.ts b/src/main/webapp/app/entities/course.model.ts
index aae8b0627951..c155170c05e5 100644
--- a/src/main/webapp/app/entities/course.model.ts
+++ b/src/main/webapp/app/entities/course.model.ts
@@ -97,6 +97,7 @@ export class Course implements BaseEntity {
public tutorialGroups?: TutorialGroup[];
public onlineCourseConfiguration?: OnlineCourseConfiguration;
public courseInformationSharingConfiguration?: CourseInformationSharingConfiguration;
+ public courseInformationSharingMessagingCodeOfConduct?: string;
// helper attributes
public isAtLeastTutor?: boolean;
diff --git a/src/main/webapp/i18n/de/course.json b/src/main/webapp/i18n/de/course.json
index 642561a24be8..3390637f6d32 100644
--- a/src/main/webapp/i18n/de/course.json
+++ b/src/main/webapp/i18n/de/course.json
@@ -93,7 +93,11 @@
},
"messagingEnabled": {
"label": "Nachrichten aktiviert",
- "tooltip": "Ermöglicht den Nachrichtenaustausch zwischen Nutzer:innen in privaten oder öffentlichen Kanälen, Gruppenchats oder Direktnachrichten. Kanäle können nur von Lehrenden und Tutor:innen erstellt werden. Nutzer:innen können selbst öffentlichen Kanälen beitreten und müssen zu privaten Kanälen hinzugefügt werden. Alle Nutzer:innen können einen privaten Gruppenchat starten und andere Nutzer:innen hinzufügen. Ein Gruppenchat ist auf zehn Mitglieder:innen begrenzt. Alle Nutzer:innen können Direktnachrichten an andere Nutzer:innen senden. Die Chats finden im Nachrichtenbereich des Kurses statt."
+ "tooltip": "Ermöglicht den Nachrichtenaustausch zwischen Nutzer:innen in privaten oder öffentlichen Kanälen, Gruppenchats oder Direktnachrichten. Kanäle können nur von Lehrenden und Tutor:innen erstellt werden. Nutzer:innen können selbst öffentlichen Kanälen beitreten und müssen zu privaten Kanälen hinzugefügt werden. Alle Nutzer:innen können einen privaten Gruppenchat starten und andere Nutzer:innen hinzufügen. Ein Gruppenchat ist auf zehn Mitglieder:innen begrenzt. Alle Nutzer:innen können Direktnachrichten an andere Nutzer:innen senden. Die Chats finden im Nachrichtenbereich des Kurses statt.",
+ "codeOfConduct": {
+ "label": "Verhaltenskodex",
+ "tooltip": "Der Verhaltenskodex gibt Nutzer:innen an, wie sie miteinander kommunizieren sollen und welche Konsequenzen bei Fehlverhalten drohen können, sowie einen Kontakt zur Berichterstattung."
+ }
}
},
"registrationEnabled": {
diff --git a/src/main/webapp/i18n/en/course.json b/src/main/webapp/i18n/en/course.json
index 978785393729..6e8695f31d42 100644
--- a/src/main/webapp/i18n/en/course.json
+++ b/src/main/webapp/i18n/en/course.json
@@ -93,7 +93,11 @@
},
"messagingEnabled": {
"label": "Messaging Enabled",
- "tooltip": "Enables messaging between course users in private or public channels, group chats or direct messages. Channels can only be created by instructors and tutors. Users can self-join public channels and must be invited to private channels. Every user can start a private group chat and add other users. A group chat is limited to 10 members. Every user can start a private one-to-one chat with another user. The chats happens in the messaging space of the course."
+ "tooltip": "Enables messaging between course users in private or public channels, group chats or direct messages. Channels can only be created by instructors and tutors. Users can self-join public channels and must be invited to private channels. Every user can start a private group chat and add other users. A group chat is limited to 10 members. Every user can start a private one-to-one chat with another user. The chats happens in the messaging space of the course.",
+ "codeOfConduct": {
+ "label": "Code of Conduct",
+ "tooltip": "The Code of Conduct describes to users how best to communicate and which consequences might be raised if there is misconduct, as well as, contact information for reporting."
+ }
}
},
"registrationEnabled": {
diff --git a/src/test/javascript/spec/component/course/course-update.component.spec.ts b/src/test/javascript/spec/component/course/course-update.component.spec.ts
index bc5e82b7cff1..cee5192b8d4b 100644
--- a/src/test/javascript/spec/component/course/course-update.component.spec.ts
+++ b/src/test/javascript/spec/component/course/course-update.component.spec.ts
@@ -14,6 +14,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
import { HasAnyAuthorityDirective } from 'app/shared/auth/has-any-authority.directive';
import { ColorSelectorComponent } from 'app/shared/color-selector/color-selector.component';
import { FormDateTimePickerComponent } from 'app/shared/date-time-picker/date-time-picker.component';
+import { HelpIconComponent } from 'app/shared/components/help-icon.component';
import { SecuredImageComponent } from 'app/shared/image/secured-image.component';
import { ArtemisTranslatePipe } from 'app/shared/pipes/artemis-translate.pipe';
import { MockComponent, MockDirective, MockModule, MockPipe, MockProvider } from 'ng-mocks';
@@ -107,13 +108,14 @@ describe('Course Management Update Component', () => {
declarations: [
CourseUpdateComponent,
MarkdownEditorStubComponent,
- MockPipe(ArtemisTranslatePipe),
- MockComponent(SecuredImageComponent),
- MockComponent(FormDateTimePickerComponent),
MockComponent(ColorSelectorComponent),
+ MockComponent(FormDateTimePickerComponent),
+ MockComponent(HelpIconComponent),
+ MockComponent(SecuredImageComponent),
+ MockDirective(FeatureToggleHideDirective),
MockDirective(HasAnyAuthorityDirective),
MockDirective(TranslateDirective),
- MockDirective(FeatureToggleHideDirective),
+ MockPipe(ArtemisTranslatePipe),
MockPipe(RemoveKeysPipe),
],
})