@chat21/chat21-ionic 3.0.60 → 3.0.61-rc11

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 (148) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/README.md +2 -0
  3. package/angular.json +3 -0
  4. package/config.xml +5 -5
  5. package/deploy_pre.sh +10 -10
  6. package/deploy_prod.sh +5 -1
  7. package/env.sample +3 -1
  8. package/package.json +12 -7
  9. package/resources/{Android → android}/icon/drawable-hdpi-icon.png +0 -0
  10. package/resources/{Android → android}/icon/drawable-ldpi-icon.png +0 -0
  11. package/resources/{Android → android}/icon/drawable-mdpi-icon.png +0 -0
  12. package/resources/{Android → android}/icon/drawable-xhdpi-icon.png +0 -0
  13. package/resources/{Android → android}/icon/drawable-xxhdpi-icon.png +0 -0
  14. package/resources/{Android → android}/icon/drawable-xxxhdpi-icon.png +0 -0
  15. package/resources/{Android → android}/icon.png +0 -0
  16. package/resources/{Android → android}/splash/drawable-land-hdpi-screen.png +0 -0
  17. package/resources/{Android → android}/splash/drawable-land-ldpi-screen.png +0 -0
  18. package/resources/{Android → android}/splash/drawable-land-mdpi-screen.png +0 -0
  19. package/resources/{Android → android}/splash/drawable-land-xhdpi-screen.png +0 -0
  20. package/resources/{Android → android}/splash/drawable-land-xxhdpi-screen.png +0 -0
  21. package/resources/{Android → android}/splash/drawable-land-xxxhdpi-screen.png +0 -0
  22. package/resources/{Android → android}/splash/drawable-port-hdpi-screen.png +0 -0
  23. package/resources/{Android → android}/splash/drawable-port-ldpi-screen.png +0 -0
  24. package/resources/{Android → android}/splash/drawable-port-mdpi-screen.png +0 -0
  25. package/resources/{Android → android}/splash/drawable-port-xhdpi-screen.png +0 -0
  26. package/resources/{Android → android}/splash/drawable-port-xxhdpi-screen.png +0 -0
  27. package/resources/{Android → android}/splash/drawable-port-xxxhdpi-screen.png +0 -0
  28. package/resources/{Android → android}/splash.png +0 -0
  29. package/src/app/app-routing.module.ts +10 -0
  30. package/src/app/app.component.html +14 -4
  31. package/src/app/app.component.scss +18 -1
  32. package/src/app/app.component.ts +50 -16
  33. package/src/app/app.module.ts +7 -1
  34. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +7 -2
  35. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +103 -12
  36. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +39 -36
  37. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +5 -1
  38. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +147 -65
  39. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +3 -3
  40. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +12 -2
  41. package/src/app/components/ddp-header/ddp-header.component.html +20 -6
  42. package/src/app/components/ddp-header/ddp-header.component.scss +4 -0
  43. package/src/app/components/ddp-header/ddp-header.component.ts +104 -10
  44. package/src/app/components/project-item/project-item.component.html +8 -7
  45. package/src/app/components/project-item/project-item.component.scss +6 -1
  46. package/src/app/components/project-item/project-item.component.ts +15 -2
  47. package/src/app/components/sidebar/sidebar.component.html +274 -0
  48. package/src/app/components/sidebar/sidebar.component.scss +79 -0
  49. package/src/app/components/sidebar/sidebar.component.spec.ts +24 -0
  50. package/src/app/components/sidebar/sidebar.component.ts +493 -0
  51. package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +110 -0
  52. package/src/app/components/sidebar-user-details/sidebar-user-details.component.scss +318 -0
  53. package/src/app/components/sidebar-user-details/sidebar-user-details.component.spec.ts +24 -0
  54. package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +486 -0
  55. package/src/app/pages/conversation-detail/conversation-detail.module.ts +2 -1
  56. package/src/app/pages/conversation-detail/conversation-detail.page.html +7 -5
  57. package/src/app/pages/conversation-detail/conversation-detail.page.ts +1285 -790
  58. package/src/app/pages/conversations-list/conversations-list.module.ts +2 -1
  59. package/src/app/pages/conversations-list/conversations-list.page.html +18 -9
  60. package/src/app/pages/conversations-list/conversations-list.page.scss +9 -1
  61. package/src/app/pages/conversations-list/conversations-list.page.ts +753 -428
  62. package/src/app/pages/create-requester/create-requester-routing.module.ts +17 -0
  63. package/src/app/pages/create-requester/create-requester.module.ts +28 -0
  64. package/src/app/pages/create-requester/create-requester.page.html +67 -0
  65. package/src/app/pages/create-requester/create-requester.page.scss +30 -0
  66. package/src/app/pages/create-requester/create-requester.page.spec.ts +24 -0
  67. package/src/app/pages/create-requester/create-requester.page.ts +137 -0
  68. package/src/app/pages/create-ticket/create-ticket-routing.module.ts +17 -0
  69. package/src/app/pages/create-ticket/create-ticket.module.ts +28 -0
  70. package/src/app/pages/create-ticket/create-ticket.page.html +171 -0
  71. package/src/app/pages/create-ticket/create-ticket.page.scss +52 -0
  72. package/src/app/pages/create-ticket/create-ticket.page.spec.ts +24 -0
  73. package/src/app/pages/create-ticket/create-ticket.page.ts +423 -0
  74. package/src/app/pages/loader-preview/loader-preview.page.ts +226 -166
  75. package/src/app/pages/profile-info/profile-info.page.html +2 -2
  76. package/src/app/pages/profile-info/profile-info.page.scss +1 -1
  77. package/src/app/pages/profile-info/profile-info.page.ts +23 -21
  78. package/src/app/services/tiledesk/tiledesk.service.ts +181 -0
  79. package/src/app/shared/shared.module.ts +13 -0
  80. package/src/app/utils/scrollbar-theme.directive.ts +58 -24
  81. package/src/assets/i18n/de.json +55 -13
  82. package/src/assets/i18n/en.json +48 -6
  83. package/src/assets/i18n/es.json +47 -5
  84. package/src/assets/i18n/fr.json +50 -8
  85. package/src/assets/i18n/it.json +47 -5
  86. package/src/assets/i18n/pt.json +47 -5
  87. package/src/assets/i18n/ru.json +48 -6
  88. package/src/assets/i18n/sr.json +251 -0
  89. package/src/assets/i18n/tr.json +47 -5
  90. package/src/assets/images/default-avatar-x-select.png +0 -0
  91. package/src/assets/images/language_flag/ar.png +0 -0
  92. package/src/assets/images/language_flag/bg.png +0 -0
  93. package/src/assets/images/language_flag/ca.png +0 -0
  94. package/src/assets/images/language_flag/cs.png +0 -0
  95. package/src/assets/images/language_flag/da.png +0 -0
  96. package/src/assets/images/language_flag/de.png +0 -0
  97. package/src/assets/images/language_flag/el.png +0 -0
  98. package/src/assets/images/language_flag/en.png +0 -0
  99. package/src/assets/images/language_flag/es.png +0 -0
  100. package/src/assets/images/language_flag/fa.png +0 -0
  101. package/src/assets/images/language_flag/fi.png +0 -0
  102. package/src/assets/images/language_flag/fr.png +0 -0
  103. package/src/assets/images/language_flag/he.png +0 -0
  104. package/src/assets/images/language_flag/hi.png +0 -0
  105. package/src/assets/images/language_flag/hr.png +0 -0
  106. package/src/assets/images/language_flag/hu.png +0 -0
  107. package/src/assets/images/language_flag/id.png +0 -0
  108. package/src/assets/images/language_flag/it.png +0 -0
  109. package/src/assets/images/language_flag/ja.png +0 -0
  110. package/src/assets/images/language_flag/ko.png +0 -0
  111. package/src/assets/images/language_flag/ml-IN.png +0 -0
  112. package/src/assets/images/language_flag/ne-NP.png +0 -0
  113. package/src/assets/images/language_flag/nl.png +0 -0
  114. package/src/assets/images/language_flag/no.png +0 -0
  115. package/src/assets/images/language_flag/pl.png +0 -0
  116. package/src/assets/images/language_flag/pt-BR.png +0 -0
  117. package/src/assets/images/language_flag/pt.png +0 -0
  118. package/src/assets/images/language_flag/ro.png +0 -0
  119. package/src/assets/images/language_flag/ru.png +0 -0
  120. package/src/assets/images/language_flag/sk.png +0 -0
  121. package/src/assets/images/language_flag/sl.png +0 -0
  122. package/src/assets/images/language_flag/sr.png +0 -0
  123. package/src/assets/images/language_flag/sv-SE.png +0 -0
  124. package/src/assets/images/language_flag/ta.png +0 -0
  125. package/src/assets/images/language_flag/th.png +0 -0
  126. package/src/assets/images/language_flag/tr.png +0 -0
  127. package/src/assets/images/language_flag/uk.png +0 -0
  128. package/src/assets/images/language_flag/vi.png +0 -0
  129. package/src/assets/images/language_flag/zh-CN.png +0 -0
  130. package/src/assets/images/language_flag/zh-TW.png +0 -0
  131. package/src/assets/images/no_image_user.png +0 -0
  132. package/src/assets/images/priority_icons/high.svg +3 -0
  133. package/src/assets/images/priority_icons/high_v2.svg +14 -0
  134. package/src/assets/images/priority_icons/low.svg +10 -0
  135. package/src/assets/images/priority_icons/low_v2.svg +14 -0
  136. package/src/assets/images/priority_icons/medium.svg +16 -0
  137. package/src/assets/images/priority_icons/medium_v2.svg +11 -0
  138. package/src/assets/images/priority_icons/urgent.svg +4 -0
  139. package/src/assets/images/priority_icons/urgent_v2.svg +16 -0
  140. package/src/assets/tiledesk-solo-logo.png +0 -0
  141. package/src/chat-config-pre-test.json +3 -1
  142. package/src/chat-config-template.json +3 -1
  143. package/src/chat-config.json +4 -2
  144. package/src/chat21-core/utils/constants.ts +6 -1
  145. package/src/global.scss +397 -3
  146. package/src/index.html +7 -0
  147. package/publish_pre.sh +0 -33
  148. package/publish_prod.sh +0 -33
