@chat21/chat21-ionic 3.4.27-rc8 → 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 -49
- package/angular.json +0 -1
- 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 -24
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +0 -30
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +16 -29
- 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 +3 -7
- package/src/app/pages/conversation-detail/conversation-detail.page.scss +1 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +4 -63
- 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 +1 -11
- package/src/assets/i18n/az.json +1 -11
- package/src/assets/i18n/de.json +1 -11
- package/src/assets/i18n/en.json +1 -11
- package/src/assets/i18n/es.json +1 -11
- package/src/assets/i18n/fr.json +1 -11
- package/src/assets/i18n/it.json +3 -13
- package/src/assets/i18n/kk.json +1 -11
- package/src/assets/i18n/pt.json +1 -11
- package/src/assets/i18n/ru.json +1 -11
- package/src/assets/i18n/sr.json +1 -11
- package/src/assets/i18n/sv.json +1 -11
- package/src/assets/i18n/tr.json +1 -11
- package/src/assets/i18n/uk.json +1 -11
- package/src/assets/i18n/uz.json +1 -12
- package/src/chat-config-template.json +0 -1
- package/src/chat-config.json +0 -1
- 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/assets/js/agentDesktop-sdk.js +0 -47
- 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
|
@@ -15,10 +15,7 @@ import { tranlatedLanguage } from '../../../chat21-core/utils/constants';
|
|
|
15
15
|
// utils
|
|
16
16
|
import { avatarPlaceholder, getColorBck } from 'src/chat21-core/utils/utils-user';
|
|
17
17
|
import { BRAND_BASE_INFO, LOGOS_ITEMS } from 'src/app/utils/utils-resources';
|
|
18
|
-
import { getOSCode
|
|
19
|
-
import { PERMISSIONS } from 'src/app/utils/permissions.constants';
|
|
20
|
-
import { ProjectUser } from 'src/chat21-core/models/projectUsers';
|
|
21
|
-
import { ProjectUsersService } from 'src/app/services/project_users/project-users.service';
|
|
18
|
+
import { getOSCode } from 'src/app/utils/utils';
|
|
22
19
|
|
|
23
20
|
@Component({
|
|
24
21
|
selector: 'app-sidebar',
|
|
@@ -34,7 +31,7 @@ export class SidebarComponent implements OnInit {
|
|
|
34
31
|
IS_AVAILABLE: boolean = false;
|
|
35
32
|
IS_INACTIVE: boolean = true;
|
|
36
33
|
IS_BUSY: boolean;
|
|
37
|
-
|
|
34
|
+
isVisibleAPP: boolean;
|
|
38
35
|
isVisibleANA: boolean;
|
|
39
36
|
isVisibleACT: boolean;
|
|
40
37
|
isVisibleMON: boolean;
|
|
@@ -44,10 +41,9 @@ export class SidebarComponent implements OnInit {
|
|
|
44
41
|
project_id: string;
|
|
45
42
|
DASHBOARD_URL: string;
|
|
46
43
|
// HAS_CLICKED_OPEN_USER_DETAIL: boolean = false
|
|
47
|
-
public
|
|
44
|
+
public translationMap: Map<string, string>;
|
|
48
45
|
public_Key: any;
|
|
49
46
|
conversations_lbl: string;
|
|
50
|
-
whatsappbroadcast_lbl: string;
|
|
51
47
|
contacts_lbl: string;
|
|
52
48
|
apps_lbl: string;
|
|
53
49
|
analytics_lbl: string;
|
|
@@ -57,14 +53,19 @@ export class SidebarComponent implements OnInit {
|
|
|
57
53
|
countClickOnOpenUserDetailSidebar: number = 0
|
|
58
54
|
USER_PHOTO_PROFILE_EXIST: boolean;
|
|
59
55
|
currentUser: any;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
56
|
+
dashboard_home_url: string;
|
|
57
|
+
dashboard_knb_url: string;
|
|
58
|
+
dashboard_bots_url: string;
|
|
59
|
+
dashboard_convs_url: string;
|
|
60
|
+
dashboard_contacts_url: string;
|
|
61
|
+
dashboard_app_url: string;
|
|
62
|
+
dashboard_analytics_url: string;
|
|
63
|
+
dashboard_activities_url: string;
|
|
64
|
+
dashboard_history_url: string;
|
|
65
|
+
dashboard_settings_url: string;
|
|
66
|
+
tiledesk_url: string;
|
|
65
67
|
LOGOS_ITEMS = LOGOS_ITEMS;
|
|
66
68
|
BRAND_BASE_INFO = BRAND_BASE_INFO;
|
|
67
|
-
PERMISSIONS = PERMISSIONS;
|
|
68
69
|
constructor(
|
|
69
70
|
public imageRepoService: ImageRepoService,
|
|
70
71
|
public appStorageService: AppStorageService,
|
|
@@ -74,13 +75,12 @@ export class SidebarComponent implements OnInit {
|
|
|
74
75
|
public wsService: WebsocketService,
|
|
75
76
|
public appConfigProvider: AppConfigProvider,
|
|
76
77
|
private translate: TranslateService,
|
|
77
|
-
public projectUsersService: ProjectUsersService,
|
|
78
78
|
public events: EventsService,
|
|
79
79
|
|
|
80
80
|
) { }
|
|
81
81
|
|
|
82
82
|
ngOnInit() {
|
|
83
|
-
this.
|
|
83
|
+
this.tiledesk_url = BRAND_BASE_INFO['COMPANY_SITE_URL'] as string
|
|
84
84
|
|
|
85
85
|
this.DASHBOARD_URL = this.appConfig.getConfig().dashboardUrl + '#/project/';
|
|
86
86
|
this.getStoredProjectAndUserRole()
|
|
@@ -92,36 +92,33 @@ export class SidebarComponent implements OnInit {
|
|
|
92
92
|
|
|
93
93
|
|
|
94
94
|
getStoredProjectAndUserRole() {
|
|
95
|
-
this.events.subscribe('storage:last_project',
|
|
95
|
+
this.events.subscribe('storage:last_project',project =>{
|
|
96
96
|
this.logger.log('[SIDEBAR] stored_project ', project)
|
|
97
97
|
if (project && project !== 'undefined') {
|
|
98
98
|
this.project_id = project.id_project.id
|
|
99
99
|
this.USER_ROLE = project.role;
|
|
100
100
|
this.buildURLs(this.USER_ROLE)
|
|
101
|
-
this.projectUser = await this.projectUsersService.getProjectUserByProjectId(project.id_project.id)
|
|
102
|
-
this.roles = this.checkRoles()
|
|
103
|
-
this.logger.log('[SIDEBAR] roles ', this.roles)
|
|
104
101
|
}
|
|
105
102
|
})
|
|
106
103
|
}
|
|
107
104
|
|
|
108
105
|
buildURLs(USER_ROLE) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
this.
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
106
|
+
this.dashboard_home_url = this.DASHBOARD_URL + this.project_id + '/home'
|
|
107
|
+
this.dashboard_knb_url = this.DASHBOARD_URL + this.project_id + '/knowledge-bases'
|
|
108
|
+
this.dashboard_bots_url = this.DASHBOARD_URL + this.project_id + '/bots'
|
|
109
|
+
this.dashboard_convs_url = this.DASHBOARD_URL + this.project_id + '/wsrequests'
|
|
110
|
+
this.dashboard_contacts_url = this.DASHBOARD_URL + this.project_id + '/contacts'
|
|
111
|
+
this.dashboard_app_url = this.DASHBOARD_URL + this.project_id + '/app-store'
|
|
112
|
+
this.dashboard_analytics_url = this.DASHBOARD_URL + this.project_id + '/analytics'
|
|
113
|
+
this.dashboard_activities_url = this.DASHBOARD_URL + this.project_id + '/activities'
|
|
114
|
+
this.dashboard_history_url = this.DASHBOARD_URL + this.project_id + '/history'
|
|
115
|
+
this.dashboard_settings_url = ''
|
|
116
|
+
if (USER_ROLE !== 'agent') {
|
|
117
|
+
this.dashboard_settings_url = this.DASHBOARD_URL + this.project_id + '/widget-set-up'
|
|
118
|
+
} else if (USER_ROLE === 'agent') {
|
|
119
|
+
this.dashboard_settings_url = this.DASHBOARD_URL + this.project_id + '/cannedresponses'
|
|
120
|
+
}
|
|
121
|
+
this.tiledesk_url = 'https://www.tiledesk.com'
|
|
125
122
|
|
|
126
123
|
}
|
|
127
124
|
|
|
@@ -243,7 +240,6 @@ export class SidebarComponent implements OnInit {
|
|
|
243
240
|
this.logger.error('[SIDEBAR] - ngOnInit - currentUser not found in storage ')
|
|
244
241
|
}
|
|
245
242
|
this.translateLabels()
|
|
246
|
-
this.translations()
|
|
247
243
|
}
|
|
248
244
|
|
|
249
245
|
|
|
@@ -260,7 +256,6 @@ export class SidebarComponent implements OnInit {
|
|
|
260
256
|
|
|
261
257
|
this.translate.get(keys).subscribe((text: string) => {
|
|
262
258
|
this.conversations_lbl = text['Conversations'];
|
|
263
|
-
this.whatsappbroadcast_lbl = text['WhatsAppBroadcasts']
|
|
264
259
|
this.contacts_lbl = text['LABEL_CONTACTS']
|
|
265
260
|
this.apps_lbl = text['Apps']
|
|
266
261
|
this.analytics_lbl = text['Analytics']
|
|
@@ -276,55 +271,13 @@ export class SidebarComponent implements OnInit {
|
|
|
276
271
|
|
|
277
272
|
this.isVisibleANA = getOSCode("ANA", this.public_Key);
|
|
278
273
|
this.isVisibleACT = getOSCode("ACT", this.public_Key);
|
|
274
|
+
this.isVisibleAPP = getOSCode("APP", this.public_Key);
|
|
279
275
|
this.isVisibleMON = getOSCode("MON", this.public_Key);
|
|
280
276
|
this.isVisibleCNT = getOSCode("CNT", this.public_Key);
|
|
281
277
|
this.isVisibleKNB = getOSCode("KNB", this.public_Key);
|
|
282
|
-
|
|
278
|
+
|
|
283
279
|
}
|
|
284
280
|
|
|
285
|
-
|
|
286
|
-
checkRoles(): { [key: string]: boolean } {
|
|
287
|
-
const permissionKeys = [
|
|
288
|
-
'HOME_READ',
|
|
289
|
-
'KB_READ',
|
|
290
|
-
'FLOWS_READ',
|
|
291
|
-
'INBOX_READ',
|
|
292
|
-
'AUTOMATIONSLOG_READ',
|
|
293
|
-
'LEADS_READ',
|
|
294
|
-
'ANALYTICS_READ',
|
|
295
|
-
'ACTIVITIES_READ',
|
|
296
|
-
'HISTORY_READ',
|
|
297
|
-
'PROJECTSETTINGS_GENERAL_READ',
|
|
298
|
-
'PROJECTSETTINGS_DEVELOPER_READ',
|
|
299
|
-
'PROJECTSETTINGS_SMARTASSIGNMENT_READ',
|
|
300
|
-
'PROJECTSETTINGS_NOTIFICATION_READ',
|
|
301
|
-
'PROJECTSETTINGS_SECURITY_READ',
|
|
302
|
-
'PROJECTSETTINGS_BANNED_READ',
|
|
303
|
-
'PROJECTSETTINGS_ADVANCED_READ'
|
|
304
|
-
] as const;
|
|
305
|
-
|
|
306
|
-
const roles: { [key: string]: boolean } = {};
|
|
307
|
-
for (const key of permissionKeys) {
|
|
308
|
-
const permission = PERMISSIONS[key];
|
|
309
|
-
roles[permission] = hasRole(this.projectUser, permission);
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
let settingRoleKEys = [
|
|
314
|
-
'PROJECTSETTINGS_GENERAL_READ',
|
|
315
|
-
'PROJECTSETTINGS_DEVELOPER_READ',
|
|
316
|
-
'PROJECTSETTINGS_SMARTASSIGNMENT_READ',
|
|
317
|
-
'PROJECTSETTINGS_NOTIFICATION_READ',
|
|
318
|
-
'PROJECTSETTINGS_SECURITY_READ',
|
|
319
|
-
'PROJECTSETTINGS_BANNED_READ',
|
|
320
|
-
'PROJECTSETTINGS_ADVANCED_READ'
|
|
321
|
-
] as const;
|
|
322
|
-
roles[PERMISSIONS.SETTINGS_READ] = settingRoleKEys.some(settingKey => roles[PERMISSIONS[settingKey]]);
|
|
323
|
-
|
|
324
|
-
return roles;
|
|
325
|
-
|
|
326
|
-
}
|
|
327
|
-
|
|
328
281
|
listenTocurrentProjectUserUserAvailability$() {
|
|
329
282
|
this.wsService.currentProjectUserAvailability$.subscribe((data) => {
|
|
330
283
|
this.logger.log('[SIDEBAR] - $UBSC TO WS USER AVAILABILITY & BUSY STATUS RES ', data);
|
|
@@ -374,20 +327,92 @@ export class SidebarComponent implements OnInit {
|
|
|
374
327
|
}
|
|
375
328
|
}
|
|
376
329
|
|
|
330
|
+
goToHome() {
|
|
331
|
+
let url = this.DASHBOARD_URL + this.project_id + '/home'
|
|
332
|
+
this.dashboard_home_url = url;
|
|
333
|
+
const myWindow = window.open(url, '_self');
|
|
334
|
+
myWindow.focus();
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
goToBots() {
|
|
338
|
+
let url = this.DASHBOARD_URL + this.project_id + '/bots/my-chatbots/all'
|
|
339
|
+
const myWindow = window.open(url, '_self');
|
|
340
|
+
myWindow.focus();
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
goToConversations() {
|
|
344
|
+
let url = this.DASHBOARD_URL + this.project_id + '/wsrequests'
|
|
345
|
+
const myWindow = window.open(url, '_self');
|
|
346
|
+
myWindow.focus();
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
goToContacts() {
|
|
350
|
+
let url = this.DASHBOARD_URL + this.project_id + '/contacts'
|
|
351
|
+
const myWindow = window.open(url, '_self');
|
|
352
|
+
myWindow.focus();
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
goToAppStore() {
|
|
356
|
+
let url = this.DASHBOARD_URL + this.project_id + '/app-store'
|
|
357
|
+
const myWindow = window.open(url, '_self');
|
|
358
|
+
myWindow.focus();
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
goToAnalytics() {
|
|
362
|
+
let url = this.DASHBOARD_URL + this.project_id + '/analytics'
|
|
363
|
+
const myWindow = window.open(url, '_self');
|
|
364
|
+
myWindow.focus();
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
goToActivities() {
|
|
368
|
+
let url = this.DASHBOARD_URL + this.project_id + '/activities'
|
|
369
|
+
const myWindow = window.open(url, '_self');
|
|
370
|
+
myWindow.focus();
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
goToHistory() {
|
|
374
|
+
let url = this.DASHBOARD_URL + this.project_id + '/history'
|
|
375
|
+
const myWindow = window.open(url, '_self');
|
|
376
|
+
myWindow.focus();
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
goToWidgetSetUpOrToCannedResponses() {
|
|
380
|
+
if (this.USER_ROLE !== 'agent') {
|
|
381
|
+
this.goToWidgetSetUp()
|
|
382
|
+
} else if (this.USER_ROLE === 'agent') {
|
|
383
|
+
this.goToSettings_CannedResponses()
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
goToWidgetSetUp() {
|
|
388
|
+
let url = this.DASHBOARD_URL + this.project_id + '/widget-set-up'
|
|
389
|
+
const myWindow = window.open(url, '_self');
|
|
390
|
+
myWindow.focus();
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
goToSettings_CannedResponses() {
|
|
394
|
+
let url = this.DASHBOARD_URL + this.project_id + '/cannedresponses'
|
|
395
|
+
const myWindow = window.open(url, '_self');
|
|
396
|
+
myWindow.focus();
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
|
|
377
401
|
public translations() {
|
|
378
402
|
const keys = [
|
|
379
|
-
'
|
|
380
|
-
'
|
|
381
|
-
'
|
|
382
|
-
'
|
|
383
|
-
'
|
|
384
|
-
'
|
|
385
|
-
'
|
|
386
|
-
'
|
|
387
|
-
'
|
|
388
|
-
|
|
403
|
+
'LABEL_AVAILABLE',
|
|
404
|
+
'LABEL_NOT_AVAILABLE',
|
|
405
|
+
'LABEL_BUSY',
|
|
406
|
+
'VIEW_ALL_CONVERSATIONS',
|
|
407
|
+
'CONVERSATIONS_IN_QUEUE',
|
|
408
|
+
'CONVERSATION_IN_QUEUE',
|
|
409
|
+
'NO_CONVERSATION_IN_QUEUE',
|
|
410
|
+
'PINNED_PROJECT',
|
|
411
|
+
'CHANGE_PINNED_PROJECT',
|
|
412
|
+
"CHANGE_TO_YOUR_STATUS_TO_AVAILABLE",
|
|
413
|
+
"CHANGE_TO_YOUR_STATUS_TO_UNAVAILABLE"
|
|
389
414
|
];
|
|
390
|
-
this.
|
|
415
|
+
this.translationMap = this.translateService.translateLanguage(keys);
|
|
391
416
|
}
|
|
392
417
|
|
|
393
418
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<!-- (click)="goToUserProfile()" -->
|
|
23
23
|
<div role="button" class="user-details-avatar">
|
|
24
24
|
<img *ngIf="USER_PHOTO_PROFILE_EXIST" class="user-img-in-sidebar-user-details" [src]="photo_profile_URL"
|
|
25
|
-
onerror="this.src='assets/
|
|
25
|
+
onerror="this.src='assets/img/no_image_user.png'" />
|
|
26
26
|
|
|
27
27
|
<div *ngIf="!USER_PHOTO_PROFILE_EXIST" class="user-img-in-sidebar-user-details"
|
|
28
28
|
[ngStyle]="{'background': 'linear-gradient(rgb(255,255,255) -125%,' + user?.fillColour + ')'}">
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
<div class="user-details-role">
|
|
52
52
|
<h3>{{ USER_ROLE_LABEL }} </h3>
|
|
53
53
|
|
|
54
|
-
<div class="user-details-view-profile" (click)="goToUserProfile()">
|
|
54
|
+
<div *ngIf="BRAND_BASE_INFO['DISPLAY_EDIT_PROFILE']" class="user-details-view-profile" (click)="goToUserProfile()">
|
|
55
55
|
{{translationsMap.get('EditProfile')}}
|
|
56
56
|
</div>
|
|
57
57
|
|
|
@@ -81,11 +81,11 @@
|
|
|
81
81
|
[searchable]="false">
|
|
82
82
|
<ng-template ng-label-tmp let-item="item">
|
|
83
83
|
<img style="width: 15px;height: 15px;position: relative; top: 1px;" height="15" width="15" [src]="item?.avatar" />
|
|
84
|
-
<span id="sidebaravatar_{{item.name}}" style="text-transform: capitalize; margin-left:8px"> {{item.label
|
|
84
|
+
<span id="sidebaravatar_{{item.name}}" style="text-transform: capitalize; margin-left:8px"> {{item.label}} </span>
|
|
85
85
|
</ng-template>
|
|
86
86
|
<ng-template ng-option-tmp let-item="item" let-index="index">
|
|
87
87
|
<img style="width: 15px;height: 15px;position: relative; top: 1px;" height="15" width="15" [src]="item?.avatar" />
|
|
88
|
-
<span id="sidebaravatar_{{item.name}}" style="text-transform: capitalize; margin-left:8px"> {{item.label
|
|
88
|
+
<span id="sidebaravatar_{{item.name}}" style="text-transform: capitalize; margin-left:8px"> {{item.label}} </span>
|
|
89
89
|
</ng-template>
|
|
90
90
|
</ng-select>
|
|
91
91
|
</section>
|
|
@@ -52,9 +52,9 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
52
52
|
|
|
53
53
|
selectedStatus: any;
|
|
54
54
|
teammateStatus = [
|
|
55
|
-
{ id: 1, name: 'Available', avatar: 'assets/
|
|
56
|
-
{ id: 2, name: 'Unavailable', avatar: 'assets/
|
|
57
|
-
{ id: 3, name: 'Inactive', avatar: 'assets/
|
|
55
|
+
{ id: 1, name: 'Available', avatar: 'assets/img/teammate-status/avaible.svg', label: "LABEL_AVAILABLE" },
|
|
56
|
+
{ id: 2, name: 'Unavailable', avatar: 'assets/img/teammate-status/unavaible.svg', label: "LABEL_NOT_AVAILABLE" },
|
|
57
|
+
{ id: 3, name: 'Inactive', avatar: 'assets/img/teammate-status/inactive.svg', label: "LABEL_INACTIVE" },
|
|
58
58
|
];
|
|
59
59
|
|
|
60
60
|
translationsMap: Map<string, string> = new Map();
|
|
@@ -194,13 +194,13 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
194
194
|
this.chat_lang = ''
|
|
195
195
|
if (this.browserLang && !stored_preferred_lang) {
|
|
196
196
|
this.chat_lang = this.browserLang
|
|
197
|
-
// this.flag_url = "assets/
|
|
197
|
+
// this.flag_url = "assets/img/language_flag/" + this.chat_lang + ".png"
|
|
198
198
|
|
|
199
199
|
this.logger.log('[SIDEBAR-USER-DETAILS] flag_url: ', this.flag_url);
|
|
200
200
|
this.logger.log('[SIDEBAR-USER-DETAILS] chat_lang: ', this.chat_lang);
|
|
201
201
|
} else if (this.browserLang && stored_preferred_lang) {
|
|
202
202
|
this.chat_lang = stored_preferred_lang
|
|
203
|
-
// this.flag_url = "assets/
|
|
203
|
+
// this.flag_url = "assets/img/language_flag/" + this.chat_lang + ".png"
|
|
204
204
|
this.logger.log('[SIDEBAR-USER-DETAILS] flag_url: ', this.flag_url);
|
|
205
205
|
this.logger.log('[SIDEBAR-USER-DETAILS] chat_lang: ', this.chat_lang);
|
|
206
206
|
}
|
|
@@ -208,11 +208,11 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
208
208
|
if (tranlatedLanguage.includes(this.chat_lang)) {
|
|
209
209
|
this.logger.log('[SIDEBAR-USER-DETAILS] tranlatedLanguage includes', this.chat_lang, ': ', tranlatedLanguage.includes(this.chat_lang))
|
|
210
210
|
this.translate.use(this.chat_lang);
|
|
211
|
-
this.flag_url = "assets/
|
|
211
|
+
this.flag_url = "assets/img/language_flag/" + this.chat_lang + ".png"
|
|
212
212
|
} else {
|
|
213
213
|
this.logger.log('[SIDEBAR-USER-DETAILS] tranlatedLanguage includes', this.chat_lang, ': ', tranlatedLanguage.includes(this.chat_lang))
|
|
214
214
|
this.translate.use('en');
|
|
215
|
-
this.flag_url = "assets/
|
|
215
|
+
this.flag_url = "assets/img/language_flag/en.png"
|
|
216
216
|
this.chat_lang = 'en'
|
|
217
217
|
}
|
|
218
218
|
|
|
@@ -242,9 +242,9 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
242
242
|
.set('SubscriptionPaymentProblem', text['SubscriptionPaymentProblem'])
|
|
243
243
|
.set('ThePlanHasExpired', text['ThePlanHasExpired'])
|
|
244
244
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
245
|
+
this.teammateStatus.forEach(element => {
|
|
246
|
+
element.label = this.translationsMap.get(element.label)
|
|
247
|
+
});
|
|
248
248
|
|
|
249
249
|
});
|
|
250
250
|
}
|
|
@@ -261,7 +261,7 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
261
261
|
listenToCurrentStoredProject() {
|
|
262
262
|
this.events.subscribe('storage:last_project', projectObjct => {
|
|
263
263
|
if (projectObjct && projectObjct !== 'undefined') {
|
|
264
|
-
this.logger.log('[SIDEBAR-USER-DETAILS] - GET STORED PROJECT ', projectObjct)
|
|
264
|
+
// this.logger.log('[SIDEBAR-USER-DETAILS] - GET STORED PROJECT ', projectObjct)
|
|
265
265
|
|
|
266
266
|
//TODO: recuperare info da root e non da id_project
|
|
267
267
|
this.project = {
|
|
@@ -284,8 +284,6 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
284
284
|
} else if (this.project.profile.type === 'payment' && this.project.profile.name === 'enterprise') {
|
|
285
285
|
this.getEnterprisePlanTranslation();
|
|
286
286
|
}
|
|
287
|
-
|
|
288
|
-
this.wsService.subscriptionToWsCurrentProjectUserAvailability(this.project._id, projectObjct._id);
|
|
289
287
|
}
|
|
290
288
|
})
|
|
291
289
|
|
|
@@ -331,14 +329,14 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
331
329
|
// this.logger.log('teammateStatus ', this.teammateStatus)
|
|
332
330
|
this.selectedStatus = this.teammateStatus[2].id;
|
|
333
331
|
this.logger.debug('[SIDEBAR-USER-DETAILS] - PROFILE_STATUS selected option', this.teammateStatus[2].name);
|
|
334
|
-
|
|
332
|
+
this.teammateStatus = this.teammateStatus.slice(0)
|
|
335
333
|
} else if (projectUser['user_available'] === false && (projectUser['profileStatus'] === '' || !projectUser['profileStatus'])) {
|
|
336
334
|
this.selectedStatus = this.teammateStatus[1].id;
|
|
337
335
|
this.logger.debug('[SIDEBAR-USER-DETAILS] - PROFILE_STATUS selected option', this.teammateStatus[1].name);
|
|
338
|
-
|
|
336
|
+
this.teammateStatus = this.teammateStatus.slice(0)
|
|
339
337
|
} else if (projectUser['user_available'] === true && (projectUser['profileStatus'] === '' || !projectUser['profileStatus'])) {
|
|
340
338
|
this.selectedStatus = this.teammateStatus[0].id
|
|
341
|
-
|
|
339
|
+
this.teammateStatus = this.teammateStatus.slice(0)
|
|
342
340
|
this.logger.debug('[SIDEBAR-USER-DETAILS] - PROFILE_STATUS selected option', this.teammateStatus[0].name);
|
|
343
341
|
}
|
|
344
342
|
this.IS_BUSY = projectUser['isBusy']
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
<img *ngIf="item.requestertype === 'agent' && UPLOAD_ENGINE_IS_FIREBASE" height="24" width="24"
|
|
37
37
|
style="border-radius:50%; object-fit: cover; vertical-align: middle;"
|
|
38
38
|
src="https://firebasestorage.googleapis.com/v0/b/{{storageBucket}}/o/profiles%2F{{item.id}}%2Fphoto.jpg?alt=media"
|
|
39
|
-
alt="" onerror="this.src='assets/
|
|
39
|
+
alt="" onerror="this.src='assets/img/default-avatar-x-select.png'">
|
|
40
40
|
|
|
41
41
|
<!-- ---------------------------------------- -->
|
|
42
42
|
<!-- Usecase Native -->
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
<img *ngIf="item.requestertype === 'agent' && !UPLOAD_ENGINE_IS_FIREBASE" height="24" width="24"
|
|
45
45
|
style="border-radius:50%;object-fit: cover;vertical-align: middle;"
|
|
46
46
|
src="{{baseUrl}}images?path=uploads%2Fusers%2F{{item.id}}%2Fimages%2Fthumbnails_200_200-photo.jpg" alt=""
|
|
47
|
-
onerror="this.src='assets/
|
|
47
|
+
onerror="this.src='assets/img/default-avatar-x-select.png'">
|
|
48
48
|
|
|
49
49
|
<img *ngIf="item.requestertype === 'lead'" height="24" width="24"
|
|
50
50
|
style="border-radius:50%;object-fit: cover;vertical-align: middle;"
|
|
51
|
-
src="assets/
|
|
51
|
+
src="assets/img/default-avatar-x-select.png" alt="">
|
|
52
52
|
<span style="font-weight: 400;">
|
|
53
53
|
{{ item.name }}
|
|
54
54
|
</span>
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
<img *ngIf="item.requestertype === 'agent' && UPLOAD_ENGINE_IS_FIREBASE" height="24" width="24"
|
|
65
65
|
style="border-radius:50%;object-fit: cover;vertical-align: middle;"
|
|
66
66
|
src="https://firebasestorage.googleapis.com/v0/b/{{storageBucket}}/o/profiles%2F{{item.id}}%2Fphoto.jpg?alt=media"
|
|
67
|
-
alt="" onerror="this.src='assets/
|
|
67
|
+
alt="" onerror="this.src='assets/img/default-avatar-x-select.png'">
|
|
68
68
|
|
|
69
69
|
<!-- ---------------------------------------- -->
|
|
70
70
|
<!-- Usecase Native -->
|
|
@@ -72,11 +72,11 @@
|
|
|
72
72
|
<img *ngIf="item.requestertype === 'agent' && !UPLOAD_ENGINE_IS_FIREBASE" height="24" width="24"
|
|
73
73
|
style="border-radius:50%;object-fit: cover;vertical-align: middle;"
|
|
74
74
|
src="{{baseUrl}}images?path=uploads%2Fusers%2F{{item.id}}%2Fimages%2Fthumbnails_200_200-photo.jpg" alt=""
|
|
75
|
-
onerror="this.src='assets/
|
|
75
|
+
onerror="this.src='assets/img/default-avatar-x-select.png'">
|
|
76
76
|
|
|
77
77
|
<img *ngIf="item.requestertype === 'lead'" height="24" width="24"
|
|
78
78
|
style="border-radius:50%; object-fit: cover;vertical-align: middle;"
|
|
79
|
-
src="assets/
|
|
79
|
+
src="assets/img/default-avatar-x-select.png" alt="">
|
|
80
80
|
<span style="font-weight: 400;">
|
|
81
81
|
{{ item.name }}
|
|
82
82
|
</span>
|
|
@@ -9,7 +9,6 @@ import * as uuid from 'uuid';
|
|
|
9
9
|
import { EventsService } from 'src/app/services/events-service'
|
|
10
10
|
import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
|
|
11
11
|
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
12
|
-
import { ProjectUsersService } from 'src/app/services/project_users/project-users.service'
|
|
13
12
|
|
|
14
13
|
@Component({
|
|
15
14
|
selector: 'app-create-ticket',
|
|
@@ -43,29 +42,28 @@ export class CreateTicketPage implements OnInit {
|
|
|
43
42
|
{
|
|
44
43
|
id: 1,
|
|
45
44
|
name: 'urgent',
|
|
46
|
-
avatar: 'assets/
|
|
45
|
+
avatar: 'assets/img/priority_icons/urgent_v2.svg'
|
|
47
46
|
},
|
|
48
47
|
{
|
|
49
48
|
id: 2,
|
|
50
49
|
name: 'high',
|
|
51
|
-
avatar: 'assets/
|
|
50
|
+
avatar: 'assets/img/priority_icons/high_v2.svg '
|
|
52
51
|
},
|
|
53
52
|
{
|
|
54
53
|
id: 3,
|
|
55
54
|
name: 'medium',
|
|
56
|
-
avatar: 'assets/
|
|
55
|
+
avatar: 'assets/img/priority_icons/medium_v2.svg'
|
|
57
56
|
},
|
|
58
57
|
{
|
|
59
58
|
id: 4,
|
|
60
59
|
name: 'low',
|
|
61
|
-
avatar: 'assets/
|
|
60
|
+
avatar: 'assets/img/priority_icons/low_v2.svg'
|
|
62
61
|
},
|
|
63
62
|
];
|
|
64
63
|
|
|
65
64
|
logger: LoggerService = LoggerInstance.getInstance();
|
|
66
65
|
constructor(
|
|
67
66
|
public modalController: ModalController,
|
|
68
|
-
public projectUsersService: ProjectUsersService,
|
|
69
67
|
public tiledeskService: TiledeskService,
|
|
70
68
|
public appConfigProvider: AppConfigProvider,
|
|
71
69
|
public events: EventsService
|
|
@@ -106,7 +104,7 @@ export class CreateTicketPage implements OnInit {
|
|
|
106
104
|
// Create the array of the project-users and contacts displayed in the combo box "Requester"
|
|
107
105
|
// -------------------------------------------------------------------------------------------
|
|
108
106
|
getProjectUsersAndContacts(projctid: string) {
|
|
109
|
-
const projectUsers = this.
|
|
107
|
+
const projectUsers = this.tiledeskService.getProjectUsersByProjectId(projctid)
|
|
110
108
|
const leads = this.tiledeskService.getAllLeadsActiveWithLimit(projctid,10000)
|
|
111
109
|
|
|
112
110
|
zip(projectUsers, leads).subscribe(
|
|
@@ -245,7 +243,7 @@ export class CreateTicketPage implements OnInit {
|
|
|
245
243
|
// -------------------------------------------------------------------------------------------------------------------
|
|
246
244
|
getProjectUserBotsAndDepts(projctid: string) {
|
|
247
245
|
// this.loadingAssignee = true;
|
|
248
|
-
const projectUsers = this.
|
|
246
|
+
const projectUsers = this.tiledeskService.getProjectUsersByProjectId( projctid)
|
|
249
247
|
const bots = this.tiledeskService.getAllBotByProjectId(projctid)
|
|
250
248
|
const depts = this.tiledeskService.getDeptsByProjectId(projctid)
|
|
251
249
|
|
|
@@ -156,7 +156,7 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
|
|
|
156
156
|
}
|
|
157
157
|
// file-alt-solid.png
|
|
158
158
|
async createFile() {
|
|
159
|
-
let response = await fetch('./assets/
|
|
159
|
+
let response = await fetch('./assets/img/file-alt-solid.png')
|
|
160
160
|
let data = await response.blob()
|
|
161
161
|
let metadata = {
|
|
162
162
|
type: 'image/png',
|
|
@@ -106,7 +106,7 @@ ion-footer {
|
|
|
106
106
|
width: 100%;
|
|
107
107
|
min-height: 200px;
|
|
108
108
|
//background-image: url(https://user-images.githubusercontent.com/15075759/28719144-86dc0f70-73b1-11e7-911d-60d70fcded21.png);
|
|
109
|
-
background-image: url(../../../assets/
|
|
109
|
+
background-image: url(../../../assets/img/whatsapp_background.png);
|
|
110
110
|
border-radius: 8px;
|
|
111
111
|
background-size: cover;
|
|
112
112
|
display: flex;
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
<!-- ----------------------------------------------------------- -->
|
|
174
174
|
<app-canned-response *ngIf="SHOW_CANNED_RESPONSES"
|
|
175
175
|
id="canned"
|
|
176
|
-
[
|
|
176
|
+
[canShowCanned]="canShowCanned"
|
|
177
177
|
[conversationWith]="conversationWith"
|
|
178
178
|
[conversationWithFullname]="conversationWithFullname"
|
|
179
179
|
[currentString]="messageStr"
|
|
@@ -201,8 +201,7 @@
|
|
|
201
201
|
<!-- [tagsCannedFilter]="tagsCannedFilter" -->
|
|
202
202
|
<!-- openInfoConversation {{openInfoConversation}} - isMobile {{isMobile}} -->
|
|
203
203
|
<app-message-text-area *ngIf="(openInfoConversation === false && isMobile === true) || (openInfoConversation === true && isMobile === false) || (openInfoConversation === false && isMobile === false)"
|
|
204
|
-
[loggedUser]="loggedUser"
|
|
205
|
-
[projectUser]="projectUser"
|
|
204
|
+
[loggedUser]="loggedUser"
|
|
206
205
|
[conversationWith]="conversationWith"
|
|
207
206
|
[channelType]="channelType"
|
|
208
207
|
[channel]="conversation?.attributes?.request_channel"
|
|
@@ -214,10 +213,8 @@
|
|
|
214
213
|
[fileUploadAccept]="fileUploadAccept"
|
|
215
214
|
[emailSection]="isEmailEnabled"
|
|
216
215
|
[offlineMsgEmail]="offlineMsgEmail"
|
|
217
|
-
[cannedSection]="canShowCanned"
|
|
218
216
|
[whatsappTemplatesSection]="isWhatsappTemplatesEnabled"
|
|
219
217
|
[isOpenInfoConversation]="openInfoConversation"
|
|
220
|
-
[ticketSection]="isTicketEnabled"
|
|
221
218
|
[stylesMap]="styleMap"
|
|
222
219
|
[translationMap]="translationsMap"
|
|
223
220
|
[dropEvent]="dropEvent"
|
|
@@ -226,8 +223,7 @@
|
|
|
226
223
|
(onClickOpenCannedResponses)="onClickOpenCannedResponses($event)"
|
|
227
224
|
(eventSendMessage)="returnSendMessage($event)"
|
|
228
225
|
(onPresentModalScrollToBottom)="onPresentModalScrollToBottom($event)"
|
|
229
|
-
(onOpenFooterSection)="onOpenFooterSection($event)"
|
|
230
|
-
(onOpenTicket)="onOpenTicket($event)">
|
|
226
|
+
(onOpenFooterSection)="onOpenFooterSection($event)">
|
|
231
227
|
</app-message-text-area>
|
|
232
228
|
<!-- [events]="eventsReplaceTexareaText.asObservable()" -->
|
|
233
229
|
</ion-row>
|