@chat21/chat21-ionic 3.4.32-rc9 → 3.4.34

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.
Files changed (56) hide show
  1. package/CHANGELOG.md +16 -127
  2. package/angular.json +0 -1
  3. package/package.json +1 -1
  4. package/src/app/app.component.html +1 -3
  5. package/src/app/app.component.ts +11 -70
  6. package/src/app/components/canned-response/canned-response.component.html +2 -2
  7. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +0 -23
  8. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +0 -30
  9. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +7 -26
  10. package/src/app/components/conversation-info/info-content/info-content.component.ts +2 -2
  11. package/src/app/components/navbar/navbar.component.ts +5 -5
  12. package/src/app/components/project-item/project-item.component.ts +36 -35
  13. package/src/app/components/sidebar/sidebar.component.html +1 -1
  14. package/src/app/components/sidebar/sidebar.component.ts +5 -0
  15. package/src/app/components/sidebar-user-details/sidebar-user-details.component.scss +15 -7
  16. package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +3 -3
  17. package/src/app/pages/conversation-detail/conversation-detail.page.html +1 -3
  18. package/src/app/pages/conversation-detail/conversation-detail.page.ts +3 -45
  19. package/src/app/pages/conversations-list/conversations-list.page.ts +1 -7
  20. package/src/app/services/global-settings/global-settings.service.ts +3 -11
  21. package/src/app/services/nav-proxy.service.ts +1 -0
  22. package/src/app/services/projects/project.service.ts +1 -1
  23. package/src/app/services/tiledesk/tiledesk.service.ts +0 -17
  24. package/src/app/services/triggerEvents/triggerEvents.ts +0 -29
  25. package/src/app/services/websocket/websocket-js.ts +535 -61
  26. package/src/app/services/websocket/websocket.service.ts +11 -10
  27. package/src/app/utils/globals.ts +0 -2
  28. package/src/app/utils/utils.ts +0 -1
  29. package/src/assets/i18n/ar.json +2 -7
  30. package/src/assets/i18n/az.json +2 -7
  31. package/src/assets/i18n/de.json +2 -7
  32. package/src/assets/i18n/en.json +2 -7
  33. package/src/assets/i18n/es.json +2 -7
  34. package/src/assets/i18n/fr.json +2 -7
  35. package/src/assets/i18n/it.json +4 -9
  36. package/src/assets/i18n/kk.json +2 -7
  37. package/src/assets/i18n/pt.json +2 -7
  38. package/src/assets/i18n/ru.json +2 -7
  39. package/src/assets/i18n/sr.json +2 -7
  40. package/src/assets/i18n/sv.json +2 -7
  41. package/src/assets/i18n/tr.json +2 -7
  42. package/src/assets/i18n/uk.json +2 -7
  43. package/src/assets/i18n/uz.json +2 -8
  44. package/src/assets/js/chat21client.js +0 -36
  45. package/src/assets/test.html +2 -5
  46. package/src/chat-config-template.json +0 -1
  47. package/src/chat-config.json +0 -1
  48. package/src/chat21-core/models/projectUsers.ts +21 -12
  49. package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +1 -1
  50. package/src/chat21-core/providers/mqtt/mqtt-conversation-handler.ts +1 -1
  51. package/src/chat21-core/utils/utils.ts +2 -16
  52. package/src/app/services/websocket/websocket-js_old.ts +0 -578
  53. package/src/app/services/websocket/websocket.worker.ts +0 -242
  54. package/src/assets/js/agentDesktop-sdk.js +0 -55
  55. package/src/assets/js/mqtt-keepalive-worker.js +0 -53
  56. package/src/chat21-core/models/project_user.ts +0 -26
@@ -15,7 +15,7 @@ import { AppConfigProvider } from 'src/app/services/app-config';
15
15
  import { ConvertRequestToConversation } from 'src/chat21-core/utils/convertRequestToConversation';
16
16
  import { compareValues, getUserStatusFromProjectUser } from 'src/chat21-core/utils/utils';
17
17
  import { ProjectService } from 'src/app/services/projects/project.service';
18
- import { ProjectUser } from 'src/chat21-core/models/project_user';
18
+ import { ProjectUser } from 'src/chat21-core/models/projectUsers';
19
19
 
