From 9f223452b7031acfb2773e4c1d97329edf0c076a Mon Sep 17 00:00:00 2001 From: Miguel Garnacho Velez Date: Mon, 22 Apr 2019 17:40:27 +0200 Subject: [PATCH 1/3] Added delete button --- src/app/message/message.component.css | 21 +++++++++++++++++++++ src/app/message/message.component.html | 3 +++ src/app/message/message.component.ts | 9 ++++----- src/app/services/chat.service.ts | 6 +++++- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/src/app/message/message.component.css b/src/app/message/message.component.css index 143bd87..85549a5 100644 --- a/src/app/message/message.component.css +++ b/src/app/message/message.component.css @@ -80,4 +80,25 @@ .isOwnMessageContent{ background-color: #E3F2FD; +} + +.deleteBtn { + height: 1.4em; + width: 1.4em; + text-align: center; + background-color: red; + padding: 0.2em; + border-radius: 100%; + color: cornflowerblue; + line-height: 1.2em; +} + +.deleteBtn:hover { + transition: 0.2s; + background-color: rgb(182, 42, 42); +} + +.deleteBtn:active { + transition: 0.2s; + background-color: rgb(112, 12, 12); } \ No newline at end of file diff --git a/src/app/message/message.component.html b/src/app/message/message.component.html index ec1ba6e..540fa1b 100644 --- a/src/app/message/message.component.html +++ b/src/app/message/message.component.html @@ -10,6 +10,9 @@ [ngClass] = "{'isOwnTimestamp':isOwnMessage}"> {{ timeStamp | date:'medium' }} +
diff --git a/src/app/message/message.component.ts b/src/app/message/message.component.ts index 6a48261..455f6b1 100644 --- a/src/app/message/message.component.ts +++ b/src/app/message/message.component.ts @@ -35,12 +35,11 @@ export class MessageComponent implements OnInit { } removeMessage() { - if (!this.messageContent) { + if (this.isOwnMessage === false) { this.toastr.error('Cannot remove this message'); - } else if (this.isOwnMessage === true) { - this.toastr.error('Are you sure?'); - // TODO pop-up 'are you sure' - this.messageContent = ''; + } else { + this.chatService.removeMsg(this.chatMessage); } } + } diff --git a/src/app/services/chat.service.ts b/src/app/services/chat.service.ts index 84f8244..4f8cdbf 100644 --- a/src/app/services/chat.service.ts +++ b/src/app/services/chat.service.ts @@ -37,7 +37,7 @@ export class ChatService { this.isActive = new BehaviorSubject(false); this.thisUser = new BehaviorSubject(null); setInterval(async () => { - await this.loadMessages(); + //await this.loadMessages(); }, 15000); } @@ -284,6 +284,10 @@ export class ChatService { } } + removeMsg(msg : ChatMessage) { + console.log("Deleting " + msg); + } + /** * Removes the conversation (its folder structure in the application) with a user * given a path. From dedd1250468e07fa9e9db8f6c472ea0bf797f136 Mon Sep 17 00:00:00 2001 From: Miguel Garnacho Velez Date: Mon, 22 Apr 2019 17:47:25 +0200 Subject: [PATCH 2/3] Backend done --- src/app/models/chat-message.model.ts | 3 +++ src/app/services/chat.service.ts | 11 +++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/app/models/chat-message.model.ts b/src/app/models/chat-message.model.ts index b5c5db4..10b0f61 100644 --- a/src/app/models/chat-message.model.ts +++ b/src/app/models/chat-message.model.ts @@ -6,7 +6,10 @@ export class ChatMessage { this.timeSent = date || new Date(); } + webId: string; + userName?: string; message?: string; timeSent?: Date; + } diff --git a/src/app/services/chat.service.ts b/src/app/services/chat.service.ts index 4f8cdbf..2e4aefc 100644 --- a/src/app/services/chat.service.ts +++ b/src/app/services/chat.service.ts @@ -165,7 +165,9 @@ export class ChatService { const text = this.rdf.getValueFromSchema('text', url); const date = Date.parse(this.rdf.getValueFromSchema('dateSent', url)); const name = await this.rdf.getFriendData(sender, 'fn'); - return new ChatMessage(name, text, date); + let msg : ChatMessage = new ChatMessage(name, text, date); + msg.webId = message.value; + return msg; } // Message methods @@ -285,7 +287,12 @@ export class ChatService { } removeMsg(msg : ChatMessage) { - console.log("Deleting " + msg); + console.log("Deleting " + msg.webId); + const url = msg.webId; + fileClient.deleteFile(url).then(success => { + console.log("Deleted"); + this.loadMessages(); + }, err => console.log(err) ); } /** From f13d70aa75f15cc29ab398fadbb86d1eddbb8807 Mon Sep 17 00:00:00 2001 From: Miguel Garnacho Velez Date: Mon, 22 Apr 2019 18:00:21 +0200 Subject: [PATCH 3/3] Changed tests --- src/app/message/message.component.spec.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/app/message/message.component.spec.ts b/src/app/message/message.component.spec.ts index 56dbe18..df9b278 100644 --- a/src/app/message/message.component.spec.ts +++ b/src/app/message/message.component.spec.ts @@ -5,6 +5,7 @@ import { ChatService } from '../services/chat.service'; import { ToastrModule } from 'ngx-toastr'; import {By} from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { ChatMessage } from '../models/chat-message.model'; describe('MessageComponent', () => { let component: MessageComponent; @@ -22,6 +23,8 @@ describe('MessageComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(MessageComponent); component = fixture.componentInstance; + component.chatMessage = new ChatMessage("Test 1", "Test msg", new Date()); + component.chatMessage.webId = ""; fixture.detectChanges(); }); @@ -29,17 +32,15 @@ describe('MessageComponent', () => { expect(component).toBeTruthy(); }); - it('should remove message (case a)', () => { - component.messageContent = ''; + it('should not remove a message that is not yours', () => { + component.isOwnMessage = false; component.removeMessage(); expect(By.css('#toastr-container')); }); - it('should remove message (case b)', () => { - component.messageContent = 'a'; + it('should remove message', () => { component.isOwnMessage = true; component.removeMessage(); - expect(By.css('#toastr-container')); - expect(component.messageContent === ''); + expect(!By.css('#toastr-container')); }); });