Skip to content

Commit

Permalink
Merge branch 'develop' into chore/refactor-tutorial-group-tests
Browse files Browse the repository at this point in the history
  • Loading branch information
MaximilianAnzinger authored Oct 6, 2024
2 parents c9baac6 + eee133f commit 5b3ecf4
Show file tree
Hide file tree
Showing 130 changed files with 703 additions and 618 deletions.
2 changes: 0 additions & 2 deletions src/main/resources/i18n/messages.properties
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,6 @@ email.notification.aux.information.release.date=Release Date : {0}
email.notification.aux.information.due.date=Due Date : {0}
email.notification.aux.information.submission.date=Submission Date : {0}

email.notification.aux.notification.post.content=Content:

# Exercise Types
email.notification.aux.exercise.type.quiz=The quiz exercise
email.notification.aux.exercise.type.programming=The programming exercise
Expand Down
22 changes: 10 additions & 12 deletions src/main/resources/i18n/messages_de.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ email.activation.text2=Grüße
email.signature=Das Artemis Team.

# Creation email
email.creation.text1=Dein Artemis Zugang wurde angelegt, bitte klicke auf den Link um dich anzumelden:
email.creation.text1=Dein Artemis Zugang wurde angelegt, bitte klicke auf den Link, um dich anzumelden:

# Reset email
email.reset.title=Artemis Passwort zurücksetzen
Expand All @@ -26,7 +26,7 @@ email.reset.text2=Grüße,
# SAML2 Account created
email.saml.title=Artemis Account angelegt
email.saml.greeting=Liebe(r) {0}
email.saml.text1=Dein Artemis Account wurde angelegt. Setze über den Link ein lokales App-Passwort, um auf Artemis und die verknüpften Dienste (Git, Build-Server,...) zuzugreifen.
email.saml.text1=Dein Artemis Account wurde angelegt. Setze über den Link ein lokales App-Passwort, um auf Artemis und die verknüpften Dienste (Git, Build-Server, ...) zuzugreifen.
email.saml.text2=Nach Ablauf des Links kann das Passwort weiterhin über die "Passwort vergessen"-Funktion gesetzt werden.
email.saml.text3=Grüße,
email.saml.username=Nutzername: {0}
Expand All @@ -48,7 +48,7 @@ email.notification.group.editors="Editor:innen"

# Notification Titles (based on originating type)
email.notification.title.attachment=Der Anhang "{0}" für die Vorlesung "{1}" in dem Kurs "{2}" wurde aktualisiert.
email.notification.title.file.submission.successful=Die Einreichung der Dateiupload-aufgabe "{0}" in dem Kurs "{1}" war erfolgreich.
email.notification.title.file.submission.successful=Die Einreichung der Dateiupload-Aufgabe "{0}" in dem Kurs "{1}" war erfolgreich.
email.notification.title.exercise.submission.assessed=Die eingereichte Lösung für die Aufgabe "{0}" in dem Kurs "{1}" wurde korrigiert.
email.notification.title.duplicate.test.cases="{0}" in dem Kurs"{1}" hat mehrere Testfälle mit gleichen Namen! Dieser kritische Fehler sollte so früh wie möglich korrigiert werden, sonst treten Probleme bei der Erstellung von Ergebnissen für Studierende auf!

Expand All @@ -61,16 +61,16 @@ email.notification.title.exercise.practice="{0}" im Kurs "{1}" wurde zum Üben f

# Exercise Info
email.notification.title.exercise.information=Informationen zu der Aufgabe:
email.notification.title.exercise.information.difficulty=Schwierigkeitsstufe : {0}
email.notification.title.exercise.information.difficulty=Schwierigkeitsstufe: {0}
email.notification.title.exercise.information.max=Anzahl an Punkten: {0}
email.notification.title.exercise.information.bonus=Anzahl an Bonus Punkten: {0}
email.notification.title.exercise.information.possible=Anzahl maximal erreichbarer Punkte: {0}
email.notification.aux.information.exercise.score=Dein erreichtes Ergebnis: {0}% korrekt