20
20
  @Component({
21
21
  selector: 'app-project-item',
@@ -89,17 +89,17 @@ export class ProjectItemComponent implements OnInit {
89
89
 
90
90
  connetWebsocket(tiledeskToken) {
91
91
 
92
- // this.logger.log('[WEBSOCKET-JS] connetWebsocket called in [PROJECT-ITEM] tiledeskToken ', tiledeskToken)
93
- // const appconfig = this.appConfigProvider.getConfig();
94
- // this.logger.log('[WEBSOCKET-JS] connetWebsocket called in [PROJECT-ITEM] wsUrl ', appconfig.wsUrl)
95
- // const WS_URL = appconfig.wsUrl + '?token=' + tiledeskToken
96
- // this.logger.log('[WEBSOCKET-JS] connetWebsocket called in [PROJECT-ITEM] wsUrl ', WS_URL)
97
- // this.webSocketJs.init(
98
- // WS_URL,
99
- // undefined,
100
- // undefined,
101
- // undefined
102
- // );
92
+ this.logger.log('[WEBSOCKET-JS] connetWebsocket called in [PROJECT-ITEM] tiledeskToken ', tiledeskToken)
93
+ const appconfig = this.appConfigProvider.getConfig();
94
+ this.logger.log('[WEBSOCKET-JS] connetWebsocket called in [PROJECT-ITEM] wsUrl ', appconfig.wsUrl)
95
+ const WS_URL = appconfig.wsUrl + '?token=' + tiledeskToken
96
+ this.logger.log('[WEBSOCKET-JS] connetWebsocket called in [PROJECT-ITEM] wsUrl ', WS_URL)
97
+ this.webSocketJs.init(
98
+ WS_URL,
99
+ undefined,
100
+ undefined,
101
+ undefined
102
+ );
103
103
 
104
104
  this.getLastProjectStoredAndSubscToWSAvailabilityAndConversations();
105
105
  }
@@ -332,27 +332,32 @@ export class ProjectItemComponent implements OnInit {
332
332
  if (!r?.id_project) return undefined;
333
333
  return typeof r.id_project === 'string' ? r.id_project : r.id_project?._id;
334
334
  }
335
-
335
+
336
336
  private recalculateUnservedCount(requests: any[]) {
337
337
  if (!requests) return;
338
+
338
339
  let count = 0;
339
- this.unservedConversations = [];
340
- requests.forEach((r) => {
340
+ const nextConvs: ConversationModel[] = [];
341
+ const seenUids = new Set<string>();
342
+
343
+ for (const r of requests) {
341
344
  const projectId = this.getRequestProjectId(r);
342
- if (!projectId || !this.availableProjectIds.has(projectId)) return;
343
- if (r['status'] === 100 && this.hasmeInAgents(r['agents']) === true) {
344
- count += 1;
345
- const conv = this.convertRequestToConversation.getConvFromRequest(r);
346
- if (!this.unservedConversations.find((el) => el.uid === conv.uid)) {
347
- this.unservedConversations.push(conv);
348
- this.unservedConversations.sort(compareValues('timestamp', 'desc'));
349
- }
350
- }
351
- });
345
+ if (!projectId || !this.availableProjectIds.has(projectId)) continue;
346
+ if (r['status'] !== 100 || !this.hasmeInAgents(r['agents'])) continue;
347
+
348
+ count += 1;
349
+ const conv = this.convertRequestToConversation.getConvFromRequest(r);
350
+ if (seenUids.has(conv.uid)) continue;
351
+ seenUids.add(conv.uid);
352
+ nextConvs.push(conv);
353
+ }
354
+
355
+ nextConvs.sort(compareValues('timestamp', 'desc'));
356
+ this.unservedConversations = nextConvs;
357
+
352
358
  if (count > this.unservedRequestCount) {
353
359
  this.events.publish('unservedRequest:count', count);
354
360
  }
355
- console.log('unservedRequestCount', count);
356
361
  this.unservedRequestCount = count;
357
362
  }
358
363
 
@@ -367,16 +372,12 @@ export class ProjectItemComponent implements OnInit {
367
372
  );
368
373
  }
369
374
 
370
- hasmeInAgents(agents) {
371
- if (agents) {
372
- for (let j = 0; j < agents.length; j++) {
373
- if (this.currentUserId === agents[j].id_user) {
374
- return true
375
- }
376
- }
377
- } else {
378
- this.logger.log('[PROJECT-ITEM] hasmeInAgents OOPS!!! AGENTS THERE ARE NOT ')
375
+ hasmeInAgents(agents: any[] | undefined): boolean {
376
+ if (!agents) {
377
+ this.logger.log('[PROJECT-ITEM] hasmeInAgents OOPS!!! AGENTS THERE ARE NOT ');
378
+ return false;
379
379
  }
380
+ return agents.some((a) => a.id_user === this.currentUserId);
380
381
  }
381
382
 
382
383
  isValidStoredProject(obj: any): obj is ProjectUser {
@@ -128,7 +128,7 @@
128
128
  <!-- ----------------------------- -->
129
129
  <!-- WA broadcasts -->
130
130
  <!-- ----------------------------- -->
131
- <ng-container *ngIf="USER_ROLE !== 'agent' && roles?.[PERMISSIONS.AUTOMATIONSLOG_READ]">
131
+ <ng-container *ngIf="isVisibleAUT && roles?.[PERMISSIONS.AUTOMATIONSLOG_READ]">
132
132
  <div matTooltipClass="custom-mat-tooltip" matTooltip="{{translationsMap?.get('WhatsAppBroadcasts')}}"
133
133
  #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100">
134
134
  <a target="_self" href="{{ URLS.WHATSAPP }}" class="customAncor">
@@ -39,6 +39,7 @@ export class SidebarComponent implements OnInit {
39
39
  isVisibleACT: boolean;
40
40
  isVisibleMON: boolean;
41
41
  isVisibleCNT: boolean;
42
+ isVisibleAUT: boolean;
42
43
  isVisibleKNB: boolean;
43
44
  photo_profile_URL: string;
44
45
  project_id: string;
@@ -49,6 +50,7 @@ export class SidebarComponent implements OnInit {
49
50
  conversations_lbl: string;
50
51
  whatsappbroadcast_lbl: string;
51
52
  contacts_lbl: string;
53
+ whatsapp_lbl: string;
52
54
  apps_lbl: string;
53
55
  analytics_lbl: string;
54
56
  activities_lbl: string;
@@ -269,6 +271,7 @@ setQueryParamsForAll(queryParams: any) {
269
271
  const keys= [
270
272
  'Conversations',
271
273
  'LABEL_CONTACTS',
274
+ 'LABEL_WA',
272
275
  'Apps',
273
276
  'Analytics',
274
277
  'Activities',
@@ -280,6 +283,7 @@ setQueryParamsForAll(queryParams: any) {
280
283
  this.conversations_lbl = text['Conversations'];
281
284
  this.whatsappbroadcast_lbl = text['WhatsAppBroadcasts']
282
285
  this.contacts_lbl = text['LABEL_CONTACTS']
286
+ this.whatsapp_lbl = text['LABEL_WA']
283
287
  this.apps_lbl = text['Apps']
284
288
  this.analytics_lbl = text['Analytics']
285
289
  this.activities_lbl = text['Activities']
@@ -296,6 +300,7 @@ setQueryParamsForAll(queryParams: any) {
296
300
  this.isVisibleACT = getOSCode("ACT", this.public_Key);
297
301
  this.isVisibleMON = getOSCode("MON", this.public_Key);
298
302
  this.isVisibleCNT = getOSCode("CNT", this.public_Key);
303
+ this.isVisibleAUT = getOSCode("AUT", this.public_Key);
299
304
  this.isVisibleKNB = getOSCode("KNB", this.public_Key);
300
305
 
301
306
  }
@@ -165,15 +165,15 @@
165
165
  background-color: var(--sidebar-user-detail-select-background);
166
166
  padding: 4px 0px;
167
167
  border-radius: 4px;
168
+ // width: 192px;
168
169
  -webkit-transform: translateX(-50%);
169
170
  transform: translateX(-50%);
170
171
  left: 50%;
171
172
  margin: auto;
172
173
  position: absolute;
174
+ font-size: 14px;
173
175
  z-index: 2;
174
176
 
175
-
176
-
177
177
  .btn{
178
178
  display: flex;
179
179
  position: relative;
@@ -182,7 +182,9 @@
182
182
  justify-content: center;
183
183
 
184
184
  border: 1px solid transparent;
185
- transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out
185
+ transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
186
+ margin: 0px;
187
+ box-shadow: none;
186
188
  }
187
189
 
188
190
  .dropdown-toggle{
@@ -289,7 +291,7 @@
289
291
  -webkit-background-clip: padding-box;
290
292
  background-clip: padding-box;
291
293
  color: var(--sidebar-user-detail-select-color);
292
- max-height: 240px;
294
+ max-height: 250px;
293
295
  overflow-y: auto;
294
296
  }
295
297
 
@@ -326,7 +328,7 @@
326
328
 
327
329
  .dropdown-menu li>a{
328
330
  font-size: 13px;
329
- padding: 10px 20px;
331
+ padding: 10px 12px;
330
332
  border-radius: 2px;
331
333
  transition: all 150ms linear;
332
334
 
@@ -337,6 +339,7 @@
337
339
  color: var(--sidebar-user-detail-select-color);
338
340
  white-space: nowrap;
339
341
  text-decoration: none;
342
+ margin: 0px;
340
343
  cursor: auto;
341
344
 
342
345
  img {
@@ -345,7 +348,6 @@
345
348
  position: relative;
346
349
  top: 1px;
347
350
  }
348
-
349
351
  .material-icons {
350
352
  vertical-align: middle;
351
353
  }
@@ -379,6 +381,13 @@
379
381
 
380
382
  &.project-item-status-wrapper {
381
383
  position: relative;
384
+
385
+ .project-item-status-name {
386
+ margin-right: 4px;
387
+ color: #a9afbb;
388
+ font-size: 9px;
389
+
390
+ }
382
391
  }
383
392
 
384
393
  .status-dropdown {
@@ -426,7 +435,6 @@
426
435
  /* Status dropdown fuori da #user-details - stessi colori ng-select */
427
436
  .status-dropdown-outside {
428
437
  position: fixed !important;
429
- transform: translateY(-50%);
430
438
  z-index: 1100;
431
439
  min-width: 140px;
432
440
  padding: 4px 0;
@@ -18,7 +18,8 @@ import { BRAND_BASE_INFO } from 'src/app/utils/utils-resources';
18
18
  import { getOSCode } from 'src/app/utils/utils';
19
19
  import { getUserStatusFromProjectUser } from 'src/chat21-core/utils/utils';
20
20
  import { ProjectService } from 'src/app/services/projects/project.service';
21
- import { ProjectUser } from 'src/chat21-core/models/project_user';
21
+ import { ProjectUser } from 'src/chat21-core/models/projectUsers';
22
+
22
23
  @Component({
23
24
  selector: 'app-sidebar-user-details',
24
25
  templateUrl: './sidebar-user-details.component.html',
@@ -28,7 +29,6 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges, OnDestroy
28
29
  // HAS_CLICKED_OPEN_USER_DETAIL: boolean = false;
29
30
  // @Output() onCloseUserDetailsSidebar = new EventEmitter();
30
31
 
31
- @Input() logOut: boolean;
32
32
 
33
33
  public browserLang: string;
34
34
  private logger: LoggerService = LoggerInstance.getInstance()
@@ -339,7 +339,7 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges, OnDestroy
339
339
  listenToCurrentStoredProject() {
340
340
  this.events.subscribe('storage:last_project', projectObjct => {
341
341
  if (projectObjct && projectObjct !== 'undefined') {
342
- this.logger.log('[SIDEBAR-USER-DETAILS] - GET STORED PROJECT ', projectObjct)
342
+ // this.logger.log('[SIDEBAR-USER-DETAILS] - GET STORED PROJECT ', projectObjct)
343
343
 
344
344
  //TODO: recuperare info da root e non da id_project
345
345
  this.project = {
@@ -217,7 +217,6 @@
217
217
  [cannedSection]="canShowCanned"
218
218
  [whatsappTemplatesSection]="isWhatsappTemplatesEnabled"
219
219
  [isOpenInfoConversation]="openInfoConversation"
220
- [ticketSection]="isTicketEnabled"
221
220
  [stylesMap]="styleMap"
222
221
  [translationMap]="translationsMap"
223
222
  [dropEvent]="dropEvent"
@@ -226,8 +225,7 @@
226
225
  (onClickOpenCannedResponses)="onClickOpenCannedResponses($event)"
227
226
  (eventSendMessage)="returnSendMessage($event)"
228
227
  (onPresentModalScrollToBottom)="onPresentModalScrollToBottom($event)"
229
- (onOpenFooterSection)="onOpenFooterSection($event)"
230
- (onOpenTicket)="onOpenTicket($event)">
228
+ (onOpenFooterSection)="onOpenFooterSection($event)">
231
229
  </app-message-text-area>
232
230
  <!-- [events]="eventsReplaceTexareaText.asObservable()" -->
233
231
  </ion-row>
@@ -83,12 +83,11 @@ 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 { UploadService } from 'src/chat21-core/providers/abstract/upload.service';
87
86
  import { ProjectUsersService } from 'src/app/services/project_users/project-users.service';
88
87
  import { ProjectUser } from 'src/chat21-core/models/projectUsers';
89
88
  import { getOSCode, hasRole } from 'src/app/utils/utils';
90
89
  import { PERMISSIONS } from 'src/app/utils/permissions.constants';
91
- import { TriggerEvents } from 'src/app/services/triggerEvents/triggerEvents';
90
+ import { UploadService } from 'src/chat21-core/providers/abstract/upload.service';
92
91
 
93
92
  @Component({
94
93
  selector: 'app-conversation-detail',
@@ -178,10 +177,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
178
177
  copilotQuestion: string = '';
179
178
  /**COPILOT : end */
180
179
 
181
- /** TICKET: start */
182
- isTicketEnabled: boolean = false;
183
- /** TICKET: end */
184
-
185
180
  isMine = isMine
186
181
  isInfo = isInfo
187
182
  isFirstMessage = isFirstMessage
@@ -257,15 +252,14 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
257
252
  private events: EventsService,
258
253
  private webSocketService: WebsocketService,
259
254
  public projectPlanUtils: ProjectPlanUtils,
260
- public triggerEvents: TriggerEvents,
261
255
  private g: Globals,
262
256
  ) {
263
257
  // Change list on date change
264
258
  this.route.paramMap.subscribe((params) => {
265
259
  this.logger.log('[CONVS-DETAIL] - constructor -> params: ', params)
266
260
  this.conversationWith = params.get('IDConv')
267
- this.conversationWithFullname = decodeURIComponent(params.get('FullNameConv'))
268
- this.conv_type = decodeURIComponent(params.get('Convtype'))
261
+ this.conversationWithFullname = params.get('FullNameConv')
262
+ this.conv_type = params.get('Convtype')
269
263
 
270
264
  this.events.publish('supportconvid:haschanged', this.conversationWith)
271
265
  })
@@ -432,8 +426,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
432
426
  ionViewDidEnter() {
433
427
  this.logger.log('[CONVS-DETAIL] > ionViewDidEnter')
434
428
  // this.info_content_child_enabled = true;
435
- // Scroll to bottom to show the last message without animation
436
- this.scrollToLastMessage()
437
429
  }
438
430
 
439
431
  // Unsubscibe when new page transition end
@@ -493,7 +485,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
493
485
  this.messages = [] // list messages of conversation
494
486
  this.isFileSelected = false // indicates if a file has been selected (image to upload)
495
487
  this.isEmailEnabled = (this.appConfigProvider.getConfig().emailSection === 'true' || this.appConfigProvider.getConfig().emailSection === true) ? true : false;
496
- this.isTicketEnabled = (this.appConfigProvider.getConfig().ticketSection === 'true' || this.appConfigProvider.getConfig().ticketSection === true) ? true : false;
497
488
  this.isWhatsappTemplatesEnabled = (this.appConfigProvider.getConfig().whatsappTemplatesSection === 'true' || this.appConfigProvider.getConfig().whatsappTemplatesSection === true) ? true : false;
498
489
  this.fileUploadAccept = this.appConfigProvider.getConfig().fileUploadAccept
499
490
 
@@ -724,11 +715,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
724
715
  "WHATSAPP.ERROR_WHATSAPP_NOT_INSTALLED",
725
716
  "WHATSAPP.ERROR_WHATSAPP_GENERIC_ERROR",
726
717
 
727
- "TICKET.OPEN_TICKET",
728
- "TICKET.DESCRIPTION",
729
- "TICKET.CONFIRM",
730
- "TICKET.CLOSE",
731
-
732
718
  "COPILOT.ASK_AI",
733
719
  "COPILOT.NO_SUGGESTIONS_PRESENT",
734
720
 
@@ -1944,11 +1930,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1944
1930
  }
1945
1931
 
1946
1932
 
1947
- onOpenTicket(event) {
1948
- this.logger.debug('[CONVS-DETAIL] openTicketOnExternalService - conversationWith ', this.conversationWith)
1949
- const detailOBJ = { event: 'onOpenTicketExternally', request_id: this.conversationWith, conversation: this.conversation }
1950
- this.triggerEvents.triggerOnOpenTicketExternally(detailOBJ)
1951
- }
1952
1933
  // -------------- START SCROLL/RESIZE -------------- //
1953
1934
  /** */
1954
1935
  resizeTextArea() {
@@ -1992,29 +1973,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1992
1973
  }
1993
1974
  }
1994
1975
 
1995
- /**
1996
- * Scroll to last message without animation using requestAnimationFrame
1997
- * This is a best practice alternative to setTimeout
1998
- */
1999
- private scrollToLastMessage() {
2000
- this.showIonContent = true
2001
- if (this.ionContentChatArea) {
2002
- // Use requestAnimationFrame for better performance
2003
- requestAnimationFrame(() => {
2004
- requestAnimationFrame(() => {
2005
- // Double RAF ensures DOM is fully rendered
2006
- this.ionContentChatArea.scrollToBottom(0).then(() => {
2007
- this.logger.log('[CONVS-DETAIL] scroll posizionato all\'ultimo messaggio')
2008
- }).catch((error) => {
2009
- this.logger.error('[CONVS-DETAIL] errore durante lo scroll:', error)
2010
- })
2011
- })
2012
- })
2013
- } else {
2014
- this.logger.warn('[CONVS-DETAIL] ionContentChatArea non disponibile')
2015
- }
2016
- }
2017
-
2018
1976
  /**
2019
1977
  * detectBottom
2020
1978
  */
@@ -57,9 +57,8 @@ import { getOSCode, hasRole } from 'src/app/utils/utils';
57
57
  import { PERMISSIONS } from 'src/app/utils/permissions.constants';
58
58
  import { ProjectUser } from 'src/chat21-core/models/projectUsers';
59
59
  import { ProjectUsersService } from 'src/app/services/project_users/project-users.service';
60
- import { ProjectService } from 'src/app/services/projects/project.service';
61
-
62
60
  import { PROJECTS_STORAGE_KEY } from 'src/chat21-core/utils/constants';
61
+ import { ProjectService } from 'src/app/services/projects/project.service';
63
62
 
64
63
  @Component({
65
64
  selector: 'app-conversations-list',
@@ -424,11 +423,6 @@ export class ConversationListPage implements OnInit {
424
423
  // save conversationHandler in chatManager
425
424
  this.chatManager.setConversationsHandler(this.conversationsHandlerService)
426
425
  this.showPlaceholder = false
427
-
428
- // Hide loading spinner if there are no conversations
429
- if (this.conversations.length === 0) {
430
- this.loadingIsActive = false
431
- }
432
426
  }
433
427
 
434
428
  // private manageStoredConversations() {
@@ -88,14 +88,14 @@ 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);
96
96
  }
97
97
  // this.logger.debug('[GLOBAL-SET] setVariableFromStorage SET globals == ---------->', globals);
98
- }
98
+ }
99
99
  }
100
100
 
101
101
  /**
@@ -113,7 +113,6 @@ export class GlobalSettingsService {
113
113
  TEMP = getParameterByName(windowContext, 'tiledesk_supportMode');
114
114
  if (TEMP) {
115
115
  globals.supportMode = stringToBoolean(TEMP);
116
- this.appStorageService.setItem('supportMode', String(globals.supportMode))
117
116
  }
118
117
 
119
118
  TEMP = getParameterByName(windowContext, 'tiledesk_lang');
@@ -139,13 +138,6 @@ export class GlobalSettingsService {
139
138
  TEMP = getParameterByName(windowContext, 'tiledesk_projectID');
140
139
  if (TEMP) {
141
140
  globals.projectID = TEMP;
142
- this.appStorageService.setItem('projectID', TEMP)
143
- }
144
-
145
- TEMP = getParameterByName(windowContext, 'tiledesk_logOut');
146
- if (TEMP) {
147
- globals.logOut = stringToBoolean(TEMP);
148
- this.appStorageService.setItem('logOut', TEMP)
149
141
  }
150
142
 
151
143
  }
@@ -4,6 +4,7 @@ import { Router, NavigationExtras } from '@angular/router';
4
4
 
5
5
  // utils
6
6
  import { checkPlatformIsMobile } from '../../chat21-core/utils/utils';
7
+ // import { ConversationDetailPage } from '../pages/conversation-detail/conversation-detail.page';
7
8
 
8
9
  import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
9
10
  import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
@@ -7,7 +7,7 @@ import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance'
7
7
  import { AppConfigProvider } from '../app-config';
8
8
  import { Observable } from 'rxjs';
9
9
  import { AppStorageService } from 'src/chat21-core/providers/abstract/app-storage.service';
10
- import { ProjectUser } from 'src/chat21-core/models/project_user';
10
+ import { ProjectUser } from 'src/chat21-core/models/projectUsers';
11
11
 
12
12
  @Injectable({
13
13
  providedIn: 'root'
@@ -95,23 +95,6 @@ export class TiledeskService {
95
95
  }))
96
96
  }
97
97
 
98
-
99
- public getProjectUsersByProjectId(project_id: string) {
100
- const url = this.SERVER_BASE_URL + project_id + '/project_users/';
101
- this.logger.log('[TILEDESK-SERVICE] - GET PROJECT-USER URL', url);
102
-
103
- const httpOptions = {
104
- headers: new HttpHeaders({
105
- 'Content-Type': 'application/json',
106
- Authorization: this.tiledeskToken
107
- })
108
- };
109
- return this.http.get(url, httpOptions).pipe(map((res: any) => {
110
- this.logger.log('[TILEDESK-SERVICE] - GET PROJECT-USER RES ', res);
111
- return res
112
- }))
113
- }
114
-
115
98
  public getAllLeadsActiveWithLimit(project_id: string, limit: number) {
116
99
  const url = this.SERVER_BASE_URL + project_id + '/leads?limit=' + limit + '&with_fullname=true';
117
100
  this.logger.log('[TILEDESK-SERVICE] - GET ALL ACTIVE LEADS (LIMIT 10000) - URL', url);
@@ -102,35 +102,6 @@ export class TriggerEvents {
102
102
  }
103
103
  }
104
104
 
105
- public triggerOnUpdateNewConversationBadge(detailObj: {}) {
106
- this.logger.debug(' ---------------- triggerOnUpdateNewConversationBadge ---------------- ', detailObj);
107
- try {
108
- const onBeforeInit = new CustomEvent('onUpdateNewConversationBadge', { detail: detailObj });
109
- const windowContext = this.windowContext;
110
- if (windowContext){
111
- // windowContext.document.dispatchEvent(onNewConversation);
112
- windowContext.postMessage({type: "onUpdateNewConversationBadge", detail: detailObj }, '*')
113
- }
114
- } catch (e) {
115
- this.logger.error('[TRIGGER-HANDLER] > Error:' + e);
116
- }
117
- }
118
-
119
- public triggerOnOpenTicketExternally(detailObj: {}) {
120
- this.logger.debug(' ---------------- triggerOnOpenTicketExternally ---------------- ', detailObj);
121
- try {
122
- const onBeforeInit = new CustomEvent('onOpenTicketExternally', { detail: detailObj });
123
- const windowContext = this.windowContext;
124
- if (windowContext){
125
- // windowContext.document.dispatchEvent(onNewConversation);
126
- windowContext.postMessage({type: "onOpenTicketExternally", detail: detailObj }, '*')
127
- }
128
- } catch (e) {
129
- this.logger.error('[TRIGGER-HANDLER] > Error:' + e);
130
- }
131
- }
132
-
133
-
134
105
  public triggerOnConversationChanged(conversation: ConversationModel) {
135
106
  this.logger.debug(' ---------------- triggerOnConversationChanged ---------------- ', conversation);
136
107
  try {