@chat21/chat21-ionic 3.0.5-9.2 → 3.0.6-2.3

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 (178) hide show
  1. package/CHANGELOG.md +202 -0
  2. package/LICENSE +661 -21
  3. package/README.md +13 -1
  4. package/angular.json +4 -0
  5. package/config.xml +4 -5
  6. package/deploy_pre.sh +44 -5
  7. package/deploy_prod.sh +36 -7
  8. package/env.sample +4 -2
  9. package/package.json +12 -8
  10. package/resources/{Android → android}/icon/drawable-hdpi-icon.png +0 -0
  11. package/resources/{Android → android}/icon/drawable-ldpi-icon.png +0 -0
  12. package/resources/{Android → android}/icon/drawable-mdpi-icon.png +0 -0
  13. package/resources/{Android → android}/icon/drawable-xhdpi-icon.png +0 -0
  14. package/resources/{Android → android}/icon/drawable-xxhdpi-icon.png +0 -0
  15. package/resources/{Android → android}/icon/drawable-xxxhdpi-icon.png +0 -0
  16. package/resources/{Android → android}/icon.png +0 -0
  17. package/resources/{Android → android}/splash/drawable-land-hdpi-screen.png +0 -0
  18. package/resources/{Android → android}/splash/drawable-land-ldpi-screen.png +0 -0
  19. package/resources/{Android → android}/splash/drawable-land-mdpi-screen.png +0 -0
  20. package/resources/{Android → android}/splash/drawable-land-xhdpi-screen.png +0 -0
  21. package/resources/{Android → android}/splash/drawable-land-xxhdpi-screen.png +0 -0
  22. package/resources/{Android → android}/splash/drawable-land-xxxhdpi-screen.png +0 -0
  23. package/resources/{Android → android}/splash/drawable-port-hdpi-screen.png +0 -0
  24. package/resources/{Android → android}/splash/drawable-port-ldpi-screen.png +0 -0
  25. package/resources/{Android → android}/splash/drawable-port-mdpi-screen.png +0 -0
  26. package/resources/{Android → android}/splash/drawable-port-xhdpi-screen.png +0 -0
  27. package/resources/{Android → android}/splash/drawable-port-xxhdpi-screen.png +0 -0
  28. package/resources/{Android → android}/splash/drawable-port-xxxhdpi-screen.png +0 -0
  29. package/resources/{Android → android}/splash.png +0 -0
  30. package/src/app/app-routing.module.ts +15 -0
  31. package/src/app/app.component.html +14 -4
  32. package/src/app/app.component.scss +18 -1
  33. package/src/app/app.component.ts +98 -37
  34. package/src/app/app.module.ts +14 -5
  35. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +36 -25
  36. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +160 -50
  37. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +108 -18
  38. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +21 -36
  39. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.scss +19 -7
  40. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +63 -42
  41. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.scss +1 -1
  42. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +7 -2
  43. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +141 -21
  44. package/src/app/chatlib/list-conversations-component/list-conversations/list-conversations.component.ts +13 -10
  45. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +39 -36
  46. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +7 -1
  47. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +148 -63
  48. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +101 -39
  49. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +73 -2
  50. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +168 -98
  51. package/src/app/components/ddp-header/ddp-header.component.html +20 -6
  52. package/src/app/components/ddp-header/ddp-header.component.scss +4 -0
  53. package/src/app/components/ddp-header/ddp-header.component.ts +104 -10
  54. package/src/app/components/image-viewer/image-viewer.component.scss +2 -2
  55. package/src/app/components/project-item/project-item.component.html +141 -118
  56. package/src/app/components/project-item/project-item.component.scss +173 -91
  57. package/src/app/components/project-item/project-item.component.ts +59 -25
  58. package/src/app/components/sidebar/sidebar.component.html +275 -0
  59. package/src/app/components/sidebar/sidebar.component.scss +79 -0
  60. package/src/app/components/sidebar/sidebar.component.spec.ts +24 -0
  61. package/src/app/components/sidebar/sidebar.component.ts +541 -0
  62. package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +137 -0
  63. package/src/app/components/sidebar-user-details/sidebar-user-details.component.scss +389 -0
  64. package/src/app/components/sidebar-user-details/sidebar-user-details.component.spec.ts +24 -0
  65. package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +530 -0
  66. package/src/app/pages/conversation-detail/conversation-detail.module.ts +9 -2
  67. package/src/app/pages/conversation-detail/conversation-detail.page.html +53 -49
  68. package/src/app/pages/conversation-detail/conversation-detail.page.scss +28 -0
  69. package/src/app/pages/conversation-detail/conversation-detail.page.ts +1254 -753
  70. package/src/app/pages/conversations-list/conversations-list.module.ts +2 -1
  71. package/src/app/pages/conversations-list/conversations-list.page.html +24 -11
  72. package/src/app/pages/conversations-list/conversations-list.page.scss +20 -1
  73. package/src/app/pages/conversations-list/conversations-list.page.ts +687 -420
  74. package/src/app/pages/create-canned-response/create-canned-response-routing.module.ts +17 -0
  75. package/src/app/pages/create-canned-response/create-canned-response.module.ts +30 -0
  76. package/src/app/pages/create-canned-response/create-canned-response.page.html +150 -0
  77. package/src/app/pages/create-canned-response/create-canned-response.page.scss +55 -0
  78. package/src/app/pages/create-canned-response/create-canned-response.page.spec.ts +24 -0
  79. package/src/app/pages/create-canned-response/create-canned-response.page.ts +319 -0
  80. package/src/app/pages/create-requester/create-requester-routing.module.ts +17 -0
  81. package/src/app/pages/create-requester/create-requester.module.ts +28 -0
  82. package/src/app/pages/create-requester/create-requester.page.html +67 -0
  83. package/src/app/pages/create-requester/create-requester.page.scss +30 -0
  84. package/src/app/pages/create-requester/create-requester.page.spec.ts +24 -0
  85. package/src/app/pages/create-requester/create-requester.page.ts +138 -0
  86. package/src/app/pages/create-ticket/create-ticket-routing.module.ts +17 -0
  87. package/src/app/pages/create-ticket/create-ticket.module.ts +28 -0
  88. package/src/app/pages/create-ticket/create-ticket.page.html +171 -0
  89. package/src/app/pages/create-ticket/create-ticket.page.scss +52 -0
  90. package/src/app/pages/create-ticket/create-ticket.page.spec.ts +24 -0
  91. package/src/app/pages/create-ticket/create-ticket.page.ts +432 -0
  92. package/src/app/pages/loader-preview/loader-preview.page.ts +226 -166
  93. package/src/app/pages/profile-info/profile-info.page.html +4 -4
  94. package/src/app/pages/profile-info/profile-info.page.scss +13 -2
  95. package/src/app/pages/profile-info/profile-info.page.ts +23 -21
  96. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +16 -11
  97. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +157 -63
  98. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +51 -16
  99. package/src/app/services/app-config.ts +14 -14
  100. package/src/app/services/tiledesk/tiledesk.service.ts +209 -0
  101. package/src/app/shared/shared.module.ts +21 -7
  102. package/src/app/utils/scrollbar-theme.directive.ts +58 -24
  103. package/src/assets/i18n/de.json +266 -0
  104. package/src/assets/i18n/en.json +85 -10
  105. package/src/assets/i18n/es.json +266 -0
  106. package/src/assets/i18n/fr.json +266 -0
  107. package/src/assets/i18n/it.json +104 -37
  108. package/src/assets/i18n/pt.json +266 -0
  109. package/src/assets/i18n/ru.json +266 -0
  110. package/src/assets/i18n/sr.json +266 -0
  111. package/src/assets/i18n/tr.json +266 -0
  112. package/src/assets/images/default-avatar-x-select.png +0 -0
  113. package/src/assets/images/language_flag/ar.png +0 -0
  114. package/src/assets/images/language_flag/bg.png +0 -0
  115. package/src/assets/images/language_flag/ca.png +0 -0
  116. package/src/assets/images/language_flag/cs.png +0 -0
  117. package/src/assets/images/language_flag/da.png +0 -0
  118. package/src/assets/images/language_flag/de.png +0 -0
  119. package/src/assets/images/language_flag/el.png +0 -0
  120. package/src/assets/images/language_flag/en.png +0 -0
  121. package/src/assets/images/language_flag/es.png +0 -0
  122. package/src/assets/images/language_flag/fa.png +0 -0
  123. package/src/assets/images/language_flag/fi.png +0 -0
  124. package/src/assets/images/language_flag/fr.png +0 -0
  125. package/src/assets/images/language_flag/he.png +0 -0
  126. package/src/assets/images/language_flag/hi.png +0 -0
  127. package/src/assets/images/language_flag/hr.png +0 -0
  128. package/src/assets/images/language_flag/hu.png +0 -0
  129. package/src/assets/images/language_flag/id.png +0 -0
  130. package/src/assets/images/language_flag/it.png +0 -0
  131. package/src/assets/images/language_flag/ja.png +0 -0
  132. package/src/assets/images/language_flag/ko.png +0 -0
  133. package/src/assets/images/language_flag/ml-IN.png +0 -0
  134. package/src/assets/images/language_flag/ne-NP.png +0 -0
  135. package/src/assets/images/language_flag/nl.png +0 -0
  136. package/src/assets/images/language_flag/no.png +0 -0
  137. package/src/assets/images/language_flag/pl.png +0 -0
  138. package/src/assets/images/language_flag/pt-BR.png +0 -0
  139. package/src/assets/images/language_flag/pt.png +0 -0
  140. package/src/assets/images/language_flag/ro.png +0 -0
  141. package/src/assets/images/language_flag/ru.png +0 -0
  142. package/src/assets/images/language_flag/sk.png +0 -0
  143. package/src/assets/images/language_flag/sl.png +0 -0
  144. package/src/assets/images/language_flag/sr.png +0 -0
  145. package/src/assets/images/language_flag/sv-SE.png +0 -0
  146. package/src/assets/images/language_flag/ta.png +0 -0
  147. package/src/assets/images/language_flag/th.png +0 -0
  148. package/src/assets/images/language_flag/tr.png +0 -0
  149. package/src/assets/images/language_flag/uk.png +0 -0
  150. package/src/assets/images/language_flag/vi.png +0 -0
  151. package/src/assets/images/language_flag/zh-CN.png +0 -0
  152. package/src/assets/images/language_flag/zh-TW.png +0 -0
  153. package/src/assets/images/no_image_user.png +0 -0
  154. package/src/assets/images/priority_icons/high.svg +3 -0
  155. package/src/assets/images/priority_icons/high_v2.svg +14 -0
  156. package/src/assets/images/priority_icons/low.svg +10 -0
  157. package/src/assets/images/priority_icons/low_v2.svg +14 -0
  158. package/src/assets/images/priority_icons/medium.svg +16 -0
  159. package/src/assets/images/priority_icons/medium_v2.svg +11 -0
  160. package/src/assets/images/priority_icons/urgent.svg +4 -0
  161. package/src/assets/images/priority_icons/urgent_v2.svg +16 -0
  162. package/src/assets/js/chat21client.js +16 -3
  163. package/src/assets/tiledesk-solo-logo.png +0 -0
  164. package/src/chat-config-mqtt.json +27 -17
  165. package/src/chat-config-pre-test.json +5 -1
  166. package/src/chat-config-pre.json +15 -3
  167. package/src/chat-config-template.json +6 -2
  168. package/src/chat-config.json +5 -1
  169. package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +61 -45
  170. package/src/chat21-core/providers/firebase/firebase-conversations-handler.ts +23 -0
  171. package/src/chat21-core/providers/mqtt/mqtt-archivedconversations-handler.ts +1 -1
  172. package/src/chat21-core/utils/constants.ts +8 -1
  173. package/src/chat21-core/utils/utils-message.ts +19 -0
  174. package/src/chat21-core/utils/utils.ts +12 -1
  175. package/src/global.scss +408 -2
  176. package/src/index.html +7 -0
  177. package/publish_pre.sh +0 -33
  178. package/publish_prod.sh +0 -33
