This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
Commit 52369098 authored by Daniel Crazzolara's avatar Daniel Crazzolara
Browse files

Refactored languages attributes to fix serialization

parent 9de1f1e3
2 merge requests!62created achievementService and separated some functionality out of...,!61Feature/#51 import from artemis
......@@ -189,8 +189,8 @@ export class BookmarkComponent implements OnInit, OnDestroy {
title: searchResult.metadata.title,
license: searchResult.metadata.license,
description: searchResult.metadata.description,
programmingLanguages: searchResult.metadata.programmingLanguage,
languages: searchResult.metadata.language,
programmingLanguage: searchResult.metadata.programmingLanguage,
language: searchResult.metadata.language,
creator: searchResult.metadata.creator,
contributor: searchResult.metadata.contributor,
publisher: searchResult.metadata.publisher,
......
......@@ -61,12 +61,12 @@
<jhi-exercise-metadata-item
[description]="'exercise.metadata.programmingLanguage'"
[value]="exercise.programmingLanguages">
[value]="exercise.programmingLanguage">
</jhi-exercise-metadata-item>
<jhi-exercise-metadata-item
[description]="'exercise.metadata.language'"
[value]="exercise.languages">
[value]="exercise.language">
</jhi-exercise-metadata-item>
<jhi-exercise-metadata-item
......
......@@ -83,7 +83,7 @@
</div>
<div class="form-group position-relative">
<label class="form-control-label" jhiTranslate="exercise.metadata.programmingLanguage.plural">Programming languages</label>
<tag-input [(ngModel)]='exerciseInfo.programmingLanguages'
<tag-input [(ngModel)]='exerciseInfo.programmingLanguage'
[addOnBlur]="true"
[modelAsStrings]="true"
theme="bootstrap"
......
......@@ -39,13 +39,13 @@ export class ExerciseImportComponent implements OnInit {
this.exerciseService.importExerciseInfoFromArtemis(this.exerciseToken).subscribe(
data => {
this.exerciseInfo = data;
this.exerciseInfo.programmingLanguages = data['programmingLanguage'];
this.exerciseInfo.programmingLanguages = this.exerciseInfo.programmingLanguages.map(programmingLanguage =>
this.exerciseInfo.programmingLanguage = data['programmingLanguage'];
this.exerciseInfo.programmingLanguage = this.exerciseInfo.programmingLanguage.map(programmingLanguage =>
this.toTitleCase(programmingLanguage)
);
this.exerciseInfo.creator = data['creator'];
if (this.exerciseInfo.languages === undefined) {
this.exerciseInfo.languages = ['english']; // default value if none is set
if (this.exerciseInfo.language === undefined) {
this.exerciseInfo.language = ['english']; // default value if none is set
}
},
error => {
......@@ -99,7 +99,7 @@ export class ExerciseImportComponent implements OnInit {
* @return true if invalid and false if valid
*/
hasValidationErrors() {
if (this.exerciseInfo?.keyword === undefined || this.exerciseInfo?.languages === undefined) {
if (this.exerciseInfo?.keyword === undefined || this.exerciseInfo?.language === undefined) {
return true;
}
......@@ -107,7 +107,7 @@ export class ExerciseImportComponent implements OnInit {
return true;
}
if (!(this.exerciseInfo.languages.length > 0)) {
if (!(this.exerciseInfo.language.length > 0)) {
return true;
}
......@@ -119,13 +119,13 @@ export class ExerciseImportComponent implements OnInit {
* the currently imported exercise to correct metadata values
*/
mapExerciseInfoValues() {
let index = this.exerciseInfo!.languages.indexOf('english');
let index = this.exerciseInfo!.language.indexOf('english');
if (index !== -1) {
this.exerciseInfo!.languages[index] = 'en';
this.exerciseInfo!.language[index] = 'en';
}
index = this.exerciseInfo!.languages.indexOf('german');
index = this.exerciseInfo!.language.indexOf('german');
if (index !== -1) {
this.exerciseInfo!.languages[index] = 'de';
this.exerciseInfo!.language[index] = 'de';
}
}
......@@ -143,10 +143,10 @@ export class ExerciseImportComponent implements OnInit {
* @param language to add
*/
setLanguage(language: string) {
if (this.exerciseInfo!.languages.includes(language)) {
this.exerciseInfo!.languages = this.exerciseInfo!.languages.filter(lang => lang !== language);
if (this.exerciseInfo!.language.includes(language)) {
this.exerciseInfo!.language = this.exerciseInfo!.language.filter(lang => lang !== language);
} else {
this.exerciseInfo!.languages.push(language);
this.exerciseInfo!.language.push(language);
}
}
......@@ -242,13 +242,13 @@ export class ExerciseImportComponent implements OnInit {
* @param language
*/
isLanguage(language: string) {
return this.exerciseInfo!.languages !== undefined && this.exerciseInfo!.languages.includes(language);
return this.exerciseInfo!.language !== undefined && this.exerciseInfo!.language.includes(language);
}
/**
* Used to validate language input
*/
isLanguageSet() {
return this.exerciseInfo!.languages !== undefined && this.exerciseInfo!.languages.length > 0;
return this.exerciseInfo!.language !== undefined && this.exerciseInfo!.language.length > 0;
}
}
......@@ -19,12 +19,12 @@ export class ArtemisExerciseInfo implements Exercise {
public gitlabURL: string,
public imageURL: string,
public keyword: Array<string>,
public languages: string[],
public language: string[],
public lastUpdate: Date,
public license: string,
public metadataVersion: string,
public originalResult: SearchResultDTO,
public programmingLanguages: string[],
public programmingLanguage: string[],
public source: string,
public publisher: Person[],
public rating: number,
......
......@@ -33,8 +33,8 @@ export interface Exercise {
// from metadata (optional)
description: string;
programmingLanguages: string[];
languages: string[];
programmingLanguage: string[];
language: string[];
creator: Person[];
publisher: Person[];
contributor: Person[];
......@@ -75,8 +75,8 @@ export function searchResultToExercise(searchResult: SearchResultDTO): Exercise
title: searchResult.metadata.title,
license: searchResult.metadata.license,
description: searchResult.metadata.description,
programmingLanguages: searchResult.metadata.programmingLanguage,
languages: searchResult.metadata.language,
programmingLanguage: searchResult.metadata.programmingLanguage,
language: searchResult.metadata.language,
creator: searchResult.metadata.creator,
contributor: searchResult.metadata.contributor,
publisher: searchResult.metadata.publisher,
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment