Skip to content
Snippets Groups Projects
Commit b4f1a39d authored by David Noah Donges's avatar David Noah Donges
Browse files

Merge branch '86-content-view-in-room' into 'master'

Resolve "Content View in Room"

Closes #86

See merge request swtp-block-ws17/arsnova-angular-frontend!71
parents 8a254bfc 86eee82e
Branches
Tags
No related merge requests found
import { Injectable } from '@angular/core';
import { Content } from './content';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import { catchError, tap } from 'rxjs/operators';
import { ErrorHandlingService } from './error-handling.service';
const httpOptions = {
headers: new HttpHeaders({ 'Content-Type': 'application/json' })
};
@Injectable()
export class ContentService extends ErrorHandlingService {
private contentUrl = 'api/contents';
constructor(private http: HttpClient) {
super();
}
getContents(): Observable<Content[]> {
return this.http.get<Content[]>(this.contentUrl).pipe(
catchError(this.handleError('getContents', []))
);
}
addContent(content: Content): Observable<Content> {
return this.http.post<Content>(this.contentUrl, content, httpOptions).pipe(
catchError(this.handleError<Content>('addContent'))
);
}
getContent(id: string): Observable<Content> {
const url = `${this.contentUrl}/${id}`;
return this.http.get<Content>(url).pipe(
catchError(this.handleError<Content>(`getContent id=${id}`))
);
}
}
enum Format { export enum Format {
CHOICE, CHOICE,
BINARY, BINARY,
SCALE, SCALE,
...@@ -17,4 +17,3 @@ export class Content { ...@@ -17,4 +17,3 @@ export class Content {
format: Format; format: Format;
formatAttributes: Map<string, string>; formatAttributes: Map<string, string>;
} }
...@@ -17,14 +17,15 @@ ...@@ -17,14 +17,15 @@
{{ room.description }} {{ room.description }}
</p> </p>
</mat-card-content> </mat-card-content>
<mat-divider></mat-divider>
<app-content-list></app-content-list>
<mat-divider></mat-divider> <mat-divider></mat-divider>
<mat-card-actions> <mat-card-actions>
<button mat-button color="primary" matTooltip="Create new content"> <button mat-button color="primary" matTooltip="Create new content" routerLink="/creator/room/{{room.id}}/content-creation">
Create content Create content
</button> </button>
<button mat-button color="primary" matTooltip="See contents">
Contents
</button>
<button mat-button color="primary" matTooltip="See room comments" <button mat-button color="primary" matTooltip="See room comments"
routerLink="/creator/room/{{room.id}}/comments"> routerLink="/creator/room/{{room.id}}/comments">
Comments Comments
......
import { InMemoryDbService } from 'angular-in-memory-web-api'; import { InMemoryDbService } from 'angular-in-memory-web-api';
import { Format } from './content';
export class InMemoryDataService implements InMemoryDbService { export class InMemoryDataService implements InMemoryDbService {
/** /**
...@@ -80,6 +81,60 @@ export class InMemoryDataService implements InMemoryDbService { ...@@ -80,6 +81,60 @@ export class InMemoryDataService implements InMemoryDbService {
creationTimestamp: new Date(Date.now()), creationTimestamp: new Date(Date.now()),
} }
]; ];
return { rooms, comments };
const contents = [
{
id: '1',
revision: '1',
roomId: '1',
subject: 'Textaufgabe 1',
body: 'testcontent alpha beta',
round: 1,
format: Format.TEXT
},
{
id: '2',
revision: '2',
roomId: '3',
subject: 'Textaufgabe 2',
body: 'Ein Mann kauft 20 Melonen. Eine Melone wiegt jeweils 5kg. Berechnen Sie das Gesamtgewicht.',
round: 5,
format: Format.TEXT
}
];
const answerTexts = [
{
id: '1',
revision: '1',
contendId: '1',
round: '1',
subject: 'Textaufgabe 1',
body: 'gamma, delta',
read: 'yes',
creationTimestamp: Date,
},
{
id: '1',
revision: '1',
contendId: '1',
round: '1',
subject: 'Textaufgabe 1',
body: 'epsilon, phi',
read: 'yes',
creationTimestamp: Date,
},
{
id: '2',
revision: '2',
contendId: '2',
round: '3',
subject: 'Textaufgabe 2',
body: 'Der Turm ist 20m hoch',
read: 'yes',
creationTimestamp: Date,
}
];
return { rooms, comments, contents, answerTexts };
} }
} }
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