@@ -1,11 +1,12 @@
1
- import { Component, OnInit, Input, Output, ViewChild, ElementRef, EventEmitter, HostListener, AfterViewInit } from '@angular/core';
2
- import { TYPE_MSG_IMAGE } from 'src/chat21-core/utils/constants';
3
- import { NavParams, ModalController } from '@ionic/angular';
4
- import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
1
+ import {
2
+ Component, OnInit, Input, ViewChild, ElementRef, HostListener, AfterViewInit} from '@angular/core'
3
+ import { TYPE_MSG_IMAGE } from 'src/chat21-core/utils/constants'
4
+ import { ModalController } from '@ionic/angular'
5
+ import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'
5
6
 
6
7
  // Logger
7
- import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
8
- import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
8
+ import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service'
9
+ import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance'
9
10
 
10
11
  @Component({
11
12
  selector: 'app-loader-preview',
@@ -13,103 +14,138 @@ import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance'
13
14
  styleUrls: ['./loader-preview.page.scss'],
14
15
  })
15
16
  export class LoaderPreviewPage implements OnInit, AfterViewInit {
16
- @ViewChild('thumbnailsPreview', { static: false }) thumbnailsPreview: ElementRef;
17
- @ViewChild('messageTextArea', { static: false }) messageTextArea: ElementRef;
17
+ @ViewChild('thumbnailsPreview', { static: false })
18
+ thumbnailsPreview: ElementRef
19
+ @ViewChild('messageTextArea', { static: false }) messageTextArea: ElementRef
18
20
  @ViewChild('imageCaptionTexarea', { static: false }) imageCaptionTexarea: any
19
21
  // @Output() eventSendMessage = new EventEmitter<object>();
20
- @Input() files: [any];
21
-
22
- public arrayFiles = [];
23
- public fileSelected: any;
24
- public messageString: string;
25
- public heightPreviewArea = '183';
26
- private selectedFiles: any;
27
- srcData: SafeResourceUrl;
28
- public file_extension: string;
29
- public file_name: string;
30
- public file_name_ellipsis_the_middle: string;
31
- private logger: LoggerService = LoggerInstance.getInstance();
22
+ @Input() files: [any]
23
+ @Input() enableBackdropDismiss: any
24
+ @Input() msg: string
25
+
26
+ public arrayFiles = []
27
+ public fileSelected: any
28
+ public messageString: string
29
+ public heightPreviewArea = '183'
30
+ private selectedFiles: any
31
+ srcData: SafeResourceUrl
32
+ public file_extension: string
33
+ public file_name: string
34
+ public file_name_ellipsis_the_middle: string
35
+ private logger: LoggerService = LoggerInstance.getInstance()
32
36
 
33
37
  constructor(
34
38
  public viewCtrl: ModalController,
35
- private sanitizer: DomSanitizer
36
- ) { }
39
+ private sanitizer: DomSanitizer,
40
+ ) {}
37
41
 