# Auxiliary
email.notification.aux.notification.text.header.change.message=Änderungsnachricht :
email.notification.aux.footer=Diese und ähnliche Emails können (de)aktiviert werden:
email.notification.aux.notification.text.header.change.message=Änderungsnachricht:
email.notification.aux.footer=Diese und ähnliche E-Mails können (de)aktiviert werden:
email.notification.aux.footer.link=Benachrichtigungseinstellungen in Artemis
email.notification.aux.open.button=In Artemis öffnen
email.notification.aux.emergency.link.text=Alternativ kann auch folgender Link verwendet werden:
Expand All @@ -79,8 +79,6 @@ email.notification.aux.information.release.date=Veröffentlichungsdatum: {0}
email.notification.aux.information.due.date=Abgabezeitpunkt: {0}
email.notification.aux.information.submission.date=Einreichungsdatum: {0}

email.notification.aux.notification.post.content=Inhalt:

# Exercise Types
email.notification.aux.exercise.type.quiz=Die Quizaufgabe
email.notification.aux.exercise.type.programming=Die Programmieraufgabe
Expand All @@ -95,7 +93,7 @@ email.notification.aux.difficulty.hard=Schwer

# Plagiarism
email.plagiarism.title=Neuer Plagiatsfall: Übung "{0}" im Kurs "{1}"
email.plagiarism.cpc.title=Neue signifikante Übereinstimmung: Aufgabe "{0}" im Kurs "{1}"
email.plagiarism.cpc.title=Neue signifikante ?bereinstimmung: Aufgabe "{0}" im Kurs "{1}"
email.notification.title.post.plagiarismVerdict=Entscheidung zum Plagiatsfall in der Aufgabe {0} gefallen
email.notification.aux.plagiarismVerdict.plagiarism=Der Fall wird als Plagiat angesehen!
email.notification.aux.plagiarismVerdict.point.deduction=Wegen des Plagiatsfalls ziehen wir dir Punkte in der Aufgabe ab!
Expand Down Expand Up @@ -124,8 +122,8 @@ email.dataExportFailedAdmin.actionItemList = Bitte führe die folgenden beiden A
email.dataExportFailedAdmin.actionItem1 = \u2022 Stelle sicher, dass die Konfiguration deiner Artemis Instanz korrekt ist.
email.dataExportFailedAdmin.actionItem2 = \u2022 Falls du weitere Hilfe benötigst, kontaktiere das Artemis Entwicklungsteam, indem du mit dem folgenden Link ein Issue auf GitHub erstellst:
email.dataExportFailedAdmin.githubLink = Link um ein Issue im Artemis GitHub Projekt anzulegen
email.successfulDataExportCreationsAdmin.title = Angeforderte Datenexporte wurden für deine Instanz erfolgreich erstellt
email.successfulDataExportCreationsAdmin.text = Datenexporte für die folgenden Nutzer wurden erfolgreich erstellt als der Job um die Datenexporte zu erstellen zuletzt ausgeführt wurde:
email.successfulDataExportCreationsAdmin.title = Angeforderte Datenexporte wurden f?r deine Instanz erfolgreich erstellt
email.successfulDataExportCreationsAdmin.text = Datenexporte f?r die folgenden Nutzer wurden erfolgreich erstellt als der Job um die Datenexporte zu erstellen zuletzt ausgef?hrt wurde:
email.successfulDataExportCreationsAdmin.userLogin = \u2022 {0}
# Email Subjects
# The reason for the format artemisApp.{notificationCategory}.title.{notificicationType} is that these placeholders are also used in the client and this is the format used there
Expand All @@ -138,7 +136,7 @@ artemisApp.groupNotification.title.newAnnouncementPost = Neue Ankündigung
artemisApp.singleUserNotification.title.exerciseSubmissionAssessed = Übungsabgabe bewertet
artemisApp.singleUserNotification.title.fileSubmissionSuccessful = Dateiabgabe erfolgreich
artemisApp.singleUserNotification.title.newPlagiarismCaseStudent = Neuer Plagiatsfall
artemisApp.singleUserNotification.title.newPlagiarismCaseStudentSignificantSimilarity = Neue signifikante Übereinstimmung
artemisApp.singleUserNotification.title.newPlagiarismCaseStudentSignificantSimilarity = Neue signifikante ?bereinstimmung
artemisApp.singleUserNotification.title.plagiarismCaseVerdictStudent = Urteil zu deinem Plagiatsfall
artemisApp.singleUserNotification.title.tutorialGroupRegistrationStudent = Du wurdest für eine Übungsgruppe registriert
artemisApp.singleUserNotification.title.tutorialGroupDeregistrationStudent = Du wurdest von einer Übungsgruppe abgemeldet
Expand Down
8 changes: 3 additions & 5 deletions src/main/resources/i18n/messages_en.properties
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ email.saml.greeting=Dear {0}
email.saml.text1=Your Artemis account has been created. A local Artemis password is only needed to access Git and build services. To create your local Artemis password click the link below:
email.saml.text2=After expiration of this link you can use the "password-reset" button.
email.saml.text3=Regards,
email.saml.username=User name: {0}
email.saml.username=Username: {0}
email.saml.email=E-Mail: {0}

