@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
|
@@ -83,10 +83,7 @@ import { WebsocketService } from 'src/app/services/websocket/websocket.service';
|
|
|
83
83
|
import { Project } from 'src/chat21-core/models/projects';
|
|
84
84
|
import { Globals } from 'src/app/utils/globals';
|
|
85
85
|
import { ProjectService } from 'src/app/services/projects/project.service';
|
|
86
|
-
import {
|
|
87
|
-
import { ProjectUser } from 'src/chat21-core/models/projectUsers';
|
|
88
|
-
import { getOSCode, hasRole } from 'src/app/utils/utils';
|
|
89
|
-
import { PERMISSIONS } from 'src/app/utils/permissions.constants';
|
|
86
|
+
import { getOSCode } from 'src/app/utils/utils';
|
|
90
87
|
|
|
91
88
|
@Component({
|
|
92
89
|
selector: 'app-conversation-detail',
|
|
@@ -111,7 +108,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
111
108
|
private subscriptions: Array<any>
|
|
112
109
|
public tenant: string;
|
|
113
110
|
public loggedUser: UserModel
|
|
114
|
-
public projectUser: ProjectUser;
|
|
115
111
|
public conversationWith: string
|
|
116
112
|
public conversationWithFullname: string
|
|
117
113
|
public messages: Array<MessageModel> = []
|
|
@@ -141,7 +137,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
141
137
|
public tagsCannedFilter: Array<any> = [];
|
|
142
138
|
public SHOW_CANNED_RESPONSES: boolean = false
|
|
143
139
|
public canShowCanned: boolean = true
|
|
144
|
-
public rolesCanned: { [key: string]: boolean }
|
|
145
140
|
|
|
146
141
|
public SHOW_COPILOT_SUGGESTIONS: boolean = false;
|
|
147
142
|
|
|
@@ -245,7 +240,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
245
240
|
public toastController: ToastController,
|
|
246
241
|
public tiledeskService: TiledeskService,
|
|
247
242
|
public projectService: ProjectService,
|
|
248
|
-
public projectUsersService: ProjectUsersService,
|
|
249
243
|
private networkService: NetworkService,
|
|
250
244
|
private events: EventsService,
|
|
251
245
|
private webSocketService: WebsocketService,
|
|
@@ -540,6 +534,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
540
534
|
this.logger.log('[CONVS-DETAIL] - GET PROJECTID BY CONV RECIPIENT * COMPLETE *',)
|
|
541
535
|
})
|
|
542
536
|
}else {
|
|
537
|
+
this.canShowCanned = false;
|
|
543
538
|
this.offlineMsgEmail = false;
|
|
544
539
|
}
|
|
545
540
|
|
|
@@ -550,13 +545,10 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
550
545
|
this.logger.log('[CONVS-DETAIL] - GET PROJECTID BY CONV RECIPIENT RES', project)
|
|
551
546
|
if (project) {
|
|
552
547
|
const projectId = project.id_project
|
|
553
|
-
this.
|
|
548
|
+
this.canShowCanned = this.projectPlanUtils.checkPlanIsExpired(project)
|
|
554
549
|
this.offlineMsgEmail = this.checkOfflineMsgEmailIsEnabled(project)
|
|
555
550
|
this.isCopilotEnabled = this.projectPlanUtils.checkProjectProfileFeature(project, 'copilot');
|
|
556
551
|
this.fileUploadAccept = this.checkAcceptedUploadFile(project)
|
|
557
|
-
this.rolesCanned = this.checkCannedResponsesRoles(project)
|
|
558
|
-
this.canShowCanned = this.checkCannedResponses(project)
|
|
559
|
-
this.logger.log('[CONVS-DETAIL] this.rolesCanned ', this.canShowCanned)
|
|
560
552
|
}
|
|
561
553
|
}, (error) => {
|
|
562
554
|
this.logger.error('[CONVS-DETAIL] - GET PROJECTID BY CONV RECIPIENT - ERROR ', error)
|
|
@@ -594,40 +586,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
594
586
|
return this.appConfigProvider.getConfig().fileUploadAccept
|
|
595
587
|
}
|
|
596
588
|
|
|
597
|
-
checkCannedResponses(project: Project): boolean {
|
|
598
|
-
let expires = this.projectPlanUtils.checkPlanIsExpired(project)
|
|
599
|
-
this.logger.log('[CONVS-DETAIL] checkCannedResponses expires ', expires)
|
|
600
|
-
if(expires){
|
|
601
|
-
return false
|
|
602
|
-
}
|
|
603
|
-
|
|
604
|
-
let hasRoleToShowCanned = this.rolesCanned[PERMISSIONS.CANNED_RESPONSES_READ]
|
|
605
|
-
this.logger.log('[CONVS-DETAIL] checkCannedResponses hasRoleToShowCanned ', hasRoleToShowCanned)
|
|
606
|
-
if(!hasRoleToShowCanned){
|
|
607
|
-
return false
|
|
608
|
-
}
|
|
609
|
-
|
|
610
|
-
return true
|
|
611
|
-
}
|
|
612
|
-
|
|
613
|
-
checkCannedResponsesRoles(project: Project): { [key: string]: boolean } {
|
|
614
|
-
const permissionKeys = [
|
|
615
|
-
'CANNED_RESPONSES_CREATE',
|
|
616
|
-
'CANNED_RESPONSES_READ',
|
|
617
|
-
'CANNED_RESPONSES_UPDATE',
|
|
618
|
-
'CANNED_RESPONSES_DELETE',
|
|
619
|
-
] as const;
|
|
620
|
-
|
|
621
|
-
const roles: { [key: string]: boolean } = {};
|
|
622
|
-
for (const key of permissionKeys) {
|
|
623
|
-
const permission = PERMISSIONS[key];
|
|
624
|
-
roles[permission] = hasRole(this.projectUser, permission);
|
|
625
|
-
}
|
|
626
|
-
|
|
627
|
-
return roles;
|
|
628
|
-
|
|
629
|
-
}
|
|
630
|
-
|
|
631
589
|
// getProjectIdSelectedConversation(conversationWith: string): string{
|
|
632
590
|
// const conversationWith_segments = conversationWith.split('-')
|
|
633
591
|
// // Removes the last element of the array if is = to the separator
|
|
@@ -1146,7 +1104,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1146
1104
|
// ${metadata.name}
|
|
1147
1105
|
// </a>`
|
|
1148
1106
|
|
|
1149
|
-
// msg =  + [${metadata.name}](${metadata.src})
|
|
1150
1108
|
msg = `[${metadata.name}](${metadata.src})`
|
|
1151
1109
|
}
|
|
1152
1110
|
}
|
|
@@ -109,9 +109,9 @@ export class ConversationListPage implements OnInit {
|
|
|
109
109
|
profile_name_translated: string;
|
|
110
110
|
selectedStatus: any;
|
|
111
111
|
teammateStatus = [
|
|
112
|
-
{ id: 1, name: 'Available', avatar: 'assets/
|
|
113
|
-
{ id: 2, name: 'Unavailable', avatar: 'assets/
|
|
114
|
-
{ id: 3, name: 'Inactive', avatar: 'assets/
|
|
112
|
+
{ id: 1, name: 'Available', avatar: 'assets/img/teammate-status/avaible.svg', label: "LABEL_AVAILABLE" },
|
|
113
|
+
{ id: 2, name: 'Unavailable', avatar: 'assets/img/teammate-status/unavaible.svg', label: "LABEL_NOT_AVAILABLE" },
|
|
114
|
+
{ id: 3, name: 'Inactive', avatar: 'assets/img/teammate-status/inactive.svg', label: "LABEL_INACTIVE" },
|
|
115
115
|
];
|
|
116
116
|
// PROJECT AVAILABILITY INFO: end
|
|
117
117
|
|
|
@@ -473,7 +473,7 @@ export class ConversationListPage implements OnInit {
|
|
|
473
473
|
listenToCurrentStoredProject() {
|
|
474
474
|
this.events.subscribe('storage:last_project', projectObjct => {
|
|
475
475
|
if (projectObjct && projectObjct !== 'undefined') {
|
|
476
|
-
|
|
476
|
+
this.logger.log('[CONVS-LIST-PAGE] - GET STORED PROJECT ', projectObjct)
|
|
477
477
|
|
|
478
478
|
//TODO: recuperare info da root e non da id_project
|
|
479
479
|
this.project = {
|
|
@@ -888,21 +888,21 @@ export class ConversationListPage implements OnInit {
|
|
|
888
888
|
this.logger.log('[CONVS-LIST-PAGE] checkPlatformIsMobile(): ', checkPlatformIsMobile())
|
|
889
889
|
this.logger.log('[CONVS-LIST-PAGE] DESKTOP (window < 768)', this.navService)
|
|
890
890
|
this.logger.log('[CONVS-LIST-PAGE] navigateByUrl this.conversationSelected conversation_with_fullname ', this.conversationSelected)
|
|
891
|
-
let pageUrl = 'conversation-detail/' + this.uidConvSelected + '/' + this.conversationSelected.conversation_with_fullname + '/' + converationType
|
|
891
|
+
let pageUrl = 'conversation-detail/' + this.uidConvSelected + '/' + encodeURIComponent(this.conversationSelected.conversation_with_fullname) + '/' + converationType
|
|
892
892
|
this.logger.log('[CONVS-LIST-PAGE] pageURL', pageUrl)
|
|
893
893
|
// replace(/\(/g, '%28').replace(/\)/g, '%29') -> used for the encoder of any round brackets
|
|
894
|
-
this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29')
|
|
894
|
+
this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29'), {replaceUrl: true})
|
|
895
895
|
} else {
|
|
896
896
|
this.logger.log('[CONVS-LIST-PAGE] navigateByUrl this.conversationSelected conversation_with_fullname ', this.conversationSelected)
|
|
897
897
|
this.logger.log('[CONVS-LIST-PAGE] checkPlatformIsMobile(): ', checkPlatformIsMobile())
|
|
898
898
|
this.logger.log('[CONVS-LIST-PAGE] MOBILE (window >= 768) ', this.navService)
|
|
899
899
|
let pageUrl = 'conversation-detail/' + this.uidConvSelected
|
|
900
900
|
if (this.conversationSelected && this.conversationSelected.conversation_with_fullname) {
|
|
901
|
-
pageUrl = 'conversation-detail/' + this.uidConvSelected + '/' + this.conversationSelected.conversation_with_fullname + '/' + converationType
|
|
901
|
+
pageUrl = 'conversation-detail/' + this.uidConvSelected + '/' + encodeURIComponent(this.conversationSelected.conversation_with_fullname) + '/' + converationType
|
|
902
902
|
}
|
|
903
903
|
this.logger.log('[CONVS-LIST-PAGE] setUidConvSelected navigateByUrl--->: ', pageUrl)
|
|
904
904
|
// replace(/\(/g, '%28').replace(/\)/g, '%29') -> used for the encoder of any round brackets
|
|
905
|
-
this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29')
|
|
905
|
+
this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29'), {replaceUrl: true})
|
|
906
906
|
}
|
|
907
907
|
}
|
|
908
908
|
|
|
@@ -51,9 +51,9 @@ export class ProfileInfoPage implements OnInit {
|
|
|
51
51
|
|
|
52
52
|
isVisiblePAY: boolean;
|
|
53
53
|
teammateStatus = [
|
|
54
|
-
{ id: 1, name: 'Available', avatar: 'assets/
|
|
55
|
-
{ id: 2, name: 'Unavailable', avatar: 'assets/
|
|
56
|
-
{ id: 3, name: 'Inactive', avatar: 'assets/
|
|
54
|
+
{ id: 1, name: 'Available', avatar: 'assets/img/teammate-status/avaible.svg', label: "LABEL_AVAILABLE" },
|
|
55
|
+
{ id: 2, name: 'Unavailable', avatar: 'assets/img/teammate-status/unavaible.svg', label: "LABEL_NOT_AVAILABLE" },
|
|
56
|
+
{ id: 3, name: 'Inactive', avatar: 'assets/img/teammate-status/inactive.svg', label: "LABEL_INACTIVE" },
|
|
57
57
|
];
|
|
58
58
|
|
|
59
59
|
constructor(
|
|
@@ -67,11 +67,11 @@ export class BrandService {
|
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
COMMON: {
|
|
70
|
-
COMPANY_LOGO:"assets/logos/tiledesk_logo.svg",
|
|
71
|
-
COMPANY_LOGO_NO_TEXT:"assets/logos/tiledesk_logo.svg",
|
|
72
|
-
BASE_LOGO: "assets/logos/tiledesk_logo.svg",
|
|
73
|
-
BASE_LOGO_NO_TEXT: "assets/logos/tiledesk_logo.svg",
|
|
74
|
-
BASE_LOGO_WHITE: "assets/logos/tiledesk-logo_new_white.svg",
|
|
70
|
+
COMPANY_LOGO:"assets/img/logos/tiledesk_logo.svg",
|
|
71
|
+
COMPANY_LOGO_NO_TEXT:"assets/img/logos/tiledesk_logo.svg",
|
|
72
|
+
BASE_LOGO: "assets/img/logos/tiledesk_logo.svg",
|
|
73
|
+
BASE_LOGO_NO_TEXT: "assets/img/logos/tiledesk_logo.svg",
|
|
74
|
+
BASE_LOGO_WHITE: "assets/img/logos/tiledesk-logo_new_white.svg",
|
|
75
75
|
BASE_LOGO_WHITE_NO_TEXT:"",
|
|
76
76
|
COMPANY_NAME: "Tiledesk",
|
|
77
77
|
BRAND_NAME: "Tiledesk",
|
|
@@ -88,8 +88,8 @@ export class GlobalSettingsService {
|
|
|
88
88
|
this.logger.debug('[GLOBAL-SET] setVariableFromStorage :::::::: SET VARIABLE ---------->', Object.keys(globals));
|
|
89
89
|
for (const key of Object.keys(globals)) {
|
|
90
90
|
const val = this.appStorageService.getItem(key);
|
|
91
|
-
this.logger.debug('[GLOBAL-SET] setVariableFromStorage SET globals KEY ---------->', key);
|
|
92
|
-
this.logger.debug('[GLOBAL-SET] setVariableFromStorage SET globals VAL ---------->', val);
|
|
91
|
+
// this.logger.debug('[GLOBAL-SET] setVariableFromStorage SET globals KEY ---------->', key);
|
|
92
|
+
// this.logger.debug('[GLOBAL-SET] setVariableFromStorage SET globals VAL ---------->', val);
|
|
93
93
|
if (val && val !== null) {
|
|
94
94
|
// globals.setParameter(key, val);
|
|
95
95
|
globals[key] = stringToBoolean(val);
|
|
@@ -111,10 +111,8 @@ export class GlobalSettingsService {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
TEMP = getParameterByName(windowContext, 'tiledesk_supportMode');
|
|
114
|
-
console.log('TEMP supportMode', TEMP);
|
|
115
114
|
if (TEMP) {
|
|
116
115
|
globals.supportMode = stringToBoolean(TEMP);
|
|
117
|
-
this.appStorageService.setItem('supportMode', String(globals.supportMode))
|
|
118
116
|
}
|
|
119
117
|
|
|
120
118
|
TEMP = getParameterByName(windowContext, 'tiledesk_lang');
|
|
@@ -140,7 +138,6 @@ export class GlobalSettingsService {
|
|
|
140
138
|
TEMP = getParameterByName(windowContext, 'tiledesk_projectID');
|
|
141
139
|
if (TEMP) {
|
|
142
140
|
globals.projectID = TEMP;
|
|
143
|
-
this.appStorageService.setItem('projectID', TEMP)
|
|
144
141
|
}
|
|
145
142
|
|
|
146
143
|
}
|
|
@@ -93,6 +93,22 @@ export class TiledeskService {
|
|
|
93
93
|
}))
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
+
public getProjectUsersByProjectId(project_id: string) {
|
|
97
|
+
const url = this.SERVER_BASE_URL + project_id + '/project_users/';
|
|
98
|
+
this.logger.log('[TILEDESK-SERVICE] - GET PROJECT-USER URL', url);
|
|
99
|
+
|
|
100
|
+
const httpOptions = {
|
|
101
|
+
headers: new HttpHeaders({
|
|
102
|
+
'Content-Type': 'application/json',
|
|
103
|
+
Authorization: this.tiledeskToken
|
|
104
|
+
})
|
|
105
|
+
};
|
|
106
|
+
return this.http.get(url, httpOptions).pipe(map((res: any) => {
|
|
107
|
+
this.logger.log('[TILEDESK-SERVICE] - GET PROJECT-USER RES ', res);
|
|
108
|
+
return res
|
|
109
|
+
}))
|
|
110
|
+
}
|
|
111
|
+
|
|
96
112
|
public getAllLeadsActiveWithLimit(project_id: string, limit: number) {
|
|
97
113
|
const url = this.SERVER_BASE_URL + project_id + '/leads?limit=' + limit + '&with_fullname=true';
|
|
98
114
|
this.logger.log('[TILEDESK-SERVICE] - GET ALL ACTIVE LEADS (LIMIT 10000) - URL', url);
|
|
@@ -22,9 +22,6 @@ import { MatTooltipModule } from '@angular/material/tooltip';
|
|
|
22
22
|
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
23
23
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
24
24
|
import { SafeHtmlPipe } from '../directives/safe-html.pipe';
|
|
25
|
-
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
|
26
|
-
import { createTranslateLoader } from 'src/chat21-core/utils/utils';
|
|
27
|
-
import { HttpClient } from '@angular/common/http';
|
|
28
25
|
|
|
29
26
|
// import { MessageTextAreaComponent } from '../components/conversation-detail/message-text-area/message-text-area.component'; // MessageTextAreaComponent is part of the declarations ConversationDetailPageModule
|
|
30
27
|
|
|
@@ -143,14 +140,6 @@ import { HttpClient } from '@angular/common/http';
|
|
|
143
140
|
NgSelectModule,
|
|
144
141
|
FormsModule,
|
|
145
142
|
|
|
146
|
-
TranslateModule.forChild({
|
|
147
|
-
loader: {
|
|
148
|
-
provide: TranslateLoader,
|
|
149
|
-
useFactory: (createTranslateLoader),
|
|
150
|
-
deps: [HttpClient]
|
|
151
|
-
}
|
|
152
|
-
})
|
|
153
|
-
|
|
154
143
|
],
|
|
155
144
|
schemas: [
|
|
156
145
|
CUSTOM_ELEMENTS_SCHEMA,
|
|
@@ -129,9 +129,9 @@ export class ProjectPlanUtils {
|
|
|
129
129
|
|
|
130
130
|
//case PAYMENT plan
|
|
131
131
|
if(project && project.isActiveSubscription && project.profile.type=== 'payment'){
|
|
132
|
-
check = false
|
|
133
|
-
}else if(project && !project.isActiveSubscription && project.profile.type=== 'payment'){
|
|
134
132
|
check = true
|
|
133
|
+
}else if(project && !project.isActiveSubscription && project.profile.type=== 'payment'){
|
|
134
|
+
check = false
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
return check
|
|
@@ -7,16 +7,17 @@ export const BRAND_BASE_INFO: { [key: string] : string | boolean} ={
|
|
|
7
7
|
FAVICON: "https://tiledesk.com/wp-content/uploads/2022/07/tiledesk_v13-300x300.png",
|
|
8
8
|
META_TITLE:"Tiledesk - Open Source Live Chat",
|
|
9
9
|
DOCS: true,
|
|
10
|
-
LOGOUT_ENABLED: true
|
|
10
|
+
LOGOUT_ENABLED: true,
|
|
11
|
+
DISPLAY_EDIT_PROFILE: true
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
export var LOGOS_ITEMS: { [key: string] : { label: string | boolean, icon: string }} ={
|
|
14
|
-
COMPANY_LOGO: {label: BRAND_BASE_INFO.COMPANY_NAME, icon: 'assets/logos/tiledesk_logo.svg'},
|
|
15
|
-
COMPANY_LOGO_NO_TEXT: {label: BRAND_BASE_INFO.COMPANY_NAME, icon: 'assets/logos/tiledesk_logo_no_text.svg'},
|
|
16
|
-
BASE_LOGO: {label: BRAND_BASE_INFO.BRAND_NAME, icon: 'assets/logos/tiledesk_logo.svg'},
|
|
17
|
-
BASE_LOGO_NO_TEXT: {label: BRAND_BASE_INFO.BRAND_NAME, icon: 'assets/logos/tiledesk_logo_no_text.svg'},
|
|
18
|
-
BASE_LOGO_WHITE: { label: BRAND_BASE_INFO.BRAND_NAME, icon: '"assets/logos/tiledesk-logo_new_white.svg'},
|
|
19
|
-
BASE_LOGO_WHITE_NO_TEXT: { label: BRAND_BASE_INFO.BRAND_NAME, icon: '"assets/logos/tiledesk-logo_new_white.svg'},
|
|
15
|
+
COMPANY_LOGO: {label: BRAND_BASE_INFO.COMPANY_NAME, icon: 'assets/img/logos/tiledesk_logo.svg'},
|
|
16
|
+
COMPANY_LOGO_NO_TEXT: {label: BRAND_BASE_INFO.COMPANY_NAME, icon: 'assets/img/logos/tiledesk_logo_no_text.svg'},
|
|
17
|
+
BASE_LOGO: {label: BRAND_BASE_INFO.BRAND_NAME, icon: 'assets/img/logos/tiledesk_logo.svg'},
|
|
18
|
+
BASE_LOGO_NO_TEXT: {label: BRAND_BASE_INFO.BRAND_NAME, icon: 'assets/img/logos/tiledesk_logo_no_text.svg'},
|
|
19
|
+
BASE_LOGO_WHITE: { label: BRAND_BASE_INFO.BRAND_NAME, icon: '"assets/img/logos/tiledesk-logo_new_white.svg'},
|
|
20
|
+
BASE_LOGO_WHITE_NO_TEXT: { label: BRAND_BASE_INFO.BRAND_NAME, icon: '"assets/img/logos/tiledesk-logo_new_white.svg'},
|
|
20
21
|
BASE_LOGO_GRAY: { label: BRAND_BASE_INFO.BRAND_NAME, icon: 'https://support-pre.tiledesk.com/dashboard/assets/img/logos/tiledesk-logo_new_gray.svg'}
|
|
21
22
|
}
|
|
22
23
|
|
package/src/app/utils/utils.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { ProjectUser } from "src/chat21-core/models/projectUsers";
|
|
2
|
-
|
|
3
1
|
export function getOSCode(key: string, token: string): boolean {
|
|
4
2
|
|
|
5
3
|
if (token) {
|
|
6
4
|
const keys: String[] = token.split("-");
|
|
7
5
|
|
|
8
6
|
let element = keys.find(el => el.includes(key))
|
|
9
|
-
|
|
7
|
+
console.log('keys', keys)
|
|
10
8
|
if(element){
|
|
11
9
|
element = element.split(":")[1]
|
|
12
10
|
if(element && element === "F"){
|
|
@@ -23,19 +21,4 @@ export function getOSCode(key: string, token: string): boolean {
|
|
|
23
21
|
}
|
|
24
22
|
|
|
25
23
|
return false
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
export function hasRole(projectUser: ProjectUser, role: string ): boolean {
|
|
30
|
-
let roles = ['owner', 'admin', 'agent'];
|
|
31
|
-
if(roles.includes(projectUser.role)){
|
|
32
|
-
return true
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if(Array.isArray(projectUser.rolePermissions) && projectUser.rolePermissions.includes(role)){
|
|
36
|
-
return true
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return false
|
|
40
|
-
|
|
41
24
|
}
|
package/src/assets/i18n/ar.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "مدير",
|
|
226
226
|
"agent": "وكيل",
|
|
227
227
|
"Conversations": "المحادثات",
|
|
228
|
-
"Monitor": "شاشة",
|
|
229
|
-
"Flows": "التدفّقات",
|
|
230
|
-
"Knowledgebases": "قواعد المعرفة",
|
|
231
|
-
"Whatsappbroadcasts": "نشرات WhatsApp",
|
|
232
228
|
"Apps": "تطبيقات",
|
|
233
229
|
"Analytics": "تحليلات",
|
|
234
230
|
"Activities": "أنشطة",
|
package/src/assets/i18n/az.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Administrator",
|
|
226
226
|
"agent": "Agent",
|
|
227
227
|
"Conversations": "Söhbətlər",
|
|
228
|
-
"Monitor": "Monitor",
|
|
229
|
-
"Flows": "Axınlar",
|
|
230
|
-
"Knowledgebases": "Bilik bazaları",
|
|
231
|
-
"Whatsappbroadcasts": "WhatsApp Yayınları",
|
|
232
228
|
"Apps": "Proqramlar",
|
|
233
229
|
"Analytics": "Analitika",
|
|
234
230
|
"Activities": "Fəaliyyətlər",
|
package/src/assets/i18n/de.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Administrator",
|
|
226
226
|
"agent": "Agent",
|
|
227
227
|
"Conversations": "Gespräche",
|
|
228
|
-
"Monitor": "Monitor",
|
|
229
|
-
"Flows": "Flows",
|
|
230
|
-
"Knowledgebases": "Wissensdatenbanken",
|
|
231
|
-
"Whatsappbroadcasts": "WhatsApp-Broadcasts",
|
|
232
228
|
"Apps": "Anwendungen",
|
|
233
229
|
"Analytics": "Analytik",
|
|
234
230
|
"Activities": "Aktivitäten",
|
package/src/assets/i18n/en.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Administrator",
|
|
226
226
|
"agent": "Agent",
|
|
227
227
|
"Conversations": "Conversations",
|
|
228
|
-
"Monitor":"Monitor",
|
|
229
|
-
"Flows": "Flows",
|
|
230
|
-
"Knowledgebases": "Knowledge Bases",
|
|
231
|
-
"Whatsappbroadcasts": "WhatsApp Broadcasts",
|
|
232
228
|
"Apps": "Apps",
|
|
233
229
|
"Analytics": "Analytics",
|
|
234
230
|
"Activities": "Activities",
|
package/src/assets/i18n/es.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Administrador",
|
|
226
226
|
"agent": "Agente",
|
|
227
227
|
"Conversations": "Conversaciones",
|
|
228
|
-
"Monitor": "Monitor",
|
|
229
|
-
"Flows": "Flujos",
|
|
230
|
-
"Knowledgebases": "Bases de Conocimiento",
|
|
231
|
-
"Whatsappbroadcasts": "Difusiones de WhatsApp",
|
|
232
228
|
"Apps":"Aplicaciones",
|
|
233
229
|
"Analytics":"Analíticas",
|
|
234
230
|
"Activities": "Actividades",
|
package/src/assets/i18n/fr.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Administrateur",
|
|
226
226
|
"agent": "Agent",
|
|
227
227
|
"Conversations": "Conversations",
|
|
228
|
-
"Monitor": "Moniteur",
|
|
229
|
-
"Flows": "Flux",
|
|
230
|
-
"Knowledgebases": "Bases de Connaissances",
|
|
231
|
-
"Whatsappbroadcasts": "Diffusions WhatsApp",
|
|
232
228
|
"Apps":"Applications",
|
|
233
229
|
"Analytics":"Analytique",
|
|
234
230
|
"Activities": "Activités",
|
package/src/assets/i18n/it.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Amministratore",
|
|
226
226
|
"agent": "Agente",
|
|
227
227
|
"Conversations": "Conversazioni",
|
|
228
|
-
"Monitor": "Monitor",
|
|
229
|
-
"Flows": "Flussi",
|
|
230
|
-
"Knowledgebases": "Basi di Conoscenza",
|
|
231
|
-
"Whatsappbroadcasts": "Trasmissioni WhatsApp",
|
|
232
228
|
"Apps":"App",
|
|
233
229
|
"Analytics":"Analitica",
|
|
234
230
|
"Activities": "Attività",
|
package/src/assets/i18n/kk.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Әкімші",
|
|
226
226
|
"agent": "Агент",
|
|
227
227
|
"Conversations": "Әңгімелер",
|
|
228
|
-
"Monitor": "Монитор",
|
|
229
|
-
"Flows": "Ағындар",
|
|
230
|
-
"Knowledgebases": "Білім базалары",
|
|
231
|
-
"Whatsappbroadcasts": "WhatsApp хабарламалары",
|
|
232
228
|
"Apps": "Қолданбалар",
|
|
233
229
|
"Analytics": "Аналитика",
|
|
234
230
|
"Activities": "Іс-шаралар",
|
package/src/assets/i18n/pt.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Administrador",
|
|
226
226
|
"agent": "Agente",
|
|
227
227
|
"Conversations": "Conversas",
|
|
228
|
-
"Monitor": "Monitor",
|
|
229
|
-
"Flows": "Fluxos",
|
|
230
|
-
"Knowledgebases": "Bases de Conhecimento",
|
|
231
|
-
"Whatsappbroadcasts": "Transmissões do WhatsApp",
|
|
232
228
|
"Apps":"Aplicativos",
|
|
233
229
|
"Analytics":"Análise",
|
|
234
230
|
"Activities": "Atividades",
|
package/src/assets/i18n/ru.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Администратор",
|
|
226
226
|
"agent": "Агент",
|
|
227
227
|
"Conversations": "Разговоры",
|
|
228
|
-
"Monitor": "Монитор",
|
|
229
|
-
"Flows": "Потоки",
|
|
230
|
-
"Knowledgebases": "Базы знаний",
|
|
231
|
-
"Whatsappbroadcasts": "WhatsApp-рассылки",
|
|
232
228
|
"Apps":"Приложения",
|
|
233
229
|
"Analytics":"Аналитика",
|
|
234
230
|
"Activities": "Виды деятельности",
|
package/src/assets/i18n/sr.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Aдминистратор",
|
|
226
226
|
"agent": "Агент",
|
|
227
227
|
"Conversations": "Разговори",
|
|
228
|
-
"Monitor": "Монитор",
|
|
229
|
-
"Flows": "Токови",
|
|
230
|
-
"Knowledgebases": "Baze znanja",
|
|
231
|
-
"Whatsappbroadcasts": "WhatsApp emitovanja",
|
|
232
228
|
"Apps":"Аппс",
|
|
233
229
|
"Analytics":"Аналитика",
|
|
234
230
|
"Activities": "Активности",
|
package/src/assets/i18n/sv.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Administratör",
|
|
226
226
|
"agent": "Ombud",
|
|
227
227
|
"Conversations": "Samtal",
|
|
228
|
-
"Monitor": "Monitor",
|
|
229
|
-
"Flows": "Flöden",
|
|
230
|
-
"Knowledgebases": "Kunskapsbaser",
|
|
231
|
-
"Whatsappbroadcasts": "WhatsApp-sändningar",
|
|
232
228
|
"Apps": "Appar",
|
|
233
229
|
"Analytics": "Analytics",
|
|
234
230
|
"Activities": "Aktiviteter",
|
package/src/assets/i18n/tr.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Yönetici",
|
|
226
226
|
"agent": "Ajan",
|
|
227
227
|
"Conversations": "Konuşmalar",
|
|
228
|
-
"Monitor": "Monitör",
|
|
229
|
-
"Flows": "Akışlar",
|
|
230
|
-
"Knowledgebases": "Bilgi Tabanları",
|
|
231
|
-
"Whatsappbroadcasts": "WhatsApp Yayınları",
|
|
232
228
|
"Apps":"Uygulamalar",
|
|
233
229
|
"Analytics":"Analitik",
|
|
234
230
|
"Activities": "Faaliyetler",
|
package/src/assets/i18n/uk.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Адміністратор",
|
|
226
226
|
"agent": "Агент",
|
|
227
227
|
"Conversations": "Бесіди",
|
|
228
|
-
"Monitor": "Монітор",
|
|
229
|
-
"Flows": "Потоки",
|
|
230
|
-
"Knowledgebases": "Бази знань",
|
|
231
|
-
"Whatsappbroadcasts": "WhatsApp-розсилки",
|
|
232
228
|
"Apps": "Програми",
|
|
233
229
|
"Analytics": "Аналітика",
|
|
234
230
|
"Activities": "Діяльність",
|
package/src/assets/i18n/uz.json
CHANGED
|
@@ -225,10 +225,6 @@
|
|
|
225
225
|
"admin": "Administrator",
|
|
226
226
|
"agent": "Agent",
|
|
227
227
|
"Conversations": "Suhbatlar",
|
|
228
|
-
"Monitor": "Monitor",
|
|
229
|
-
"Flows": "Oqimlar",
|
|
230
|
-
"Knowledgebases": "Bilim bazalari",
|
|
231
|
-
"Whatsappbroadcasts": "WhatsApp efirlarini yuborish",
|
|
232
228
|
"Apps": "Ilovalar",
|
|
233
229
|
"Analytics": "Analitika",
|
|
234
230
|
"Activities": "Faoliyatlar",
|
|
@@ -387,7 +387,7 @@ export class FirebaseConversationHandler extends ConversationHandlerService {
|
|
|
387
387
|
} else {
|
|
388
388
|
|
|
389
389
|
if (message.attributes.messagelabel.parameters.firstname) {
|
|
390
|
-
// other user has been added to the group (and he has a
|
|
390
|
+
// other user has been added to the group (and he has a firstname)
|
|
391
391
|
subject = message.attributes.messagelabel.parameters.firstname;
|
|
392
392
|
verb = INFO_SUPPORT_USER_ADDED_VERB;
|
|
393
393
|
complement = INFO_SUPPORT_USER_ADDED_COMPLEMENT;
|
|
@@ -365,7 +365,7 @@ export class MQTTConversationHandler extends ConversationHandlerService {
|
|
|
365
365
|
complement = INFO_SUPPORT_USER_ADDED_COMPLEMENT;
|
|
366
366
|
} else {
|
|
367
367
|
if (message.attributes.messagelabel.parameters.firstname) {
|
|
368
|
-
// other user has been added to the group (and he has a
|
|
368
|
+
// other user has been added to the group (and he has a firstname)
|
|
369
369
|
subject = message.attributes.messagelabel.parameters.firstname;
|
|
370
370
|
verb = INFO_SUPPORT_USER_ADDED_VERB;
|
|
371
371
|
complement = INFO_SUPPORT_USER_ADDED_COMPLEMENT;
|
|
@@ -121,7 +121,6 @@ export class TiledeskAuthService {
|
|
|
121
121
|
this.http.post(this.URL_TILEDESK_SIGNIN_WITH_CUSTOM_TOKEN, null, requestOptions).subscribe((data) => {
|
|
122
122
|
if (data['success'] && data['token']) {
|
|
123
123
|
that.tiledeskToken = data['token'];
|
|
124
|
-
data['user'].token = tiledeskToken; // mantengo il token custom nell'oggetto user
|
|
125
124
|
that.createCompleteUser(data['user']);
|
|
126
125
|
this.checkAndSetInStorageTiledeskToken(that.tiledeskToken)
|
|
127
126
|
this.BS_IsONLINE.next(true)
|
|
@@ -178,8 +177,6 @@ export class TiledeskAuthService {
|
|
|
178
177
|
this.currentUser = member;
|
|
179
178
|
this.logger.log('[TILEDESK-AUTH] - createCompleteUser member ', member);
|
|
180
179
|
this.appStorage.setItem('currentUser', JSON.stringify(this.currentUser));
|
|
181
|
-
const { iat, aud, iss, jti, ...cleanUser } = user; //destructuring and rest user object
|
|
182
|
-
localStorage.setItem('user', JSON.stringify(cleanUser));
|
|
183
180
|
|
|
184
181
|
} catch (err) {
|
|
185
182
|
this.logger.error('[TILEDESK-AUTH]- createCompleteUser ERR ', err)
|
|
@@ -119,8 +119,8 @@ export const STORAGE_PREFIX = 'tiledesk_widget_';
|
|
|
119
119
|
|
|
120
120
|
// links
|
|
121
121
|
export const FIREBASESTORAGE_BASE_URL_IMAGE = 'https://firebasestorage.googleapis.com/v0/b/' //+ 'chat-v2-dev.appspot.com/o/';
|
|
122
|
-
export const IMG_PROFILE_BOT = '/assets/
|
|
123
|
-
export const IMG_PROFILE_DEFAULT = '/assets/
|
|
122
|
+
export const IMG_PROFILE_BOT = '/assets/img/avatar_bot_tiledesk.svg';
|
|
123
|
+
export const IMG_PROFILE_DEFAULT = '/assets/img/avatar_male_tiledesk.svg';
|
|
124
124
|
|
|
125
125
|
//LOG LEVEL
|
|
126
126
|
// export enum LogLevel {
|
|
@@ -1018,14 +1018,6 @@ export function isAllowedUrlInText(text: string, allowedUrls: string[]) {
|
|
|
1018
1018
|
}
|
|
1019
1019
|
|
|
1020
1020
|
function extractUrls(text: string): string[] {
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
const matches = text.match(urlRegex) || [];
|
|
1024
|
-
// Normalizza: aggiunge https:// se manca, così il parsing con new URL() funziona
|
|
1025
|
-
return matches.map((url) => {
|
|
1026
|
-
if (!/^https?:\/\//i.test(url)) {
|
|
1027
|
-
return 'https://' + url;
|
|
1028
|
-
}
|
|
1029
|
-
return url;
|
|
1030
|
-
});
|
|
1021
|
+
const urlRegex = /https?:\/\/[^\s]+/g;
|
|
1022
|
+
return text.match(urlRegex) || [];
|
|
1031
1023
|
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { TestBed } from '@angular/core/testing';
|
|
2
|
-
|
|
3
|
-
import { ProjectUsersService } from './project-users.service';
|
|
4
|
-
|
|
5
|
-
describe('ProjectUsersService', () => {
|
|
6
|
-
let service: ProjectUsersService;
|
|
7
|
-
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
TestBed.configureTestingModule({});
|
|
10
|
-
service = TestBed.inject(ProjectUsersService);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
it('should be created', () => {
|
|
14
|
-
expect(service).toBeTruthy();
|
|
15
|
-
});
|
|
16
|
-
});
|