38
42
  ngOnInit() {
39
- this.logger.log('[LOADER-PREVIEW-PAGE] Hello!');
43
+ this.logger.log('[LOADER-PREVIEW-PAGE] Hello!')
40
44
  // tslint:disable-next-line: prefer-for-of
41
- this.selectedFiles = this.files;
45
+ this.selectedFiles = this.files
42
46
  for (let i = 0; i < this.files.length; i++) {
43
- this.readAsDataURL(this.files[i]);
47
+ this.readAsDataURL(this.files[i])
44
48
  //this.fileChange(this.files[i]);
45
49
  }
46
50
  }
47
51
  ngAfterViewInit() {
52
+ this.logger.log('[LOADER-PREVIEW-PAGE] this.files', this.files)
53
+ this.logger.log(
54
+ '[LOADER-PREVIEW-PAGE] enableBackdropDismiss',
55
+ this.enableBackdropDismiss,
56
+ )
57
+ this.logger.log('[LOADER-PREVIEW-PAGE] msg', this.msg)
58
+ if (this.msg) {
59
+ this.messageString = this.msg
60
+ }
61
+
48
62
  if (this.imageCaptionTexarea) {
49
63
  setTimeout(() => {
50
64
  // this.logger.log("[CONVS-DETAIL][MSG-TEXT-AREA] set focus on ", this.messageTextArea);
51
65
  // Keyboard.show() // for android
52
- this.logger.log("[CONVS-DETAIL][MSG-TEXT-AREA] ngAfterViewInit this.imageCaptionTexarea ", this.imageCaptionTexarea);
53
- this.imageCaptionTexarea.setFocus();
54
-
55
- }, 1000); //a least 150ms.
66
+ this.logger.log(
67
+ '[CONVS-DETAIL][MSG-TEXT-AREA] ngAfterViewInit this.imageCaptionTexarea ',
68
+ this.imageCaptionTexarea,
69
+ )
70
+ this.imageCaptionTexarea.setFocus()
71
+ }, 1000) //a least 150ms.
56
72
  }