# Weekly summary email
Expand Down Expand Up @@ -79,8 +79,6 @@ email.notification.aux.information.release.date=Release Date : {0}
email.notification.aux.information.due.date=Due Date : {0}
email.notification.aux.information.submission.date=Submission Date : {0}

email.notification.aux.notification.post.content=Content:

# Exercise Types
email.notification.aux.exercise.type.quiz=The quiz exercise
email.notification.aux.exercise.type.programming=The programming exercise
Expand Down Expand Up @@ -121,11 +119,11 @@ email.dataExportFailedAdmin.text = The data export for the user with the login
email.dataExportFailedAdmin.textFailed = failed.
email.dataExportFailedAdmin.reason = The exception message was the following: {0}
email.dataExportFailedAdmin.actionItemList = Please complete the following action items:
email.dataExportFailedAdmin.actionItem1 = \u2022 Make sure the configuration for your Artemis instance is correct.
email.dataExportFailedAdmin.actionItem1 = \u2022 Make sure the configuration for your Artemis instance is correct.
email.dataExportFailedAdmin.actionItem2 = \u2022 If you need further help, please contact the Artemis developers by opening an issue on GitHub using the link below:
email.dataExportFailedAdmin.githubLink = Link to open an issue on the Artemis GitHub project
email.successfulDataExportCreationsAdmin.title = Successfully created requested data exports for your instance
email.successfulDataExportCreationsAdmin.text = Data exports for the following users were successfully created when the data export creation job was ran:
email.successfulDataExportCreationsAdmin.text = Data exports for the following users were successfully created when the data export creation job was running:
email.successfulDataExportCreationsAdmin.userLogin = \u2022 {0}

