Skip to content
Snippets Groups Projects
Commit 2e453bde authored by Ruben Bimberg's avatar Ruben Bimberg :computer:
Browse files

Submit partial backend test

This branch does not support any functionalities at the moment, please use it for testing only!
parent da7570b4
Branches
Tags
No related merge requests found
......@@ -23,6 +23,7 @@ export class SpacyDialogComponent implements OnInit, AfterContentInit {
comment: Comment;
commentLang: Model;
commentBodyChecked: string;
spacyKeywords: string[] = [];
keywords: Keyword[] = [];
constructor(
......@@ -51,7 +52,8 @@ export class SpacyDialogComponent implements OnInit, AfterContentInit {
buildCreateCommentActionCallback() {
return () => {
this.comment.keywords = this.keywords.filter(kw => kw.selected).map(kw => kw.word);
this.comment.keywordsFromQuestioner = this.keywords.filter(kw => kw.selected).map(kw => kw.word);
this.comment.keywordsFromSpacy = this.spacyKeywords;
this.dialogRef.close(this.comment);
};
}
......@@ -61,8 +63,10 @@ export class SpacyDialogComponent implements OnInit, AfterContentInit {
// N at first pos = all Nouns(NN de/en) including singular(NN, NNP en), plural (NNPS, NNS en), proper Noun(NNE, NE de)
this.spacyService.analyse(this.commentBodyChecked, model)
.subscribe(res => {
for(const word of res.words) {
this.spacyKeywords.length = 0;
for (const word of res.words) {
if (word.tag.charAt(0) === 'N') {
this.spacyKeywords.push(word.text);
words.push({
word: word.text,
completed: false,
......@@ -73,6 +77,7 @@ export class SpacyDialogComponent implements OnInit, AfterContentInit {
}
this.keywords = words;
}, () => {
this.spacyKeywords = [];
this.keywords = [];
});
}
......
......@@ -320,16 +320,16 @@
<div fxLayoutAlign="center center"
matTooltip="{{ 'comment-page.keywords-per-question' | translate }}"
[mat-menu-trigger-for]="keywordsMenu"
*ngIf="(comment.keywords != undefined && comment.keywords.length > 0)"
*ngIf="(comment.keywordsFromQuestioner != undefined && comment.keywordsFromQuestioner.length > 0)"
class="comment-keywords">
<mat-icon svgIcon="comment_tag"></mat-icon>
<span>
&nbsp;{{ 'comment-page.keywords' | translate }}
</span>
<mat-menu #keywordsMenu>
<mat-list dense class="keywords-list">
<mat-list-item *ngFor="let keyword of comment.keywords; let odd = odd; let even = even"
<mat-list-item *ngFor="let keyword of comment.keywordsFromQuestioner; let odd = odd; let even = even"
[class.keywords-alternate]="odd"
[class.keywords-even]="even">
<span class="keyword-span">{{keyword}}</span>
......
......@@ -205,7 +205,6 @@ export class TagCloudDataManager {
return;
}
let newData: TagCloudData;
//TODO SORT
if (this._isAlphabeticallySorted) {
newData = new Map<string, TagCloudDataTagEntry>([...current]
.sort(([aTag], [bTag]) => aTag.localeCompare(bTag)));
......@@ -213,7 +212,6 @@ export class TagCloudDataManager {
newData = new Map<string, TagCloudDataTagEntry>([...current]
.sort(([_, aTagData], [__, bTagData]) => bTagData.weight - aTagData.weight));
}
//TODO APPLY OTHER
this._dataBus.next(newData);
}
......@@ -252,10 +250,19 @@ export class TagCloudDataManager {
const data: TagCloudData = new Map<string, TagCloudDataTagEntry>();
const users = new Set<number>();
for (const comment of this._lastFetchedComments) {
//TODO Check supply types
let keywords = comment.keywords || [];
let keywords = comment.keywordsFromQuestioner;
if (this._supplyType === TagCloudDataSupplyType.keywordsAndFullText) {
if (!keywords || !keywords.length) {
keywords = comment.keywordsFromSpacy;
}
} else if (this._supplyType === TagCloudDataSupplyType.fullText) {
keywords = comment.keywordsFromSpacy;
}
if (!keywords) {
keywords = [];
}
for (const keyword of keywords) {
//TODO Check spelling
//TODO Check spelling & check profanity
let current = data.get(keyword);
if (current === undefined) {
current = {cachedVoteCount: 0, comments: [], weight: 0, adjustedWeight: 0};
......
......@@ -20,7 +20,8 @@ export class Comment {
answer: string;
userNumber: number;
number: number;
keywords: string[];
keywordsFromQuestioner: string[];
keywordsFromSpacy: string[];
constructor(roomId: string = '',
creatorId: string = '',
......@@ -37,7 +38,8 @@ export class Comment {
tag: string = '',
answer: string = '',
userNumber: number = 0,
keywords: string[] = []) {
keywordsFromQuestioner: string[] = [],
keywordsFromSpacy: string[] = []) {
this.id = '';
this.roomId = roomId;
this.creatorId = creatorId;
......@@ -55,6 +57,7 @@ export class Comment {
this.tag = tag;
this.answer = answer;
this.userNumber = userNumber;
this.keywords = keywords;
this.keywordsFromQuestioner = keywordsFromQuestioner;
this.keywordsFromSpacy = keywordsFromSpacy;
}
}
......@@ -83,7 +83,9 @@ export class CommentService extends BaseHttpService {
return this.http.post<Comment>(connectionUrl,
{
roomId: comment.roomId, body: comment.body,
read: comment.read, creationTimestamp: comment.timestamp, tag: comment.tag, keywords: JSON.stringify(comment.keywords)
read: comment.read, creationTimestamp: comment.timestamp, tag: comment.tag,
keywordsFromSpacy: JSON.stringify(comment.keywordsFromSpacy),
keywordsFromQuestioner: JSON.stringify(comment.keywordsFromQuestioner)
}, httpOptions).pipe(
tap(_ => ''),
catchError(this.handleError<Comment>('addComment'))
......@@ -111,8 +113,11 @@ export class CommentService extends BaseHttpService {
map(commentList => {
return commentList.map(comment => {
const newComment = this.parseUserNumber(comment);
console.log(comment);
// @ts-ignore
newComment.keywords = JSON.parse(newComment.keywords as string);
newComment.keywordsFromQuestioner = JSON.parse(newComment.keywordsFromQuestioner as string);
// @ts-ignore
newComment.keywordsFromSpacy = JSON.parse(newComment.keywordsFromSpacy as string);
return newComment;
});
}),
......
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