57
73
  }
58
74
 
59
75
  ionViewDidEnter() {
60
- this.logger.log('[LOADER-PREVIEW-PAGE] ionViewDidEnter thumbnailsPreview.nativeElement.offsetHeight', this.thumbnailsPreview.nativeElement.offsetHeight);
61
- this.calculateHeightPreviewArea();
76
+ this.logger.log(
77
+ '[LOADER-PREVIEW-PAGE] ionViewDidEnter thumbnailsPreview.nativeElement.offsetHeight',
78
+ this.thumbnailsPreview.nativeElement.offsetHeight,
79
+ )
80
+ this.calculateHeightPreviewArea()
62
81
  }
63
82
 
64
83
  readAsDataURL(file: any) {
65
- this.logger.log('[LOADER-PREVIEW-PAGE] readAsDataURL file', file);
84
+ this.logger.log('[LOADER-PREVIEW-PAGE] readAsDataURL file', file)
66
85
  // ---------------------------------------------------------------------
67
86
  // USE CASE IMAGE
68
87
  // ---------------------------------------------------------------------
69
- if (file.type.startsWith("image") && (!file.type.includes('svg'))) {
70
-
71
- this.logger.log('[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE IMAGE file TYPE', file.type);
72
- const reader = new FileReader();
88
+ if (file.type.startsWith('image') && !file.type.includes('svg')) {
89
+ this.logger.log(
90
+ '[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE IMAGE file TYPE',
91
+ file.type,
92
+ )
93
+ const reader = new FileReader()
73
94
  reader.onloadend = (evt) => {
74
- const img = reader.result.toString();
75
- this.logger.log('[LOADER-PREVIEW-PAGE] - readAsDataURL - FileReader success ', img);
76
- this.arrayFiles.push(img);
95
+ const img = reader.result.toString()
96
+ this.logger.log(
97
+ '[LOADER-PREVIEW-PAGE] - readAsDataURL - FileReader success ',
98
+ img,
99
+ )
100
+ this.arrayFiles.push(img)
77
101
  if (!this.fileSelected) {
78
- this.fileSelected = img;
102
+ this.fileSelected = img
79
103
  }
80
- };
104
+ }
81
105
 
82
- reader.readAsDataURL(file);
106
+ reader.readAsDataURL(file)
83
107
  // ---------------------------------------------------------------------
84
- // USE CASE SVG
108
+ // USE CASE SVG
85
109
  // ---------------------------------------------------------------------
86
- } else if (file.type.startsWith("image") && (file.type.includes('svg'))) {
110
+ } else if (file.type.startsWith('image') && file.type.includes('svg')) {
87
111
  // this.previewFiles(file)
88
112
 
89
- this.logger.log('[LOADER-PREVIEW-PAGE] - readAsDataURL file TYPE', file.type);
90
- this.logger.log('[LOADER-PREVIEW-PAGE] - readAsDataURL file ', file);
91
- const preview = document.querySelector('#img-preview') as HTMLImageElement;
92
-
93
-
94
- const reader = new FileReader();
95
- const that = this;
96
- reader.addEventListener("load", function () {
97
- // convert image file to base64 string
98
- // const img = reader.result as string;
99
- const img = reader.result.toString();
100
- that.logger.log('FIREBASE-UPLOAD USE CASE SVG LoaderPreviewPage readAsDataURL img ', img);
101
-
102
- // that.fileSelected = that.sanitizer.bypassSecurityTrustResourceUrl(img);
103
-
104
- that.arrayFiles.push(that.sanitizer.bypassSecurityTrustResourceUrl(img));
105
- if (!that.fileSelected) {
106
- that.fileSelected = that.sanitizer.bypassSecurityTrustResourceUrl(img);
107
- }
108
- }, false);
113
+ this.logger.log(
114
+ '[LOADER-PREVIEW-PAGE] - readAsDataURL file TYPE',
115
+ file.type,
116
+ )
117
+ this.logger.log('[LOADER-PREVIEW-PAGE] - readAsDataURL file ', file)
118
+ const preview = document.querySelector('#img-preview') as HTMLImageElement
119
+
120
+ const reader = new FileReader()
121
+ const that = this
122
+ reader.addEventListener(
123
+ 'load',
124
+ function () {
125
+ // convert image file to base64 string
126
+ // const img = reader.result as string;
127
+ const img = reader.result.toString()
128
+ that.logger.log(
129
+ 'FIREBASE-UPLOAD USE CASE SVG LoaderPreviewPage readAsDataURL img ',
130
+ img,
131
+ )
132
+
133
+ // that.fileSelected = that.sanitizer.bypassSecurityTrustResourceUrl(img);
134
+
135
+ that.arrayFiles.push(
136
+ that.sanitizer.bypassSecurityTrustResourceUrl(img),
137
+ )
138
+ if (!that.fileSelected) {
139
+ that.fileSelected = that.sanitizer.bypassSecurityTrustResourceUrl(
140
+ img,
141
+ )
142
+ }
143
+ },
144
+ false,
145
+ )
109
146
 
110
147
  if (file) {
111
-
112
- reader.readAsDataURL(file);
148
+ reader.readAsDataURL(file)
113
149
  }
114
150
 
115
151
  // ---------------------------------------------------------------------
@@ -117,13 +153,27 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
117
153
  // ---------------------------------------------------------------------
118
154
  // } else if (file.type.startsWith("application") || file.type.startsWith("video") || file.type.startsWith("audio") ) {
119
155
  } else {
120
- this.logger.log('[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE FILE - FILE ', file);
121
- this.logger.log('[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE FILE - FILE TYPE', file.type);
122
- this.file_extension = file.name.substring(file.name.lastIndexOf('.') + 1, file.name.length) || file.name;
123
- this.logger.log('[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE FILE - FILE EXTENSION', this.file_extension);
156
+ this.logger.log(
157
+ '[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE FILE - FILE ',
158
+ file,
159
+ )
160
+ this.logger.log(
161
+ '[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE FILE - FILE TYPE',
162
+ file.type,
163
+ )
164
+ this.file_extension =
165
+ file.name.substring(file.name.lastIndexOf('.') + 1, file.name.length) ||
166
+ file.name
167
+ this.logger.log(
168
+ '[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE FILE - FILE EXTENSION',
169
+ this.file_extension,
170
+ )
124
171
  this.file_name = file.name
125
172
  this.file_name_ellipsis_the_middle = this.start_and_end(file.name)
126
- this.logger.log('[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE FILE - FILE NAME', this.file_name);
173
+ this.logger.log(
174
+ '[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE FILE - FILE NAME',
175
+ this.file_name,
176
+ )
127
177
  // if (file.type) {
128
178
  // const file_type_array = file.type.split('/');
129
179
  // this.logger.log('FIREBASE-UPLOAD USE CASE FILE LoaderPreviewPage readAsDataURL file_type_array', file_type_array);
@@ -132,38 +182,40 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
132
182
  // this.file_type = file.name.substring(file.name.lastIndexOf('.')+1, file.name.length) || file.name;
133
183
 
134
184
  // }
135
- this.createFile();
185
+ this.createFile()
136
186
  }
137
187
  }
