Skip to content

Commit 71cccc8

Browse files
committed
add widget page; add callout; bug fix
1 parent e3d5a00 commit 71cccc8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+6998
-230
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@chat21/chat21-web-widget",
33
"author": "Dario De Pascalis - Frontiere21 SRL",
4-
"version": "3.0.24",
4+
"version": "3.0.26A-DEV",
55
"license": "AGPL-3.0",
66
"homepage": "https://www.tiledesk.com",
77
"repository": {

src/app/app.component.html

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,26 @@
9696
tabindex -> 20
9797
-->
9898
<tiledeskwidget-eyeeye-catcher-card *ngIf="g.senderId"
99+
(eventOpenChat)="returnOpenChat()"
100+
(eventOpenEyeCatcher)="returneventOpenEyeCatcher($event)"
101+
></tiledeskwidget-eyeeye-catcher-card>
102+
103+
104+
<!--
105+
*************************************************************
106+
************** PREVIEW NEW MESSAGE ****************
107+
*************************************************************
108+
-->
109+
<!-- <tiledeskwidget-eyeeye-catcher-card *ngIf="g.senderId"
99110
(eventOpenChat)="returnOpenChat()"
100111
(eventOpenEyeCatcher)="returneventOpenEyeCatcher($event)"
101-
></tiledeskwidget-eyeeye-catcher-card>
112+
></tiledeskwidget-eyeeye-catcher-card> -->
113+
<div *ngIf="!g.isOpen">
114+
<tiledeskwidget-last-message
115+
(eventCloseMessagePreview)="triggerOnCloseMessagePreview()"
116+
(eventSelctedConv)="returnSelectedConversation($event)"
117+
></tiledeskwidget-last-message>
118+
</div>
102119

103120

104121
<!--

src/app/app.component.scss

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,18 @@
3838
// background: #777;
3939
// }
4040

41+
42+
43+
4144
body {
4245
margin:0px;
4346
}
4447

4548

4649

50+
51+
52+
4753
// .btn-new-conversation:hover{
4854
// -webkit-animation: jello-horizontal 0.8s 0.1s both;
4955
// animation: jello-horizontal 0.8s 0.1s both;

src/app/app.component.ts

Lines changed: 60 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ import { MessagingService } from './providers/messaging.service';
1717
import { ContactService } from './providers/contact.service';
1818
import { StorageService } from './providers/storage.service';
1919
import { TranslatorService } from './providers/translator.service';
20+
import { ConversationsService } from './providers/conversations.service';
2021
import { ChatPresenceHandlerService } from './providers/chat-presence-handler.service';
2122
import { AgentAvailabilityService } from './providers/agent-availability.service';
2223

2324
// firebase
2425
import * as firebase from 'firebase/app';
2526
import 'firebase/app';
26-
2727
import { environment } from '../environments/environment';
2828

2929
// utils
@@ -99,7 +99,8 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
9999
private storageService: StorageService,
100100
public appConfigService: AppConfigService,
101101
public globalSettingsService: GlobalSettingsService,
102-
public settingsSaverService: SettingsSaverService
102+
public settingsSaverService: SettingsSaverService,
103+
public conversationsService: ConversationsService
103104
) {
104105
// firebase.initializeApp(environment.firebase); // here shows the error
105106
// console.log('appConfigService.getConfig().firebase', appConfigService.getConfig().firebase);
@@ -122,6 +123,20 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
122123
/** */
123124
ngAfterViewInit() {
124125
// this.triggerOnViewInit();
126+
this.ngZone.run(() => {
127+
const that = this;
128+
const subChangedConversation = this.conversationsService.obsChangeConversation.subscribe((conversation) => {
129+
that.ngZone.run(() => {
130+
if ( that.g.isOpen === false && conversation) {
131+
// that.g.isOpenNewMessage = true;
132+
that.g.setParameter('displayEyeCatcherCard', 'none');
133+
that.triggerOnChangedConversation(conversation);
134+
that.g.wdLog([' obsChangeConversation ::: ' + conversation]);
135+
}
136+
});
137+
});
138+
this.subscriptions.push(subChangedConversation);
139+
});
125140
}
126141

127142
// ========= begin:: SUBSCRIPTIONS ============//
@@ -309,7 +324,7 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
309324
attributes = JSON.parse(this.storageService.getItem('attributes'));
310325
// console.log('> attributes: ', attributes);
311326
} catch (error) {
312-
// console.log('> Error is handled attributes: ', error);
327+
this.g.wdLog(['> Error :' + error]);
313328
}
314329
if (!attributes && attributes === null ) {
315330
attributes = {};
@@ -708,7 +723,7 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
708723
that.signOut();
709724
});
710725
} catch (error) {
711-
console.error('Error: ', error);
726+
this.g.wdLog(['> Error :' + error]);
712727
}
713728
}
714729