@@ -1,4 +1,4 @@
1
- import { URL_SOUND_LIST_CONVERSATION } from './../chat21-core/utils/constants';
1
+ import { tranlatedLanguage, URL_SOUND_LIST_CONVERSATION } from './../chat21-core/utils/constants';
2
2
  import { ArchivedConversationsHandlerService } from 'src/chat21-core/providers/abstract/archivedconversations-handler.service';
3
3
  import { AppStorageService } from 'src/chat21-core/providers/abstract/app-storage.service';
4
4
 
@@ -58,6 +58,7 @@ import * as PACKAGE from 'package.json';
58
58
  import { filter } from 'rxjs/operators'
59
59
  import { WebSocketJs } from './services/websocket/websocket-js';
60
60
  import { Location } from '@angular/common'
61
+
61
62
  // import { filter } from 'rxjs/operators';
62
63
 
63
64
  @Component({
@@ -77,7 +78,7 @@ export class AppComponent implements OnInit {
77
78
  public sidebarPage: any;
78
79
  public notificationsEnabled: boolean;
79
80
  public zone: NgZone;
80
- private platformIs: string;
81
+ public platformIs: string;
81
82
  private doitResize: any;
82
83
  private timeModalLogin: any;
83
84
  public tenant: string;
@@ -98,7 +99,9 @@ export class AppComponent implements OnInit {
98
99
  public missingConnectionToast: any
99
100
  public executedInitializeAppByWatchConnection: boolean = false;
100
101
  private version: string;
101
-
102
+ IS_ONLINE: boolean;
103
+ IS_ON_MOBILE_DEVICE: boolean;
104
+ SUPPORT_MODE: boolean;
102
105
  // private isOnline: boolean = false;
103
106
 
104
107
  wsService: WebSocketJs;
@@ -145,11 +148,20 @@ export class AppComponent implements OnInit {
145
148
 
146
149
  this.saveInStorageNumberOfOpenedChatTab();
147
150
  this.listenChatAlreadyOpenWithoutParamsInMobileMode()
148
-
151
+ this.isOnMobileDevice()
149
152
  // this.listenToUrlChanges();
150
153
  // this.getPageState();
151
154
  }
152
155
 
156
+ isOnMobileDevice() {
157
+ this.IS_ON_MOBILE_DEVICE = false;
158
+ if (/Android|iPhone/i.test(window.navigator.userAgent)) {
159
+ this.IS_ON_MOBILE_DEVICE = true;
160
+ }
161
+ this.logger.log('[APP-COMP] IS_ON_MOBILE_DEVICE', this.IS_ON_MOBILE_DEVICE)
162
+ return this.IS_ON_MOBILE_DEVICE;
163
+ }
164
+
153
165
 
154
166
 
155
167
  listenChatAlreadyOpenWithoutParamsInMobileMode() {
@@ -256,7 +268,7 @@ export class AppComponent implements OnInit {
256
268
 
257
269
 
258
270
  saveInStorageNumberOfOpenedChatTab() {
259
- this.logger.log('Calling saveInStorageChatOpenedTab!');
271
+ // this.logger.log('Calling saveInStorageChatOpenedTab!');
260
272
 
261
273
  // https://jsfiddle.net/jjjs5wd3/3/å
262
274
  if (+localStorage.tabCount > 0) {
@@ -286,6 +298,14 @@ export class AppComponent implements OnInit {
286
298
  */
287
299
  ngOnInit() {
288
300
  const appconfig = this.appConfigProvider.getConfig();
301
+ this.logger.log('[APP-COMP] ngOnInit appconfig', appconfig)
302
+ if (appconfig && appconfig.supportMode && (appconfig.supportMode === true || appconfig.supportMode === 'true' )) {
303
+ this.SUPPORT_MODE = true;
304
+ this.logger.log('[APP-COMP] appconfig > SUPPORT_MODE', this.SUPPORT_MODE)
305
+ } else {
306
+ this.SUPPORT_MODE = false;
307
+ this.logger.log('[APP-COMP] appconfig > SUPPORT_MODE', this.SUPPORT_MODE)
308
+ }
289
309
  this.persistence = appconfig.authPersistence;
290
310
  this.appStorageService.initialize(environment.storage_prefix, this.persistence, '')
291
311
  // this.logger.log('[APP-COMP] HELLO ngOnInit !!!!!!!')
@@ -416,9 +436,9 @@ export class AppComponent implements OnInit {
416
436
  // this.logger.log('[APP-COMP] - X - initializeApp !!! CALLED-BY: ', calledby);
417
437
  // console.log('[APP-COMP] appconfig platform is cordova: ', this.platform.is('cordova'))
418
438
 
419
- // if (!this.platform.is('cordova')) {
420
- this.splashScreen.show();
421
- // }
439
+ if (!this.platform.is('desktop')) {
440
+ this.splashScreen.show();
441
+ }
422
442
  this.tabTitle = document.title;
423
443
 
424
444
  this.getRouteParamsAndSetLoggerConfig();
@@ -443,11 +463,11 @@ export class AppComponent implements OnInit {
443
463
  // console.log("Check platform");
444
464
  this.getPlatformName();
445
465
 
446
- this.setLanguage();
466
+ // this.setLanguage();
447
467
 
448
- // if (this.splashScreen) {
449
- this.splashScreen.hide();
450
- // }
468
+ if (this.splashScreen) {
469
+ this.splashScreen.hide();
470
+ }
451
471
  this.statusBar.styleDefault();
452
472
  this.navService.init(this.sidebarNav, this.detailNav);
453
473
  // this.persistence = appconfig.authPersistence;
@@ -521,19 +541,53 @@ export class AppComponent implements OnInit {
521
541
  }
522
542
 
523
543
  /** */
524
- setLanguage() {
525
- this.translate.setDefaultLang('en');
526
- this.translate.use('en');
527
- this.logger.debug('[APP-COMP] navigator.language: ', navigator.language);
528
- let language;
529
- if (navigator.language.indexOf('-') !== -1) {
530
- language = navigator.language.substring(0, navigator.language.indexOf('-'));
531
- } else if (navigator.language.indexOf('_') !== -1) {
532
- language = navigator.language.substring(0, navigator.language.indexOf('_'));
533
- } else {
534
- language = navigator.language;
544
+ setLanguage(currentUser) {
545
+ // const currentUser = JSON.parse(this.appStorageService.getItem('currentUser'));
546
+ this.logger.log('[APP-COMP] - setLanguage current_user uid: ', currentUser);
547
+
548
+ let currentUserId = ''
549
+ if (currentUser) {
550
+ currentUserId = currentUser.uid;
551
+ this.logger.log('[APP-COMP] - setLanguage current_user uid: ', currentUserId);
552
+ }
553
+ // this.translate.setDefaultLang('en');
554
+ // this.translate.use('en');
555
+
556
+ const browserLang = this.translate.getBrowserLang();
557
+ this.logger.log('[APP-COMP] browserLang: ', browserLang);
558
+ const stored_preferred_lang = localStorage.getItem(currentUserId + '_lang');
559
+ this.logger.log('[APP-COMP] stored_preferred_lang: ', stored_preferred_lang);
560
+
561
+ let chat_lang = ''
562
+ if (browserLang && !stored_preferred_lang) {
563
+ chat_lang = browserLang
564
+ } else if (browserLang && stored_preferred_lang) {
565
+ chat_lang = stored_preferred_lang
566
+ }
567
+
568
+ this.logger.log('[APP-COMP] - chat_lang', chat_lang)
569
+
570
+ if (tranlatedLanguage.includes(chat_lang)) {
571
+ this.logger.log('[APP-COMP] tranlatedLanguage includes',chat_lang , ': ', tranlatedLanguage.includes(chat_lang))
572
+ this.translate.setDefaultLang(chat_lang)
573
+ this.translate.use(chat_lang);
535
574
  }
536
- this.translate.use(language);
575
+ else {
576
+ this.logger.log('[APP-COMP] tranlatedLanguage includes',chat_lang , ': ', tranlatedLanguage.includes(chat_lang))
577
+ this.translate.setDefaultLang('en');
578
+ this.translate.use('en');
579
+ }
580
+
581
+ // this.logger.debug('[APP-COMP] navigator.language: ', navigator.language);
582
+ // let language;
583
+ // if (navigator.language.indexOf('-') !== -1) {
584
+ // language = navigator.language.substring(0, navigator.language.indexOf('-'));
585
+ // } else if (navigator.language.indexOf('_') !== -1) {
586
+ // language = navigator.language.substring(0, navigator.language.indexOf('_'));
587
+ // } else {
588
+ // language = navigator.language;
589
+ // }
590
+ // this.translate.use(language);
537
591
  }
538
592
 
539
593
 
@@ -624,7 +678,7 @@ export class AppComponent implements OnInit {
624
678
  })
625
679
  } else {
626
680
  this.logger.warn('[APP-COMP] >>> I AM NOT LOGGED IN <<<')
627
-
681
+ this.IS_ONLINE = false;
628
682
  // clearTimeout(this.timeModalLogin);
629
683
  // this.timeModalLogin = setTimeout(() => {
630
684
  if (!this.hadBeenCalledOpenModal) {
@@ -670,6 +724,7 @@ export class AppComponent implements OnInit {
670
724
 
671
725
  this.logger.log('[APP-COMP] checkPlatformIsMobile', checkPlatformIsMobile());
672
726
  this.platformIs = PLATFORM_MOBILE;
727
+ this.logger.log('[APP-COMP] this.platformIs', this.platformIs);
673
728
  const IDConv = this.route.snapshot.firstChild.paramMap.get('IDConv');
674
729
 
675
730
  // console.log('[APP-COMP] platformIs', this.platformIs);
@@ -683,7 +738,7 @@ export class AppComponent implements OnInit {
683
738
  this.chatManager.startApp();
684
739
  this.logger.log('[APP-COMP] checkPlatformIsMobile', checkPlatformIsMobile());
685
740
  this.platformIs = PLATFORM_DESKTOP;
686
- // console.log('[APP-COMP] platformIs', this.platformIs);
741
+ this.logger.log('[APP-COMP] platformIs', this.platformIs);
687
742
  // console.log('[APP-COMP] PLATFORM', PLATFORM_DESKTOP, 'route.snapshot', this.route.snapshot);
688
743
  this.logger.log('[APP-COMP] PLATFORM_DESKTOP ', this.navService);
689
744
 
@@ -699,8 +754,8 @@ export class AppComponent implements OnInit {
699
754
  if (IDConv && FullNameConv) {
700
755
  pageUrl += IDConv + '/' + FullNameConv + '/' + Convtype
701
756
  }
702
-
703
- this.router.navigateByUrl(pageUrl);
757
+ // replace(/\(/g, '%28').replace(/\)/g, '%29') -> used for the encoder of any round brackets
758
+ this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29'));
704
759
 
705
760
 
706
761
  // const DASHBOARD_URL = this.appConfigProvider.getConfig().DASHBOARD_URL;
@@ -802,15 +857,19 @@ export class AppComponent implements OnInit {
802
857
  .pipe(filter((state) => state !== null))
803
858
  .subscribe((state: any) => {
804
859
  this.logger.log('initialize FROM [APP-COMP] - [APP-COMP] ***** BSAuthStateChanged state', state);
805
-
860
+
806
861
  if (state && state === AUTH_STATE_ONLINE) {
807
862
  // const user = this.tiledeskAuthService.getCurrentUser();
808
863
  // if (this.isOnline === false) {
809
864
  // if (AUTH_STATE_ONLINE) {
865
+ this.IS_ONLINE = true;
866
+ // console.log('[APP-COMP] IS_ONLINE', this.IS_ONLINE)
810
867
  this.goOnLine();
811
868
  // }
812
869
  } else if (state === AUTH_STATE_OFFLINE) {
813
870
  // this.checkTokenAndGoOffline() //se c'è un tiledeskToken salvato, allora aspetta, altrimenti vai offline
871
+ this.IS_ONLINE = false;
872
+ // console.log('[APP-COMP] IS_ONLINE', this.IS_ONLINE)
814
873
  this.goOffLine()
815
874
  }
816
875
  }, error => {
@@ -848,12 +907,12 @@ export class AppComponent implements OnInit {
848
907
  }
849
908
 
850
909
  /**
851
- * goOnLine:
852
- * 1 - nascondo splashscreen
853
- * 2 - recupero il tiledeskToken e lo salvo in chat manager
854
- * 3 - carico in d
855
- * @param user
856
- */
910
+ * goOnLine:
911
+ * 1 - nascondo splashscreen
912
+ * 2 - recupero il tiledeskToken e lo salvo in chat manager
913
+ * 3 - carico in d
914
+ * @param user
915
+ */
857
916
  goOnLine = () => {
858
917
  this.logger.log('[APP-COMP]- GO-ONLINE ');
859
918
  // this.isOnline = true;
@@ -868,6 +927,7 @@ export class AppComponent implements OnInit {
868
927
  // }
869
928
  this.events.publish('go:online', true);
870
929
  const currentUser = this.tiledeskAuthService.getCurrentUser();
930
+ this.setLanguage(currentUser);
871
931
  // this.logger.printDebug('APP-COMP - goOnLine****', currentUser);
872
932
  this.logger.log('[APP-COMP] - GO-ONLINE - currentUser ', currentUser);
873
933
  this.chatManager.setTiledeskToken(tiledeskToken);
@@ -907,7 +967,7 @@ export class AppComponent implements OnInit {
907
967
  const supportmode = this.appConfigProvider.getConfig().supportMode;
908
968
  this.logger.log('[APP-COMP] - GO-OFFINE - supportmode ', supportmode);
909
969
  if (supportmode === true) {
910
- this.webSocketClose()
970
+ this.webSocketClose()
911
971
  }
912
972
  // this.isOnline = false;
913
973
  // this.conversationsHandlerService.conversations = [];
@@ -947,6 +1007,7 @@ export class AppComponent implements OnInit {
947
1007
  let platformIsNow = PLATFORM_DESKTOP;
948
1008
  if (checkPlatformIsMobile()) {
949
1009
  platformIsNow = PLATFORM_MOBILE;
1010
+ this.logger.log('onResize platformIsNow ', platformIsNow)
950
1011
  }
951
1012
  if (!this.platformIs || this.platformIs === '') {
952
1013
  this.platformIs = platformIsNow;
@@ -1088,7 +1149,7 @@ export class AppComponent implements OnInit {
1088
1149
  }
1089
1150
 
1090
1151
  private initConversationsHandler(userId: string) {
1091
- const keys = ['YOU'];
1152
+ const keys = ['YOU', 'INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU'];
1092
1153
  const translationMap = this.translateService.translateLanguage(keys);
1093
1154
 
1094
1155
  this.logger.log('[APP-COMP] initConversationsHandler ------------->', userId, this.tenant);
@@ -82,7 +82,9 @@ import { ConversationListPageModule } from './pages/conversations-list/conversat
82
82
  import { ConversationDetailPageModule } from './pages/conversation-detail/conversation-detail.module';
83
83
  import { LoginPageModule } from './pages/authentication/login/login.module';
84
84
  import { LoaderPreviewPageModule } from './pages/loader-preview/loader-preview.module';
85
-
85
+ import { CreateTicketPageModule } from './pages/create-ticket/create-ticket.module';
86
+ import { CreateRequesterPageModule } from './pages/create-requester/create-requester.module';
87
+ import { CreateCannedResponsePageModule } from './pages/create-canned-response/create-canned-response.module';
86
88
  // UTILS
87
89
  import { ScrollbarThemeModule } from './utils/scrollbar-theme.directive';
88
90
  import { SharedModule } from 'src/app/shared/shared.module';
@@ -90,12 +92,15 @@ import { ConversationInfoModule } from 'src/app/components/conversation-info/con
90
92
 
91
93
 
92
94
  // Directives
93
- import { TooltipModule } from 'ng2-tooltip-directive';
95
+ // import { HtmlEntitiesEncodePipe } from './directives/html-entities-encode.pipe';
96
+ // import { MarkedPipe } from './directives/marked.pipe';
97
+
94
98
  import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
95
99
  import { Network } from '@ionic-native/network/ngx';
96
100
  import { ConnectionService } from 'ng-connection-service';
97
101
  import { WebSocketJs } from './services/websocket/websocket-js';
98
102
  import { UnassignedConversationsPageModule } from './pages/unassigned-conversations/unassigned-conversations.module';
103
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
99
104
 
100
105
  // FACTORIES
101
106
  export function createTranslateLoader(http: HttpClient) {
@@ -114,7 +119,7 @@ export function authenticationFactory(http: HttpClient, appConfig: AppConfigProv
114
119
 
115
120
  auth.setBaseUrl(appConfig.getConfig().apiUrl);
116
121
 
117
- if (config.pushEngine = PUSH_ENGINE_MQTT) {
122
+ if (config.pushEngine === PUSH_ENGINE_MQTT) {
118
123
  // FOR PUSH NOTIFICATIONS INIT FIREBASE APP
119
124
  FirebaseInitService.initFirebase(config.firebaseConfig);
120
125
  }
@@ -245,12 +250,13 @@ const appInitializerFn = (appConfig: AppConfigProvider, logger: NGXLogger) => {
245
250
 
246
251
  @NgModule({
247
252
  declarations: [
248
- AppComponent,
253
+ AppComponent
249
254
  ],
250
255
  entryComponents: [
251
256
  ],
252
257
  imports: [
253
258
  BrowserModule,
259
+ BrowserAnimationsModule,
254
260
  FormsModule,
255
261
  ReactiveFormsModule,
256
262
  IonicModule.forRoot(),
@@ -279,7 +285,10 @@ const appInitializerFn = (appConfig: AppConfigProvider, logger: NGXLogger) => {
279
285
  SharedModule,
280
286
  ConversationInfoModule,
281
287
  NgxLinkifyjsModule.forRoot(),
282
- LoaderPreviewPageModule
288
+ LoaderPreviewPageModule,
289
+ CreateTicketPageModule,
290
+ CreateRequesterPageModule,
291
+ CreateCannedResponsePageModule
283
292
  ],
284
293
  bootstrap: [AppComponent],
285
294
 
@@ -54,12 +54,23 @@
54
54
  <!-- ----------------------------------------------------------- -->
55
55
 
56
56
  <div class="conversation-wpr" style="height: 100%;">
57
- <div *ngFor="let message of messages; let i = index">
57
+ <div *ngFor="let message of messages; let i = index; let first = first; trackBy: trackByFn">
58
+
59
+ <ng-container *ngIf="first || (messages[i - 1].timestamp | date:'d') !== (message.timestamp | date:'d')">
60
+ <div class="long-date-divider-wpr">
61
+ <div class="long-date-divider-border-b"></div>
62
+ <div class="long-date-divider">
63
+ <!-- {{message.timestamp | date: 'longDate' : 'it'}} -->
64
+ {{message.timestamp | amDateFormat:'LL'}}
65
+
66
+ </div>
67
+ <div class="long-date-divider-border-b"></div>
68
+ </div>
69
+ </ng-container>
58
70
 
59
71
  <div class="align-center" class="ion-text-center" *ngIf="messageType(MESSAGE_TYPE_INFO, message)"
60
72
  class="msg_info_container">
61
- <chat-info-message class="messages"
62
- [message]="message">
73
+ <chat-info-message class="messages" [message]="message">
63
74
  </chat-info-message>
64
75
  </div>
65
76
 
@@ -67,13 +78,15 @@
67
78
  <div role="messaggio" *ngIf="messageType(MESSAGE_TYPE_MINE, message)" class="msg_container base_sent">
68
79
 
69
80
  <!--backgroundColor non viene ancora usato -->
70
- <chat-bubble-message [ngClass]="{'has-metadata': (isImage(message) || isFrame(message))}"
71
- class="messages msg_sent" id="message_msg_sent"
72
- [ngClass]="{'button-in-msg' : message.metadata && message.metadata.button}" [message]="message"
73
- [textColor]="'col-msg-sent'"
74
- (onBeforeMessageRender)="returnOnBeforeMessageRender($event)"
75
- (onAfterMessageRender)="returnOnAfterMessageRender($event)"
76
- (onImageRendered)="onImageRenderedFN($event)">
81
+
82
+ <chat-bubble-message style="position: relative;"
83
+ [ngClass]="{'has-metadata': (isImage(message) || isFrame(message))}" class="messages msg_sent"
84
+ id="message_msg_sent" [ngClass]="{'button-in-msg' : message.metadata && message.metadata.button}"
85
+ [message]="message" [textColor]="'col-msg-sent'" (onBeforeMessageRender)="returnOnBeforeMessageRender($event)"
86
+ (onAfterMessageRender)="returnOnAfterMessageRender($event)" (onImageRendered)="onImageRenderedFN($event)"
87
+ [addAsCannedResponseTooltipText]="addAsCannedResponseTooltipText" [areVisibleCAR]="areVisibleCAR"
88
+ [support_mode]="support_mode"
89
+ [class.emoticon]="message?.emoticon">
77
90
  </chat-bubble-message>
78
91
 
79
92
  <!-- icon status message -->
@@ -98,32 +111,30 @@
98
111
  </chat-avatar-image> -->
99
112
 
100
113
  <!--backgroundColor non viene ancora usato -->
101
-
102
- <chat-bubble-message [ngClass]="{'has-metadata': (isImage(message) || isFrame(message))}" class="messages msg_receive" id="message_msg_receive"
103
- [message]="message"
104
- [textColor]="'black'"
114
+
115
+ <chat-bubble-message style="position: relative;"
116
+ [ngClass]="{'has-metadata': (isImage(message) || isFrame(message))}" class="messages msg_receive"
117
+ id="message_msg_receive" [message]="message" [textColor]="'black'"
105
118
  (onBeforeMessageRender)="returnOnBeforeMessageRender($event)"
106
- (onAfterMessageRender)="returnOnAfterMessageRender($event)"
107
- (onImageRendered)="onImageRenderedFN($event)">
119
+ (onAfterMessageRender)="returnOnAfterMessageRender($event)" (onImageRendered)="onImageRenderedFN($event)"
120
+ [addAsCannedResponseTooltipText]="addAsCannedResponseTooltipText" [areVisibleCAR]="areVisibleCAR"
121
+ [support_mode]="support_mode"
122
+ [class.emoticon]="message?.emoticon">
108
123
  </chat-bubble-message>
109
124
  </div>
110
125
 
111
126
  <!-- message type:: button && -->
112
- <div *ngIf="message?.attributes && message?.attributes?.attachment " class="slide-in-left" >
113
- <chat-message-attachment
114
- style="height: 100%; display: block;"
115
- [message]="message"
116
- [isLastMessage] = "isLastMessage(message?.uid)"
117
- [stylesMap]="stylesMap"
118
- (onAttachmentButtonClicked)="returnOnAttachmentButtonClicked($event)">
127
+ <div *ngIf="message?.attributes && message?.attributes?.attachment " class="slide-in-left">
128
+ <chat-message-attachment style="height: 100%; display: block;" [message]="message"
129
+ [isLastMessage]="isLastMessage(message?.uid)" [stylesMap]="stylesMap"
130
+ (onAttachmentButtonClicked)="returnOnAttachmentButtonClicked($event)">
119
131
  </chat-message-attachment>
120
132
  </div>
121
133
  </div>
122
134
  <!-- (fileType === 'file' && uploadProgress !== 100) -->
123
135
 
124
136
  <!-- uploadProgress -> {{ uploadProgress }} -->
125
- <div *ngIf="uploadProgress !== 100" class="msg_container base_sent"
126
- style="margin-right: 20px;">
137
+ <div *ngIf="uploadProgress !== 100" class="msg_container base_sent" style="margin-right: 20px;">
127
138
  <div class="messages msg_sent">
128
139
  <div class="spinner">
129
140
  <div class="bounce1"></div>