138
188
 
139
189
  start_and_end(str) {
140
190
  if (str.length > 70) {
141
- return str.substr(0, 20) + '...' + str.substr(str.length - 10, str.length);
191
+ return str.substr(0, 20) + '...' + str.substr(str.length - 10, str.length)
142
192
  }
143
- return str;
193
+ return str
144
194
  }
145
195
  // file-alt-solid.png
146
196
  async createFile() {
147
- let response = await fetch('./assets/images/file-alt-solid.png');
148
- let data = await response.blob();
197
+ let response = await fetch('./assets/images/file-alt-solid.png')
198
+ let data = await response.blob()
149
199
  let metadata = {
150
- type: 'image/png'
151
- };
152
- let file = new File([data], "test.png", metadata);
153
- this.logger.log('[LOADER-PREVIEW-PAGE] - createFile file - file', file);
154
- const reader = new FileReader();
200
+ type: 'image/png',
201
+ }
202
+ let file = new File([data], 'test.png', metadata)
203
+ this.logger.log('[LOADER-PREVIEW-PAGE] - createFile file - file', file)
204
+ const reader = new FileReader()
155
205
  reader.onloadend = (evt) => {
156
- const img = reader.result.toString();
157
- this.logger.log('[LOADER-PREVIEW-PAGE] - createFile file - FileReader success img', img);
158
- this.arrayFiles.push(img);
206
+ const img = reader.result.toString()
207
+ this.logger.log(
208
+ '[LOADER-PREVIEW-PAGE] - createFile file - FileReader success img',
209
+ img,
210
+ )
211
+ this.arrayFiles.push(img)
159
212
  if (!this.fileSelected) {
160
- this.fileSelected = img;
213
+ this.fileSelected = img
161
214
  }
162
- };
163
- reader.readAsDataURL(file);
215
+ }
216
+ reader.readAsDataURL(file)
164
217
  }
165
218
 
166
-
167
219
  // for svg
168
220
 
169
221
  // previewFiles(file) {
@@ -174,7 +226,6 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
174
226
  // this.readAndPreview(file, preview)
175
227
  // }
176
228
 
177
-
178
229
  // readAndPreview(file, preview) {
179
230
  // this.logger.log('LoaderPreviewPage readAsDataURL preview HERE 1');
