diff --git a/src/main/webapp/app/exercise-details/exercise-details.component.html b/src/main/webapp/app/exercise-details/exercise-details.component.html index 7a80355086519815d455bdce43d2d2f784251d6f..3e2dfae014baff3e7f70bc85a789d61d96b90dfa 100644 --- a/src/main/webapp/app/exercise-details/exercise-details.component.html +++ b/src/main/webapp/app/exercise-details/exercise-details.component.html @@ -121,7 +121,39 @@ class="metadata-table-description"> </td> <td class="metadata-table-value" - [innerHTML]="arrayToString(exercise.creators.map(getPersonName))"> + [innerHTML]="arrayToString(exercise.creators.map(getPersonDetails))"> + </td> + </tr> + </ng-container> + + <ng-container *ngIf="exercise.contributor"> + <tr *ngIf="exercise.contributor.length > 0"> + <td *ngIf="exercise.contributor.length === 1" + jhiTranslate="exercise.metadata.contributorSingular" + class="metadata-table-description"> + </td> + <td *ngIf="exercise.contributor.length > 1" + jhiTranslate="exercise.metadata.contributorsPlural" + class="metadata-table-description"> + </td> + <td class="metadata-table-value" + [innerHTML]="arrayToString(exercise.contributor.map(getPersonDetails))"> + </td> + </tr> + </ng-container> + + <ng-container *ngIf="exercise.publisher"> + <tr *ngIf="exercise.publisher.length > 0"> + <td *ngIf="exercise.publisher.length === 1" + jhiTranslate="exercise.metadata.publisherSingular" + class="metadata-table-description"> + </td> + <td *ngIf="exercise.publisher.length > 1" + jhiTranslate="exercise.metadata.publisherPlural" + class="metadata-table-description"> + </td> + <td class="metadata-table-value" + [innerHTML]="arrayToString(exercise.publisher.map(getPersonDetails))"> </td> </tr> </ng-container> @@ -218,11 +250,19 @@ </td> </tr> + <tr *ngIf="exercise.structure"> + <td jhiTranslate="exercise.metadata.structure" class="metadata-table-description"> + </td> + <td class="metadata-table-value"> + {{'exercise.metadata.' + exercise.structure | translate }} + </td> + </tr> + <tr *ngIf="exercise.status"> <td jhiTranslate="exercise.metadata.status" class="metadata-table-description"> </td> <td class="metadata-table-value"> - {{exercise.status}} + {{'exercise.metadata.' + exercise.status | translate }} </td> </tr> @@ -255,6 +295,17 @@ </td> </tr> </ng-container> + <ng-container *ngIf="exercise.version"> + <tr> + <td jhiTranslate="exercise.metadata.metadataVersion" + class="metadata-table-description"> + </td> + <td class="metadata-table-value"> + {{exercise.metadataVersion}} + </td> + </tr> + </ng-container> + </table> @@ -263,9 +314,8 @@ <div class="col-6 col-md-4"></div> <div class="col-12 col-md-8"> - <p style="text-align: left;"><strong jhiTranslate="exercise.export.export"></strong> + <p style="text-align: left; margin-top: 5px;"><strong jhiTranslate="exercise.export.export"></strong> </p> - <hr> <a href="#" class="btn btn-outline-secondary" role="button" aria-pressed="true" style="float: left; margin-right: 5px; margin-top: 5px;" jhiTranslate="exercise.export.artemis"></a> diff --git a/src/main/webapp/app/exercise-details/exercise-details.component.scss b/src/main/webapp/app/exercise-details/exercise-details.component.scss index 89f1f9dfc74d2a9bf392a994fbfefa81cc3e23f3..97d0f1f48317a443a5f2465c43c32852454b29f5 100644 --- a/src/main/webapp/app/exercise-details/exercise-details.component.scss +++ b/src/main/webapp/app/exercise-details/exercise-details.component.scss @@ -21,11 +21,15 @@ } .metadata-table-description { - padding: 10px; + padding: 3px; } .metadata-table-value { - padding: 5px; + padding: 3px; +} + +.blackLink { + color: black; } .modal-title { @@ -36,10 +40,10 @@ text-align: left; } -.onhoverIcon:hover ~ .onhoverIconDisplay { - visibility: visible; -} +// .onhoverIcon:hover ~ .onhoverIconDisplay { +// visibility: visible; +// } -.onhoverIconDisplay { - visibility: hidden; -} +// .onhoverIconDisplay { +// visibility: hidden; +// } diff --git a/src/main/webapp/app/exercise-details/exercise-details.component.ts b/src/main/webapp/app/exercise-details/exercise-details.component.ts index ebbfe2bd00e802a3f882a13431371100fe9d2027..a8052d73e4e13e6b4e2ff2868f27cadbd3d591cb 100644 --- a/src/main/webapp/app/exercise-details/exercise-details.component.ts +++ b/src/main/webapp/app/exercise-details/exercise-details.component.ts @@ -18,6 +18,10 @@ export class ExerciseDetailsComponent implements OnInit { return person.name; } + public getPersonDetails(person: Person): string { + return "<a class='blackLink' href= 'mailto:'" + person.email + '>' + person.name + ', ' + person.affiliation + '</a>'; + } + public arrayToString(array: string[]): string { let result = ''; let i = 1; diff --git a/src/main/webapp/app/mock-search/mock-search.component.ts b/src/main/webapp/app/mock-search/mock-search.component.ts index d750fae9d98acb0c7d7f066f63e915e84b6ac740..5a80a4c14c792e98648df920d9514d14b433a07d 100644 --- a/src/main/webapp/app/mock-search/mock-search.component.ts +++ b/src/main/webapp/app/mock-search/mock-search.component.ts @@ -34,7 +34,13 @@ export class MockSearchComponent implements OnInit { } private search(): void { - if (this.searchInput.fulltextQuery || this.searchInput.metadata.programmingLanguage || this.searchInput.metadata.keyword || this.searchInput.metadata.author || this.searchInput.metadata.license) { + if ( + this.searchInput.fulltextQuery || + this.searchInput.metadata.programmingLanguage || + this.searchInput.metadata.keyword || + this.searchInput.metadata.author || + this.searchInput.metadata.license + ) { this.searchService.searchPageDetails(this.searchInput).subscribe( (data: SearchResultsDTO) => { const searchResults = this.parseSearchResultsDTO(data); @@ -59,6 +65,8 @@ export class MockSearchComponent implements OnInit { programmingLanguages: searchResult.programmingLanguage, languages: searchResult.language, creators: searchResult.creator, + contributor: searchResult.contributor, + publisher: searchResult.publisher, imageURL: searchResult.image, rating: 5, lastUpdate: '2021-01-01', @@ -71,7 +79,9 @@ export class MockSearchComponent implements OnInit { keyword: searchResult.keyword, status: searchResult.status, type: searchResult.type, + structure: searchResult.structure, version: searchResult.version, + metadataVersion: searchResult.metadataVersion, }; } diff --git a/src/main/webapp/app/shared/model/exercise.model.ts b/src/main/webapp/app/shared/model/exercise.model.ts index e13db0dc996cab17b441e5f23d14cb0e1f69bdb8..978233a9d6926a2e1f6f9d5be00727af349be08a 100644 --- a/src/main/webapp/app/shared/model/exercise.model.ts +++ b/src/main/webapp/app/shared/model/exercise.model.ts @@ -11,6 +11,8 @@ export interface Exercise { programmingLanguages: string[]; languages: string[]; creators: Person[]; + publisher: Person[]; + contributor: Person[]; requires: string[]; imageURL: string; timeRequired: string; @@ -25,7 +27,9 @@ export interface Exercise { status: string; //structure: string; type: IExerciseType; + structure: string; version: string; + metadataVersion: string; // not in metadata rating: number; diff --git a/src/main/webapp/i18n/de/exercise.json b/src/main/webapp/i18n/de/exercise.json index 3d929b2b04175e0ccabfbb596215a542b98cb85a..acace12a1326db2cff5790581ef4071f4371af94 100644 --- a/src/main/webapp/i18n/de/exercise.json +++ b/src/main/webapp/i18n/de/exercise.json @@ -17,6 +17,10 @@ "languagesPlural": "Sprachen", "creatorSingular": "Ersteller", "creatorsPlural": "Ersteller", + "contributorsSingular": "Mitwirkender", + "contributorsPlural": "Mitwirkende", + "publisherSingular": "Publisher", + "publisherPlural": "Publisher", "lastUpdate": "Letzte Aktualisierung", "license": "Lizenz", "timeRequired": "Benötigte Zeit", @@ -34,10 +38,20 @@ "status": "Status", "type": "Typ", "version": "Version", + "metadataVersion": "Metadata Version", "collection": "Aufgabensammlung", "exercise": "Aufgabe", "programming exercise": "Programmieraufgabe", - "other": "Andere" + "other": "Andere", + "structure": "Struktur", + "atomic": "Atomar", + "networked": "Vernetzt", + "hierarchical": "Hierarchisch", + "linear": "Linear", + "final": "Final", + "draft": "Entwurf", + "revised": "Überarbeitet", + "unavailable": "Nicht verfügbar" }, "export": { "export": "Exportieren", diff --git a/src/main/webapp/i18n/en/exercise.json b/src/main/webapp/i18n/en/exercise.json index 2ba616972b63e7bf82dec0a8c4b5003c6ffb0aed..d06ba46ae99763dd8bc1a1cdcf2e8dee927a7e8c 100644 --- a/src/main/webapp/i18n/en/exercise.json +++ b/src/main/webapp/i18n/en/exercise.json @@ -17,6 +17,10 @@ "languagesPlural": "Languages", "creatorSingular": "Creator", "creatorsPlural": "Creators", + "contributorsSingular": "Contributor", + "contributorsPlural": "Contributors", + "publisherSingular": "Publisher", + "publisherPlural": "Publishers", "lastUpdate": "Last update", "license": "License", "timeRequired": "Time required", @@ -34,10 +38,20 @@ "status": "Status", "type": "Typ", "version": "Version", + "metadataVersion": "Metadata Version", "collection": "Collection", "exercise": "Exercise", "programming exercise": "Programming Exercise", - "other": "Other" + "other": "Other", + "structure": "Structure", + "atomic": "Atomic", + "networked": "Networked", + "hierarchical": "Hierarchical", + "linear": "Linear", + "final": "Final", + "draft": "Draft", + "revised": "Revised", + "unavailable": "Unavailable" }, "export": { "export": "Export",