# Email Subjects
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
class="d-flex sidebar justify-content-between flex-column rounded-3"
[ngClass]="{ 'content-height-dev sidebar-height-testRun-dev': !isProduction || isTestServer, collapsed: isCollapsed, 'sidebar-height-testRun': isTestRun }"
>
<div class="px-3 py-3">
<div class="py-3">
<div class="w-100 bg-module">
<!-- Since the exam navigation includes lots of functionalities and in-line adjustments,
we use duplicated code here in order to keep the functionality of exam navigation apart from
sidebar-card implementations.
-->
<div class="sidebar-content" [ngClass]="{ collapsed: isCollapsed }">
<div class="scrollable-item-content py-2 px-2 bg-body" [ngClass]="{ 'content-height-dev': !isProduction || isTestServer, 'sidebar-height-testRun': isTestRun }">
<div class="scrollable-item-content scrollable-column" [ngClass]="{ 'content-height-dev': !isProduction || isTestServer, 'sidebar-height-testRun': isTestRun }">
<div
class="pointer rounded-3 col-12 px-1 pt-2 pb-1 mb-2 border-5 highlight-card bg-module"
class="pointer rounded-3 col-12 px-2 pt-2 pb-1 mb-2 border-5 highlight-card bg-module"
[ngClass]="{ 'bg-selected border-selected': exerciseIndex === -1 }"
(click)="changePage(true, -1)"
>
Expand All @@ -30,7 +30,7 @@
@for (sidebarItem of sidebarData?.ungroupedData; track sidebarItem; let last = $last; let i = $index) {
<div [ngClass]="{ 'mb-2': !last }">
<div
class="pointer rounded-3 col-12 px-1 pt-2 pb-1 border-5 highlight-card bg-module"
class="pointer rounded-3 col-12 px-2 pt-2 pb-1 border-5 highlight-card bg-module"
[ngClass]="{ 'bg-selected border-selected': i === exerciseIndex }"
(click)="changePage(false, i, false)"
>
Expand Down Expand Up @@ -73,7 +73,7 @@
[ngbTooltip]="(isCollapsed ? 'Expand' : 'Collapse') + ' Menu (Ctrl + M)'"
(click)="toggleCollapseState()"
>
<div [attr.aria-expanded]="!isCollapsed" aria-controls="collapseBasic">
<div class="double-arrow-icon" [attr.aria-expanded]="!isCollapsed" aria-controls="collapseBasic">
<fa-icon class="me-negative fa-xs" [icon]="faChevronRight" />
<fa-icon class="fa-xs" [icon]="faChevronRight" />
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
$collapse-container-height: 35px;
$sidebar-width-open: 275px;
$sidebar-width-closed: 110px;
$sidebar-width-open: 235px;
$sidebar-width-closed: 80px;
$management-header-height: 230px;
$exam-test-run-offset: 38px;

Expand All @@ -25,10 +25,16 @@ $exam-test-run-offset: 38px;
background-color: var(--module-bg);
height: calc(100vh - var(--exam-height-offset));
width: $sidebar-width-open;
transition: width 0.2s ease-in-out !important;
transition:
width 0.2s ease-in-out,
padding 0.2s ease-in-out !important;

&.collapsed {
width: $sidebar-width-closed !important;

.scrollable-column {
padding: 0 0.25rem;
}
}

&.sidebar-height-testRun {
Expand Down Expand Up @@ -60,11 +66,18 @@ $exam-test-run-offset: 38px;
.sidebar {
width: $sidebar-width-closed !important;
}
.scrollable-column {
padding: 0 0.25rem !important;
}
.auto-collapse {
display: none !important;
}
}

.scrollable-column {
padding: 0 1rem;
}

.notSynced {
--fa-secondary-color: var(--bs-body-color);
--fa-secondary-opacity: 1; // necessary to set the opacity to 1, because it's 0.4 per default
Expand Down Expand Up @@ -94,19 +107,33 @@ $exam-test-run-offset: 38px;
}

.double-arrow.menu-closed {
transform: translate(40px) rotate(0deg);
transform: translate(24px);
}

.double-arrow {
transform: translate(235px) rotate(180deg);
transition: all ease 0.3s;
transform: translate(187px);
transition: transform ease 0.3s;
cursor: pointer;
width: 30px;
align-items: center;
justify-content: center;
display: flex;
}

.menu-closed .double-arrow-icon {
transform: rotate(0deg);
}

.double-arrow-icon {
transform: rotate(180deg);

transition: transform ease 0.3s 0.3s;
}

.me-negative {
margin-right: -5px;
}

.highlight-card:hover {
background-color: var(--sidebar-card-selected-bg);
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
}
@if (isCodeOfConductAccepted && isServiceSetUp && course) {
<div class="d-flex justify-content-between">
<div class="me-3" [ngClass]="{ 'sidebar-collapsed': isCollapsed }">
<div [ngClass]="{ 'sidebar-collapsed': isCollapsed }">
<jhi-sidebar
(onSelectConversation)="onConversationSelected($event)"
(onUpdateSidebar)="prepareSidebarData()"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<div class="d-flex justify-content-between gap-3">
<div class="d-flex justify-content-between">
@if (course) {
<div id="exam-sidebar-test" [ngClass]="{ 'sidebar-collapsed': isCollapsed }" [hidden]="isExamStarted">
<jhi-sidebar [itemSelected]="examSelected" [courseId]="courseId" [sidebarData]="sidebarData" [collapseState]="DEFAULT_COLLAPSE_STATE" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<div class="d-flex justify-content-between gap-3 horizontal-scroll">
<div class="d-flex justify-content-between horizontal-scroll">
@if (course) {
<div [ngClass]="{ 'sidebar-collapsed': isCollapsed }">
<jhi-sidebar [itemSelected]="exerciseSelected" [courseId]="courseId" [sidebarData]="sidebarData" [collapseState]="DEFAULT_COLLAPSE_STATE" [showFilter]="true" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<div class="d-flex justify-content-between gap-3">
<div class="d-flex justify-content-between">
@if (course) {
<div [ngClass]="{ 'sidebar-collapsed': isCollapsed }">
<jhi-sidebar [itemSelected]="lectureSelected" [courseId]="courseId" [sidebarData]="sidebarData" [collapseState]="DEFAULT_COLLAPSE_STATE" />
Expand Down
4 changes: 2 additions & 2 deletions src/main/webapp/app/overview/course-overview.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
<fa-icon [fixedWidth]="true" [icon]="faEllipsis" class="ms-2 me-3" />
<span
class="more"
[ngClass]="{ 'auto-collapse': !isNavbarCollapsed, 'sidebar-collapsed': isNavbarCollapsed }"
[ngClass]="{ 'auto-collapse': !isNavbarCollapsed, 'sidebar-collapsed-course-overview': isNavbarCollapsed }"
[jhiTranslate]="'artemisApp.courseOverview.menu.more'"
></span>
</div>
Expand Down Expand Up @@ -121,7 +121,7 @@
[ngbTooltip]="(isNavbarCollapsed ? 'Expand' : 'Collapse') + ' Menu (Ctrl + M)'"
(click)="toggleCollapseState()"
>
<div [attr.aria-expanded]="!isNavbarCollapsed" aria-controls="collapseBasic">
<div class="double-arrow-icon" [attr.aria-expanded]="!isNavbarCollapsed" aria-controls="collapseBasic">
<fa-icon class="me-negative fa-xs" [icon]="faChevronRight" />
<fa-icon class="fa-xs" [icon]="faChevronRight" />
</div>
Expand Down
31 changes: 26 additions & 5 deletions src/main/webapp/app/overview/course-overview.component.scss
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ $menu-width-open: 220px;
$breadcrumb-height: 45px; // needed to make the exam fullscreen

// Sidebar Button Transition Variables
$transition-delay: 0.1s;
$transition-delay: 0.3s;
$transition-in-between-delay: 0.2s;
$transition-chevron-rotate-length: 0.2s;
$transition-chevron-max-width-length: 0.2s;
Expand Down Expand Up @@ -196,19 +196,29 @@ jhi-secured-image {
}

.double-arrow.menu-closed {
transform: translate(16px) rotate(0deg);
transform: translate(16px);
}

.double-arrow {
transform: translate(180px) rotate(180deg);
transition: all ease 0.3s;
transform: translate(180px);
transition: transform ease 0.3s;
cursor: pointer;
width: 30px;
align-items: center;
justify-content: center;
display: flex;
}

.menu-closed .double-arrow-icon {
transform: rotate(0deg);
}

.double-arrow-icon {
transform: rotate(180deg);

transition: transform ease 0.3s 0.3s;
}

.me-negative {
margin-right: -5px;
}
Expand Down Expand Up @@ -290,8 +300,19 @@ jhi-secured-image {
transition: opacity $transition-color-length $transition-delay + $transition-chevron-rotate-length * 2 ease-in-out;
}

.btn-sidebar-collapse:hover::after,
.btn-sidebar-collapse:hover::after {
background-color: var(--sidebar-card-selected-bg);
}

.btn-sidebar-collapse:hover::before {
background-color: var(--link-item-bg);
}

.btn-sidebar-collapse:active::after {
background-color: var(--link-item-bg);
}

.btn-sidebar-collapse:active::before {
background-color: var(--sidebar-card-selected-bg);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<div class="d-flex justify-content-between gap-3">
<div class="d-flex justify-content-between">
@if (course) {
<div [ngClass]="{ 'sidebar-collapsed': isCollapsed }">
<jhi-sidebar [itemSelected]="tutorialGroupSelected" [courseId]="courseId" [sidebarData]="sidebarData" [collapseState]="DEFAULT_COLLAPSE_STATE" />
Expand Down
Loading

0 comments on commit 5b3ecf4

Please sign in to comment.