180
231
  // // Make sure `file.name` matches our extensions criteria
@@ -201,51 +252,52 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
201
252
 
202
253
  // }
203
254
 
204
-
205
- // NOT USED
255
+ // NOT USED
206
256
  fileChange(file) {
207
- this.logger.log('fileChange');
208
- const that = this;
257
+ this.logger.log('fileChange')
258
+ const that = this
209
259
  if (file) {
210
- const nameImg = file.name;
211
- const typeFile = file.type;
212
- this.logger.log('nameImg: ', nameImg);
213
- this.logger.log('typeFile: ', typeFile);
214
-
215
- const reader = new FileReader();
216
- reader.addEventListener('load', function () {
217
- const img = reader.result.toString();
218
- that.logger.log('FileReader success');
219
- that.arrayFiles.push(img);
220
- if (!that.fileSelected) {
221
- that.fileSelected = img;
222
- }
223
-
224
- if (typeFile.indexOf('image') !== -1) {
225
- const file4Load = new Image;
226
- file4Load.src = reader.result.toString();
227
- file4Load.title = nameImg;
228
- file4Load.onload = function () {
229
- that.logger.log('that.file4Load: ', file4Load);
230
- //that.arrayFiles.push(file4Load);
231
- const uid = file4Load.src.substring(file4Load.src.length - 16);
232
- const metadata = {
233
- 'name': file4Load.title,
234
- 'src': file4Load.src,
235
- 'width': file4Load.width,
236
- 'height': file4Load.height,
237
- 'type': typeFile,
238
- 'uid': uid
239
- };
240
- // const type_msg = 'image';
241
- // 1 - invio messaggio
242
- //that.viewCtrl.dismiss({fileSelected: file4Load, messageString: that.messageString});
243
- //that.addLocalMessage(metadata, type_msg);
244
- // 2 - carico immagine
245
- //that.uploadSingle(metadata, type_msg);
246
- };
247
- }
248
- /*
260
+ const nameImg = file.name
261
+ const typeFile = file.type
262
+ this.logger.log('nameImg: ', nameImg)
263
+ this.logger.log('typeFile: ', typeFile)
264
+
265
+ const reader = new FileReader()
266
+ reader.addEventListener(
267
+ 'load',
268
+ function () {
269
+ const img = reader.result.toString()
270
+ that.logger.log('FileReader success')
271
+ that.arrayFiles.push(img)
272
+ if (!that.fileSelected) {
273
+ that.fileSelected = img
274
+ }
275
+
276
+ if (typeFile.indexOf('image') !== -1) {
277
+ const file4Load = new Image()
278
+ file4Load.src = reader.result.toString()
279
+ file4Load.title = nameImg
280
+ file4Load.onload = function () {
281
+ that.logger.log('that.file4Load: ', file4Load)
282
+ //that.arrayFiles.push(file4Load);
283
+ const uid = file4Load.src.substring(file4Load.src.length - 16)
284
+ const metadata = {
285
+ name: file4Load.title,
286
+ src: file4Load.src,
287
+ width: file4Load.width,
288
+ height: file4Load.height,
289
+ type: typeFile,
290
+ uid: uid,
291
+ }
292
+ // const type_msg = 'image';
293
+ // 1 - invio messaggio
294
+ //that.viewCtrl.dismiss({fileSelected: file4Load, messageString: that.messageString});
295
+ //that.addLocalMessage(metadata, type_msg);
296
+ // 2 - carico immagine
297
+ //that.uploadSingle(metadata, type_msg);
298
+ }
299
+ }
300
+ /*
249
301
  else if (typeFile.indexOf('application') !== -1) {
250
302
  const type_msg = 'file';
251
303
  const file = that.selectedFiles.item(0);
@@ -261,29 +313,34 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
261
313
  that.uploadSingle(metadata, type_msg);
262
314
  }
263
315
  */
264
- }, false);
316
+ },
317
+ false,
318
+ )
265
319
  if (file) {
266
- reader.readAsDataURL(file);
320
+ reader.readAsDataURL(file)
267
321
  }
268
322
  }
269
323
  }
270
324
 
271
325
  calculateHeightPreviewArea() {
272
- const heightThumbnailsPreview = this.thumbnailsPreview.nativeElement.offsetHeight;
273
- const heightMessageTextArea = this.messageTextArea.nativeElement.offsetHeight;
274
- this.heightPreviewArea = (heightMessageTextArea + heightThumbnailsPreview).toString();
326
+ const heightThumbnailsPreview = this.thumbnailsPreview.nativeElement
327
+ .offsetHeight
328
+ const heightMessageTextArea = this.messageTextArea.nativeElement
329
+ .offsetHeight
330
+ this.heightPreviewArea = (
331
+ heightMessageTextArea + heightThumbnailsPreview
332
+ ).toString()
275
333
  // this.logger.log('heightThumbnailsPreview', heightThumbnailsPreview);
276
334
  // this.logger.log('heightMessageTextArea', this.messageTextArea);
277
335
  // this.logger.log('heightPreviewArea', this.heightPreviewArea);
278
336
  }
