From 832f206b1a47975b07bd28f179b80cf774c48f20 Mon Sep 17 00:00:00 2001 From: Stephan Krusche Date: Tue, 7 Jan 2025 18:52:14 +0100 Subject: [PATCH 1/4] Update thymelead templates --- README.md | 6 +- docs/admin/registration.rst | 2 +- docs/user/mobile-applications.rst | 4 +- docs/user/orion.rst | 4 +- .../service/localvc/LocalVCRepositoryUri.java | 16 +- .../mail/dataExportFailedAdminEmail.html | 6 +- .../notification/announcementPostEmail.html | 14 +- .../notification/attachmentChangedEmail.html | 14 +- .../notification/dataExportCreatedEmail.html | 12 +- .../notification/dataExportFailedEmail.html | 10 +- .../notification/duplicateTestCasesEmail.html | 14 +- .../exerciseOpenForPracticeEmail.html | 16 +- .../notification/exerciseReleasedEmail.html | 16 +- .../exerciseSubmissionAssessedEmail.html | 12 +- .../fileSubmissionSuccessfulEmail.html | 12 +- .../mail/notification/fragments.html | 373 ++++++------------ .../notification/plagiarismCaseEmail.html | 6 +- .../notification/plagiarismVerdictEmail.html | 14 +- .../notification/tutorialGroupBasicEmail.html | 12 +- .../tutorialGroupDeletedEmail.html | 10 +- .../tutorialGroupUpdatedEmail.html | 14 +- .../mail/successfulDataExportsAdminEmail.html | 6 +- .../templates/mail/weeklySummary.html | 12 +- .../app/core/about-us/about-us.component.ts | 2 +- .../programming/icl/RepositoryUriTest.java | 26 +- .../service/external-cloning.service.spec.ts | 4 +- 26 files changed, 259 insertions(+), 378 deletions(-) diff --git a/README.md b/README.md index 99248761d635..d2dc95b1d5e9 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Artemis brings interactive learning to life with instant, individual feedback on * **Integrated feedback**: Reviews can provide feedback and points directly next to the text segments. * **Language detection**: Artemis detects the language of the submission and shows the word and character count. 7. **[File upload exercises](https://docs.artemis.cit.tum.de/user/exercises/file-upload/)** allow full flexibility to instructors. Students can create any kind of file (e.g. PDF, PNG) and submit it to Artemis when they have completed their work. Artemis allows instructors and tutors to download the files and assess them manually based on structured grading criteria (see below in the section Assessment). -8. **[Exam mode](https://docs.artemis.cit.tum.de/user/exam_mode/)**: Instructors can create online exams with exercise variants, integrated plagiarism checks, test runs and student reviews. You can find more information on [Exam mode student features](https://artemis.cit.tum.de/features/students) and on [Exam mode instructor features](https://artemis.cit.tum.de/features/instructors). +8. **[Exam mode](https://docs.artemis.cit.tum.de/user/exam_mode/)**: Instructors can create online exams with exercise variants, integrated plagiarism checks, test runs and student reviews. You can find more information on [Exam mode student features](https://artemis.tum.de/features/students) and on [Exam mode instructor features](https://artemis.tum.de/features/instructors). 9. **[Assessment](https://docs.artemis.cit.tum.de/user/exercises/assessment/)**: Artemis uses double-blind grading and structured grading criteria to improve consistency and fairness. * **Training process**: It integrates an assessment training process (based on example submissions and example assessments defined by the instructor), has a grading leader board, and allows students to rate the assessments. Students can complain or ask for more feedback. * **Grading**: Instructors can configure grade keys for courses and exams to automatically calculate grades and display them to students. Grades can be easily exported as csv files to upload them into university systems (such as Campus online). They can define bonus configurations for final exams to improve student grades according to their grades from a midterm exam or course exercises. @@ -59,7 +59,7 @@ Artemis brings interactive learning to life with instant, individual feedback on * **[Adaptive learning](https://docs.artemis.cit.tum.de/user/adaptive-learning)**: Artemis allows instructors and students to define and track competencies. Students can monitor their progress towards these goals, while instructors can provide tailored feedback. This approach integrates lectures and exercises under overarching learning objectives. * **[Learning analytics](https://docs.artemis.cit.tum.de/user/learning-analytics)**: Artemis integrated different statistics for students to compare themselves to the course average. It allows instructors to evaluate the average student performance based on exercises and competencies. * **[Learning paths](https://docs.artemis.cit.tum.de/user/adaptive-learning/adaptive-learning-student.html#learning-paths)**: Based on the competency model and students' individual progress, Artemis creates learning paths that guide students through the course content. -13. **[Iris](https://artemis.cit.tum.de/about-iris)**: Artemis integrates Iris, a LLM based virtual assistant that supports students and instructors with common questions and tasks. +13. **[Iris](https://artemis.tum.de/about-iris)**: Artemis integrates Iris, a LLM based virtual assistant that supports students and instructors with common questions and tasks. * **Questions**: Iris supports students with answering questions about exercises, lectures, and the learning performance instantly. * **Pro-active assistance**: Iris can pro-actively communicate with the students, help them with the next steps in their learning experience and motivate them to continue. 14. **[Athena](https://github.com/ls1intum/Athena)**: Artemis integrates Athena, a machine learning-based tool that supports instructors with the assessment of text, modeling and programming exercises. Athena offers different modules including automatic feedback suggestions based on generate AI. @@ -242,7 +242,7 @@ We communicate using GitHub issues and pull requests. Additionally, you can join The following universities are actively using Artemis or are currently evaluating Artemis. * **Technical University of Munich** - https://artemis.cit.tum.de + https://artemis.tum.de Main contact person: [Stephan Krusche](mailto:krusche@tum.de) * **LFU Innsbruck, Uni Salzburg, JKU Linz, AAU Klagenfurt, TU Wien** diff --git a/docs/admin/registration.rst b/docs/admin/registration.rst index bb16b33cd78c..ad583a52cfa3 100644 --- a/docs/admin/registration.rst +++ b/docs/admin/registration.rst @@ -30,7 +30,7 @@ Example: trust: jhipster: mail: - base-url: https://artemis.cit.tum.de + base-url: https://artemis.tum.de from: artemis@xcit.tum.de management: health: diff --git a/docs/user/mobile-applications.rst b/docs/user/mobile-applications.rst index 64485cb2e2fd..15732acfe684 100644 --- a/docs/user/mobile-applications.rst +++ b/docs/user/mobile-applications.rst @@ -59,7 +59,7 @@ Server Selection After installation, users have to first decide which Artemis server they want to connect to. Per default, the user can choose between the following instances: -* TUM: https://artemis.cit.tum.de +* TUM: https://artemis.tum.de * CodeAbility: https://artemis.codeability.uibk.ac.at * KIT: https://artemis.praktomat.cs.kit.edu @@ -170,7 +170,7 @@ Server Selection After installation, users have to first decide which Artemis server they want to connect to. Per default, the user can choose between the following instances: -* TUM: https://artemis.cit.tum.de +* TUM: https://artemis.tum.de * CodeAbility: https://artemis.codeability.uibk.ac.at * KIT: https://artemis.praktomat.cs.kit.edu * Hochschule Munich: https://artemis.cs.hm.edu/ diff --git a/docs/user/orion.rst b/docs/user/orion.rst index d6abba219fc6..1a7d857f7c07 100644 --- a/docs/user/orion.rst +++ b/docs/user/orion.rst @@ -39,8 +39,8 @@ Settings Orion's settings are at *Settings -> Tools -> Orion*. The settings include: -- Artemis base url: Can be changed to switch to a specific Artemis instance. Defaults to https://artemis.cit.tum.de. **Important:** The url must not end with a ``/``, otherwise it does not work! -- Artemis git url: Can be changed to switch to a specific Artemis instance. Defaults to https://artemis.cit.tum.de/git +- Artemis base url: Can be changed to switch to a specific Artemis instance. Defaults to https://artemis.tum.de. **Important:** The url must not end with a ``/``, otherwise it does not work! +- Artemis git url: Can be changed to switch to a specific Artemis instance. Defaults to https://artemis.tum.de/git - Artemis exercise paths: Orion suggests to store newly downloaded exercises at ``default-path/course/exercise-name``, with the default path dependent of the setting. - Default commit message: The default message for each commit. - Change user agent: The user agent is sent to Artemis to identify Orion. Usually, no changes are required. diff --git a/src/main/java/de/tum/cit/aet/artemis/programming/service/localvc/LocalVCRepositoryUri.java b/src/main/java/de/tum/cit/aet/artemis/programming/service/localvc/LocalVCRepositoryUri.java index 796c0df5fc02..8103863650fa 100644 --- a/src/main/java/de/tum/cit/aet/artemis/programming/service/localvc/LocalVCRepositoryUri.java +++ b/src/main/java/de/tum/cit/aet/artemis/programming/service/localvc/LocalVCRepositoryUri.java @@ -101,10 +101,10 @@ public LocalVCRepositoryUri(String urlString) { * * Examples: * * * @param urlString The full URL string being analyzed, provided for context in error messages. @@ -148,13 +148,13 @@ private static int getGitPartStartIndex(String urlString, Path urlPath) throws L * * diff --git a/src/main/resources/templates/mail/dataExportFailedAdminEmail.html b/src/main/resources/templates/mail/dataExportFailedAdminEmail.html index 14d68464eac7..ad7141a76b1e 100644 --- a/src/main/resources/templates/mail/dataExportFailedAdminEmail.html +++ b/src/main/resources/templates/mail/dataExportFailedAdminEmail.html @@ -2,11 +2,11 @@ Data export for one of the users failed - - + + - +
A data export creation failed. diff --git a/src/main/resources/templates/mail/notification/announcementPostEmail.html b/src/main/resources/templates/mail/notification/announcementPostEmail.html index 6dbd0eb48d1b..391fb5567e88 100644 --- a/src/main/resources/templates/mail/notification/announcementPostEmail.html +++ b/src/main/resources/templates/mail/notification/announcementPostEmail.html @@ -1,25 +1,25 @@ - + - +
- +
Notification Content for Announcement Posts - +

Post Content

- +
- +
- + diff --git a/src/main/resources/templates/mail/notification/attachmentChangedEmail.html b/src/main/resources/templates/mail/notification/attachmentChangedEmail.html index 769bb3f1491c..c4a080fc4c24 100644 --- a/src/main/resources/templates/mail/notification/attachmentChangedEmail.html +++ b/src/main/resources/templates/mail/notification/attachmentChangedEmail.html @@ -1,11 +1,11 @@ - + - +
- +
Notification Content for Attachment Changed - - + +
- +
- + diff --git a/src/main/resources/templates/mail/notification/dataExportCreatedEmail.html b/src/main/resources/templates/mail/notification/dataExportCreatedEmail.html index 7f4075a08e75..398e593c15fa 100644 --- a/src/main/resources/templates/mail/notification/dataExportCreatedEmail.html +++ b/src/main/resources/templates/mail/notification/dataExportCreatedEmail.html @@ -1,16 +1,16 @@ - + - +
- + Your data export has been successfully created - - + +
- + diff --git a/src/main/resources/templates/mail/notification/dataExportFailedEmail.html b/src/main/resources/templates/mail/notification/dataExportFailedEmail.html index d7dc4c5ab6f0..cff8d2814dd5 100644 --- a/src/main/resources/templates/mail/notification/dataExportFailedEmail.html +++ b/src/main/resources/templates/mail/notification/dataExportFailedEmail.html @@ -1,15 +1,15 @@ - + - +
- + Your data export creation failed. - +
- + diff --git a/src/main/resources/templates/mail/notification/duplicateTestCasesEmail.html b/src/main/resources/templates/mail/notification/duplicateTestCasesEmail.html index 31a0d188997f..e0cbb079fc03 100644 --- a/src/main/resources/templates/mail/notification/duplicateTestCasesEmail.html +++ b/src/main/resources/templates/mail/notification/duplicateTestCasesEmail.html @@ -1,13 +1,13 @@ - + - +
- +
- + Due Date - +
- +
- + diff --git a/src/main/resources/templates/mail/notification/exerciseOpenForPracticeEmail.html b/src/main/resources/templates/mail/notification/exerciseOpenForPracticeEmail.html index ca0b83a2a97f..6097451cf482 100644 --- a/src/main/resources/templates/mail/notification/exerciseOpenForPracticeEmail.html +++ b/src/main/resources/templates/mail/notification/exerciseOpenForPracticeEmail.html @@ -1,13 +1,13 @@ - + - +
- +
- +

Information about this exercise:

    -
  • +
- +
- +
- + diff --git a/src/main/resources/templates/mail/notification/exerciseReleasedEmail.html b/src/main/resources/templates/mail/notification/exerciseReleasedEmail.html index 486ad02c4e2b..3c819c83e055 100644 --- a/src/main/resources/templates/mail/notification/exerciseReleasedEmail.html +++ b/src/main/resources/templates/mail/notification/exerciseReleasedEmail.html @@ -1,13 +1,13 @@ - + - +
- +
- + Information about this exercise:

    -
  • +
  • Release Date
  • @@ -28,11 +28,11 @@
  • Bonus Points
- +
- +
- + diff --git a/src/main/resources/templates/mail/notification/exerciseSubmissionAssessedEmail.html b/src/main/resources/templates/mail/notification/exerciseSubmissionAssessedEmail.html index 9758a0bb6208..48543300e523 100644 --- a/src/main/resources/templates/mail/notification/exerciseSubmissionAssessedEmail.html +++ b/src/main/resources/templates/mail/notification/exerciseSubmissionAssessedEmail.html @@ -1,11 +1,11 @@ - + - +
- +
Max Points
  • Score
  • - +
    - +
    - + diff --git a/src/main/resources/templates/mail/notification/fileSubmissionSuccessfulEmail.html b/src/main/resources/templates/mail/notification/fileSubmissionSuccessfulEmail.html index 4af88f5f6340..1b47c689b4da 100644 --- a/src/main/resources/templates/mail/notification/fileSubmissionSuccessfulEmail.html +++ b/src/main/resources/templates/mail/notification/fileSubmissionSuccessfulEmail.html @@ -1,11 +1,11 @@ - + - +
    - +
    Exercise Due Date - +
    - +
    - + diff --git a/src/main/resources/templates/mail/notification/fragments.html b/src/main/resources/templates/mail/notification/fragments.html index 266a4291c74b..41995c8d65be 100644 --- a/src/main/resources/templates/mail/notification/fragments.html +++ b/src/main/resources/templates/mail/notification/fragments.html @@ -1,178 +1,148 @@ - + Notification Title - - + + - + + /* CSS styles here */ + body { + font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 19px; + margin: 0 auto; + background: white; + color: black; + } + a { + color: #3e8acc; + } + pre { + padding: 10px 24px; + max-width: 800px; + white-space: pre-wrap; + background-color: #47474b; + color: white; + border-radius: 3px; + } + code { + font-family: Consolas, Monaco, Andale Mono, monospace; + line-height: 1.5; + font-size: 13px; + } + p code { + background-color: #47474b; + color: white; + border-radius: 3px; + padding: 3px 5px; + } + blockquote { + margin: 1em; + max-width: 476px; + border-left: 5px solid gray; + padding-left: 12px; + } + blockquote p { + color: #666; + max-width: 460px; + } + .notification-text-header { + padding-top: 10px; + } + .notification-text { + font-style: italic; + font-weight: bold; + padding-top: 3px; + } + ul { + padding-left: 20px; + } + .button { + background-color: #5B9CD4; + color: white !important; /* Without important, color was overridden in Gmail */ + padding: 8px 12px ; + border-radius: 8px; + text-decoration: none; + } + .button-wrapper { + padding: 25px 25px 25px 0; + } + .emergency-link { + color: gray; + font-size: small; + } + .emergency-link > * { + margin: 0; + } + .notification-content { + margin-top: 10px; + } + .notification-content p { + margin-top: 0; + } + .notification-content p:first-child:empty, .notification-content p:last-child:empty { + display: none; + } + .bordered-content { + border-radius: 3px; + border: 1px solid #ccc; + background: #f7f7f7; + box-shadow: rgba(0, 0, 0, 0.24) 0 3px 8px; + margin: 15px 0; + padding: 10px; + } + .bold-text { + font-weight: bold; + } + header { + background-color: #353D47; + padding: 10px; + color: white; + } + #header-table { + border: none; + } + #logo { + max-width: 50px; + vertical-align: middle; + } + #app-name { + padding-left: 10px; + } + #message-body { + background-color: white; + padding: 10px; + } + footer { + background-color: #353D47; + color: white; + font-size: smaller; + padding: 5px; + } + - + - - +
    - +
    Artemis
    @@ -185,9 +155,7 @@
    - + Dear fullName @@ -201,11 +169,8 @@
    - + - @@ -215,12 +180,9 @@ - +
    -

    Regards,
    @@ -231,9 +193,7 @@ - +

    @@ -243,86 +203,7 @@
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/src/main/resources/templates/mail/notification/plagiarismCaseEmail.html b/src/main/resources/templates/mail/notification/plagiarismCaseEmail.html index af46cea46eb0..2359c6273d16 100644 --- a/src/main/resources/templates/mail/notification/plagiarismCaseEmail.html +++ b/src/main/resources/templates/mail/notification/plagiarismCaseEmail.html @@ -1,15 +1,15 @@ - + - +

    Post Content

    - +
    diff --git a/src/main/resources/templates/mail/notification/plagiarismVerdictEmail.html b/src/main/resources/templates/mail/notification/plagiarismVerdictEmail.html index bf4fe76603d9..b1b5121b34cb 100644 --- a/src/main/resources/templates/mail/notification/plagiarismVerdictEmail.html +++ b/src/main/resources/templates/mail/notification/plagiarismVerdictEmail.html @@ -1,24 +1,24 @@ - + - +
    - +
    Notification Content for Plagiarism Verdict
    - +
    - +
    - +
    - + diff --git a/src/main/resources/templates/mail/notification/tutorialGroupBasicEmail.html b/src/main/resources/templates/mail/notification/tutorialGroupBasicEmail.html index 203ba8503c0c..634048231e72 100644 --- a/src/main/resources/templates/mail/notification/tutorialGroupBasicEmail.html +++ b/src/main/resources/templates/mail/notification/tutorialGroupBasicEmail.html @@ -1,11 +1,11 @@ - + - +
    - +
    - +
    - +
    - + diff --git a/src/main/resources/templates/mail/notification/tutorialGroupDeletedEmail.html b/src/main/resources/templates/mail/notification/tutorialGroupDeletedEmail.html index cf85cd6eeae8..d3e7878ad259 100644 --- a/src/main/resources/templates/mail/notification/tutorialGroupDeletedEmail.html +++ b/src/main/resources/templates/mail/notification/tutorialGroupDeletedEmail.html @@ -1,20 +1,20 @@ - + - +
    - +
    - +
    - + diff --git a/src/main/resources/templates/mail/notification/tutorialGroupUpdatedEmail.html b/src/main/resources/templates/mail/notification/tutorialGroupUpdatedEmail.html index 7abf30001001..81aeddfea72f 100644 --- a/src/main/resources/templates/mail/notification/tutorialGroupUpdatedEmail.html +++ b/src/main/resources/templates/mail/notification/tutorialGroupUpdatedEmail.html @@ -1,22 +1,22 @@ - + - +
    - +
    - - + +
    - +
    - + diff --git a/src/main/resources/templates/mail/successfulDataExportsAdminEmail.html b/src/main/resources/templates/mail/successfulDataExportsAdminEmail.html index 7903a1e51573..dcf74bb28272 100644 --- a/src/main/resources/templates/mail/successfulDataExportsAdminEmail.html +++ b/src/main/resources/templates/mail/successfulDataExportsAdminEmail.html @@ -2,11 +2,11 @@ Data exports created - - + + - +

    Successful data exports

    diff --git a/src/main/resources/templates/mail/weeklySummary.html b/src/main/resources/templates/mail/weeklySummary.html index a531ce2d5c58..0e9e83d31fee 100644 --- a/src/main/resources/templates/mail/weeklySummary.html +++ b/src/main/resources/templates/mail/weeklySummary.html @@ -2,14 +2,14 @@ Weekly Summary - - + + - +
    - +
    This is your Artemis summary of the last seven days.
    @@ -56,9 +56,9 @@
    - +
    - + diff --git a/src/main/webapp/app/core/about-us/about-us.component.ts b/src/main/webapp/app/core/about-us/about-us.component.ts index 42ba47b5093a..4fff2553b602 100644 --- a/src/main/webapp/app/core/about-us/about-us.component.ts +++ b/src/main/webapp/app/core/about-us/about-us.component.ts @@ -44,7 +44,7 @@ export class AboutUsComponent implements OnInit { ['learningAnalytics', { learningAnalyticsUrl: 'https://docs.artemis.cit.tum.de/user/learning-analytics/' }], ['adaptiveLearning', { adaptiveLearningUrl: 'https://docs.artemis.cit.tum.de/user/adaptive-learning/' }], ['tutorialGroups', { tutorialGroupsUrl: 'https://docs.artemis.cit.tum.de/user/tutorialgroups/' }], - ['iris', { irisUrl: 'https://artemis.cit.tum.de/about-iris' }], + ['iris', { irisUrl: 'https://artemis.tum.de/about-iris' }], ['scalable', { scalingUrl: 'https://docs.artemis.cit.tum.de/user/scaling/' }], ['highUserSatisfaction', { userExperienceUrl: 'https://docs.artemis.cit.tum.de/user/user-experience/' }], ['customizable', { customizableUrl: 'https://docs.artemis.cit.tum.de/user/courses/customizable' }], diff --git a/src/test/java/de/tum/cit/aet/artemis/programming/icl/RepositoryUriTest.java b/src/test/java/de/tum/cit/aet/artemis/programming/icl/RepositoryUriTest.java index bf124d494ccc..d1c816be5c66 100644 --- a/src/test/java/de/tum/cit/aet/artemis/programming/icl/RepositoryUriTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/programming/icl/RepositoryUriTest.java @@ -23,7 +23,7 @@ class RepositoryUriTest { @Test void testValidUrlWithGit() { - String urlString = "https://artemis.cit.tum.de/git/key/key-repositoryslug.git"; + String urlString = "https://artemis.tum.de/git/key/key-repositoryslug.git"; assertThatCode(() -> { LocalVCRepositoryUri uri = new LocalVCRepositoryUri(urlString); @@ -40,21 +40,21 @@ void testValidUrlWithGit() { @Test void testUrlWithoutGit() { - String urlString = "https://artemis.cit.tum.de/key/key-repositoryslug.git"; + String urlString = "https://artemis.tum.de/key/key-repositoryslug.git"; assertThatThrownBy(() -> new LocalVCRepositoryUri(urlString)).isInstanceOf(LocalVCInternalException.class) .hasMessageContaining("Invalid local VC Repository URI: 'git' directory not found in the URL"); } @Test void testUrlWithInsufficientSegments() { - String urlString = "https://artemis.cit.tum.de/git/key"; + String urlString = "https://artemis.tum.de/git/key"; assertThatThrownBy(() -> new LocalVCRepositoryUri(urlString)).isInstanceOf(LocalVCInternalException.class) .hasMessageContaining("URL does not contain enough segments after 'git'"); } @Test void testUrlRepositorySlugWithoutGitSuffix() { - String urlString = "https://artemis.cit.tum.de/git/key/key-repositoryslug"; + String urlString = "https://artemis.tum.de/git/key/key-repositoryslug"; assertThatThrownBy(() -> new LocalVCRepositoryUri(urlString)).isInstanceOf(LocalVCInternalException.class) .hasMessageContaining("Repository slug segment 'key-repositoryslug' does not end with '.git'"); } @@ -62,10 +62,10 @@ void testUrlRepositorySlugWithoutGitSuffix() { @Test void testLocalRepositoryPath() throws Exception { Path repositoryPath = Paths.get("/local/path/projectX/projectX-repo/.git"); - URL localVCServerUrl = new URI("https://artemis.cit.tum.de").toURL(); + URL localVCServerUrl = new URI("https://artemis.tum.de").toURL(); LocalVCRepositoryUri uri = new LocalVCRepositoryUri(repositoryPath, localVCServerUrl); - assertThat(uri.getURI().toString()).isEqualTo("https://artemis.cit.tum.de/git/projectX/projectX-repo.git"); + assertThat(uri.getURI().toString()).isEqualTo("https://artemis.tum.de/git/projectX/projectX-repo.git"); assertThat(uri.getProjectKey()).isEqualTo("projectX"); assertThat(uri.repositorySlug()).isEqualTo("projectX-repo"); assertThat(uri.getRepositoryTypeOrUserName()).isEqualTo("repo"); @@ -75,10 +75,10 @@ void testLocalRepositoryPath() throws Exception { @Test void testRemoteRepositoryPath() throws Exception { Path repositoryPath = Paths.get("/remote/path/projectY/projectY-repo"); - URL localVCServerUrl = new URI("https://artemis.cit.tum.de").toURL(); + URL localVCServerUrl = new URI("https://artemis.tum.de").toURL(); LocalVCRepositoryUri uri = new LocalVCRepositoryUri(repositoryPath, localVCServerUrl); - assertThat(uri.getURI().toString()).isEqualTo("https://artemis.cit.tum.de/git/projectY/projectY-repo.git"); + assertThat(uri.getURI().toString()).isEqualTo("https://artemis.tum.de/git/projectY/projectY-repo.git"); assertThat(uri.getProjectKey()).isEqualTo("projectY"); assertThat(uri.repositorySlug()).isEqualTo("projectY-repo"); assertThat(uri.getRepositoryTypeOrUserName()).isEqualTo("repo"); @@ -90,7 +90,7 @@ void testInvalidRepositoryPath() { Path repositoryPath = Paths.get("/invalid/path"); URL localVCServerUrl; try { - localVCServerUrl = new URI("https://artemis.cit.tum.de").toURL(); + localVCServerUrl = new URI("https://artemis.tum.de").toURL(); assertThatThrownBy(() -> new LocalVCRepositoryUri(repositoryPath, localVCServerUrl)).isInstanceOf(LocalVCInternalException.class) .hasMessageContaining("Invalid project key and repository slug: invalid, path"); } @@ -103,28 +103,28 @@ void testInvalidRepositoryPath() { void testConstructorWithValidData() throws Exception { String projectKey = "projectX"; String repositorySlug = "my-repo"; - URL localVCBaseUrl = new URI("https://artemis.cit.tum.de").toURL(); + URL localVCBaseUrl = new URI("https://artemis.tum.de").toURL(); LocalVCRepositoryUri uri = new LocalVCRepositoryUri(projectKey, repositorySlug, localVCBaseUrl); assertThat(uri.getProjectKey()).isEqualTo(projectKey); assertThat(uri.getRepositoryTypeOrUserName()).isEqualTo(repositorySlug); assertThat(uri.isPracticeRepository()).isFalse(); - assertThat(uri.getURI().toString()).isEqualTo("https://artemis.cit.tum.de/git/projectX/my-repo.git"); + assertThat(uri.getURI().toString()).isEqualTo("https://artemis.tum.de/git/projectX/my-repo.git"); } @Test void testConstructorWithPracticeRepository() throws Exception { String projectKey = "projectX"; String repositorySlug = "projectX-practice-my-repo"; - URL localVCBaseUrl = new URI("https://artemis.cit.tum.de").toURL(); + URL localVCBaseUrl = new URI("https://artemis.tum.de").toURL(); LocalVCRepositoryUri uri = new LocalVCRepositoryUri(projectKey, repositorySlug, localVCBaseUrl); assertThat(uri.getProjectKey()).isEqualTo(projectKey); assertThat(uri.getRepositoryTypeOrUserName()).isEqualTo("my-repo"); assertThat(uri.isPracticeRepository()).isTrue(); - assertThat(uri.getURI().toString()).isEqualTo("https://artemis.cit.tum.de/git/projectX/projectX-practice-my-repo.git"); + assertThat(uri.getURI().toString()).isEqualTo("https://artemis.tum.de/git/projectX/projectX-practice-my-repo.git"); } @Test diff --git a/src/test/javascript/spec/service/external-cloning.service.spec.ts b/src/test/javascript/spec/service/external-cloning.service.spec.ts index ff1982a2bbe3..0178fde3530e 100644 --- a/src/test/javascript/spec/service/external-cloning.service.spec.ts +++ b/src/test/javascript/spec/service/external-cloning.service.spec.ts @@ -3,7 +3,7 @@ import { ExternalCloningService } from 'app/exercises/programming/shared/service describe('ExternalCloningService', () => { let service: ExternalCloningService; - const baseUrl = 'https://artemis.cit.tum.de'; + const baseUrl = 'https://artemis.tum.de'; beforeEach(() => { TestBed.configureTestingModule({}); @@ -12,7 +12,7 @@ describe('ExternalCloningService', () => { it('should build source tree url correctly', () => { const cloneUrl = baseUrl + '/git/reo.git'; - const expectedUrl = `sourcetree://cloneRepo?type=stash&cloneUrl=https://artemis.cit.tum.de/git/reo.git&baseWebUrl=https://artemis.cit.tum.de`; + const expectedUrl = `sourcetree://cloneRepo?type=stash&cloneUrl=https://artemis.tum.de/git/reo.git&baseWebUrl=https://artemis.tum.de`; expect(service.buildSourceTreeUrl(baseUrl, cloneUrl)).toEqual(expectedUrl); }); From 297401a8d58a94a0254ba07d070d992ee3104a12 Mon Sep 17 00:00:00 2001 From: Stephan Krusche Date: Tue, 7 Jan 2025 19:12:21 +0100 Subject: [PATCH 2/4] re-add missing parts thank you @coderabbit --- .../mail/notification/fragments.html | 84 ++++++++++++++++++- 1 file changed, 81 insertions(+), 3 deletions(-) diff --git a/src/main/resources/templates/mail/notification/fragments.html b/src/main/resources/templates/mail/notification/fragments.html index 41995c8d65be..9d56f38d38ac 100644 --- a/src/main/resources/templates/mail/notification/fragments.html +++ b/src/main/resources/templates/mail/notification/fragments.html @@ -193,7 +193,11 @@
    - + + +
    @@ -203,7 +207,81 @@
    - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From b3592c327b582311e062d4d7e81c2d433ce9e87e Mon Sep 17 00:00:00 2001 From: Stephan Krusche Date: Tue, 7 Jan 2025 19:14:42 +0100 Subject: [PATCH 3/4] fix comment order --- .../resources/templates/mail/notification/fragments.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/resources/templates/mail/notification/fragments.html b/src/main/resources/templates/mail/notification/fragments.html index 9d56f38d38ac..a8848b157546 100644 --- a/src/main/resources/templates/mail/notification/fragments.html +++ b/src/main/resources/templates/mail/notification/fragments.html @@ -193,10 +193,6 @@ - -
    @@ -207,6 +203,10 @@
    + + From db34764db8f58e1ef05695599bf767315d338966 Mon Sep 17 00:00:00 2001 From: Stephan Krusche Date: Thu, 9 Jan 2025 19:35:28 +0100 Subject: [PATCH 4/4] fix client test --- .../javascript/spec/service/external-cloning.service.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/javascript/spec/service/external-cloning.service.spec.ts b/src/test/javascript/spec/service/external-cloning.service.spec.ts index 0178fde3530e..57afb1b1db03 100644 --- a/src/test/javascript/spec/service/external-cloning.service.spec.ts +++ b/src/test/javascript/spec/service/external-cloning.service.spec.ts @@ -23,7 +23,7 @@ describe('ExternalCloningService', () => { it('should build ide deeplink url correctly', () => { const cloneUrl = baseUrl + '/git/repo.git'; const ide = { name: 'VS Code', deepLink: 'vscode://vscode.git/clone?url={cloneUrl}' }; - const expectedUrl = 'vscode://vscode.git/clone?url=https%3A%2F%2Fartemis.cit.tum.de%2Fgit%2Frepo.git'; + const expectedUrl = 'vscode://vscode.git/clone?url=https%3A%2F%2Fartemis.tum.de%2Fgit%2Frepo.git'; expect(service.buildIdeUrl(cloneUrl, ide)).toEqual(expectedUrl); });