@@ -1024,6 +1039,9 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
10241039
*/
10251040
private returnSelectedConversation($event) {
10261041
if ($event) {
1042+
if (this.g.isOpen === false) {
1043+
this.f21_open();
1044+
}
10271045
this.conversationSelected = $event;
10281046
// this.g.recipientId = $event.recipient;
10291047
// this.g.setVariable('recipientId', $event.recipient);
@@ -1185,6 +1203,7 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
11851203
const onInit = new CustomEvent('onInit', { detail: { default_settings: default_settings } });
11861204
if (windowContext.tiledesk && windowContext.tiledesk.tiledeskroot) {
11871205
windowContext.tiledesk.tiledeskroot.dispatchEvent(onInit);
1206+
this.g.windowContext = windowContext;
11881207
} else {
11891208
this.el.nativeElement.dispatchEvent(onInit);
11901209
}
@@ -1197,7 +1216,6 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
11971216
const windowContext = this.g.windowContext;
11981217
if (windowContext.tiledesk && windowContext.tiledesk.tiledeskroot) {
11991218
windowContext.tiledesk.tiledeskroot.dispatchEvent(onOpen);
1200-
// this.g.setParameter('windowContext', windowContext);
12011219
this.g.windowContext = windowContext;
12021220
} else {
12031221
this.el.nativeElement.dispatchEvent(onOpen);
@@ -1211,7 +1229,6 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
12111229
const windowContext = this.g.windowContext;
12121230
if (windowContext.tiledesk && windowContext.tiledesk.tiledeskroot) {
12131231
windowContext.tiledesk.tiledeskroot.dispatchEvent(onClose);
1214-
// this.g.setParameter('windowContext', windowContext);
12151232
this.g.windowContext = windowContext;
12161233
} else {
12171234
this.el.nativeElement.dispatchEvent(onClose);
@@ -1226,7 +1243,6 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
12261243
const windowContext = this.g.windowContext;
12271244
if (windowContext.tiledesk && windowContext.tiledesk.tiledeskroot) {
12281245
windowContext.tiledesk.tiledeskroot.dispatchEvent(onOpenEyeCatcher);
1229-
// this.g.setParameter('windowContext', windowContext);
12301246
this.g.windowContext = windowContext;
12311247
} else {
12321248
this.el.nativeElement.dispatchEvent(onOpenEyeCatcher);
@@ -1239,7 +1255,6 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
12391255
const windowContext = this.g.windowContext;
12401256
if (windowContext.tiledesk && windowContext.tiledesk.tiledeskroot) {
12411257
windowContext.tiledesk.tiledeskroot.dispatchEvent(onClosedEyeCatcher);
1242-
// this.g.setParameter('windowContext', windowContext);
12431258
this.g.windowContext = windowContext;
12441259
} else {
12451260
this.el.nativeElement.dispatchEvent(onClosedEyeCatcher);
@@ -1273,6 +1288,43 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
12731288
}
12741289
}
12751290

1291+
1292+
/** */
1293+
private triggerOnChangedConversation(conversation: ConversationModel) {
1294+
this.g.wdLog([' ---------------- triggerOnChangedConversation ---------------- ', conversation]);
1295+
try {
1296+
const triggerChangedConversation = new CustomEvent('onChangedConversation', { detail: { conversation: conversation } });
1297+
const windowContext = this.g.windowContext;
1298+
if (windowContext.tiledesk && windowContext.tiledesk.tiledeskroot) {
1299+
windowContext.tiledesk.tiledeskroot.dispatchEvent(triggerChangedConversation);
1300+
this.g.windowContext = windowContext;
1301+
} else {
1302+
this.el.nativeElement.dispatchEvent(triggerChangedConversation);
1303+
}
1304+
this.g.isOpenNewMessage = true;
1305+
} catch (e) {
1306+
this.g.wdLog(['> Error :' + e]);
1307+
}
1308+
}
1309+
1310+
/** */
1311+
private triggerOnCloseMessagePreview() {
1312+
this.g.wdLog([' ---------------- triggerOnCloseMessagePreview ---------------- ']);
1313+
try {
1314+
const triggerCloseMessagePreview = new CustomEvent('onCloseMessagePreview', { detail: { } });
1315+
const windowContext = this.g.windowContext;
1316+
if (windowContext.tiledesk && windowContext.tiledesk.tiledeskroot) {
1317+
windowContext.tiledesk.tiledeskroot.dispatchEvent(triggerCloseMessagePreview);
1318+
this.g.windowContext = windowContext;
1319+
} else {
1320+
this.el.nativeElement.dispatchEvent(triggerCloseMessagePreview);
1321+
}
1322+
this.g.isOpenNewMessage = false;
1323+
} catch (e) {
1324+
this.g.wdLog(['> Error :' + e]);
1325+
}
1326+
}
1327+
12761328
// ========= END:: TRIGGER FUNCTIONS ============//
12771329

12781330
// setSound() {

src/app/app.module.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ import { MenuOptionsComponent } from './components/menu-options/menu-options.com
5656
import { ListAllConversationsComponent } from './components/list-all-conversations/list-all-conversations.component';
5757
import { StarRatingWidgetComponent } from './components/star-rating-widget/star-rating-widget.component';
5858
import { StarRatingWidgetService } from './components/star-rating-widget/star-rating-widget.service';
59+
import { LastMessageComponent } from './components/last-message/last-message.component';
5960

6061

6162
const appInitializerFn = (appConfig: AppConfigService) => {
@@ -83,7 +84,8 @@ const appInitializerFn = (appConfig: AppConfigService) => {
8384
PreviewLoadingFilesComponent,
8485
MenuOptionsComponent,
8586
ListAllConversationsComponent,
86-
MessageAttachmentComponent
87+
MessageAttachmentComponent,
88+
LastMessageComponent
8789
],
8890
imports: [
8991
BrowserModule,

src/app/components/conversation/conversation.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@
178178

179179

180180
<div class="messages msg_receive">
181-
181+
182182
<!-- <div>{{triggerBeforeMessageRender(message)}}</div> -->
183183

184184
<!-- message type:: image -->

src/app/components/conversation/conversation.component.ts

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,9 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
146146
this.g.wdLog([' ngOnInit: app-conversation ', this.g]);
147147
const that = this;
148148
const subscriptionEndRenderMessage = this.appComponent.obsEndRenderMessage.subscribe(() => {
149-
// this.ngZone.run(() => {
150-
// that.scrollToBottom();
151-
// });
149+
this.ngZone.run(() => {
150+
that.scrollToBottom();
151+
});
152152
});
153153
this.subscriptions.push(subscriptionEndRenderMessage);
154154
this.setFocusOnId('chat21-main-message-context');
@@ -217,7 +217,7 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
217217
}
218218
});
219219
} catch (error) {
220-
console.log('> Error is handled attributes: ', error);
220+
this.g.wdLog(['> Error :' + error]);
221221
}
222222
}
223223

@@ -512,6 +512,9 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
512512
}
513513
}
514514

