@chat21/chat21-ionic 3.0.60-rc2 → 3.0.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/LICENSE +661 -21
- package/deploy_pre.sh +45 -6
- package/deploy_prod.sh +34 -9
- package/env.sample +1 -1
- package/package.json +1 -1
- package/src/app/app.component.ts +45 -21
- package/src/app/app.module.ts +2 -2
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +62 -36
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +42 -13
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +13 -6
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +38 -3
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +8 -6
- package/src/app/components/image-viewer/image-viewer.component.scss +2 -2
- package/src/app/components/project-item/project-item.component.html +140 -118
- package/src/app/components/project-item/project-item.component.scss +167 -90
- package/src/app/components/project-item/project-item.component.ts +41 -20
- package/src/app/pages/conversation-detail/conversation-detail.module.ts +2 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.html +36 -43
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +199 -110
- package/src/app/pages/conversations-list/conversations-list.page.html +9 -5
- package/src/app/pages/conversations-list/conversations-list.page.scss +12 -1
- package/src/app/pages/conversations-list/conversations-list.page.ts +24 -6
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +16 -11
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +157 -63
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +51 -16
- package/src/app/shared/shared.module.ts +6 -5
- package/src/assets/i18n/de.json +209 -0
- package/src/assets/i18n/en.json +24 -8
- package/src/assets/i18n/es.json +209 -0
- package/src/assets/i18n/fr.json +209 -0
- package/src/assets/i18n/it.json +42 -34
- package/src/assets/i18n/pt.json +209 -0
- package/src/assets/i18n/ru.json +209 -0
- package/src/assets/i18n/tr.json +209 -0
- package/src/assets/js/chat21client.js +16 -3
- package/src/chat-config-mqtt.json +2 -1
- package/src/chat-config-pre-test.json +2 -0
- package/src/chat-config-template.json +1 -0
- package/src/chat-config.json +1 -0
- package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +54 -43
- package/src/chat21-core/providers/firebase/firebase-conversations-handler.ts +23 -0
- package/src/chat21-core/providers/mqtt/mqtt-archivedconversations-handler.ts +1 -1
- package/src/chat21-core/utils/constants.ts +2 -0
- package/src/chat21-core/utils/utils.ts +12 -1
- package/src/global.scss +4 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
Chat21Client
|
|
3
3
|
|
|
4
|
-
v0.1.
|
|
4
|
+
v0.1.10
|
|
5
5
|
|
|
6
6
|
@Author Andrea Sponziello
|
|
7
7
|
(c) Tiledesk 2020
|
|
@@ -124,7 +124,7 @@ class Chat21Client {
|
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
sendMessageRaw(outgoing_message, recipient_id, callback) {
|
|
127
|
-
// callback - function (err)
|
|
127
|
+
// callback - function (err)
|
|
128
128
|
// console.log("recipient_id:", recipient_id)
|
|
129
129
|
let dest_topic = `apps/${this.appid}/outgoing/users/${this.user_id}/messages/${recipient_id}/outgoing`
|
|
130
130
|
// console.log("dest_topic:", dest_topic)
|
|
@@ -784,8 +784,21 @@ class Chat21Client {
|
|
|
784
784
|
}
|
|
785
785
|
|
|
786
786
|
conversationDetail(conversWith, callback) {
|
|
787
|
+
this.crossConversationDetail(conversWith, false, callback);
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
archivedConversationDetail(conversWith, callback) {
|
|
791
|
+
this.crossConversationDetail(conversWith, true, callback);
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
crossConversationDetail(conversWith, archived, callback) {
|
|
795
|
+
let path = "conversations";
|
|
796
|
+
if (archived) {
|
|
797
|
+
path = "archived_conversations"
|
|
798
|
+
}
|
|
787
799
|
// ex.: http://localhost:8004/tilechat/04-ANDREASPONZIELLO/conversations/CONVERS_WITH
|
|
788
|
-
const URL = `${this.APIendpoint}/${this.appid}/${this.user_id}/conversations/${conversWith}`
|
|
800
|
+
//const URL = `${this.APIendpoint}/${this.appid}/${this.user_id}/conversations/${conversWith}`
|
|
801
|
+
const URL = `${this.APIendpoint}/${this.appid}/${this.user_id}/${path}/${conversWith}`
|
|
789
802
|
console.log("getting conversation detail:", URL)
|
|
790
803
|
console.log("conversWith:", conversWith)
|
|
791
804
|
var xmlhttp = new XMLHttpRequest();
|
package/src/chat-config.json
CHANGED
|
@@ -18,8 +18,8 @@ import { ConversationHandlerService } from '../abstract/conversation-handler.ser
|
|
|
18
18
|
import { LoggerService } from '../abstract/logger.service';
|
|
19
19
|
import { LoggerInstance } from '../logger/loggerInstance';
|
|
20
20
|
// utils
|
|
21
|
-
import { MSG_STATUS_RECEIVED, CHAT_REOPENED, CHAT_CLOSED, MEMBER_JOINED_GROUP, TYPE_DIRECT, MESSAGE_TYPE_INFO } from '../../utils/constants';
|
|
22
|
-
import { compareValues,searchIndexInArrayForUid,conversationMessagesRef } from '../../utils/utils';
|
|
21
|
+
import { MSG_STATUS_RECEIVED, CHAT_REOPENED, CHAT_CLOSED, MEMBER_JOINED_GROUP, TYPE_DIRECT, MESSAGE_TYPE_INFO , TOUCHING_OPERATOR} from '../../utils/constants';
|
|
22
|
+
import { compareValues, searchIndexInArrayForUid, conversationMessagesRef } from '../../utils/utils';
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
import { messageType } from 'src/chat21-core/utils/utils-message';
|
|
@@ -54,7 +54,7 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
54
54
|
private listSubsriptions: any[];
|
|
55
55
|
private CLIENT_BROWSER: string;
|
|
56
56
|
private lastDate = '';
|
|
57
|
-
private logger:LoggerService = LoggerInstance.getInstance()
|
|
57
|
+
private logger: LoggerService = LoggerInstance.getInstance()
|
|
58
58
|
private ref: firebase.database.Query;
|
|
59
59
|
|
|
60
60
|
constructor(@Inject('skipMessage') private skipMessage: boolean) {
|
|
@@ -64,8 +64,8 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
64
64
|
/**
|
|
65
65
|
* inizializzo conversation handler
|
|
66
66
|
*/
|
|
67
|
-
initialize(recipientId: string,recipientFullName: string,loggedUser: UserModel,tenant: string,translationMap: Map<string, string>) {
|
|
68
|
-
this.logger.log('[FIREBASEConversationHandlerSERVICE] initWithRecipient',recipientId, recipientFullName, loggedUser, tenant, translationMap)
|
|
67
|
+
initialize(recipientId: string, recipientFullName: string, loggedUser: UserModel, tenant: string, translationMap: Map<string, string>) {
|
|
68
|
+
this.logger.log('[FIREBASEConversationHandlerSERVICE] initWithRecipient', recipientId, recipientFullName, loggedUser, tenant, translationMap)
|
|
69
69
|
this.recipientId = recipientId;
|
|
70
70
|
this.recipientFullname = recipientFullName;
|
|
71
71
|
this.loggedUser = loggedUser;
|
|
@@ -74,7 +74,7 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
74
74
|
}
|
|
75
75
|
this.tenant = tenant;
|
|
76
76
|
this.translationMap = translationMap;
|
|
77
|
-
|
|
77
|
+
|
|
78
78
|
this.listSubsriptions = [];
|
|
79
79
|
this.CLIENT_BROWSER = navigator.userAgent;
|
|
80
80
|
this.conversationWith = recipientId;
|
|
@@ -159,20 +159,20 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
159
159
|
false
|
|
160
160
|
);
|
|
161
161
|
const messageRef = firebaseMessagesCustomUid.push({
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
162
|
+
language: lang,
|
|
163
|
+
recipient: conversationWith,
|
|
164
|
+
recipient_fullname: recipientFullname,
|
|
165
|
+
sender: sender,
|
|
166
|
+
sender_fullname: senderFullname,
|
|
167
|
+
status: 0,
|
|
168
|
+
metadata: metadataMsg,
|
|
169
|
+
text: msg,
|
|
170
|
+
timestamp: firebase.database.ServerValue.TIMESTAMP,
|
|
171
|
+
type: typeMsg,
|
|
172
|
+
attributes: attributes,
|
|
173
|
+
channel_type: channelType
|
|
174
|
+
// isSender: true
|
|
175
|
+
});
|
|
176
176
|
|
|
177
177
|
// const message = new MessageModel(
|
|
178
178
|
// key,
|
|
@@ -190,9 +190,9 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
190
190
|
// channelType, // channel_type
|
|
191
191
|
// true // is_sender
|
|
192
192
|
// );
|
|
193
|
-
this.logger.debug('[FIREBASEConversationHandlerSERVICE] sendMessage --> messages: ',
|
|
194
|
-
this.logger.debug('[FIREBASEConversationHandlerSERVICE] sendMessage --> senderFullname: ',
|
|
195
|
-
this.logger.debug('[FIREBASEConversationHandlerSERVICE] sendMessage --> sender: ',
|
|
193
|
+
this.logger.debug('[FIREBASEConversationHandlerSERVICE] sendMessage --> messages: ', this.messages);
|
|
194
|
+
this.logger.debug('[FIREBASEConversationHandlerSERVICE] sendMessage --> senderFullname: ', senderFullname);
|
|
195
|
+
this.logger.debug('[FIREBASEConversationHandlerSERVICE] sendMessage --> sender: ', sender);
|
|
196
196
|
this.logger.debug('[FIREBASEConversationHandlerSERVICE] sendMessage --> SEND MESSAGE: ', msg, channelType);
|
|
197
197
|
return message
|
|
198
198
|
}
|
|
@@ -213,7 +213,7 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
213
213
|
// const attributes: any = {
|
|
214
214
|
// client: this.CLIENT_BROWSER,
|
|
215
215
|
// sourcePage: location.href,
|
|
216
|
-
|
|
216
|
+
|
|
217
217
|
// };
|
|
218
218
|
|
|
219
219
|
// if(this.loggedUser && this.loggedUser.email ){
|
|
@@ -222,7 +222,7 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
222
222
|
// if(this.loggedUser && this.loggedUser.fullname) {
|
|
223
223
|
// attributes.userFullname = this.loggedUser.fullname
|
|
224
224
|
// }
|
|
225
|
-
|
|
225
|
+
|
|
226
226
|
|
|
227
227
|
// // let attributes: any = JSON.parse(sessionStorage.getItem('attributes'));
|
|
228
228
|
// // if (!attributes || attributes === 'undefined') {
|
|
@@ -242,7 +242,7 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
242
242
|
private added(childSnapshot: any) {
|
|
243
243
|
const msg = this.messageGenerate(childSnapshot);
|
|
244
244
|
// msg.attributes && msg.attributes['subtype'] === 'info'
|
|
245
|
-
if(this.skipMessage && messageType(MESSAGE_TYPE_INFO, msg)){
|
|
245
|
+
if (this.skipMessage && messageType(MESSAGE_TYPE_INFO, msg)) {
|
|
246
246
|
return;
|
|
247
247
|
}
|
|
248
248
|
this.addRepalceMessageInArray(childSnapshot.key, msg);
|
|
@@ -254,12 +254,12 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
254
254
|
const msg = this.messageGenerate(childSnapshot);
|
|
255
255
|
// imposto il giorno del messaggio per visualizzare o nascondere l'header data
|
|
256
256
|
// msg.attributes && msg.attributes['subtype'] === 'info'
|
|
257
|
-
if(this.skipMessage && messageType(MESSAGE_TYPE_INFO, msg)
|
|
257
|
+
if (this.skipMessage && messageType(MESSAGE_TYPE_INFO, msg)) {
|
|
258
258
|
return;
|
|
259
259
|
}
|
|
260
260
|
this.addRepalceMessageInArray(childSnapshot.key, msg);
|
|
261
261
|
this.messageChanged.next(msg);
|
|
262
|
-
|
|
262
|
+
|
|
263
263
|
}
|
|
264
264
|
|
|
265
265
|
/** */
|
|
@@ -274,7 +274,7 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
274
274
|
|
|
275
275
|
/** */
|
|
276
276
|
private messageGenerate(childSnapshot: any) {
|
|
277
|
-
const msg: MessageModel = childSnapshot.val();
|
|
277
|
+
const msg: MessageModel = childSnapshot.val();
|
|
278
278
|
msg.uid = childSnapshot.key;
|
|
279
279
|
// controllo fatto per i gruppi da rifattorizzare
|
|
280
280
|
if (!msg.sender_fullname || msg.sender_fullname === 'undefined') {
|
|
@@ -285,7 +285,7 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
285
285
|
// msg.text = htmlEntities(msg.text)
|
|
286
286
|
// msg.text = replaceEndOfLine(msg.text)
|
|
287
287
|
// }
|
|
288
|
-
|
|
288
|
+
|
|
289
289
|
// verifico che il sender è il logged user
|
|
290
290
|
msg.isSender = this.isSender(msg.sender, this.loggedUser.uid);
|
|
291
291
|
// traduco messaggi se sono del server
|
|
@@ -324,6 +324,8 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
324
324
|
const INFO_SUPPORT_USER_ADDED_VERB = this.translationMap.get('INFO_SUPPORT_USER_ADDED_VERB');
|
|
325
325
|
const INFO_SUPPORT_CHAT_REOPENED = this.translationMap.get('INFO_SUPPORT_CHAT_REOPENED');
|
|
326
326
|
const INFO_SUPPORT_CHAT_CLOSED = this.translationMap.get('INFO_SUPPORT_CHAT_CLOSED');
|
|
327
|
+
const INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU = this.translationMap.get('INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU');
|
|
328
|
+
|
|
327
329
|
if (message.attributes.messagelabel
|
|
328
330
|
&& message.attributes.messagelabel.parameters
|
|
329
331
|
&& message.attributes.messagelabel.key === MEMBER_JOINED_GROUP
|
|
@@ -355,6 +357,15 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
355
357
|
} else if ((message.attributes.messagelabel && message.attributes.messagelabel.key === CHAT_CLOSED)) {
|
|
356
358
|
message.text = INFO_SUPPORT_CHAT_CLOSED;
|
|
357
359
|
}
|
|
360
|
+
// ['last_message_text']
|
|
361
|
+
else if ((message.attributes && message.attributes.messagelabel && message.attributes.messagelabel.key === TOUCHING_OPERATOR) && message.sender === "system") {
|
|
362
|
+
// console.log('FIREBASEConversationHandlerSERVICE message text', message.text)
|
|
363
|
+
const textAfterColon = message.text.split(":")[1]
|
|
364
|
+
// console.log('FIREBASEConversationHandlerSERVICE message text - textAfterColon', textAfterColon)
|
|
365
|
+
if (textAfterColon !== undefined) {
|
|
366
|
+
message.text = INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU + ': ' + textAfterColon;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
358
369
|
}
|
|
359
370
|
|
|
360
371
|
|
|
@@ -368,9 +379,9 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
368
379
|
private setStatusMessage(msg: MessageModel, conversationWith: string) {
|
|
369
380
|
if (msg.status < MSG_STATUS_RECEIVED) {
|
|
370
381
|
if (msg.sender !== this.loggedUser.uid && msg.status < MSG_STATUS_RECEIVED) {
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
382
|
+
const urlNodeMessagesUpdate = this.urlNodeFirebase + '/' + msg.uid;
|
|
383
|
+
this.logger.debug('[FIREBASEConversationHandlerSERVICE] update message status', urlNodeMessagesUpdate);
|
|
384
|
+
firebase.database().ref(urlNodeMessagesUpdate).update({ status: MSG_STATUS_RECEIVED });
|
|
374
385
|
}
|
|
375
386
|
}
|
|
376
387
|
}
|
|
@@ -403,14 +414,14 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
403
414
|
// }
|
|
404
415
|
|
|
405
416
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
417
|
+
unsubscribe(key: string) {
|
|
418
|
+
this.listSubsriptions.forEach(sub => {
|
|
419
|
+
this.logger.debug('[FIREBASEConversationHandlerSERVICE] unsubscribe: ', sub.uid, key);
|
|
420
|
+
if (sub.uid === key) {
|
|
421
|
+
this.logger.debug('[FIREBASEConversationHandlerSERVICE] unsubscribe: ', sub.uid, key);
|
|
422
|
+
sub.unsubscribe(key, null);
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
}
|
|
416
427
|
}
|
|
@@ -22,6 +22,7 @@ import { AppConfigProvider } from 'src/app/services/app-config';
|
|
|
22
22
|
// utils
|
|
23
23
|
import { avatarPlaceholder, getColorBck } from '../../utils/utils-user';
|
|
24
24
|
import { compareValues, getFromNow, conversationsPathForUserId, searchIndexInArrayForUid, isGroup } from '../../utils/utils';
|
|
25
|
+
import { TOUCHING_OPERATOR } from '../../utils/constants';
|
|
25
26
|
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
|
|
26
27
|
|
|
27
28
|
|
|
@@ -476,6 +477,7 @@ export class FirebaseConversationsHandler extends ConversationsHandlerService {
|
|
|
476
477
|
conversation_with = conv.recipient;
|
|
477
478
|
conversation_with_fullname = conv.recipient_fullname;
|
|
478
479
|
conv.sender_fullname = this.translationMap.get('YOU')
|
|
480
|
+
|
|
479
481
|
// conv.last_message_text = YOU + conv.last_message_text;
|
|
480
482
|
// } else if (conv.channel_type === TYPE_GROUP) {
|
|
481
483
|
} else if (isGroup(conv)) {
|
|
@@ -484,6 +486,12 @@ export class FirebaseConversationsHandler extends ConversationsHandlerService {
|
|
|
484
486
|
conversation_with = conv.recipient;
|
|
485
487
|
conversation_with_fullname = conv.recipient_fullname;
|
|
486
488
|
}
|
|
489
|
+
if (conv.attributes && conv.attributes.subtype) {
|
|
490
|
+
if (conv.attributes.subtype === 'info' || conv.attributes.subtype === 'info/support') {
|
|
491
|
+
this.translateInfoSupportMessages(conv);
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
|
|
487
495
|
conv.conversation_with = conversation_with;
|
|
488
496
|
conv.conversation_with_fullname = conversation_with_fullname;
|
|
489
497
|
conv.status = this.setStatusConversation(conv.sender, conv.uid);
|
|
@@ -496,6 +504,21 @@ export class FirebaseConversationsHandler extends ConversationsHandlerService {
|
|
|
496
504
|
}
|
|
497
505
|
|
|
498
506
|
|
|
507
|
+
translateInfoSupportMessages(conv) {
|
|
508
|
+
const INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU = this.translationMap.get('INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU');
|
|
509
|
+
// console.log('[FIREBASEConversationsHandlerSERVICE] INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU', INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU)
|
|
510
|
+
if ((conv.attributes && conv.attributes.messagelabel && conv.attributes.messagelabel.key === TOUCHING_OPERATOR) && conv.sender === "system") {
|
|
511
|
+
// console.log('FIREBASEConversationsHandlerSERVICE last_message_text', conv.last_message_text)
|
|
512
|
+
const textAfterColon = conv.last_message_text.split(":")[1]
|
|
513
|
+
// console.log('FIREBASEConversationsHandlerSERVICE last_message_text - textAfterColon', textAfterColon)
|
|
514
|
+
// message.text = INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU + ' ' + textAfterColon;
|
|
515
|
+
if (textAfterColon !== undefined) {
|
|
516
|
+
conv.last_message_text = INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU + ': ' + textAfterColon;
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
|
|
499
522
|
|
|
500
523
|
/** */
|
|
501
524
|
private setStatusConversation(sender: string, uid: string): string {
|
|
@@ -82,7 +82,7 @@ export class MQTTArchivedConversationsHandler extends ArchivedConversationsHandl
|
|
|
82
82
|
callback(conversation);
|
|
83
83
|
} else {
|
|
84
84
|
console.log('Not found locally, remote.getConversationDetail *****: ', conversation);
|
|
85
|
-
this.chat21Service.chatClient.
|
|
85
|
+
this.chat21Service.chatClient.archivedConversationDetail(conversationWith, (err, conversation) => {
|
|
86
86
|
if (conversation) {
|
|
87
87
|
if (callback) {
|
|
88
88
|
callback(this.completeConversation(conversation));
|
|
@@ -60,6 +60,8 @@ export const MESSAGE_TYPE_DATE = 'DATE';
|
|
|
60
60
|
export const CHAT_REOPENED = 'CHAT_REOPENED';
|
|
61
61
|
export const CHAT_CLOSED = 'CHAT_CLOSED';
|
|
62
62
|
export const MEMBER_JOINED_GROUP = 'MEMBER_JOINED_GROUP';
|
|
63
|
+
export const TOUCHING_OPERATOR = "TOUCHING_OPERATOR"
|
|
64
|
+
|
|
63
65
|
|
|
64
66
|
// URLS
|
|
65
67
|
// export const URL_SOUND = 'assets/sounds/pling.mp3';
|
|
@@ -13,7 +13,7 @@ import { ConversationModel } from '../models/conversation';
|
|
|
13
13
|
import { MAX_WIDTH_IMAGES, TYPE_DIRECT, TYPE_SUPPORT_GROUP } from './constants';
|
|
14
14
|
|
|
15
15
|
import { avatarPlaceholder, getColorBck, getImageUrlThumbFromFirebasestorage } from './utils-user';
|
|
16
|
-
|
|
16
|
+
import { TooltipOptions } from 'ng2-tooltip-directive';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Shortest description for phone and tablet
|
|
@@ -31,6 +31,17 @@ export function windowsMatchMedia() {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
|
|
35
|
+
export const DefaultTooltipOptions: TooltipOptions = {
|
|
36
|
+
'show-delay': 500,
|
|
37
|
+
'tooltip-class': 'chat-tooltip',
|
|
38
|
+
'theme': 'light',
|
|
39
|
+
'shadow': false,
|
|
40
|
+
'hide-delay-mobile': 0,
|
|
41
|
+
'hideDelayAfterClick': 3000,
|
|
42
|
+
'hide-delay': 200
|
|
43
|
+
}
|
|
44
|
+
|
|
34
45
|
/**
|
|
35
46
|
* chiamata da ChatConversationsHandler
|
|
36
47
|
* restituisce url '/conversations'
|
package/src/global.scss
CHANGED