279
337
 
280
- uploadImages() { }
281
-
338
+ uploadImages() {}
282
339
 
283
340
  /** */
284
341
  onChangeTextArea(e: any) {
285
- this.logger.log('onChangeTextArea', e.target.clientHeight);
286
- this.calculateHeightPreviewArea();
342
+ this.logger.log('onChangeTextArea', e.target.clientHeight)
343
+ this.calculateHeightPreviewArea()
287
344
  // try {
288
345
  // let height: number = e.target.offsetHeight;
289
346
  // if (height < 37 ) {
@@ -297,20 +354,18 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
297
354
 
298
355
  /** */
299
356
  onSelectImage(file: any) {
300
- this.fileSelected = file;
357
+ this.fileSelected = file
301
358
  }
302
359
 
303
360
  @HostListener('document:keydown', ['$event'])
304
361
  handleKeyboardEvent(event: KeyboardEvent) {
305
362
  if (event.key === 'Enter') {
306
-
307
363
  this.onSendMessage()
308
364
  }
309
-
310
365
  }
311
366
 
312
367
  pressedOnKeyboard(e: any, text: string) {
313
- this.logger.log('[LOADER-PREVIEW-PAGE] pressedOnKeyboard - event:: ', e);
368
+ this.logger.log('[LOADER-PREVIEW-PAGE] pressedOnKeyboard - event:: ', e)
314
369
  // const message = e.target.textContent.trim();
315
370
  // if (e.inputType === 'insertLineBreak' && message === '') {
316
371
  // this.messageString = '';
@@ -322,32 +377,37 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
322
377
  this.onSendMessage()
323
378
  }
324
379
 
325
-
326
-
327
380
  /** */
328
381
  onSendMessage() {
329
- this.logger.log('[LOADER-PREVIEW-PAGE] onSendMessage messageString:', this.messageString);
330
- let file = this.selectedFiles.item(0);
331
- const file4Load = new Image;
332
- const nameImg = file.name;
333
- const typeFile = file.type;
334
-
335
- file4Load.src = this.fileSelected;
336
- file4Load.title = nameImg;
337
- const uid = file4Load.src.substring(file4Load.src.length - 16);
382
+ this.logger.log(
383
+ '[LOADER-PREVIEW-PAGE] onSendMessage messageString:',
384
+ this.messageString,
385
+ )
386
+ let file = this.selectedFiles.item(0)
387
+ const file4Load = new Image()
388
+ const nameImg = file.name
389
+ const typeFile = file.type
390
+
391
+ file4Load.src = this.fileSelected
392
+ file4Load.title = nameImg
393
+ const uid = file4Load.src.substring(file4Load.src.length - 16)
338
394
  const metadata = {
339
- 'name': file4Load.title,
340
- 'src': file4Load.src,
341
- 'width': file4Load.width,
342
- 'height': file4Load.height,
343
- 'type': typeFile,
344
- 'uid': uid
345
- };
346
- this.viewCtrl.dismiss({ fileSelected: file, messageString: this.messageString, metadata: metadata, type: TYPE_MSG_IMAGE });
347
-
395
+ name: file4Load.title,
396
+ src: file4Load.src,
397
+ width: file4Load.width,
398
+ height: file4Load.height,
399
+ type: typeFile,
400
+ uid: uid,
401
+ }
402
+ this.viewCtrl.dismiss({
403
+ fileSelected: file,
404
+ messageString: this.messageString,
405
+ metadata: metadata,
406
+ type: TYPE_MSG_IMAGE,
407
+ })
348
408
  }
349
409
 
350
410
  async onClose() {
351
- this.viewCtrl.dismiss();
411
+ this.viewCtrl.dismiss()
352
412
  }
353
413
  }
@@ -55,13 +55,13 @@
55
55
  </div>
56
56
 
57
57
  <ion-list *ngIf="loggedUser">
58
- <ion-item lines="none" class="sidebar-items" (click)="onClickArchivedConversation()">
58
+ <!-- <ion-item lines="none" class="sidebar-items" (click)="onClickArchivedConversation()">
59
59
  <div tabindex="0"></div>
60
60
  <ion-icon name="archive-outline" class="sidebar-icons"></ion-icon>
61
61
  <ion-label class="sidebar-labels">
62
62
  <h3>{{ 'LABEL_ARCHIVED' | translate }}</h3>
63
63
  </ion-label>
64
- </ion-item>
64
+ </ion-item> -->
65
65
 
66
66
  <ion-item lines="none" class="sidebar-items" (click)="onLogout()">
67
67
  <div tabindex="0"></div>