515+
/**
516+
*
517+
*/
515518
if (newMessage && newMessage.text && that.lastMsg) {
516519
setTimeout(function () {
517520
let messaggio = '';
@@ -552,7 +555,7 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
552555
});
553556
}
554557
} catch (e) {
555-
console.error('Error checkWritingMessages ', e);
558+
this.g.wdLog(['> Error :' + e]);
556559
}
557560
}
558561

@@ -764,7 +767,7 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
764767
const returnEventValue = this.elRoot.nativeElement.dispatchEvent(beforeMessageRender);
765768
}
766769
} catch (e) {
767-
console.error('Error triggering triggerBeforeMessageRender', e);
770+
this.g.wdLog(['> Error :' + e]);
768771
}
769772
}
770773

@@ -782,7 +785,7 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
782785
const returnEventValue = this.elRoot.nativeElement.dispatchEvent(afterMessageRender);
783786
}
784787
} catch (e) {
785-
console.error('Error triggering triggerAfterMessageRender', e);
788+
this.g.wdLog(['> Error :' + e]);
786789
}
787790
}
788791

@@ -801,7 +804,7 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
801804
this.el.nativeElement.dispatchEvent(beforeMessageSend);
802805
}
803806
} catch (e) {
804-
console.error('Error triggering triggerBeforeSendMessageEvent', e);
807+
this.g.wdLog(['> Error :' + e]);
805808
}
806809
}
807810

@@ -818,7 +821,7 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
818821
this.el.nativeElement.dispatchEvent(afterMessageSend);
819822
}
820823
} catch (e) {
821-
console.error('Error triggering triggerAfterSendMessageEvent', e);
824+
this.g.wdLog(['> Error :' + e]);
822825
}
823826
}
824827

@@ -961,7 +964,7 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
961964
}, 200);
962965
that.isScrolling = false;
963966
} catch (err) {
964-
that.g.wdLog(['RIPROVO dopo 1 sec::']);
967+
that.g.wdLog(['> Error :' + err]);
965968
}
966969
}, 0);
967970
}
@@ -983,8 +986,12 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
983986
that.isScrolling = true;
984987
const objDiv = document.getElementById(that.idDivScroll);
985988
setTimeout(function () {
986-
objDiv.scrollIntoView({behavior: 'smooth', block: 'end'});
987-
that.g.wdLog(['objDiv::', objDiv.scrollHeight]);
989+
try {
990+
objDiv.scrollIntoView({behavior: 'smooth', block: 'end'});
991+
that.g.wdLog(['objDiv::', objDiv.scrollHeight]);
992+
} catch (err) {
993+
that.g.wdLog(['> Error :' + err]);
994+
}
988995
// objDiv.scrollIntoView(false);
989996
}, 0);
990997
that.isScrolling = false;
@@ -1014,7 +1021,7 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
10141021
// // that.badgeNewMessages = 0;
10151022
// console.log(objDiv);
10161023
} catch (err) {
1017-
that.g.wdLog(['RIPROVO dopo 1 sec::']);
1024+
that.g.wdLog(['> Error :' + err]);
10181025
setTimeout(function () {
10191026
that.isScrolling = false;
10201027
}, 0);

0 commit comments

Comments
 (0)