From f14b023c3a4419914170ed7f67f1db65721424e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Romaszkin?= Date: Mon, 15 Jun 2020 00:06:52 +0200 Subject: [PATCH] Add discussion display --- .../src/app/_interfaces/customforumdata.ts | 10 +++++++ .../src/app/_interfaces/predictedposts.ts | 7 +++++ .../app/_services/get-discussion.service.ts | 10 +++---- .../discussion-chooser.component.ts | 23 +++++++------- .../discussion-viewer.component.html | 15 +++++++++- .../discussion-viewer.component.ts | 7 +++-- .../src/app/main-view/main-view.component.ts | 11 ++----- .../src/app/main-view/main-view.module.ts | 2 ++ .../styled-paragraph.component.html | 3 ++ .../styled-paragraph.component.scss | 30 +++++++++++++++++++ .../styled-paragraph.component.ts | 22 ++++++++++++++ 11 files changed, 110 insertions(+), 30 deletions(-) create mode 100644 frontend/src/app/_interfaces/customforumdata.ts create mode 100644 frontend/src/app/_interfaces/predictedposts.ts create mode 100644 frontend/src/app/main-view/styled-paragraph/styled-paragraph.component.html create mode 100644 frontend/src/app/main-view/styled-paragraph/styled-paragraph.component.scss create mode 100644 frontend/src/app/main-view/styled-paragraph/styled-paragraph.component.ts diff --git a/frontend/src/app/_interfaces/customforumdata.ts b/frontend/src/app/_interfaces/customforumdata.ts new file mode 100644 index 0000000..4623573 --- /dev/null +++ b/frontend/src/app/_interfaces/customforumdata.ts @@ -0,0 +1,10 @@ +export interface CustomForumData { + id: string; + name: string; + discussions: [ + { + title: string; + id: string; + } + ]; +} diff --git a/frontend/src/app/_interfaces/predictedposts.ts b/frontend/src/app/_interfaces/predictedposts.ts new file mode 100644 index 0000000..7016100 --- /dev/null +++ b/frontend/src/app/_interfaces/predictedposts.ts @@ -0,0 +1,7 @@ +export interface PredictedPost { + author: string; + id: number; + label: string[]; + message: string[]; + para_id: number[]; +} diff --git a/frontend/src/app/_services/get-discussion.service.ts b/frontend/src/app/_services/get-discussion.service.ts index e5eebd3..a15fa78 100644 --- a/frontend/src/app/_services/get-discussion.service.ts +++ b/frontend/src/app/_services/get-discussion.service.ts @@ -6,27 +6,25 @@ import { map } from 'rxjs/operators'; @Injectable() export class GetDiscussionService { private discussionObservableCache$: { - [id: string]: Observable; + [id: string]: Observable; } = {}; private discussionCache$: { - [id: string]: string; + [id: string]: any; } = {}; constructor(private http: HttpClient) {} - getDiscussion(id: string): Observable { + getDiscussion(id: string): Observable { if (this.discussionCache$[id]) { - console.log('Cached'); return of(this.discussionCache$[id]); } else { - console.log('Not cached'); this.discussionObservableCache$[id] = this.requestDiscussion(id); return this.discussionObservableCache$[id]; } } - private requestDiscussion(id: string): Observable { + private requestDiscussion(id: string): Observable { return this.http .get(`http://127.0.0.1:8000/discussions/${id}`) .pipe(map((data) => this.mapData(id, data))); diff --git a/frontend/src/app/main-view/discussion-chooser/discussion-chooser.component.ts b/frontend/src/app/main-view/discussion-chooser/discussion-chooser.component.ts index bae3692..9632c01 100644 --- a/frontend/src/app/main-view/discussion-chooser/discussion-chooser.component.ts +++ b/frontend/src/app/main-view/discussion-chooser/discussion-chooser.component.ts @@ -3,24 +3,23 @@ import { OnInit, OnDestroy, ChangeDetectionStrategy, - EventEmitter, - Output, } from '@angular/core'; import { SharedDataService } from '../../_services/shared-data.service'; import { Colors } from '../../_types/color'; +import { CustomForumData } from '../../_interfaces/customforumdata'; import { Subscription } from 'rxjs'; import { NbMenuItem } from '@nebular/theme'; -interface CustomForumData { - id: string; - name: string; - discussions: [ - { - title: string; - id: string; - } - ]; -} +// interface CustomForumData { +// id: string; +// name: string; +// discussions: [ +// { +// title: string; +// id: string; +// } +// ]; +// } @Component({ selector: 'app-discussion-chooser', diff --git a/frontend/src/app/main-view/discussion-viewer/discussion-viewer.component.html b/frontend/src/app/main-view/discussion-viewer/discussion-viewer.component.html index 11a32d9..53c3353 100644 --- a/frontend/src/app/main-view/discussion-viewer/discussion-viewer.component.html +++ b/frontend/src/app/main-view/discussion-viewer/discussion-viewer.component.html @@ -1 +1,14 @@ -
+
+ + + {{ item.author }} + + + + + +
diff --git a/frontend/src/app/main-view/discussion-viewer/discussion-viewer.component.ts b/frontend/src/app/main-view/discussion-viewer/discussion-viewer.component.ts index 4609141..f93f5b6 100644 --- a/frontend/src/app/main-view/discussion-viewer/discussion-viewer.component.ts +++ b/frontend/src/app/main-view/discussion-viewer/discussion-viewer.component.ts @@ -1,6 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { GetDiscussionService } from '../../_services/get-discussion.service'; +import { PredictedPost } from '../../_interfaces/predictedposts'; import { Subscription } from 'rxjs'; @Component({ @@ -9,7 +10,7 @@ import { Subscription } from 'rxjs'; styleUrls: ['./discussion-viewer.component.scss'], }) export class DiscussionViewerComponent implements OnInit { - data: any; + data: PredictedPost[]; id: string; paramSub: Subscription; discussionSub: Subscription; @@ -22,11 +23,11 @@ export class DiscussionViewerComponent implements OnInit { ngOnInit(): void { this.paramSub = this.router.params.subscribe((params) => { this.id = params.id; - this.discussionSub = this.getDiscussionService .getDiscussion(this.id) .subscribe((res) => { - console.log(res); + this.data = res.posts; + console.log(this.data); }); }); } diff --git a/frontend/src/app/main-view/main-view.component.ts b/frontend/src/app/main-view/main-view.component.ts index c0f8e83..86b47f5 100644 --- a/frontend/src/app/main-view/main-view.component.ts +++ b/frontend/src/app/main-view/main-view.component.ts @@ -1,8 +1,4 @@ -import { - Component, - AfterViewInit, - ChangeDetectionStrategy, -} from '@angular/core'; +import { Component, AfterContentInit } from '@angular/core'; import { Router } from '@angular/router'; import { SharedDataService } from '../_services/shared-data.service'; @@ -11,11 +7,10 @@ import { NbSidebarService, NbMenuItem } from '@nebular/theme'; @Component({ selector: 'app-main-view', - changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './main-view.component.html', styleUrls: ['./main-view.component.scss'], }) -export class MainViewComponent implements AfterViewInit { +export class MainViewComponent implements AfterContentInit { items: NbMenuItem[] = [ { title: 'Dyskusje', @@ -36,7 +31,7 @@ export class MainViewComponent implements AfterViewInit { this.router.navigate(['/']); } - ngAfterViewInit(): void { + ngAfterContentInit(): void { this.sharedDataService.getDiscussions().subscribe((res) => { this.items[0].children = res; }); diff --git a/frontend/src/app/main-view/main-view.module.ts b/frontend/src/app/main-view/main-view.module.ts index 960d5cf..8661c3a 100644 --- a/frontend/src/app/main-view/main-view.module.ts +++ b/frontend/src/app/main-view/main-view.module.ts @@ -15,12 +15,14 @@ import { } from '@nebular/theme'; import { DiscussionViewerComponent } from './discussion-viewer/discussion-viewer.component'; import { GetDiscussionService } from '../_services/get-discussion.service'; +import { StyledParagraphComponent } from './styled-paragraph/styled-paragraph.component'; @NgModule({ declarations: [ MainViewComponent, DiscussionChooserComponent, DiscussionViewerComponent, + StyledParagraphComponent, ], imports: [ CommonModule, diff --git a/frontend/src/app/main-view/styled-paragraph/styled-paragraph.component.html b/frontend/src/app/main-view/styled-paragraph/styled-paragraph.component.html new file mode 100644 index 0000000..188399a --- /dev/null +++ b/frontend/src/app/main-view/styled-paragraph/styled-paragraph.component.html @@ -0,0 +1,3 @@ +{{ + message +}} diff --git a/frontend/src/app/main-view/styled-paragraph/styled-paragraph.component.scss b/frontend/src/app/main-view/styled-paragraph/styled-paragraph.component.scss new file mode 100644 index 0000000..8e8e6b1 --- /dev/null +++ b/frontend/src/app/main-view/styled-paragraph/styled-paragraph.component.scss @@ -0,0 +1,30 @@ +@import "../../../themes"; + +.border { + border-width: medium; + border-style: solid; + padding: 4px; + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + border-radius: 10px; +} + +.pozytywna { + border-color: nb-theme(color-success-100); +} + +.negatywna { + border-color: nb-theme(color-danger-500); +} + +.mieszana { + border-color: nb-theme(color-info-500); +} + +.fakt { + border-color: orange; +} + +.nieistotna { + border-color: black; +} diff --git a/frontend/src/app/main-view/styled-paragraph/styled-paragraph.component.ts b/frontend/src/app/main-view/styled-paragraph/styled-paragraph.component.ts new file mode 100644 index 0000000..c8712ec --- /dev/null +++ b/frontend/src/app/main-view/styled-paragraph/styled-paragraph.component.ts @@ -0,0 +1,22 @@ +import { + Component, + OnInit, + Input, + ChangeDetectionStrategy, +} from '@angular/core'; + +@Component({ + selector: 'app-styled-paragraph', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './styled-paragraph.component.html', + styleUrls: ['./styled-paragraph.component.scss'], +}) +export class StyledParagraphComponent implements OnInit { + @Input() message: string; + @Input() label: string; + constructor() {} + ngOnInit(): void {} + public getLabel() { + return this.label; + } +}