@chat21/chat21-ionic 3.0.58 → 3.0.59-rc15
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 +69 -0
- package/README.md +9 -0
- package/config.xml +11 -2
- package/env.sample +2 -0
- package/package.json +1 -1
- package/resources/Android/splash/drawable-land-hdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-land-ldpi-screen.png +0 -0
- package/resources/Android/splash/drawable-land-mdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-land-xhdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-land-xxhdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-land-xxxhdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-port-hdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-port-ldpi-screen.png +0 -0
- package/resources/Android/splash/drawable-port-mdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-port-xhdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-port-xxhdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-port-xxxhdpi-screen.png +0 -0
- package/resources/Android/splash.png +0 -0
- package/src/app/app-routing.module.ts +21 -17
- package/src/app/app.component.html +6 -3
- package/src/app/app.component.ts +259 -55
- package/src/app/app.module.ts +16 -8
- package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.html +1 -1
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +4 -4
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +8 -2
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +6 -1
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +7 -2
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +47 -2
- package/src/app/chatlib/conversation-detail/message/image/image.component.html +7 -6
- package/src/app/chatlib/conversation-detail/message/image/image.component.ts +20 -1
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +39 -9
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +8 -144
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +14 -17
- package/src/app/chatlib/list-conversations-component/list-conversations/list-conversations.component.html +1 -1
- package/src/app/components/authentication/login/login.component.html +10 -10
- package/src/app/components/authentication/login/login.component.ts +2 -1
- package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.ts +1 -1
- package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.ts +1 -1
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +17 -12
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +12 -0
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +21 -5
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +3 -2
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +22 -17
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +46 -5
- package/src/app/components/ddp-header/ddp-header.component.html +1 -1
- package/src/app/components/ddp-header/ddp-header.component.ts +4 -2
- package/src/app/components/image-viewer/image-viewer.component.html +23 -0
- package/src/app/components/image-viewer/image-viewer.component.scss +107 -0
- package/src/app/components/image-viewer/image-viewer.component.spec.ts +24 -0
- package/src/app/components/image-viewer/image-viewer.component.ts +38 -0
- package/src/app/components/project-item/project-item.component.html +147 -0
- package/src/app/components/project-item/project-item.component.scss +669 -0
- package/src/app/components/project-item/project-item.component.spec.ts +24 -0
- package/src/app/components/project-item/project-item.component.ts +317 -0
- package/src/app/components/utils/avatar-profile/avatar-profile.component.html +7 -0
- package/src/app/components/utils/avatar-profile/avatar-profile.component.ts +22 -5
- package/src/app/pages/authentication/login/login.page.html +1 -2
- package/src/app/pages/authentication/login/login.page.ts +1 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.html +5 -3
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +122 -30
- package/src/app/pages/conversations-list/conversations-list.page.html +44 -23
- package/src/app/pages/conversations-list/conversations-list.page.scss +290 -127
- package/src/app/pages/conversations-list/conversations-list.page.ts +172 -12
- package/src/app/pages/unassigned-conversations/unassigned-conversations-routing.module.ts +17 -0
- package/src/app/pages/unassigned-conversations/unassigned-conversations.module.ts +22 -0
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +22 -0
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +79 -0
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.spec.ts +24 -0
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +108 -0
- package/src/app/services/nav-proxy.service.ts +1 -1
- package/src/app/services/tiledesk/tiledesk.service.ts +22 -1
- package/src/app/services/websocket/websocket-js.ts +557 -0
- package/src/app/services/websocket/websocket.service.spec.ts +12 -0
- package/src/app/services/websocket/websocket.service.ts +274 -0
- package/src/app/shared/shared.module.ts +7 -1
- package/src/assets/i18n/en.json +9 -1
- package/src/assets/i18n/it.json +9 -1
- package/src/assets/js/chat21client.js +141 -67
- package/src/assets/transparent.png +0 -0
- package/src/chat-config-pre-test.json +3 -1
- package/src/chat-config-template.json +3 -1
- package/src/chat-config.json +3 -1
- package/src/chat21-core/providers/chat-manager.ts +3 -3
- package/src/chat21-core/providers/firebase/firebase-archivedconversations-handler.ts +1 -1
- package/src/chat21-core/providers/firebase/firebase-auth-service.ts +6 -6
- package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +1 -1
- package/src/chat21-core/providers/firebase/firebase-notifications.ts +1 -1
- package/src/chat21-core/providers/firebase/firebase-presence.service.ts +2 -2
- package/src/chat21-core/providers/firebase/firebase-typing.service.ts +1 -1
- package/src/chat21-core/providers/firebase/firebase-upload.service.ts +1 -1
- package/src/chat21-core/providers/mqtt/mqtt-auth-service.ts +27 -27
- package/src/chat21-core/providers/mqtt/mqtt-conversations-handler.ts +13 -5
- package/src/chat21-core/providers/mqtt/mqtt-notifications.ts +101 -11
- package/src/chat21-core/providers/tiledesk/tiledesk-auth.service.ts +13 -4
- package/src/chat21-core/utils/utils.ts +1 -1
- package/src/firebase-messaging-sw-template.js +1 -1
|
@@ -40,6 +40,7 @@ import { Subject } from 'rxjs';
|
|
|
40
40
|
import { takeUntil } from 'rxjs/operators';
|
|
41
41
|
import { TiledeskService } from '../../services/tiledesk/tiledesk.service';
|
|
42
42
|
import { NetworkService } from '../../services/network-service/network.service';
|
|
43
|
+
import { EventsService } from '../../services/events-service';
|
|
43
44
|
|
|
44
45
|
@Component({
|
|
45
46
|
selector: 'app-conversation-detail',
|
|
@@ -51,6 +52,8 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
51
52
|
@ViewChild('ionContentChatArea', { static: false }) ionContentChatArea: IonContent;
|
|
52
53
|
@ViewChild('rowMessageTextArea', { static: false }) rowTextArea: ElementRef;
|
|
53
54
|
|
|
55
|
+
|
|
56
|
+
|
|
54
57
|
// @ViewChild('info_content', { static: false }) info_content_child : InfoContentComponent;
|
|
55
58
|
|
|
56
59
|
showButtonToBottom = false; // indica lo stato del pulsante per scrollare la chat (showed/hidden)
|
|
@@ -90,6 +93,8 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
90
93
|
|
|
91
94
|
public tagsCanned: any = [];
|
|
92
95
|
public tagsCannedFilter: any = [];
|
|
96
|
+
public HIDE_CANNED_RESPONSES: boolean = false;
|
|
97
|
+
|
|
93
98
|
|
|
94
99
|
public window: any = window;
|
|
95
100
|
public styleMap: Map<string, string> = new Map();
|
|
@@ -164,7 +169,8 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
164
169
|
public presenceService: PresenceService,
|
|
165
170
|
public toastController: ToastController,
|
|
166
171
|
public tiledeskService: TiledeskService,
|
|
167
|
-
private networkService: NetworkService
|
|
172
|
+
private networkService: NetworkService,
|
|
173
|
+
private events: EventsService
|
|
168
174
|
) {
|
|
169
175
|
|
|
170
176
|
// Change list on date change
|
|
@@ -533,23 +539,27 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
533
539
|
if (this.conversationWith && this.conversationsHandlerService && this.conv_type === 'active') {
|
|
534
540
|
this.logger.log('[CONVS-DETAIL] - setHeaderContent getConversationDetail CALLING')
|
|
535
541
|
this.conversationsHandlerService.getConversationDetail(this.conversationWith, (conv) => {
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
+
if (conv) {
|
|
543
|
+
this.logger.log('[CONVS-DETAIL] - setHeaderContent getConversationDetail (active)', this.conversationWith, conv)
|
|
544
|
+
this.conversationAvatar = setConversationAvatar(
|
|
545
|
+
conv.conversation_with,
|
|
546
|
+
conv.conversation_with_fullname,
|
|
547
|
+
conv.channel_type
|
|
548
|
+
);
|
|
549
|
+
}
|
|
542
550
|
this.logger.log('[CONVS-DETAIL] - setHeaderContent > conversationAvatar: ', this.conversationAvatar);
|
|
543
551
|
})
|
|
544
552
|
}
|
|
545
553
|
else { //get conversation from 'conversations' firebase node
|
|
546
554
|
this.archivedConversationsHandlerService.getConversationDetail(this.conversationWith, (conv) => {
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
555
|
+
if (conv) {
|
|
556
|
+
this.logger.log('[CONVS-DETAIL] - setHeaderContent getConversationDetail (archived)', this.conversationWith, conv)
|
|
557
|
+
this.conversationAvatar = setConversationAvatar(
|
|
558
|
+
conv.conversation_with,
|
|
559
|
+
conv.conversation_with_fullname,
|
|
560
|
+
conv.channel_type
|
|
561
|
+
);
|
|
562
|
+
}
|
|
553
563
|
})
|
|
554
564
|
}
|
|
555
565
|
|
|
@@ -628,23 +638,23 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
628
638
|
msg = `[${metadata.name}](${metadata.src})`
|
|
629
639
|
}
|
|
630
640
|
}
|
|
631
|
-
|
|
641
|
+
|
|
632
642
|
// else if (type === 'image') {
|
|
633
643
|
// if (msg) {
|
|
634
644
|
// // msg = msg + '<br>' + 'File: ' + metadata.src;
|
|
635
645
|
// msg = metadata.name + '\n' + msg
|
|
636
646
|
|
|
637
647
|
// } else {
|
|
638
|
-
|
|
648
|
+
|
|
639
649
|
// msg = metadata.name
|
|
640
650
|
// }
|
|
641
|
-
|
|
651
|
+
|
|
642
652
|
// }
|
|
643
|
-
|
|
653
|
+
|
|
644
654
|
|
|
645
655
|
(metadata) ? metadata = metadata : metadata = '';
|
|
646
656
|
this.logger.log('[CONVS-DETAIL] - SEND MESSAGE msg: ', msg, ' - messages: ', this.messages, ' - loggedUser: ', this.loggedUser);
|
|
647
|
-
|
|
657
|
+
|
|
648
658
|
if (msg && msg.trim() !== '' || type !== TYPE_MSG_TEXT) {
|
|
649
659
|
this.conversationHandlerService.sendMessage(
|
|
650
660
|
msg,
|
|
@@ -835,12 +845,12 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
835
845
|
|
|
836
846
|
logScrolling(event: any) {
|
|
837
847
|
// EVENTO IONIC-NATIVE: SCATTA SEMPRE, QUINDI DECIDO SE MOSTRARE O MENO IL BADGE
|
|
838
|
-
this.logger.log('[CONVS-DETAIL] logScrolling: ', event);
|
|
848
|
+
// this.logger.log('[CONVS-DETAIL] logScrolling: ', event);
|
|
839
849
|
this.detectBottom()
|
|
840
850
|
}
|
|
841
851
|
|
|
842
852
|
logScrollEnd(event: any) {
|
|
843
|
-
this.logger.log('[CONVS-DETAIL] logScrollEnd: ', event);
|
|
853
|
+
// this.logger.log('[CONVS-DETAIL] logScrollEnd: ', event);
|
|
844
854
|
}
|
|
845
855
|
|
|
846
856
|
|
|
@@ -882,17 +892,83 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
882
892
|
// ----------------------------------------------------------
|
|
883
893
|
setTimeout(() => {
|
|
884
894
|
if (this.conversationWith.startsWith("support-group")) {
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
895
|
+
|
|
896
|
+
const pos = message.lastIndexOf("/");
|
|
897
|
+
// console.log("[CONVS-DETAIL] - returnChangeTextArea - canned responses pos of / (using lastIndexOf) ", pos);
|
|
898
|
+
|
|
899
|
+
// test
|
|
900
|
+
// var rest = message.substring(0, message.lastIndexOf("/") + 1);
|
|
901
|
+
// var last = message.substring(message.lastIndexOf("/") + 1, message.length);
|
|
902
|
+
// console.log('[CONVS-DETAIL] - returnChangeTextArea rest', rest);
|
|
903
|
+
// console.log('[CONVS-DETAIL] - returnChangeTextArea last', last);
|
|
904
|
+
// console.log('[CONVS-DETAIL] - returnChangeTextArea last', last.length);
|
|
905
|
+
// if (last.length === 1 && last.trim() === '') {
|
|
906
|
+
// console.log('[CONVS-DETAIL] - returnChangeTextArea last is a white space ');
|
|
907
|
+
// } else if (last.length === 1 && last.trim() !== '') {
|
|
908
|
+
// console.log('[CONVS-DETAIL] - returnChangeTextArea last is NOT space ');
|
|
909
|
+
// }
|
|
910
|
+
|
|
888
911
|
|
|
889
912
|
if (pos >= 0) {
|
|
890
|
-
// if (pos === 0) {
|
|
891
|
-
// && that.tagsCanned.length > 0
|
|
892
913
|
var strSearch = message.substr(pos + 1);
|
|
893
914
|
this.logger.log("[CONVS-DETAIL] - returnChangeTextArea - canned responses strSearch ", strSearch);
|
|
915
|
+
|
|
916
|
+
// --------------------------------------------
|
|
917
|
+
// Load canned responses
|
|
918
|
+
// --------------------------------------------
|
|
894
919
|
this.loadTagsCanned(strSearch, this.conversationWith);
|
|
895
920
|
|
|
921
|
+
// ------------------------------------------------------------------------------------------------------------------------------------------
|
|
922
|
+
// Hide / display Canned when the SLASH has POSITION POS 0 and checking if there is a space after the SLASH (in this case it will be hidden)
|
|
923
|
+
// ------------------------------------------------------------------------------------------------------------------------------------------
|
|
924
|
+
|
|
925
|
+
var after_slash = message.substring(message.lastIndexOf("/") + 1, message.length);
|
|
926
|
+
if (pos === 0 && after_slash.length === 1 && after_slash.trim() === '') {
|
|
927
|
+
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea after_slash --> there is a white space after ');
|
|
928
|
+
this.HIDE_CANNED_RESPONSES = true
|
|
929
|
+
this.tagsCannedFilter = []
|
|
930
|
+
} else if (pos === 0 && after_slash.length === 0) {
|
|
931
|
+
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea after_slash --> there is NOT a white space after');
|
|
932
|
+
this.HIDE_CANNED_RESPONSES = false
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
|
|
936
|
+
if (pos > 0) {
|
|
937
|
+
|
|
938
|
+
// ------------------------------------------------------------------------------------------------------------------------------------------
|
|
939
|
+
// Hide / display Canned when the SLASH has POSITION POS > and checking if there is a space after the SLASH (in this case they it be hidden)
|
|
940
|
+
// and if there is not a space before the SLASH (in this it will be hidden)
|
|
941
|
+
// ------------------------------------------------------------------------------------------------------------------------------------------
|
|
942
|
+
|
|
943
|
+
let beforeSlash = message.substr(pos - 1)
|
|
944
|
+
let afterSlash = message.substr(pos + 1)
|
|
945
|
+
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea * POS ', pos);
|
|
946
|
+
|
|
947
|
+
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea --> beforeSlash', beforeSlash);
|
|
948
|
+
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea --> afterSlash', afterSlash);
|
|
949
|
+
var afterSlashParts = afterSlash.split("/")
|
|
950
|
+
var beforeSlashParts = beforeSlash.split("/")
|
|
951
|
+
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea --> afterSlash parts', afterSlashParts);
|
|
952
|
+
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea --> beforeSlash parts', beforeSlashParts);
|
|
953
|
+
|
|
954
|
+
if (beforeSlashParts.length === 2) {
|
|
955
|
+
if (beforeSlashParts[0].indexOf(' ') >= 0 && afterSlashParts[0] === '') {
|
|
956
|
+
this.HIDE_CANNED_RESPONSES = false
|
|
957
|
+
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea --> beforeSlash there is a white space After Not');
|
|
958
|
+
// if (beforeSlashParts[0].indexOf(' ') >= 0 && afterSlashParts[0].indexOf(' ') >= 0)
|
|
959
|
+
} else if (beforeSlashParts[0].indexOf(' ') < 0 && afterSlashParts[0] === '') {
|
|
960
|
+
this.HIDE_CANNED_RESPONSES = true;
|
|
961
|
+
this.tagsCannedFilter = []
|
|
962
|
+
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea --> beforeSlash not thete is a white space After Not');
|
|
963
|
+
} else if (beforeSlashParts[0].indexOf(' ') >= 0 && afterSlashParts[0] === ' ') {
|
|
964
|
+
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea --> beforeSlash not thete is a white space After YES');
|
|
965
|
+
this.HIDE_CANNED_RESPONSES = true;
|
|
966
|
+
this.tagsCannedFilter = []
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
|
|
896
972
|
} else {
|
|
897
973
|
this.tagsCannedFilter = [];
|
|
898
974
|
}
|
|
@@ -974,7 +1050,10 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
974
1050
|
this.logger.log('[CONVS-DETAIL] - loadTagsCanned getCannedResponses RES', res);
|
|
975
1051
|
|
|
976
1052
|
this.tagsCanned = res
|
|
977
|
-
|
|
1053
|
+
|
|
1054
|
+
if (this.HIDE_CANNED_RESPONSES === false) {
|
|
1055
|
+
this.showTagsCanned(strSearch);
|
|
1056
|
+
}
|
|
978
1057
|
|
|
979
1058
|
}, (error) => {
|
|
980
1059
|
this.logger.error('[CONVS-DETAIL] - loadTagsCanned getCannedResponses - ERROR ', error);
|
|
@@ -1030,12 +1109,20 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1030
1109
|
return str;
|
|
1031
1110
|
}
|
|
1032
1111
|
|
|
1033
|
-
replaceTagInMessage(canned) {
|
|
1112
|
+
replaceTagInMessage(canned, event) {
|
|
1113
|
+
this.logger.log("[CONVS-DETAIL] replaceTagInMessage event ", event);
|
|
1034
1114
|
const elTextArea = this.rowTextArea['el'];
|
|
1035
1115
|
const textArea = elTextArea.getElementsByTagName('ion-textarea')[0];
|
|
1116
|
+
|
|
1036
1117
|
this.logger.log("[CONVS-DETAIL] replaceTagInMessage textArea ", textArea);
|
|
1037
1118
|
this.logger.log("[CONVS-DETAIL] replaceTagInMessage textArea value", textArea.value)
|
|
1038
1119
|
|
|
1120
|
+
// var lastChar = textArea.value.substr(-1); // Selects the last character
|
|
1121
|
+
// if (lastChar === '/') {
|
|
1122
|
+
// textArea.value = textArea.value.substring(0, textArea.value.length() - 1);
|
|
1123
|
+
// }
|
|
1124
|
+
// this.insertAtCursor(this.textArea, textArea.value)
|
|
1125
|
+
|
|
1039
1126
|
|
|
1040
1127
|
this.arrowkeyLocation = -1
|
|
1041
1128
|
this.tagsCannedFilter = [];
|
|
@@ -1051,12 +1138,14 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1051
1138
|
|
|
1052
1139
|
var strTEMP = textArea.value.replace(strSearch, canned.text);
|
|
1053
1140
|
strTEMP = this.replacePlaceholderInCanned(strTEMP);
|
|
1141
|
+
this.logger.log("[CONVS-DETAIL] replaceTagInMessage strSearch ", strTEMP);
|
|
1054
1142
|
// strTEMP = this.replacePlaceholderInCanned(strTEMP);
|
|
1055
1143
|
// textArea.value = '';
|
|
1056
1144
|
// that.messageString = strTEMP;
|
|
1057
1145
|
textArea.value = strTEMP;
|
|
1058
1146
|
setTimeout(() => {
|
|
1059
|
-
textArea.focus();
|
|
1147
|
+
// textArea.focus();
|
|
1148
|
+
textArea.setFocus();
|
|
1060
1149
|
this.resizeTextArea();
|
|
1061
1150
|
}, 200);
|
|
1062
1151
|
}
|
|
@@ -1088,9 +1177,12 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1088
1177
|
|
|
1089
1178
|
if (event.key === 'Enter') {
|
|
1090
1179
|
const canned_selected = this.tagsCannedFilter[this.arrowkeyLocation]
|
|
1091
|
-
|
|
1180
|
+
this.logger.log('[CONVS-DETAIL] replaceTagInMessage canned_selected ', canned_selected)
|
|
1092
1181
|
if (canned_selected) {
|
|
1093
|
-
|
|
1182
|
+
|
|
1183
|
+
this.replaceTagInMessage(canned_selected, 'enter')
|
|
1184
|
+
// event.preventDefault();
|
|
1185
|
+
// return false;
|
|
1094
1186
|
}
|
|
1095
1187
|
}
|
|
1096
1188
|
}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
2
1
|
<ion-header no-border class="ion-no-border">
|
|
3
|
-
<app-ddp-header *ngIf="conversationType ==='active'"
|
|
4
|
-
|
|
5
|
-
[supportMode]="supportMode"
|
|
6
|
-
(openContactsDirectory)=openContactsDirectory($event)
|
|
7
|
-
(openProfileInfo)=openProfileInfo($event)>
|
|
2
|
+
<app-ddp-header *ngIf="conversationType ==='active'" [numberOpenConv]="numberOpenConv" [supportMode]="supportMode"
|
|
3
|
+
(openContactsDirectory)=openContactsDirectory($event) (openProfileInfo)=openProfileInfo($event)>
|
|
8
4
|
</app-ddp-header>
|
|
9
5
|
|
|
10
6
|
<app-option-header *ngIf="conversationType !=='active'" [headerTitle]=headerTitle
|
|
@@ -17,35 +13,60 @@
|
|
|
17
13
|
<div id="scrollbar2">
|
|
18
14
|
<ion-list>
|
|
19
15
|
|
|
16
|
+
<!-- -------------------------------------------------------------------------- -->
|
|
17
|
+
<!-- New <ion-spinner class="spinner-middle" style="margin-left: 19px;"></ion-spinner> -->
|
|
18
|
+
<!-- -------------------------------------------------------------------------- -->
|
|
19
|
+
<ion-item *ngIf="isOnline === false" style="padding-left:0px!important ;padding-right:0px!important" button="true" lines="none" class="ion-no-padding waiting-for-connection">
|
|
20
|
+
<div tabindex="0"></div>
|
|
21
|
+
<ion-avatar item-start>
|
|
22
|
+
<div class="sk-fading-circle">
|
|
23
|
+
<div class="sk-circle1 sk-circle"></div>
|
|
24
|
+
<div class="sk-circle2 sk-circle"></div>
|
|
25
|
+
<div class="sk-circle3 sk-circle"></div>
|
|
26
|
+
<div class="sk-circle4 sk-circle"></div>
|
|
27
|
+
<div class="sk-circle5 sk-circle"></div>
|
|
28
|
+
<div class="sk-circle6 sk-circle"></div>
|
|
29
|
+
<div class="sk-circle7 sk-circle"></div>
|
|
30
|
+
<div class="sk-circle8 sk-circle"></div>
|
|
31
|
+
<div class="sk-circle9 sk-circle"></div>
|
|
32
|
+
<div class="sk-circle10 sk-circle"></div>
|
|
33
|
+
<div class="sk-circle11 sk-circle"></div>
|
|
34
|
+
<div class="sk-circle12 sk-circle"></div>
|
|
35
|
+
</div>
|
|
36
|
+
</ion-avatar>
|
|
37
|
+
<ion-label part="message-text" class="waiting-for-network-msg"> Waiting for network</ion-label>
|
|
38
|
+
</ion-item>
|
|
39
|
+
|
|
40
|
+
<ion-item *ngIf="supportMode && displayNewConvsItem" class="ion-no-padding open-iframe-item"
|
|
41
|
+
button="true"
|
|
42
|
+
(click)="openUnsevedConversationIframe()">
|
|
43
|
+
<div tabindex="0"></div>
|
|
44
|
+
<app-project-item (projectIdEvent)="getLastProjectId($event)"></app-project-item>
|
|
45
|
+
</ion-item>
|
|
46
|
+
|
|
20
47
|
<span
|
|
21
48
|
*ngIf="(conversations.length > 0 && conversationType ==='active') || (archivedConversations.length > 0 && conversationType ==='archived');then contentConversations else contentMessageWelcome">
|
|
22
49
|
here is ignored
|
|
23
50
|
</span>
|
|
24
51
|
|
|
52
|
+
|
|
53
|
+
|
|
25
54
|
<ng-template #contentConversations>
|
|
26
55
|
<!-- ---------------------------------- -->
|
|
27
56
|
<!-- ACTIVE CONVERSATION LIST -->
|
|
28
57
|
<!-- ---------------------------------- -->
|
|
29
|
-
<ion-list-conversations *ngIf="conversationType ==='active'"
|
|
30
|
-
[
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
[translationMap]="translationMapConversation"
|
|
34
|
-
(onConversationSelected)=onConversationSelected($event)
|
|
35
|
-
(onImageLoaded)="onImageLoaded($event)"
|
|
36
|
-
(onConversationLoaded)="onConversationLoaded($event)"
|
|
37
|
-
(onCloseConversation)="onCloseConversation($event)">
|
|
58
|
+
<ion-list-conversations *ngIf="conversationType ==='active'" [uidConvSelected]="uidConvSelected"
|
|
59
|
+
[listConversations]="conversations" [stylesMap]="stylesMap" [translationMap]="translationMapConversation"
|
|
60
|
+
(onConversationSelected)=onConversationSelected($event) (onImageLoaded)="onImageLoaded($event)"
|
|
61
|
+
(onConversationLoaded)="onConversationLoaded($event)" (onCloseConversation)="onCloseConversation($event)">
|
|
38
62
|
</ion-list-conversations>
|
|
39
63
|
|
|
40
64
|
<!-- ---------------------------------- -->
|
|
41
65
|
<!-- ARCHIVED CONVERSATION LIST -->
|
|
42
66
|
<!-- ---------------------------------- -->
|
|
43
|
-
<ion-list-conversations *ngIf="conversationType ==='archived'"
|
|
44
|
-
[
|
|
45
|
-
|
|
46
|
-
[translationMap]="translationMapConversation"
|
|
47
|
-
(onConversationSelected)=onConversationSelected($event)
|
|
48
|
-
(onImageLoaded)="onImageLoaded($event)"
|
|
67
|
+
<ion-list-conversations *ngIf="conversationType ==='archived'" [listConversations]="archivedConversations"
|
|
68
|
+
[stylesMap]="stylesMap" [translationMap]="translationMapConversation"
|
|
69
|
+
(onConversationSelected)=onConversationSelected($event) (onImageLoaded)="onImageLoaded($event)"
|
|
49
70
|
(onConversationLoaded)="onConversationLoaded($event)">
|
|
50
71
|
</ion-list-conversations>
|
|
51
72
|
</ng-template>
|
|
@@ -84,8 +105,8 @@
|
|
|
84
105
|
</ion-label>
|
|
85
106
|
</ion-item>
|
|
86
107
|
</div>
|
|
87
|
-
|
|
108
|
+
|
|
88
109
|
</ng-template>
|
|
89
110
|
</ion-list>
|
|
90
111
|
</div>
|
|
91
|
-
</ion-content>
|
|
112
|
+
</ion-content>
|