@@ -74,7 +74,7 @@
74
74
  .current-user-profile {
75
75
  width: 100%;
76
76
  height: 100%;
77
- font-family: "Google Sans",sans-serif;
77
+ font-family: "Poppins";
78
78
  --ion-background-color:#2d323e;
79
79
 
80
80
  .buttons-header{
@@ -86,16 +86,18 @@ export class ProfileInfoPage implements OnInit {
86
86
  private setUser() {
87
87
  // width and height NON sono obbligatori
88
88
  this.loggedUser = this.chatManager.getCurrentUser();
89
- this.itemAvatar = {
90
- imageurl: this.imageRepo.getImagePhotoUrl(this.loggedUser.uid),
91
- avatar: this.loggedUser.avatar,
92
- color: this.loggedUser.color,
93
- online: this.loggedUser.online,
94
- lastConnection: this.loggedUser.lastConnection,
95
- status: '',
96
- width: '100px',
97
- height: '100px'
98
- };
89
+ if (this.loggedUser) {
90
+ this.itemAvatar = {
91
+ imageurl: this.imageRepo.getImagePhotoUrl(this.loggedUser.uid),
92
+ avatar: this.loggedUser.avatar,
93
+ color: this.loggedUser.color,
94
+ online: this.loggedUser.online,
95
+ lastConnection: this.loggedUser.lastConnection,
96
+ status: '',
97
+ width: '100px',
98
+ height: '100px'
99
+ };
100
+ }
99
101
  }
100
102
 
101
103
 
@@ -121,10 +123,10 @@ export class ProfileInfoPage implements OnInit {
121
123
  private setSubscriptions() {
122
124
  this.presenceService.userIsOnline(this.loggedUser.uid);
123
125
  this.presenceService.lastOnlineForUser(this.loggedUser.uid);
124
-
125
-
126
+
127
+
126
128
  const subscribeBSIsOnline = this.presenceService.BSIsOnline.subscribe((data: any) => {
127
- this.logger.log('[PROFILE-INFO-PAGE] setSubscriptions $ubscribe to BSIsOnline - data' , data);
129
+ this.logger.log('[PROFILE-INFO-PAGE] setSubscriptions $ubscribe to BSIsOnline - data', data);
128
130
  if (data) {
129
131
  const userId = data.uid;
130
132
  const isOnline = data.isOnline;
@@ -135,7 +137,7 @@ export class ProfileInfoPage implements OnInit {
135
137
  });
136
138
 
137
139
  const subscribeBSLastOnline = this.presenceService.BSLastOnline.subscribe((data: any) => {
138
- this.logger.log('[PROFILE-INFO-PAGE] setSubscriptions $ubscribe to BSLastOnline - data' , data);
140
+ this.logger.log('[PROFILE-INFO-PAGE] setSubscriptions $ubscribe to BSLastOnline - data', data);
139
141
  if (data) {
140
142
  const userId = data.uid;
141
143
  const timestamp = data.lastOnline;
@@ -150,7 +152,7 @@ export class ProfileInfoPage implements OnInit {
150
152
 
151
153
 
152
154
  userIsOnLine = (userId: string, isOnline: boolean) => {
153
- this.logger.log('[PROFILE-INFO-PAGE] userIsOnLine - userId ', userId, ' - isOnline ', isOnline);
155
+ this.logger.log('[PROFILE-INFO-PAGE] userIsOnLine - userId ', userId, ' - isOnline ', isOnline);
154
156
  this.itemAvatar.online = isOnline;
155
157
  if (isOnline) {
156
158
  this.itemAvatar.status = this.translationMap.get('LABEL_AVAILABLE');
@@ -180,9 +182,9 @@ export class ProfileInfoPage implements OnInit {
180
182
 
181
183
  /** */
182
184
  private unsubescribeAll() {
183
- this.logger.log('unsubescribeAll: ', this.subscriptions);
185
+ this.logger.log('unsubescribeAll: ', this.subscriptions);
184
186
  this.subscriptions.forEach((subscription: any) => {
185
- this.logger.log('unsubescribe: ', subscription);
187
+ this.logger.log('unsubescribe: ', subscription);
186
188
  // this.events.unsubscribe(subscription, null);
187
189
  });
188
190
  this.subscriptions = [];
@@ -207,15 +209,15 @@ export class ProfileInfoPage implements OnInit {
207
209
  }
208
210
 
209
211
  copyLoggedUserUID() {
210
- var copyText = document.createElement("input");
212
+ var copyText = document.createElement("input");
211
213
  copyText.setAttribute("type", "text");
212
214
  copyText.setAttribute("value", this.loggedUser.uid);
213
-
214
- document.body.appendChild(copyText);
215
+
216
+ document.body.appendChild(copyText);
215
217
  copyText.select();
216
218
  copyText.setSelectionRange(0, 99999); /*For mobile devices*/
217
219
  document.execCommand("copy");
218
- this.logger.log("Copied the text: " + copyText.value);
220
+ this.logger.log("Copied the text: " + copyText.value);
219
221
  const tootipElem = <HTMLElement>document.querySelector('.chat-tooltip');
220
222
  this.renderer.appendChild(tootipElem, this.renderer.createText('Copied!'))
221
223