@chat21/chat21-ionic 3.4.27-rc7 → 3.4.27
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 +4 -46
- package/package.json +1 -1
- package/src/app/app.component.ts +13 -68
- package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.scss +3 -3
- package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts +1 -1
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +1 -1
- package/src/app/chatlib/conversation-detail/message/avatar/avatar.component.html +1 -1
- package/src/app/chatlib/conversation-detail/message/avatar/avatar.component.ts +4 -4
- package/src/app/chatlib/conversation-detail/message/return-receipt/return-receipt.component.scss +3 -3
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +9 -9
- package/src/app/components/bubbleMessageInfo-popover/bubbleinfo-popover.component.html +1 -1
- package/src/app/components/canned-response/canned-response.component.html +23 -26
- package/src/app/components/canned-response/canned-response.component.scss +2 -0
- package/src/app/components/canned-response/canned-response.component.ts +1 -3
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +8 -8
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +1 -1
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +16 -15
- package/src/app/components/copilot-popover/copilot-popover.component.html +1 -1
- package/src/app/components/navbar/navbar.component.html +3 -3
- package/src/app/components/navbar/navbar.component.ts +38 -29
- package/src/app/components/project-item/project-item.component.ts +11 -11
- package/src/app/components/sidebar/sidebar.component.html +47 -67
- package/src/app/components/sidebar/sidebar.component.ts +117 -92
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +4 -4
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +14 -16
- package/src/app/modals/create-ticket/create-ticket.page.html +6 -6
- package/src/app/modals/create-ticket/create-ticket.page.ts +6 -8
- package/src/app/modals/loader-preview/loader-preview.page.ts +1 -1
- package/src/app/modals/send-whatsapp-template/send-whatsapp-template.page.scss +1 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.html +2 -4
- package/src/app/pages/conversation-detail/conversation-detail.page.scss +1 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +4 -46
- package/src/app/pages/conversations-list/conversations-list.page.ts +8 -8
- package/src/app/pages/profile-info/profile-info.page.ts +3 -3
- package/src/app/services/brand/brand.service.ts +5 -5
- package/src/app/services/global-settings/global-settings.service.ts +2 -5
- package/src/app/services/tiledesk/tiledesk.service.ts +16 -0
- package/src/app/shared/shared.module.ts +0 -11
- package/src/app/utils/project-utils.ts +2 -2
- package/src/app/utils/utils-resources.ts +8 -7
- package/src/app/utils/utils.ts +1 -18
- package/src/assets/i18n/ar.json +0 -4
- package/src/assets/i18n/az.json +0 -4
- package/src/assets/i18n/de.json +0 -4
- package/src/assets/i18n/en.json +0 -4
- package/src/assets/i18n/es.json +0 -4
- package/src/assets/i18n/fr.json +0 -4
- package/src/assets/i18n/it.json +0 -4
- package/src/assets/i18n/kk.json +0 -4
- package/src/assets/i18n/pt.json +0 -4
- package/src/assets/i18n/ru.json +0 -4
- package/src/assets/i18n/sr.json +0 -4
- package/src/assets/i18n/sv.json +0 -4
- package/src/assets/i18n/tr.json +0 -4
- package/src/assets/i18n/uk.json +0 -4
- package/src/assets/i18n/uz.json +0 -4
- package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +1 -1
- package/src/chat21-core/providers/mqtt/mqtt-conversation-handler.ts +1 -1
- package/src/chat21-core/providers/tiledesk/tiledesk-auth.service.ts +0 -3
- package/src/chat21-core/utils/constants.ts +2 -2
- package/src/chat21-core/utils/utils.ts +2 -10
- package/src/app/services/project_users/project-users.service.spec.ts +0 -16
- package/src/app/services/project_users/project-users.service.ts +0 -63
- package/src/app/utils/permissions.constants.ts +0 -138
- package/src/chat21-core/models/projectUsers.ts +0 -19
- /package/src/assets/{images → img}/channel_icons/chat21.svg +0 -0
- /package/src/assets/{images → img}/channel_icons/direct.svg +0 -0
- /package/src/assets/{images → img}/channel_icons/email-logo.svg +0 -0
- /package/src/assets/{images → img}/channel_icons/form-logo_v2.svg +0 -0
- /package/src/assets/{images → img}/channel_icons/group.svg +0 -0
- /package/src/assets/{images → img}/channel_icons/messenger-logo.svg +0 -0
- /package/src/assets/{images → img}/channel_icons/telegram-logo.svg +0 -0
- /package/src/assets/{images → img}/channel_icons/voice.svg +0 -0
- /package/src/assets/{images → img}/channel_icons/whatsapp-logo.svg +0 -0
- /package/src/assets/{images → img}/default-avatar-x-select.png +0 -0
- /package/src/assets/{images → img}/f21ico-done.svg +0 -0
- /package/src/assets/{images → img}/f21ico-done_all.svg +0 -0
- /package/src/assets/{images → img}/f21ico-schedule.svg +0 -0
- /package/src/assets/{images → img}/file-alt-solid.png +0 -0
- /package/src/assets/{images → img}/icons/copilot.svg +0 -0
- /package/src/assets/{images → img}/json-file.svg +0 -0
- /package/src/assets/{images → img}/language_flag/ar.png +0 -0
- /package/src/assets/{images → img}/language_flag/az.png +0 -0
- /package/src/assets/{images → img}/language_flag/bg.png +0 -0
- /package/src/assets/{images → img}/language_flag/ca.png +0 -0
- /package/src/assets/{images → img}/language_flag/cs.png +0 -0
- /package/src/assets/{images → img}/language_flag/da.png +0 -0
- /package/src/assets/{images → img}/language_flag/de.png +0 -0
- /package/src/assets/{images → img}/language_flag/el.png +0 -0
- /package/src/assets/{images → img}/language_flag/en.png +0 -0
- /package/src/assets/{images → img}/language_flag/es.png +0 -0
- /package/src/assets/{images → img}/language_flag/fa.png +0 -0
- /package/src/assets/{images → img}/language_flag/fi.png +0 -0
- /package/src/assets/{images → img}/language_flag/fr.png +0 -0
- /package/src/assets/{images → img}/language_flag/he.png +0 -0
- /package/src/assets/{images → img}/language_flag/hi.png +0 -0
- /package/src/assets/{images → img}/language_flag/hr.png +0 -0
- /package/src/assets/{images → img}/language_flag/hu.png +0 -0
- /package/src/assets/{images → img}/language_flag/id.png +0 -0
- /package/src/assets/{images → img}/language_flag/it.png +0 -0
- /package/src/assets/{images → img}/language_flag/ja.png +0 -0
- /package/src/assets/{images → img}/language_flag/kk.png +0 -0
- /package/src/assets/{images → img}/language_flag/ko.png +0 -0
- /package/src/assets/{images → img}/language_flag/ml-IN.png +0 -0
- /package/src/assets/{images → img}/language_flag/ne-NP.png +0 -0
- /package/src/assets/{images → img}/language_flag/nl.png +0 -0
- /package/src/assets/{images → img}/language_flag/no.png +0 -0
- /package/src/assets/{images → img}/language_flag/pl.png +0 -0
- /package/src/assets/{images → img}/language_flag/pt-BR.png +0 -0
- /package/src/assets/{images → img}/language_flag/pt.png +0 -0
- /package/src/assets/{images → img}/language_flag/ro.png +0 -0
- /package/src/assets/{images → img}/language_flag/ru.png +0 -0
- /package/src/assets/{images → img}/language_flag/sk.png +0 -0
- /package/src/assets/{images → img}/language_flag/sl.png +0 -0
- /package/src/assets/{images → img}/language_flag/sr.png +0 -0
- /package/src/assets/{images → img}/language_flag/sv.png +0 -0
- /package/src/assets/{images → img}/language_flag/ta.png +0 -0
- /package/src/assets/{images → img}/language_flag/th.png +0 -0
- /package/src/assets/{images → img}/language_flag/tr.png +0 -0
- /package/src/assets/{images → img}/language_flag/uk.png +0 -0
- /package/src/assets/{images → img}/language_flag/uz.png +0 -0
- /package/src/assets/{images → img}/language_flag/vi.png +0 -0
- /package/src/assets/{images → img}/language_flag/zh-CN.png +0 -0
- /package/src/assets/{images → img}/language_flag/zh-TW.png +0 -0
- /package/src/assets/{logos → img/logos}/chat21-logo.png +0 -0
- /package/src/assets/{logos → img/logos}/logo.png +0 -0
- /package/src/assets/{logos → img/logos}/tiledesk-logo_new_white.svg +0 -0
- /package/src/assets/{logos → img/logos}/tiledesk-solo-logo.png +0 -0
- /package/src/assets/{logos → img/logos}/tiledesk_logo.svg +0 -0
- /package/src/assets/{logos → img/logos}/tiledesk_logo_no_text.svg +0 -0
- /package/src/assets/{logos → img/logos}/tiledesk_logo_white_small.svg +0 -0
- /package/src/assets/{images → img}/no_conversation.jpg +0 -0
- /package/src/assets/{images → img}/no_image.png +0 -0
- /package/src/assets/{images → img}/no_image_user.png +0 -0
- /package/src/assets/{images → img}/pin.svg +0 -0
- /package/src/assets/{images → img}/pinned.svg +0 -0
- /package/src/assets/{images → img}/priority_icons/high.svg +0 -0
- /package/src/assets/{images → img}/priority_icons/high_v2.svg +0 -0
- /package/src/assets/{images → img}/priority_icons/low.svg +0 -0
- /package/src/assets/{images → img}/priority_icons/low_v2.svg +0 -0
- /package/src/assets/{images → img}/priority_icons/medium.svg +0 -0
- /package/src/assets/{images → img}/priority_icons/medium_v2.svg +0 -0
- /package/src/assets/{images → img}/priority_icons/urgent.svg +0 -0
- /package/src/assets/{images → img}/priority_icons/urgent_v2.svg +0 -0
- /package/src/assets/{images → img}/teammate-status/avaible.svg +0 -0
- /package/src/assets/{images → img}/teammate-status/inactive.svg +0 -0
- /package/src/assets/{images → img}/teammate-status/unavaible.svg +0 -0
- /package/src/assets/{images → img}/whatsapp_background.png +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -8,31 +8,8 @@
|
|
|
8
8
|
### **Copyrigth**:
|
|
9
9
|
*Tiledesk SRL*
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- **bug-fixed**: Scrolling to the last message when opening a conversation
|
|
14
|
-
- **bug-fixed**: Loading in the conversation list disabled when removing the last conversation
|
|
15
|
-
|
|
16
|
-
# 3.4.27-rc6
|
|
17
|
-
- **bug-fixed**: user for dashboard app is incorrect
|
|
18
|
-
|
|
19
|
-
# 3.4.27-rc5
|
|
20
|
-
- **added**: managed roles in sidebar e navbar
|
|
21
|
-
- **bug-fixed**: projectId and supportMode url is not saved in localstorage
|
|
22
|
-
|
|
23
|
-
# 3.4.27-rc4
|
|
24
|
-
- **bug-fixed**: extractUrls function is not able to detect url start with www or without https/http
|
|
25
|
-
- **bug-fixed**: if message is sent with keydown, error on domain check is not showed
|
|
26
|
-
|
|
27
|
-
# 3.4.27-rc3
|
|
28
|
-
- **bug-fixed**: cannot set user availability if supportMode is enabled and tiledesk_projectID url params is set
|
|
29
|
-
|
|
30
|
-
# 3.4.27-rc2
|
|
31
|
-
- **bug-fixed**: cannede responses role
|
|
32
|
-
|
|
33
|
-
# 3.4.27-rc1
|
|
34
|
-
- **added**: managed canned responses with roles
|
|
35
|
-
- **changed**: name in info mesage
|
|
11
|
+
# 3.4.27 in PROD
|
|
12
|
+
- **bug-fixed**: cannot find route if userFullname contains /
|
|
36
13
|
|
|
37
14
|
# 3.4.26 in PROD
|
|
38
15
|
|
|
@@ -42,7 +19,6 @@
|
|
|
42
19
|
# 3.4.26-rc1
|
|
43
20
|
- **added**: tiledesk_projectID query param to manage user status
|
|
44
21
|
- **added**: token to managane ticket feature
|
|
45
|
-
- **added**: getOsCode login into utils.ts
|
|
46
22
|
|
|
47
23
|
# 3.4.25 in PROD
|
|
48
24
|
- **changed**: pipe marked to support malicious text input
|
|
@@ -65,24 +41,6 @@
|
|
|
65
41
|
# 3.4.22 in PROD
|
|
66
42
|
- **added**: managed allowed_upload_extentions from project settings
|
|
67
43
|
|
|
68
|
-
# 3.4.21-rc6
|
|
69
|
-
- **added**: managed allowed_upload_extentions from project settings
|
|
70
|
-
|
|
71
|
-
# 3.4.21-rc5
|
|
72
|
-
- **added**: setConversation as read when agent click on it
|
|
73
|
-
|
|
74
|
-
# 3.4.21-rc4
|
|
75
|
-
- **added**: ability to init and decrement new conversation count badge
|
|
76
|
-
|
|
77
|
-
# 3.4.21-rc3
|
|
78
|
-
- **changed**: badge notification for agentDesktop
|
|
79
|
-
|
|
80
|
-
# 3.4.21-rc2
|
|
81
|
-
- **added**: count in newConversation handler event
|
|
82
|
-
|
|
83
|
-
# 3.4.21-rc1
|
|
84
|
-
- **added**: implement badge notification for agentDesktop sw when new conversation is assigned to logged agent
|
|
85
|
-
|
|
86
44
|
# 3.4.21 in PROD
|
|
87
45
|
|
|
88
46
|
# 3.4.20 in PROD
|
|
@@ -96,8 +54,8 @@
|
|
|
96
54
|
- **bug-fixed**: minor fix on ion-texarea element with allowed url domain
|
|
97
55
|
|
|
98
56
|
# 3.4.19-rc1
|
|
99
|
-
-
|
|
100
|
-
-
|
|
57
|
+
- added: ability to check for if emoji is allowd to be sent in message textarea
|
|
58
|
+
- added: ability to check for if url domain is allowd to be sent in message textarea
|
|
101
59
|
|
|
102
60
|
# 3.4.18 in PROD
|
|
103
61
|
|
package/package.json
CHANGED
package/src/app/app.component.ts
CHANGED
|
@@ -44,8 +44,6 @@ import { conversationToMessage } from 'src/chat21-core/utils/utils-message';
|
|
|
44
44
|
import { ProjectService } from './services/projects/project.service';
|
|
45
45
|
import { ContactsService } from './services/contacts/contacts.service';
|
|
46
46
|
import { TiledeskService } from './services/tiledesk/tiledesk.service';
|
|
47
|
-
import { Project } from 'src/chat21-core/models/projects';
|
|
48
|
-
import { ProjectUsersService } from './services/project_users/project-users.service';
|
|
49
47
|
|
|
50
48
|
@Component({
|
|
51
49
|
selector: 'app-root',
|
|
@@ -144,7 +142,6 @@ export class AppComponent implements OnInit {
|
|
|
144
142
|
/**TILEDESK SERVICES */
|
|
145
143
|
private tiledeskService: TiledeskService,
|
|
146
144
|
private projectService: ProjectService,
|
|
147
|
-
private projectUsersService: ProjectUsersService,
|
|
148
145
|
private contactsService: ContactsService
|
|
149
146
|
) {
|
|
150
147
|
|
|
@@ -171,7 +168,6 @@ export class AppComponent implements OnInit {
|
|
|
171
168
|
}, { capture: true });
|
|
172
169
|
}
|
|
173
170
|
|
|
174
|
-
|
|
175
171
|
listenChatAlreadyOpenWithoutParamsInMobileMode() {
|
|
176
172
|
this.events.subscribe('noparams:mobile', (isAlreadyOpenInMobileMode) => {
|
|
177
173
|
// console.log('[APP-COMP] Chat is Already Open In Mobile Mode ', isAlreadyOpenInMobileMode)
|
|
@@ -300,7 +296,6 @@ export class AppComponent implements OnInit {
|
|
|
300
296
|
this.zone = new NgZone({}); // a cosa serve?
|
|
301
297
|
|
|
302
298
|
this.SUPPORT_MODE = this.g.supportMode
|
|
303
|
-
this.logger.info('[APP-COMP] this.SUPPORT_MODE', this.SUPPORT_MODE)
|
|
304
299
|
}
|
|
305
300
|
|
|
306
301
|
});
|
|
@@ -337,7 +332,7 @@ export class AppComponent implements OnInit {
|
|
|
337
332
|
|
|
338
333
|
listenToPostMsgs() {
|
|
339
334
|
window.addEventListener("message", (event) => {
|
|
340
|
-
|
|
335
|
+
this.logger.log("[APP-COMP] message event ", event);
|
|
341
336
|
|
|
342
337
|
if (event && event.data && event.data.action && event.data.parameter) {
|
|
343
338
|
if (event.data.action === 'openJoinConversationModal') {
|
|
@@ -869,8 +864,7 @@ export class AppComponent implements OnInit {
|
|
|
869
864
|
// console.log('[APP-COMP] PLATFORM', PLATFORM_MOBILE, 'route.snapshot', this.route.snapshot);
|
|
870
865
|
if (!IDConv) {
|
|
871
866
|
this.logger.log('[APP-COMP] navigateByUrl -- conversations-list');
|
|
872
|
-
|
|
873
|
-
this.router.navigateByUrl('conversations-list' + queryString);
|
|
867
|
+
this.router.navigateByUrl('conversations-list')
|
|
874
868
|
}
|
|
875
869
|
// this.router.navigateByUrl(pageUrl);
|
|
876
870
|
// this.navService.setRoot(ConversationListPage, {});
|
|
@@ -892,7 +886,7 @@ export class AppComponent implements OnInit {
|
|
|
892
886
|
|
|
893
887
|
let pageUrl = 'conversation-detail/'
|
|
894
888
|
if (IDConv && FullNameConv) {
|
|
895
|
-
pageUrl += IDConv + '/' + FullNameConv + '/' + Convtype
|
|
889
|
+
pageUrl += IDConv + '/' + encodeURIComponent(FullNameConv) + '/' + Convtype
|
|
896
890
|
}
|
|
897
891
|
|
|
898
892
|
const queryParams = this.route.snapshot.queryParams;
|
|
@@ -900,7 +894,7 @@ export class AppComponent implements OnInit {
|
|
|
900
894
|
pageUrl += queryString ? `?${queryString}` : '';
|
|
901
895
|
|
|
902
896
|
// replace(/\(/g, '%28').replace(/\)/g, '%29') -> used for the encoder of any round brackets
|
|
903
|
-
this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29')
|
|
897
|
+
this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29'));
|
|
904
898
|
|
|
905
899
|
|
|
906
900
|
// const DASHBOARD_URL = this.appConfigProvider.getConfig().DASHBOARD_URL;
|
|
@@ -1121,7 +1115,6 @@ export class AppComponent implements OnInit {
|
|
|
1121
1115
|
if (conversation && conversation.is_new === true && this.isInitialized) {
|
|
1122
1116
|
this.manageTabNotification('conv_added', conversation.sound)
|
|
1123
1117
|
this.manageEventNewConversation(conversation)
|
|
1124
|
-
this.setNotification();
|
|
1125
1118
|
}
|
|
1126
1119
|
if(conversation) this.updateConversationsOnStorage()
|
|
1127
1120
|
});
|
|
@@ -1176,7 +1169,7 @@ export class AppComponent implements OnInit {
|
|
|
1176
1169
|
// if (supportmode === true) {
|
|
1177
1170
|
// this.connetWebsocket() // moved in the comp project-item
|
|
1178
1171
|
// }
|
|
1179
|
-
|
|
1172
|
+
|
|
1180
1173
|
const currentUser = this.tiledeskAuthService.getCurrentUser();
|
|
1181
1174
|
this.setLanguage(currentUser);
|
|
1182
1175
|
// this.logger.printDebug('APP-COMP - goOnLine****', currentUser);
|
|
@@ -1186,18 +1179,17 @@ export class AppComponent implements OnInit {
|
|
|
1186
1179
|
|
|
1187
1180
|
this.tiledeskService.initialize(serverBaseURL)
|
|
1188
1181
|
this.projectService.initialize(serverBaseURL)
|
|
1189
|
-
this.projectUsersService.initialize(serverBaseURL)
|
|
1190
1182
|
this.contactsService.initialize(serverBaseURL)
|
|
1191
|
-
// this.chatManager.startApp();
|
|
1192
1183
|
|
|
1193
1184
|
|
|
1194
|
-
|
|
1195
|
-
this.
|
|
1185
|
+
this.events.publish('go:online', true);
|
|
1186
|
+
// this.chatManager.startApp();
|
|
1196
1187
|
|
|
1197
1188
|
// ----------------------------------------------
|
|
1198
1189
|
// PUSH NOTIFICATIONS
|
|
1199
1190
|
// ----------------------------------------------
|
|
1200
1191
|
const pushEngine = this.appConfigProvider.getConfig().pushEngine
|
|
1192
|
+
|
|
1201
1193
|
if (currentUser) {
|
|
1202
1194
|
if (pushEngine && pushEngine !== 'none') {
|
|
1203
1195
|
this.notificationsService.getNotificationPermissionAndSaveToken(currentUser.uid);
|
|
@@ -1219,24 +1211,6 @@ export class AppComponent implements OnInit {
|
|
|
1219
1211
|
} catch (err) {
|
|
1220
1212
|
this.logger.error('[APP-COMP] -> error:', err);
|
|
1221
1213
|
}
|
|
1222
|
-
|
|
1223
|
-
// ----------------------------------------------
|
|
1224
|
-
// LAST PROJECT FROM URL
|
|
1225
|
-
// ----------------------------------------------
|
|
1226
|
-
if(this.g.projectID){
|
|
1227
|
-
this.projectService.getProjects().subscribe({ next: (projects: Project[]) => {
|
|
1228
|
-
const project = projects.find(prjct => prjct.id_project._id === this.g.projectID)
|
|
1229
|
-
if(project){
|
|
1230
|
-
this.logger.log('[APP-COMP] - GET PROJECT - project found with this.projectID', project);
|
|
1231
|
-
localStorage.setItem('last_project', JSON.stringify(project))
|
|
1232
|
-
this.events.publish('storage:last_project', project)
|
|
1233
|
-
}
|
|
1234
|
-
}, error: (error) => {
|
|
1235
|
-
this.logger.log('[APP-COMP] - GET PROJECT - project NOT found with this.projectID', this.g.projectID, error);
|
|
1236
|
-
}, complete: () => {
|
|
1237
|
-
|
|
1238
|
-
}});
|
|
1239
|
-
}
|
|
1240
1214
|
}
|
|
1241
1215
|
|
|
1242
1216
|
|
|
@@ -1282,21 +1256,6 @@ export class AppComponent implements OnInit {
|
|
|
1282
1256
|
myWindow.focus();
|
|
1283
1257
|
}
|
|
1284
1258
|
|
|
1285
|
-
connetWebsocket(tiledeskToken) {
|
|
1286
|
-
|
|
1287
|
-
this.logger.log('[WEBSOCKET-JS] connetWebsocket called in [PROJECT-ITEM] tiledeskToken ', tiledeskToken)
|
|
1288
|
-
const appconfig = this.appConfigProvider.getConfig();
|
|
1289
|
-
this.logger.log('[WEBSOCKET-JS] connetWebsocket called in [PROJECT-ITEM] wsUrl ', appconfig.wsUrl)
|
|
1290
|
-
const WS_URL = appconfig.wsUrl + '?token=' + tiledeskToken
|
|
1291
|
-
this.logger.log('[WEBSOCKET-JS] connetWebsocket called in [PROJECT-ITEM] wsUrl ', WS_URL)
|
|
1292
|
-
this.webSocketJs.init(
|
|
1293
|
-
WS_URL,
|
|
1294
|
-
undefined,
|
|
1295
|
-
undefined,
|
|
1296
|
-
undefined
|
|
1297
|
-
);
|
|
1298
|
-
}
|
|
1299
|
-
|
|
1300
1259
|
|
|
1301
1260
|
webSocketClose() {
|
|
1302
1261
|
this.logger.log('[APP-COMP] - GO-OFFLINE - webSocketClose');
|
|
@@ -1345,7 +1304,7 @@ export class AppComponent implements OnInit {
|
|
|
1345
1304
|
subscribeChangedConversationSelected = (user: UserModel, type: string) => {
|
|
1346
1305
|
this.logger.log('[APP-COMP] subscribeUidConvSelectedChanged navigateByUrl', user, type);
|
|
1347
1306
|
// this.router.navigateByUrl('conversation-detail/' + user.uid + '?conversationWithFullname=' + user.fullname);
|
|
1348
|
-
this.router.navigateByUrl('conversation-detail/' + user.uid + '/' + user.fullname + '/' + type);
|
|
1307
|
+
this.router.navigateByUrl('conversation-detail/' + user.uid + '/' + encodeURIComponent(user.fullname) + '/' + type);
|
|
1349
1308
|
}
|
|
1350
1309
|
|
|
1351
1310
|
subscribeProfileInfoButtonLogOut = (hasClickedLogout) => {
|
|
@@ -1393,10 +1352,7 @@ export class AppComponent implements OnInit {
|
|
|
1393
1352
|
|
|
1394
1353
|
subscribeConversationSelected= (conversation: ConversationModel) => {
|
|
1395
1354
|
if(conversation && conversation.is_new){
|
|
1396
|
-
this.audio_NewConv.pause()
|
|
1397
|
-
this.conversationsHandlerService.setConversationRead(conversation.uid)
|
|
1398
|
-
//UPDATE NOTIFICATION FOR NEW CONVERSATION COUNT
|
|
1399
|
-
this.setNotification();
|
|
1355
|
+
this.audio_NewConv.pause()
|
|
1400
1356
|
}
|
|
1401
1357
|
}
|
|
1402
1358
|
|
|
@@ -1472,9 +1428,6 @@ export class AppComponent implements OnInit {
|
|
|
1472
1428
|
this.logger.debug('[APP-COMP]-CONVS - INIT CONV CONVS 2', conversations)
|
|
1473
1429
|
this.events.publish('appcompSubscribeToConvs:loadingIsActive', false);
|
|
1474
1430
|
}
|
|
1475
|
-
|
|
1476
|
-
//INIT NOTIFICATION FOR NEW CONVERSATION COUNT
|
|
1477
|
-
this.setNotification();
|
|
1478
1431
|
});
|
|
1479
1432
|
|
|
1480
1433
|
}
|
|
@@ -1523,10 +1476,10 @@ export class AppComponent implements OnInit {
|
|
|
1523
1476
|
let Convtype = 'active'
|
|
1524
1477
|
|
|
1525
1478
|
if (IDConv && FullNameConv) {
|
|
1526
|
-
pageUrl += IDConv + '/' + FullNameConv + '/' + Convtype
|
|
1479
|
+
pageUrl += IDConv + '/' + encodeURIComponent(FullNameConv) + '/' + Convtype
|
|
1527
1480
|
}
|
|
1528
1481
|
// replace(/\(/g, '%28').replace(/\)/g, '%29') -> used for the encoder of any round brackets
|
|
1529
|
-
this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29')
|
|
1482
|
+
this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29'));
|
|
1530
1483
|
} else {
|
|
1531
1484
|
console.log("FCM: Received in foreground", JSON.stringify(data));
|
|
1532
1485
|
// let IDConv = data.recipient
|
|
@@ -1537,7 +1490,7 @@ export class AppComponent implements OnInit {
|
|
|
1537
1490
|
// pageUrl += IDConv + '/' + FullNameConv + '/' + Convtype
|
|
1538
1491
|
// }
|
|
1539
1492
|
// // replace(/\(/g, '%28').replace(/\)/g, '%29') -> used for the encoder of any round brackets
|
|
1540
|
-
// this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29')
|
|
1493
|
+
// this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29'));
|
|
1541
1494
|
};
|
|
1542
1495
|
});
|
|
1543
1496
|
}
|
|
@@ -1691,14 +1644,6 @@ export class AppComponent implements OnInit {
|
|
|
1691
1644
|
this.triggerEvents.triggerOnNewConversationInit(conversation)
|
|
1692
1645
|
}
|
|
1693
1646
|
|
|
1694
|
-
private setNotification() {
|
|
1695
|
-
this.logger.log('[APP-COMP] setNotification for NEW CONVERSATION');
|
|
1696
|
-
if(window['AGENTDESKTOP']){
|
|
1697
|
-
this.logger.log('[APP-COMP] manageNotification AGENTDESKTOP exist', window['AGENTDESKTOP']);
|
|
1698
|
-
window['AGENTDESKTOP']['TAB'].Badge(this.conversationsHandlerService.countIsNew().toString())
|
|
1699
|
-
}
|
|
1700
|
-
}
|
|
1701
|
-
|
|
1702
1647
|
|
|
1703
1648
|
@HostListener('document:visibilitychange', [])
|
|
1704
1649
|
visibilitychange() {
|
package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.scss
CHANGED
|
@@ -205,13 +205,13 @@
|
|
|
205
205
|
// overflow-x: hidden;
|
|
206
206
|
// }
|
|
207
207
|
// .c21-ico-schedule {
|
|
208
|
-
// background-image: url("src/assets/
|
|
208
|
+
// background-image: url("src/assets/img/f21ico-schedule.svg");
|
|
209
209
|
// }
|
|
210
210
|
// .c21-ico-done {
|
|
211
|
-
// background-image: url("src/assets/
|
|
211
|
+
// background-image: url("src/assets/img/f21ico-done.svg");
|
|
212
212
|
// }
|
|
213
213
|
// .c21-ico-done_all {
|
|
214
|
-
// background-image: url("src/assets/
|
|
214
|
+
// background-image: url("src/assets/img/f21ico-done_all.svg");
|
|
215
215
|
// }
|
|
216
216
|
// }
|
|
217
217
|
|
package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts
CHANGED
|
@@ -58,7 +58,7 @@ export class ConversationContentComponent implements OnInit {
|
|
|
58
58
|
MESSAGE_TYPE_OTHERS = MESSAGE_TYPE_OTHERS;
|
|
59
59
|
// ========== end:: check message type functions ======= //
|
|
60
60
|
|
|
61
|
-
urlBOTImage = 'https://s3.eu-west-1.amazonaws.com/tiledesk-widget/dev/2.0.4-beta.7/assets/
|
|
61
|
+
urlBOTImage = 'https://s3.eu-west-1.amazonaws.com/tiledesk-widget/dev/2.0.4-beta.7/assets/img/avatar_bot_tiledesk.svg'
|
|
62
62
|
uploadProgress: number;
|
|
63
63
|
showUploadProgress: boolean = false;
|
|
64
64
|
fileType: string;
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
<ng-container *ngIf="isCopilotEnabled">
|
|
185
185
|
<ion-button shape="round" size="small" class="btn-info-msg btn-copilot" ion-button fill="clear"
|
|
186
186
|
(click)="onClickOptionsCopilot(message, i)">
|
|
187
|
-
<ion-icon id="copilot" src="assets/
|
|
187
|
+
<ion-icon id="copilot" src="assets/img/icons/copilot.svg"></ion-icon>
|
|
188
188
|
</ion-button>
|
|
189
189
|
</ng-container>
|
|
190
190
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div class="c21-icon-avatar">
|
|
2
2
|
<div class="c21-avatar-image profile_image">
|
|
3
|
-
<!-- <img src="getUrlImgProfile(message.sender) {{getUrlImgProfile(message.sender)}}" onError="this.src = 'https://s3.eu-west-1.amazonaws.com/tiledesk-widget/v2/assets/
|
|
3
|
+
<!-- <img src="getUrlImgProfile(message.sender) {{getUrlImgProfile(message.sender)}}" onError="this.src = 'https://s3.eu-west-1.amazonaws.com/tiledesk-widget/v2/assets/img/line_avatar_male_tiledesk.svg'" /> -->
|
|
4
4
|
<!-- <img [src]="url" (error)="onBotImgError($event)" /> -->
|
|
5
5
|
<img *ngIf="senderID?.indexOf('bot_') !== -1 || senderFullname === 'Bot'" [src]="url" (error)="onBotImgError($event)" (load)="onLoadedBot($event)"/>
|
|
6
6
|
<!-- is a HUMAN -->
|
|
@@ -17,18 +17,18 @@ export class AvatarComponent implements OnInit {
|
|
|
17
17
|
if(this.senderID){
|
|
18
18
|
this.url = this.imageRepoService.getImagePhotoUrl(this.senderID)
|
|
19
19
|
if(!this.url && (this.senderID.indexOf('bot_') !== -1 || this.senderFullname === 'Bot')){
|
|
20
|
-
this.url = this.baseLocation +'/assets/
|
|
20
|
+
this.url = this.baseLocation +'/assets/img/avatar_bot_tiledesk.svg'
|
|
21
21
|
}else if(!this.url && this.senderID.indexOf('bot_') == -1){
|
|
22
|
-
this.url = this.baseLocation +'/assets/
|
|
22
|
+
this.url = this.baseLocation +'/assets/img/light_avatar_placeholder.svg'
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
onBotImgError(event){
|
|
28
|
-
event.target.src = this.baseLocation +'/assets/
|
|
28
|
+
event.target.src = this.baseLocation +'/assets/img/avatar_bot_tiledesk.svg'
|
|
29
29
|
}
|
|
30
30
|
onHumanImgError(event) {
|
|
31
|
-
event.target.src = this.baseLocation + "/assets/
|
|
31
|
+
event.target.src = this.baseLocation + "/assets/img/light_avatar_placeholder.svg"
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
onLoadedBot(event){
|
package/src/app/chatlib/conversation-detail/message/return-receipt/return-receipt.component.scss
CHANGED
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
.c21-ico-schedule {
|
|
19
|
-
background-image: url("/src/assets/
|
|
19
|
+
background-image: url("/src/assets/img/f21ico-schedule.svg");
|
|
20
20
|
}
|
|
21
21
|
.c21-ico-done {
|
|
22
|
-
background-image: url("/src/assets/
|
|
22
|
+
background-image: url("/src/assets/img/f21ico-done.svg");
|
|
23
23
|
}
|
|
24
24
|
.c21-ico-done_all {
|
|
25
|
-
background-image: url("/src/assets/
|
|
25
|
+
background-image: url("/src/assets/img/f21ico-done_all.svg");
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -96,23 +96,23 @@
|
|
|
96
96
|
<div class="conversation_project truncate">
|
|
97
97
|
<!-- DIRECT CONV -->
|
|
98
98
|
<div *ngIf="conversation.channel_type === CHANNEL_TYPE.DIRECT">
|
|
99
|
-
<img class="channel-icon" src="assets/
|
|
99
|
+
<img class="channel-icon" src="assets/img/channel_icons/direct.svg">
|
|
100
100
|
<span class="truncate">{{translationsMap.get('DIRECT_CHAT')}}</span>
|
|
101
101
|
</div>
|
|
102
102
|
<!-- GROUP CONV -->
|
|
103
103
|
<div *ngIf="conversation.uid.startsWith(CHANNEL_TYPE.GROUP)">
|
|
104
|
-
<img class="channel-icon" src="assets/
|
|
104
|
+
<img class="channel-icon" src="assets/img/channel_icons/group.svg">
|
|
105
105
|
<span class="truncate">{{translationsMap.get('GROUP_CHAT')}}</span>
|
|
106
106
|
</div>
|
|
107
107
|
<!-- SUPPORT-GROUP CONV -->
|
|
108
108
|
<div *ngIf="conversation.uid.startsWith(CHANNEL_TYPE.SUPPORT_GROUP) && !IS_ON_MOBILE_DEVICE">
|
|
109
|
-
<img class="channel-icon" src="assets/
|
|
110
|
-
<img class="channel-icon" src="assets/
|
|
111
|
-
<img class="channel-icon" src="assets/
|
|
112
|
-
<img class="channel-icon" src="assets/
|
|
113
|
-
<img class="channel-icon" src="assets/
|
|
114
|
-
<img class="channel-icon" src="assets/
|
|
115
|
-
<img class="channel-icon" src="assets/
|
|
109
|
+
<img class="channel-icon" src="assets/img/channel_icons/chat21.svg" *ngIf="conversation?.attributes && ( (conversation?.attributes?.request_channel && conversation?.attributes?.request_channel === CHANNEL_TYPE.CHAT21) || !conversation?.attributes?.request_channel) " >
|
|
110
|
+
<img class="channel-icon" src="assets/img/channel_icons/email-logo.svg" *ngIf="conversation?.attributes && conversation?.attributes?.request_channel && conversation?.attributes?.request_channel === CHANNEL_TYPE.EMAIL" >
|
|
111
|
+
<img class="channel-icon" src="assets/img/channel_icons/form-logo_v2.svg" *ngIf="conversation?.attributes && conversation?.attributes?.request_channel && conversation?.attributes?.request_channel === CHANNEL_TYPE.FORM" >
|
|
112
|
+
<img class="channel-icon" src="assets/img/channel_icons/messenger-logo.svg" *ngIf="conversation?.attributes && conversation?.attributes?.request_channel && conversation?.attributes?.request_channel === CHANNEL_TYPE.MESSENGER" >
|
|
113
|
+
<img class="channel-icon" src="assets/img/channel_icons/whatsapp-logo.svg" *ngIf="conversation?.attributes && conversation?.attributes?.request_channel && conversation?.attributes?.request_channel === CHANNEL_TYPE.WHATSAPP" >
|
|
114
|
+
<img class="channel-icon" src="assets/img/channel_icons/telegram-logo.svg" *ngIf="conversation?.attributes && conversation?.attributes?.request_channel && conversation?.attributes?.request_channel === CHANNEL_TYPE.TELEGRAM" >
|
|
115
|
+
<img class="channel-icon" src="assets/img/channel_icons/voice.svg" *ngIf="conversation?.attributes && conversation?.attributes?.request_channel && conversation?.attributes?.request_channel.startsWith(CHANNEL_TYPE.VOICE)" >
|
|
116
116
|
<span *ngIf="conversation?.attributes?.project_name" class="truncate">{{conversation?.attributes?.project_name}}</span>
|
|
117
117
|
<span *ngIf="!conversation?.attributes?.project_name" class="truncate">{{conversation?.attributes?.projectId}}</span>
|
|
118
118
|
</div>
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<ion-label>{{translationsMap?.get('AddAsCannedResponse')}}</ion-label>
|
|
10
10
|
</ion-item>
|
|
11
11
|
<ion-item button="true" *ngIf="logLevel >= LogLevel.DEBUG" (click)="onClickOption('jsonInfo')">
|
|
12
|
-
<ion-icon src="assets/
|
|
12
|
+
<ion-icon src="assets/img/json-file.svg" slot="start"></ion-icon>
|
|
13
13
|
<ion-label>{{translationsMap?.get('JSON_RESPONSE')}}</ion-label>
|
|
14
14
|
</ion-item>
|
|
15
15
|
</ion-list>
|
|
@@ -1,30 +1,20 @@
|
|
|
1
1
|
<div>
|
|
2
|
-
<div class="canned-list" *ngIf="
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
<ion-input [class.readonly]="canned?.disabled" [readonly]="canned?.disabled" type="text" [(ngModel)]="canned.text" class="text truncate"></ion-input>
|
|
11
|
-
</div>
|
|
12
|
-
<!-- <ion-icon class="canned-item-icon" name="pin" src="assets/images/pin.svg" slot=end *ngIf="canned.pinned" (click)="onPinCanned(canned, $event)"></ion-icon>
|
|
13
|
-
<ion-icon class="canned-item-icon" name="pin" src="assets/images/pinned.svg" slot=end (click)="onUnPinCanned(canned, $event)"></ion-icon> -->
|
|
14
|
-
<ion-icon class="canned-item-icon" name="checkmark-sharp" slot=end *ngIf="(canned.createdBy === loggedUser.uid && !canned.disabled) && roles[PERMISSIONS.CANNED_RESPONSES_UPDATE]" (click)="onConfirmEditCanned(canned, $event)"></ion-icon>
|
|
15
|
-
<ion-icon class="canned-item-icon" name="pencil-sharp" slot=end *ngIf="(canned.createdBy === loggedUser.uid && canned.disabled) && roles[PERMISSIONS.CANNED_RESPONSES_UPDATE]" (click)="onEditCanned(canned, $event)"></ion-icon>
|
|
16
|
-
<ion-icon class="canned-item-icon" name="trash-bin-outline" slot=end *ngIf="(canned.createdBy === loggedUser.uid) && roles[PERMISSIONS.CANNED_RESPONSES_DELETE]" (click)="onDeleteCanned(canned, $event)"></ion-icon>
|
|
17
|
-
</ion-item>
|
|
18
|
-
</span>
|
|
19
|
-
<div class="no-data" *ngIf="tagsCannedFilter.length === 0">
|
|
20
|
-
<div class="container">
|
|
21
|
-
<ion-item button="false" lines="none" class="canned-item no-ripple border">
|
|
22
|
-
<ion-icon name="cloud-offline" slot="start"></ion-icon>
|
|
23
|
-
<ion-label>{{translationMap.get('THERE_ARE_NO_CANNED_RESPONSES_AVAILABLE')}}</ion-label>
|
|
24
|
-
</ion-item>
|
|
2
|
+
<div class="canned-list" *ngIf="tagsCannedFilter.length > 0">
|
|
3
|
+
<ion-item button="true" [ngClass]="{'is_active_item': i == arrowkeyLocation}" lines="none"
|
|
4
|
+
class="canned-item no-ripple border" id="{{'canned-item_'+ i }}"
|
|
5
|
+
*ngFor="let canned of tagsCannedFilter; let i = index;"
|
|
6
|
+
(click)="onClickCannedFN(canned, $event)">
|
|
7
|
+
<div class="cannedContent">
|
|
8
|
+
<ion-input [class.readonly]="canned?.disabled" [readonly]="canned?.disabled" type="text" [(ngModel)]="canned.title" class="title" id="{{'titleCanned_'+canned._id}}" #title></ion-input>
|
|
9
|
+
<ion-input [class.readonly]="canned?.disabled" [readonly]="canned?.disabled" type="text" [(ngModel)]="canned.text" class="text truncate"></ion-input>
|
|
25
10
|
</div>
|
|
26
|
-
|
|
27
|
-
|
|
11
|
+
<!-- <ion-icon class="canned-item-icon" name="pin" src="assets/img/pin.svg" slot=end *ngIf="canned.pinned" (click)="onPinCanned(canned, $event)"></ion-icon>
|
|
12
|
+
<ion-icon class="canned-item-icon" name="pin" src="assets/img/pinned.svg" slot=end (click)="onUnPinCanned(canned, $event)"></ion-icon> -->
|
|
13
|
+
<ion-icon class="canned-item-icon" name="checkmark-sharp" slot=end *ngIf="canned.createdBy === loggedUser.uid && !canned.disabled" (click)="onConfirmEditCanned(canned, $event)"></ion-icon>
|
|
14
|
+
<ion-icon class="canned-item-icon" name="pencil-sharp" slot=end *ngIf="canned.createdBy === loggedUser.uid && canned.disabled" (click)="onEditCanned(canned, $event)"></ion-icon>
|
|
15
|
+
<ion-icon class="canned-item-icon" name="trash-bin-outline" slot=end *ngIf="canned.createdBy === loggedUser.uid" (click)="onDeleteCanned(canned, $event)"></ion-icon>
|
|
16
|
+
</ion-item>
|
|
17
|
+
<ion-item class="canned-item add-canned-response-wpr" button="true" lines="none" (click)="onClickAddCannedResponseFN()">
|
|
28
18
|
<ion-icon class="add-canned-response-icon" name="flash-outline"></ion-icon>
|
|
29
19
|
<span class="add-canned-response-add-icon">+</span>
|
|
30
20
|
<label class="add-canned-response-label" >{{translationMap?.get('AddNewCannedResponse')}}</label>
|
|
@@ -43,5 +33,12 @@
|
|
|
43
33
|
<div class="label">{{translationMap.get('LABEL_LOADING')}}</div>
|
|
44
34
|
</div>
|
|
45
35
|
</div>
|
|
46
|
-
|
|
36
|
+
<div class="no-data" *ngIf="tagsCannedFilter.length === 0 && !showLoading">
|
|
37
|
+
<div class="container">
|
|
38
|
+
<ion-item button="false" lines="none" class="canned-item no-ripple border">
|
|
39
|
+
<ion-icon name="cloud-offline" slot="start"></ion-icon>
|
|
40
|
+
<ion-label>{{translationMap.get('THERE_ARE_NO_CANNED_RESPONSES_AVAILABLE')}}</ion-label>
|
|
41
|
+
</ion-item>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
47
44
|
</div>
|
|
@@ -9,7 +9,6 @@ import { TiledeskAuthService } from 'src/chat21-core/providers/tiledesk/tiledesk
|
|
|
9
9
|
import { compareValues, htmlEntities } from 'src/chat21-core/utils/utils';
|
|
10
10
|
import { getProjectIdSelectedConversation } from 'src/chat21-core/utils/utils-message';
|
|
11
11
|
import { PLAN_NAME } from 'src/chat21-core/utils/constants';
|
|
12
|
-
import { PERMISSIONS } from 'src/app/utils/permissions.constants';
|
|
13
12
|
|
|
14
13
|
@Component({
|
|
15
14
|
selector: 'app-canned-response',
|
|
@@ -22,7 +21,7 @@ export class CannedResponseComponent implements OnInit {
|
|
|
22
21
|
@Input() conversationWith: string;
|
|
23
22
|
@Input() conversationWithFullname: string;
|
|
24
23
|
@Input() currentString: string;
|
|
25
|
-
@Input()
|
|
24
|
+
@Input() canShowCanned: boolean = true;
|
|
26
25
|
@Input() stylesMap: Map<string, string>;
|
|
27
26
|
@Input() translationMap: Map<string, string>;
|
|
28
27
|
@Output() onLoadedCannedResponses = new EventEmitter<[any]>();
|
|
@@ -37,7 +36,6 @@ export class CannedResponseComponent implements OnInit {
|
|
|
37
36
|
|
|
38
37
|
public arrowkeyLocation = -1
|
|
39
38
|
|
|
40
|
-
PERMISSIONS = PERMISSIONS
|
|
41
39
|
|
|
42
40
|
private logger: LoggerService = LoggerInstance.getInstance();
|
|
43
41
|
constructor(
|
|
@@ -47,13 +47,13 @@
|
|
|
47
47
|
</div>
|
|
48
48
|
<!-- SUPPORT-GROUP CONV -->
|
|
49
49
|
<div *ngIf="conversationUid?.startsWith(CHANNEL_TYPE.SUPPORT_GROUP) && !IS_ON_MOBILE_DEVICE">
|
|
50
|
-
<img class="channel-icon" src="assets/
|
|
51
|
-
<img class="channel-icon" src="assets/
|
|
52
|
-
<img class="channel-icon" src="assets/
|
|
53
|
-
<img class="channel-icon" src="assets/
|
|
54
|
-
<img class="channel-icon" src="assets/
|
|
55
|
-
<img class="channel-icon" src="assets/
|
|
56
|
-
<img class="channel-icon" src="assets/
|
|
50
|
+
<img class="channel-icon" src="assets/img/channel_icons/chat21.svg" *ngIf="( (conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.CHAT21) || !conversationAvatar?.request_channel) " >
|
|
51
|
+
<img class="channel-icon" src="assets/img/channel_icons/email-logo.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.EMAIL" >
|
|
52
|
+
<img class="channel-icon" src="assets/img/channel_icons/form-logo_v2.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.FORM" >
|
|
53
|
+
<img class="channel-icon" src="assets/img/channel_icons/messenger-logo.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.MESSENGER" >
|
|
54
|
+
<img class="channel-icon" src="assets/img/channel_icons/whatsapp-logo.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.WHATSAPP" >
|
|
55
|
+
<img class="channel-icon" src="assets/img/channel_icons/telegram-logo.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.TELEGRAM" >
|
|
56
|
+
<img class="channel-icon" src="assets/img/channel_icons/voice.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel.startsWith(CHANNEL_TYPE.VOICE)" >
|
|
57
57
|
<span *ngIf="conversationAvatar?.project_name" class="truncate">{{conversationAvatar?.project_name}}</span>
|
|
58
58
|
<span *ngIf="!conversationAvatar?.project_name" class="truncate">{{conversationAvatar?.projectId}}</span>
|
|
59
59
|
</div>
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
<!-- COPILOT-OPTION -->
|
|
66
66
|
<div *ngIf="isCopilotEnabled" class="copilot-container" id="copilot">
|
|
67
67
|
<ion-button id="copilot" fill="clear" (click)="onOpenSection('copilot')">
|
|
68
|
-
<ion-icon class="channel-icon" src="assets/
|
|
68
|
+
<ion-icon class="channel-icon" src="assets/img/icons/copilot.svg"></ion-icon>
|
|
69
69
|
{{translationsMap?.get('COPILOT.SOLVE_WITH_AI')}}
|
|
70
70
|
</ion-button>
|
|
71
71
|
</div>
|
package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html
CHANGED
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
<div class="buttons-left">
|
|
58
58
|
|
|
59
59
|
<!-- CANNED RESPONSES -->
|
|
60
|
-
<ng-container *ngIf="areVisibleCAR && supportMode
|
|
60
|
+
<ng-container *ngIf="areVisibleCAR && supportMode">
|
|
61
61
|
<div class="canned-responses-btn-wpr" tooltip="{{translationMap?.get('CANNED_RESPONSES')}}" placement="top">
|
|
62
62
|
<ion-button ion-button fill="clear" class="canned-responses-btn" (click)="openCannedResponses()"
|
|
63
63
|
[disabled]="!conversationWith?.startsWith(CHANNEL_TYPE.SUPPORT_GROUP) || disableTextarea">
|