@chat21/chat21-ionic 3.4.27-rc6 → 3.4.27-rc8
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 +8 -0
- package/angular.json +1 -0
- package/package.json +1 -1
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +23 -0
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +30 -0
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +14 -0
- package/src/app/pages/conversation-detail/conversation-detail.page.html +3 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +17 -0
- package/src/assets/i18n/ar.json +7 -1
- package/src/assets/i18n/az.json +7 -1
- package/src/assets/i18n/de.json +7 -1
- package/src/assets/i18n/en.json +7 -1
- package/src/assets/i18n/es.json +7 -1
- package/src/assets/i18n/fr.json +7 -1
- package/src/assets/i18n/it.json +9 -3
- package/src/assets/i18n/kk.json +7 -1
- package/src/assets/i18n/pt.json +7 -1
- package/src/assets/i18n/ru.json +7 -1
- package/src/assets/i18n/sr.json +7 -1
- package/src/assets/i18n/sv.json +7 -1
- package/src/assets/i18n/tr.json +7 -1
- package/src/assets/i18n/uk.json +7 -1
- package/src/assets/i18n/uz.json +8 -1
- package/src/assets/js/agentDesktop-sdk.js +47 -0
- package/src/chat-config-template.json +1 -0
- package/src/chat-config.json +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,14 @@
|
|
|
8
8
|
### **Copyrigth**:
|
|
9
9
|
*Tiledesk SRL*
|
|
10
10
|
|
|
11
|
+
# 3.4.27-rc8
|
|
12
|
+
- **added**: ability to open ticket to external service
|
|
13
|
+
- **added**: ticketSection env var
|
|
14
|
+
|
|
15
|
+
# 3.4.27-rc7
|
|
16
|
+
- **bug-fixed**: Scrolling to the last message when opening a conversation
|
|
17
|
+
- **bug-fixed**: Loading in the conversation list disabled when removing the last conversation
|
|
18
|
+
|
|
11
19
|
# 3.4.27-rc6
|
|
12
20
|
- **bug-fixed**: user for dashboard app is incorrect
|
|
13
21
|
|
package/angular.json
CHANGED
package/package.json
CHANGED
package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html
CHANGED
|
@@ -22,6 +22,13 @@
|
|
|
22
22
|
{{translationMap?.get('WHATSAPP.LABEL_TEMPLATES')}}
|
|
23
23
|
</ion-button>
|
|
24
24
|
</div>
|
|
25
|
+
<!-- OPEN TICKET -->
|
|
26
|
+
<div *ngIf="ticketSection" class="section-option" id="template" tooltip="{{translationMap?.get('TICKET.OPEN_TICKET')}}" placement="top">
|
|
27
|
+
<ion-button fill="clear" [class.active]="section==='ticket'" (click)="onOpenSection('ticket')" [disabled]="channelType === 'direct'">
|
|
28
|
+
<ion-icon name="ticket"></ion-icon>
|
|
29
|
+
{{translationMap?.get('TICKET.OPEN_TICKET')}}
|
|
30
|
+
</ion-button>
|
|
31
|
+
</div>
|
|
25
32
|
</div>
|
|
26
33
|
|
|
27
34
|
<div class="footerContainerAlert">
|
|
@@ -50,6 +57,22 @@
|
|
|
50
57
|
</ion-col>
|
|
51
58
|
</ion-row>
|
|
52
59
|
|
|
60
|
+
<ion-row id="ticket" [style.display]="section==='ticket'? 'flex': 'none'">
|
|
61
|
+
<ion-col col-auto>
|
|
62
|
+
<div class="placeholder">{{translationMap.get('TICKET.DESCRIPTION')}}</div>
|
|
63
|
+
<div class="buttons-container">
|
|
64
|
+
<ion-button name="add" size="small" (click)="onClickTicket('open')">
|
|
65
|
+
<ion-icon name="add"></ion-icon>
|
|
66
|
+
{{translationMap?.get('TICKET.CONFIRM')}}
|
|
67
|
+
</ion-button>
|
|
68
|
+
<ion-button size="small" color="danger" (click)="onClickTicket('close')">
|
|
69
|
+
<ion-icon name="close"></ion-icon>
|
|
70
|
+
{{translationMap?.get('TICKET.CLOSE')}}
|
|
71
|
+
</ion-button>
|
|
72
|
+
</div>
|
|
73
|
+
</ion-col>
|
|
74
|
+
</ion-row>
|
|
75
|
+
|
|
53
76
|
<ion-row id="message-text-area" [style.display]="section==='chat' || section ==='templates' || section ==='copilot'? 'flex': 'none'">
|
|
54
77
|
|
|
55
78
|
<ion-col col-auto style="display: flex;">
|
package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss
CHANGED
|
@@ -183,6 +183,36 @@
|
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
+
#ticket{
|
|
187
|
+
text-align: center;
|
|
188
|
+
font-size: 12px;
|
|
189
|
+
|
|
190
|
+
.buttons-container{
|
|
191
|
+
display: flex;
|
|
192
|
+
justify-content: center;
|
|
193
|
+
gap: 10px;
|
|
194
|
+
|
|
195
|
+
ion-button{
|
|
196
|
+
font-size: 12px;
|
|
197
|
+
--padding-top: 4px;
|
|
198
|
+
--padding-bottom: 4px;
|
|
199
|
+
--padding-start: 6px;
|
|
200
|
+
--padding-end: 6px;
|
|
201
|
+
--ripple-color: transparent;
|
|
202
|
+
text-transform: unset;
|
|
203
|
+
height: auto;
|
|
204
|
+
|
|
205
|
+
ion-icon{
|
|
206
|
+
margin-right: 4px;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
&[name="add"]{
|
|
210
|
+
--background: var(--basic-blue);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
186
216
|
#fileInput {
|
|
187
217
|
position: absolute;
|
|
188
218
|
opacity: 0;
|
package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts
CHANGED
|
@@ -63,17 +63,20 @@ export class MessageTextAreaComponent implements OnInit, AfterViewInit, OnChange
|
|
|
63
63
|
@Input() emailSection: boolean;
|
|
64
64
|
@Input() offlineMsgEmail: boolean;
|
|
65
65
|
@Input() whatsappTemplatesSection: boolean;
|
|
66
|
+
@Input() ticketSection: boolean
|
|
66
67
|
@Input() isOpenInfoConversation: boolean;
|
|
67
68
|
@Input() cannedSection: boolean;
|
|
68
69
|
@Input() stylesMap: Map<string, string>;
|
|
69
70
|
@Input() translationMap: Map<string, string>;
|
|
70
71
|
@Input() dropEvent: any;
|
|
71
72
|
@Input() disableTextarea: boolean;
|
|
73
|
+
@Input() roles: Array<string>;
|
|
72
74
|
@Output() eventChangeTextArea = new EventEmitter<{msg: string, offsetHeight: number}>();
|
|
73
75
|
@Output() eventSendMessage = new EventEmitter<{msg: string, type: string, metadata?: Object, attributes?: Object}>();
|
|
74
76
|
@Output() onClickOpenCannedResponses = new EventEmitter<boolean>();
|
|
75
77
|
@Output() onPresentModalScrollToBottom = new EventEmitter<boolean>();
|
|
76
78
|
@Output() onOpenFooterSection = new EventEmitter<string>();
|
|
79
|
+
@Output() onOpenTicket = new EventEmitter<boolean>();
|
|
77
80
|
|
|
78
81
|
public project: Project;
|
|
79
82
|
public conversationEnabled = false;
|
|
@@ -291,6 +294,17 @@ export class MessageTextAreaComponent implements OnInit, AfterViewInit, OnChange
|
|
|
291
294
|
this.prensentTemplateModal();
|
|
292
295
|
}
|
|
293
296
|
|
|
297
|
+
onClickTicket(option: "open" | "close"){
|
|
298
|
+
this.logger.log('[CONVS-DETAIL][MSG-TEXT-AREA] - onClickTicket', option);
|
|
299
|
+
switch(option){
|
|
300
|
+
case "open":
|
|
301
|
+
this.onOpenTicket.emit();
|
|
302
|
+
case "close":
|
|
303
|
+
this.section = 'chat'
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
}
|
|
307
|
+
|
|
294
308
|
|
|
295
309
|
/**
|
|
296
310
|
*
|
|
@@ -217,6 +217,7 @@
|
|
|
217
217
|
[cannedSection]="canShowCanned"
|
|
218
218
|
[whatsappTemplatesSection]="isWhatsappTemplatesEnabled"
|
|
219
219
|
[isOpenInfoConversation]="openInfoConversation"
|
|
220
|
+
[ticketSection]="isTicketEnabled"
|
|
220
221
|
[stylesMap]="styleMap"
|
|
221
222
|
[translationMap]="translationsMap"
|
|
222
223
|
[dropEvent]="dropEvent"
|
|
@@ -225,7 +226,8 @@
|
|
|
225
226
|
(onClickOpenCannedResponses)="onClickOpenCannedResponses($event)"
|
|
226
227
|
(eventSendMessage)="returnSendMessage($event)"
|
|
227
228
|
(onPresentModalScrollToBottom)="onPresentModalScrollToBottom($event)"
|
|
228
|
-
(onOpenFooterSection)="onOpenFooterSection($event)"
|
|
229
|
+
(onOpenFooterSection)="onOpenFooterSection($event)"
|
|
230
|
+
(onOpenTicket)="onOpenTicket($event)">
|
|
229
231
|
</app-message-text-area>
|
|
230
232
|
<!-- [events]="eventsReplaceTexareaText.asObservable()" -->
|
|
231
233
|
</ion-row>
|
|
@@ -176,6 +176,10 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
176
176
|
copilotQuestion: string = '';
|
|
177
177
|
/**COPILOT : end */
|
|
178
178
|
|
|
179
|
+
/** TICKET: start */
|
|
180
|
+
isTicketEnabled: boolean = false;
|
|
181
|
+
/** TICKET: end */
|
|
182
|
+
|
|
179
183
|
isMine = isMine
|
|
180
184
|
isInfo = isInfo
|
|
181
185
|
isFirstMessage = isFirstMessage
|
|
@@ -483,6 +487,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
483
487
|
this.messages = [] // list messages of conversation
|
|
484
488
|
this.isFileSelected = false // indicates if a file has been selected (image to upload)
|
|
485
489
|
this.isEmailEnabled = (this.appConfigProvider.getConfig().emailSection === 'true' || this.appConfigProvider.getConfig().emailSection === true) ? true : false;
|
|
490
|
+
this.isTicketEnabled = (this.appConfigProvider.getConfig().ticketSection === 'true' || this.appConfigProvider.getConfig().ticketSection === true) ? true : false;
|
|
486
491
|
this.isWhatsappTemplatesEnabled = (this.appConfigProvider.getConfig().whatsappTemplatesSection === 'true' || this.appConfigProvider.getConfig().whatsappTemplatesSection === true) ? true : false;
|
|
487
492
|
|
|
488
493
|
this.cannedResponsesService.initialize(appconfig.apiUrl)
|
|
@@ -711,6 +716,11 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
711
716
|
"WHATSAPP.ERROR_WHATSAPP_NOT_INSTALLED",
|
|
712
717
|
"WHATSAPP.ERROR_WHATSAPP_GENERIC_ERROR",
|
|
713
718
|
|
|
719
|
+
"TICKET.OPEN_TICKET",
|
|
720
|
+
"TICKET.DESCRIPTION",
|
|
721
|
+
"TICKET.CONFIRM",
|
|
722
|
+
"TICKET.CLOSE",
|
|
723
|
+
|
|
714
724
|
"COPILOT.ASK_AI",
|
|
715
725
|
"COPILOT.NO_SUGGESTIONS_PRESENT",
|
|
716
726
|
|
|
@@ -1926,6 +1936,13 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1926
1936
|
}
|
|
1927
1937
|
|
|
1928
1938
|
|
|
1939
|
+
onOpenTicket() {
|
|
1940
|
+
this.logger.debug('[CONVS-DETAIL] openTicketOnExternalService - conversationWith ', this.conversationWith)
|
|
1941
|
+
if(window['openTicketOnHDA']){
|
|
1942
|
+
window['openTicketOnHDA'](this.conversationWith)
|
|
1943
|
+
}
|
|
1944
|
+
|
|
1945
|
+
}
|
|
1929
1946
|
// -------------- START SCROLL/RESIZE -------------- //
|
|
1930
1947
|
/** */
|
|
1931
1948
|
resizeTextArea() {
|
package/src/assets/i18n/ar.json
CHANGED
|
@@ -310,5 +310,11 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"تم إرسال الرسالة أيضًا عبر البريد الإلكتروني 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "الرموز التعبيرية غير مسموح بها",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "يحتوي الرابط على نطاق غير مسموح"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "يحتوي الرابط على نطاق غير مسموح",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "افتح تذكرة",
|
|
316
|
+
"DESCRIPTION": "هل تؤكد أنك تريد فتح تذكرة لهذه المحادثة؟",
|
|
317
|
+
"CONFIRM": "تأكيد",
|
|
318
|
+
"CLOSE": "إغلاق"
|
|
319
|
+
}
|
|
314
320
|
}
|
package/src/assets/i18n/az.json
CHANGED
|
@@ -310,5 +310,11 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Mesaj e-poçt vasitəsilə də göndərilib 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "Emoji icazə verilmir",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "URL icazə verilməyən domeni ehtiva edir"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "URL icazə verilməyən domeni ehtiva edir",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "Bilet aç",
|
|
316
|
+
"DESCRIPTION": "Bu söhbət üçün bilet açmaq istədiyinizi təsdiqləyirsinizmi?",
|
|
317
|
+
"CONFIRM": "Təsdiqlə",
|
|
318
|
+
"CLOSE": "Bağla"
|
|
319
|
+
}
|
|
314
320
|
}
|
package/src/assets/i18n/de.json
CHANGED
|
@@ -310,5 +310,11 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Nachricht auch per E-Mail gesendet 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "Emoji nicht erlaubt",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "Die URL enthält eine nicht erlaubte Domain"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "Die URL enthält eine nicht erlaubte Domain",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "Ticket öffnen",
|
|
316
|
+
"DESCRIPTION": "Bestätigen Sie, dass Sie ein Ticket für dieses Gespräch eröffnen möchten?",
|
|
317
|
+
"CONFIRM": "Bestätigen",
|
|
318
|
+
"CLOSE": "Schließen"
|
|
319
|
+
}
|
|
314
320
|
}
|
package/src/assets/i18n/en.json
CHANGED
|
@@ -318,5 +318,11 @@
|
|
|
318
318
|
"HOW_CAN_I_HELP_YOU":"How can i help you?"
|
|
319
319
|
},
|
|
320
320
|
"EMOJI_NOT_ELLOWED":"Emoji not allowed",
|
|
321
|
-
"DOMAIN_NOT_ALLOWED":"URL contains a non-allowed domain"
|
|
321
|
+
"DOMAIN_NOT_ALLOWED":"URL contains a non-allowed domain",
|
|
322
|
+
"TICKET": {
|
|
323
|
+
"OPEN_TICKET": "Open Ticket",
|
|
324
|
+
"DESCRIPTION": "Do you confirm you want to open a ticket for this conversation?",
|
|
325
|
+
"CONFIRM": "Confirm",
|
|
326
|
+
"CLOSE": "Close"
|
|
327
|
+
}
|
|
322
328
|
}
|
package/src/assets/i18n/es.json
CHANGED
|
@@ -310,5 +310,11 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Mensaje también enviado por correo electrónico 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "Emoji no permitido",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "La URL contiene un dominio no permitido"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "La URL contiene un dominio no permitido",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "Abrir Ticket",
|
|
316
|
+
"DESCRIPTION": "¿Confirmas que deseas abrir un ticket para esta conversación?",
|
|
317
|
+
"CONFIRM": "Confirmar",
|
|
318
|
+
"CLOSE": "Cerrar"
|
|
319
|
+
}
|
|
314
320
|
}
|
package/src/assets/i18n/fr.json
CHANGED
|
@@ -310,5 +310,11 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Message également envoyé par mail 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "Emoji non autorisé",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "L'URL contient un domaine non autorisé"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "L'URL contient un domaine non autorisé",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "Ouvrir un Ticket",
|
|
316
|
+
"DESCRIPTION": "Confirmez-vous vouloir ouvrir un ticket pour cette conversation ?",
|
|
317
|
+
"CONFIRM": "Confirmer",
|
|
318
|
+
"CLOSE": "Fermer"
|
|
319
|
+
}
|
|
314
320
|
}
|
package/src/assets/i18n/it.json
CHANGED
|
@@ -316,7 +316,13 @@
|
|
|
316
316
|
"NO_SUGGESTIONS_PRESENT":"Nessun suggerimento trovato",
|
|
317
317
|
"INSERT_PROMPT_HERE":"Inserisci un prompt qui",
|
|
318
318
|
"HOW_CAN_I_HELP_YOU":"Come posso aiutarti?"
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
319
|
+
},
|
|
320
|
+
"EMOJI_NOT_ELLOWED": "Emoji non consentite",
|
|
321
|
+
"DOMAIN_NOT_ALLOWED": "L'URL contiene un dominio non consentito",
|
|
322
|
+
"TICKET": {
|
|
323
|
+
"OPEN_TICKET": "Apri Ticket",
|
|
324
|
+
"DESCRIPTION": "Confermi di voler aprire un ticket per questa conversazione?",
|
|
325
|
+
"CONFIRM": "Conferma",
|
|
326
|
+
"CLOSE": "Chiudi"
|
|
327
|
+
}
|
|
322
328
|
}
|
package/src/assets/i18n/kk.json
CHANGED
|
@@ -310,5 +310,11 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Хабарлама электрондық пошта арқылы да жіберілді 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "Эмодзи рұқсат етілмеген",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "URL рұқсат етілмеген доменді қамтиды"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "URL рұқсат етілмеген доменді қамтиды",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "Тапсырма ашу",
|
|
316
|
+
"DESCRIPTION": "Осы әңгіме үшін тапсырма ашқыңыз келетінін растайсыз ба?",
|
|
317
|
+
"CONFIRM": "Растау",
|
|
318
|
+
"CLOSE": "Жабу"
|
|
319
|
+
}
|
|
314
320
|
}
|
package/src/assets/i18n/pt.json
CHANGED
|
@@ -310,5 +310,11 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Mensagem também enviada por e-mail 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "Emoji não permitido",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "O URL contém um domínio não permitido"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "O URL contém um domínio não permitido",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "Abrir Ticket",
|
|
316
|
+
"DESCRIPTION": "Confirma que deseja abrir um ticket para esta conversa?",
|
|
317
|
+
"CONFIRM": "Confirmar",
|
|
318
|
+
"CLOSE": "Fechar"
|
|
319
|
+
}
|
|
314
320
|
}
|
package/src/assets/i18n/ru.json
CHANGED
|
@@ -310,5 +310,11 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Сообщение также отправлено по электронной почте 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "Эмодзи не разрешены",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "URL содержит недопустимый домен"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "URL содержит недопустимый домен",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "Открыть тикет",
|
|
316
|
+
"DESCRIPTION": "Вы подтверждаете, что хотите открыть тикет для этого разговора?",
|
|
317
|
+
"CONFIRM": "Подтвердить",
|
|
318
|
+
"CLOSE": "Закрыть"
|
|
319
|
+
}
|
|
314
320
|
}
|
package/src/assets/i18n/sr.json
CHANGED
|
@@ -310,5 +310,11 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Порука је такође послата е-поштом 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "Emodžiji nisu dozvoljeni",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "URL sadrži nedozvoljenu domenu"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "URL sadrži nedozvoljenu domenu",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "Otvori tiket",
|
|
316
|
+
"DESCRIPTION": "Da li potvrđujete da želite da otvorite tiket za ovaj razgovor?",
|
|
317
|
+
"CONFIRM": "Potvrdi",
|
|
318
|
+
"CLOSE": "Zatvori"
|
|
319
|
+
}
|
|
314
320
|
}
|
package/src/assets/i18n/sv.json
CHANGED
|
@@ -310,5 +310,11 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Meddelande skickas även via mail 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "Emoji är inte tillåtna",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "URL:en innehåller en otillåten domän"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "URL:en innehåller en otillåten domän",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "Öppna Ärende",
|
|
316
|
+
"DESCRIPTION": "Bekräftar du att du vill öppna ett ärende för den här konversationen?",
|
|
317
|
+
"CONFIRM": "Bekräfta",
|
|
318
|
+
"CLOSE": "Stäng"
|
|
319
|
+
}
|
|
314
320
|
}
|
package/src/assets/i18n/tr.json
CHANGED
|
@@ -310,5 +310,11 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Mesaj ayrıca e-posta ile gönderilir 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "Emoji'ye izin verilmiyor",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "URL izin verilmeyen bir alan adı içeriyor"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "URL izin verilmeyen bir alan adı içeriyor",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "Bilet Aç",
|
|
316
|
+
"DESCRIPTION": "Bu görüşme için bir bilet açmak istediğinizi onaylıyor musunuz?",
|
|
317
|
+
"CONFIRM": "Onayla",
|
|
318
|
+
"CLOSE": "Kapat"
|
|
319
|
+
}
|
|
314
320
|
}
|
package/src/assets/i18n/uk.json
CHANGED
|
@@ -310,5 +310,11 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Повідомлення також надіслано електронною поштою 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "Емодзі не дозволені",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "URL містить недозволений домен"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "URL містить недозволений домен",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "Відкрити тікет",
|
|
316
|
+
"DESCRIPTION": "Підтверджуєте, що хочете відкрити тікет для цієї розмови?",
|
|
317
|
+
"CONFIRM": "Підтвердити",
|
|
318
|
+
"CLOSE": "Закрити"
|
|
319
|
+
}
|
|
314
320
|
}
|
package/src/assets/i18n/uz.json
CHANGED
|
@@ -310,5 +310,12 @@
|
|
|
310
310
|
"SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Xabar elektron pochta orqali ham yuborildi 📩"
|
|
311
311
|
},
|
|
312
312
|
"EMOJI_NOT_ELLOWED": "Emoji'ga ruxsat berilmagan",
|
|
313
|
-
"DOMAIN_NOT_ALLOWED": "URL ruxsat etilmagan domenni o'z ichiga oladi"
|
|
313
|
+
"DOMAIN_NOT_ALLOWED": "URL ruxsat etilmagan domenni o'z ichiga oladi",
|
|
314
|
+
"TICKET": {
|
|
315
|
+
"OPEN_TICKET": "Chiptani ochish",
|
|
316
|
+
"DESCRIPTION": "Ushbu suhbat uchun chipta ochmoqchi ekanligingizni tasdiqlaysizmi?",
|
|
317
|
+
"CONFIRM": "Tasdiqlash",
|
|
318
|
+
"CLOSE": "Yopish"
|
|
319
|
+
}
|
|
320
|
+
|
|
314
321
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
function loadAgentDesktopScript() {
|
|
2
|
+
if (document.getElementById('agentdesktop-sdk')) {
|
|
3
|
+
return;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
const script = document.createElement('script');
|
|
7
|
+
script.id = 'agentdesktop-sdk';
|
|
8
|
+
script.type = 'text/javascript';
|
|
9
|
+
script.src = 'https://devcti.aruba.it/AD/widget/agentdesktop_widget.js';
|
|
10
|
+
script.async = true;
|
|
11
|
+
|
|
12
|
+
script.onload = () => {
|
|
13
|
+
console.log('AgentDesktop SDK caricato');
|
|
14
|
+
window.agentDesktopLoaded = true;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
script.onerror = (error) => {
|
|
18
|
+
console.error('Errore nel caricamento AgentDesktop SDK', error);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
if (document.body) {
|
|
27
|
+
document.body.appendChild(script);
|
|
28
|
+
} else {
|
|
29
|
+
window.addEventListener('DOMContentLoaded', function() {
|
|
30
|
+
document.body.appendChild(script);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
function openTicketOnHDA(requestId){
|
|
37
|
+
console.log('openTicketOnHDA called with requestId:', requestId);
|
|
38
|
+
if(window && window.parent){
|
|
39
|
+
const message = { companyID: "1", sourceID: "CHAT", tiledeskID: requestId }
|
|
40
|
+
window.parent.postMessage(message, 'https://devhda2bo.aruba.it/HDAPortal/');
|
|
41
|
+
window.postMessage(message, 'https://devhda2bo.aruba.it/HDAPortal/');
|
|
42
|
+
console.log('Message posted to parent window and current window');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
loadAgentDesktopScript();
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"wsUrlRel": "${WS_URL_RELATIVE}",
|
|
38
38
|
"storage_prefix": "${CHAT_STORAGE_PREFIX}",
|
|
39
39
|
"emailSection": "${EMAIL_SECTION}",
|
|
40
|
+
"ticketSection": "${TICKET_SECTION}",
|
|
40
41
|
"whatsappTemplatesSection":"${WHATSAPP_TEMPLATES_SECTION}",
|
|
41
42
|
"googleMapsApiKey":"${GOOGLE_MAPS_APIKEY}"
|
|
42
43
|
}
|