@chat21/chat21-ionic 3.0.75 → 3.0.76-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -1
- package/deploy_amazon_beta.sh +1 -1
- package/package.json +1 -1
- package/src/app/app.component.ts +1 -1
- package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts +7 -7
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +8 -8
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +5 -6
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +4 -4
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.scss +0 -10
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +4 -9
- package/src/app/chatlib/conversation-detail/message/frame/frame.component.ts +8 -3
- package/src/app/chatlib/conversation-detail/message/image/image.component.ts +2 -2
- package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.ts +6 -1
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +0 -2
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +1 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.html +22 -6
- package/src/app/pages/conversation-detail/conversation-detail.page.scss +10 -0
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +126 -67
- package/src/app/pages/conversations-list/conversations-list.page.ts +28 -2
- package/src/app/pages/loader-preview/loader-preview.page.ts +8 -27
- package/src/app/services/canned-responses/canned-responses.service.ts +43 -7
- package/src/app/utils/scrollbar-theme.directive.ts +2 -1
- package/src/assets/i18n/ar.json +2 -0
- package/src/assets/i18n/az.json +2 -0
- package/src/assets/i18n/de.json +2 -0
- package/src/assets/i18n/en.json +2 -0
- package/src/assets/i18n/es.json +2 -0
- package/src/assets/i18n/fr.json +2 -0
- package/src/assets/i18n/it.json +2 -0
- package/src/assets/i18n/kk.json +2 -0
- package/src/assets/i18n/pt.json +2 -0
- package/src/assets/i18n/ru.json +2 -0
- package/src/assets/i18n/sr.json +2 -0
- package/src/assets/i18n/sv.json +2 -0
- package/src/assets/i18n/tr.json +2 -0
- package/src/assets/i18n/uk.json +2 -0
- package/src/assets/i18n/uz.json +2 -0
- package/src/chat-config-pre.json +1 -1
- package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +14 -4
- package/src/chat21-core/providers/firebase/firebase-conversations-handler.ts +1 -1
- package/src/chat21-core/providers/mqtt/mqtt-conversation-handler.ts +22 -0
- package/src/chat21-core/utils/constants.ts +3 -1
- package/src/chat21-core/utils/utils.ts +14 -0
- package/src/global.scss +27 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
# chat21-ionic ver 3.0
|
|
2
2
|
|
|
3
|
-
### 3.0.
|
|
3
|
+
### 3.0.76-rc.1
|
|
4
|
+
- changed: senderFullName in list conversation for guest users with guest#uuid[0..5]
|
|
5
|
+
- added: multi-language to MEMBER_LEFT_GROUP and LEAD_UPDATED info messages
|
|
6
|
+
- added: onElementRendered event to image/frame/mesagge-attachment to scroll content after element is rendered
|
|
7
|
+
- added: enabled possibility to edit or delete a canned response created by yourself
|
|
8
|
+
- added: disable footer component of an archived conversation if it's been more than 10 days
|
|
9
|
+
- removed: scrollBar from conversation-detail page
|
|
10
|
+
|
|
11
|
+
## 3.0.75 in PROD
|
|
4
12
|
|
|
5
13
|
### 3.0.75-rc.2
|
|
6
14
|
- bug-fixed: unserved request count not updated correctly after a request is assigned
|
package/deploy_amazon_beta.sh
CHANGED
|
@@ -12,7 +12,7 @@ sed -i -e "s/$URL_VER/g" src/utils/constants.ts
|
|
|
12
12
|
|
|
13
13
|
ionic cordova platform add browser --save
|
|
14
14
|
#ionic cordova build browser --prod --release
|
|
15
|
-
ionic cordova build --env=pre browser #--prod --verbose
|
|
15
|
+
ionic cordova build --env=pre browser #--prod --verbose
|
|
16
16
|
|
|
17
17
|
cp -p src/firebase-messaging-sw.js platforms/browser/www/
|
|
18
18
|
cp -p src/manifest.json platforms/browser/www/
|
package/package.json
CHANGED
package/src/app/app.component.ts
CHANGED
|
@@ -798,7 +798,7 @@ export class AppComponent implements OnInit {
|
|
|
798
798
|
pageUrl += IDConv + '/' + FullNameConv + '/' + Convtype
|
|
799
799
|
}
|
|
800
800
|
// replace(/\(/g, '%28').replace(/\)/g, '%29') -> used for the encoder of any round brackets
|
|
801
|
-
this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29'));
|
|
801
|
+
this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29').replace( /#/g, "%23" ));
|
|
802
802
|
|
|
803
803
|
|
|
804
804
|
// const DASHBOARD_URL = this.appConfigProvider.getConfig().DASHBOARD_URL;
|
package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts
CHANGED
|
@@ -263,29 +263,29 @@ export class ConversationContentComponent implements OnInit {
|
|
|
263
263
|
|
|
264
264
|
// ========= begin:: event emitter function ============//
|
|
265
265
|
|
|
266
|
-
|
|
266
|
+
onAttachmentButtonClickedFN(event: any) {
|
|
267
267
|
this.onAttachmentButtonClicked.emit(event)
|
|
268
268
|
}
|
|
269
269
|
|
|
270
|
-
|
|
270
|
+
onBeforeMessageRenderFN(event) {
|
|
271
271
|
//decommentare se in html c'è solamente component tiledesk-text
|
|
272
272
|
//const messageOBJ = { message: this.message, sanitizer: this.sanitizer, messageEl: event.messageEl, component: event.component}
|
|
273
273
|
this.onBeforeMessageRender.emit(event)
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
-
|
|
276
|
+
onAfterMessageRenderFN(event) {
|
|
277
277
|
this.onAfterMessageRender.emit(event)
|
|
278
278
|
}
|
|
279
279
|
|
|
280
|
-
|
|
281
|
-
const
|
|
282
|
-
if (
|
|
280
|
+
onElementRenderedFN(event) {
|
|
281
|
+
const elementRendered = event;
|
|
282
|
+
if (elementRendered.status && this.scrollMe) {
|
|
283
283
|
const divScrollMe = this.scrollMe.nativeElement;
|
|
284
284
|
const checkContentScrollPosition = this.checkContentScrollPosition(divScrollMe);
|
|
285
285
|
this.scrollToBottom() // SCROLLO SEMPRE
|
|
286
286
|
// if (!checkContentScrollPosition) { // SE NON SONO ALLA FINE, SCROLLO CONTENT
|
|
287
287
|
// }
|
|
288
|
-
|
|
288
|
+
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
291
|
|
|
@@ -87,9 +87,9 @@
|
|
|
87
87
|
[addAsCannedResponseTooltipText]="addAsCannedResponseTooltipText"
|
|
88
88
|
[areVisibleCAR]="areVisibleCAR"
|
|
89
89
|
[supportMode]="supportMode"
|
|
90
|
-
(onBeforeMessageRender)="
|
|
91
|
-
(onAfterMessageRender)="
|
|
92
|
-
(
|
|
90
|
+
(onBeforeMessageRender)="onBeforeMessageRenderFN($event)"
|
|
91
|
+
(onAfterMessageRender)="onAfterMessageRenderFN($event)"
|
|
92
|
+
(onElementRendered)="onElementRenderedFN($event)">
|
|
93
93
|
</chat-bubble-message>
|
|
94
94
|
|
|
95
95
|
<!-- icon status message -->
|
|
@@ -126,10 +126,9 @@
|
|
|
126
126
|
[addAsCannedResponseTooltipText]="addAsCannedResponseTooltipText"
|
|
127
127
|
[areVisibleCAR]="areVisibleCAR"
|
|
128
128
|
[supportMode]="supportMode"
|
|
129
|
-
(onBeforeMessageRender)="
|
|
130
|
-
(onAfterMessageRender)="
|
|
131
|
-
(
|
|
132
|
-
>
|
|
129
|
+
(onBeforeMessageRender)="onBeforeMessageRenderFN($event)"
|
|
130
|
+
(onAfterMessageRender)="onAfterMessageRenderFN($event)"
|
|
131
|
+
(onElementRendered)="onElementRenderedFN($event)">
|
|
133
132
|
</chat-bubble-message>
|
|
134
133
|
</div>
|
|
135
134
|
|
|
@@ -139,7 +138,8 @@
|
|
|
139
138
|
[message]="message"
|
|
140
139
|
[isLastMessage]="isLastMessage(message?.uid)"
|
|
141
140
|
[stylesMap]="stylesMap"
|
|
142
|
-
(
|
|
141
|
+
(onElementRendered)="onElementRenderedFN($event)"
|
|
142
|
+
(onAttachmentButtonClicked)="onAttachmentButtonClickedFN($event)">
|
|
143
143
|
</chat-message-attachment>
|
|
144
144
|
</div>
|
|
145
145
|
</div>
|
|
@@ -24,7 +24,7 @@ export class IonConversationDetailComponent extends ConversationContentComponent
|
|
|
24
24
|
@Input() channelType: string;
|
|
25
25
|
@Input() areVisibleCAR: boolean;
|
|
26
26
|
@Input() supportMode: boolean;
|
|
27
|
-
@Output()
|
|
27
|
+
@Output() onElementRendered = new EventEmitter<{element: string, status: boolean}>();
|
|
28
28
|
@Output() onAddUploadingBubble = new EventEmitter<boolean>();
|
|
29
29
|
|
|
30
30
|
public public_Key: any
|
|
@@ -94,8 +94,7 @@ export class IonConversationDetailComponent extends ConversationContentComponent
|
|
|
94
94
|
// this.translate.getTranslation(chat_lang).subscribe((labels: string) => {
|
|
95
95
|
// console.log('[CONVS-DETAIL] translations: ', labels);
|
|
96
96
|
// });
|
|
97
|
-
this.translate.get('AddAsCannedResponse')
|
|
98
|
-
.subscribe((text: string) => {
|
|
97
|
+
this.translate.get('AddAsCannedResponse').subscribe((text: string) => {
|
|
99
98
|
// console.log('[CONVS-DETAIL] AddAsCannedResponse translated: ', text);
|
|
100
99
|
this.addAsCannedResponseTooltipText = text
|
|
101
100
|
})
|
|
@@ -132,9 +131,9 @@ export class IonConversationDetailComponent extends ConversationContentComponent
|
|
|
132
131
|
this.onAddUploadingBubble.emit(value);
|
|
133
132
|
}
|
|
134
133
|
|
|
135
|
-
|
|
136
|
-
this.logger.log('[CONVS-DETAIL][ION-CONVS-DETAIL] -
|
|
137
|
-
this.
|
|
134
|
+
onElementRenderedFN(event) {
|
|
135
|
+
this.logger.log('[CONVS-DETAIL][ION-CONVS-DETAIL] - onElementRenderedFN:::ionic', event)
|
|
136
|
+
this.onElementRendered.emit(event)
|
|
138
137
|
}
|
|
139
138
|
|
|
140
139
|
/**
|
package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<!-- isImage >{{isImage(message) }} message.metadata.width {{message?.metadata?.width }} -->
|
|
4
4
|
<div id="bubble-message"
|
|
5
5
|
[ngStyle]="{'padding': (isImage(message) || isFrame(message))?'0px':'0 8px', 'width': (isImage(message) || isFrame(message))? sizeImage?.width + 'px' : null }"
|
|
6
|
-
class="messages primary-color"
|
|
6
|
+
class="messages primary-color">
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
<div>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
[metadata]="message.metadata"
|
|
23
23
|
[width]="sizeImage?.width"
|
|
24
24
|
[height]="sizeImage?.height"
|
|
25
|
-
(
|
|
25
|
+
(onElementRendered)="onElementRenderedFN($event)">
|
|
26
26
|
</chat-image>
|
|
27
27
|
|
|
28
28
|
<!-- [width]="getMetadataSize(message.metadata).width" -->
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
<chat-frame *ngIf="isFrame(message)"
|
|
31
31
|
[metadata]="message.metadata"
|
|
32
32
|
[width]="message.metadata.width"
|
|
33
|
-
[height]="message.metadata.height"
|
|
33
|
+
[height]="message.metadata.height"
|
|
34
|
+
(onElementRendered)="onElementRenderedFN($event)">
|
|
34
35
|
</chat-frame>
|
|
35
36
|
|
|
36
37
|
<!-- <chat-frame *ngIf="message.metadata && message.metadata.type && message.metadata.type.includes('video')"
|
|
@@ -51,7 +52,6 @@
|
|
|
51
52
|
[text]="message?.text"
|
|
52
53
|
[color]="textColor"
|
|
53
54
|
[message]="message"
|
|
54
|
-
[class.chat-text-emoticon]="message?.emoticon"
|
|
55
55
|
(onBeforeMessageRender)="returnOnBeforeMessageRender($event)"
|
|
56
56
|
(onAfterMessageRender)="returnOnAfterMessageRender($event)">
|
|
57
57
|
</chat-text>
|
package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.scss
CHANGED
|
@@ -46,13 +46,6 @@
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
// &:hover .message-date{
|
|
50
|
-
// display: flex;
|
|
51
|
-
// }
|
|
52
|
-
|
|
53
|
-
// .message-date {
|
|
54
|
-
// display: none;
|
|
55
|
-
// }
|
|
56
49
|
}
|
|
57
50
|
// > .button-native
|
|
58
51
|
.btn-add-msg-as-canned-response {
|
|
@@ -64,8 +57,5 @@
|
|
|
64
57
|
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.6);
|
|
65
58
|
}
|
|
66
59
|
|
|
67
|
-
// .emoticon {
|
|
68
|
-
// padding: 35px 0px !important;
|
|
69
|
-
// }
|
|
70
60
|
|
|
71
61
|
|
package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts
CHANGED
|
@@ -23,7 +23,7 @@ export class BubbleMessageComponent implements OnInit, OnChanges {
|
|
|
23
23
|
@Input() supportMode: boolean;
|
|
24
24
|
@Output() onBeforeMessageRender = new EventEmitter();
|
|
25
25
|
@Output() onAfterMessageRender = new EventEmitter();
|
|
26
|
-
@Output()
|
|
26
|
+
@Output() onElementRendered = new EventEmitter<{element: string, status: boolean}>();
|
|
27
27
|
isImage = isImage;
|
|
28
28
|
isFile = isFile;
|
|
29
29
|
isFrame = isFrame;
|
|
@@ -53,7 +53,7 @@ export class BubbleMessageComponent implements OnInit, OnChanges {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
ngOnInit() {
|
|
56
|
-
this.setMomentLocale()
|
|
56
|
+
// this.setMomentLocale()
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
|
|
@@ -140,14 +140,9 @@ export class BubbleMessageComponent implements OnInit, OnChanges {
|
|
|
140
140
|
sizeImage.width = MAX_WIDTH_IMAGES;
|
|
141
141
|
sizeImage.height = MAX_WIDTH_IMAGES / ratio;
|
|
142
142
|
}
|
|
143
|
-
// metadata.width = sizeImage.width
|
|
144
|
-
// metadata.height = sizeImage.height
|
|
145
143
|
return sizeImage
|
|
146
144
|
}
|
|
147
145
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
146
|
/**
|
|
152
147
|
* function customize tooltip
|
|
153
148
|
*/
|
|
@@ -195,8 +190,8 @@ export class BubbleMessageComponent implements OnInit, OnChanges {
|
|
|
195
190
|
this.onAfterMessageRender.emit(messageOBJ)
|
|
196
191
|
}
|
|
197
192
|
|
|
198
|
-
|
|
199
|
-
this.
|
|
193
|
+
onElementRenderedFN(event){
|
|
194
|
+
this.onElementRendered.emit({element: event.element, status: event.status})
|
|
200
195
|
}
|
|
201
196
|
|
|
202
197
|
async presentCreateCannedResponseModal(): Promise<any> {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
2
|
-
import { Component, Input, OnInit } from '@angular/core';
|
|
2
|
+
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
@Component({
|
|
5
5
|
selector: 'chat-frame',
|
|
@@ -11,8 +11,10 @@ export class FrameComponent implements OnInit {
|
|
|
11
11
|
@Input() metadata: any;
|
|
12
12
|
@Input() width: string;
|
|
13
13
|
@Input() height: string;
|
|
14
|
+
@Output() onElementRendered = new EventEmitter<{element: string, status: boolean}>();
|
|
14
15
|
|
|
15
16
|
url: any;
|
|
17
|
+
loading: boolean = true
|
|
16
18
|
constructor(private sanitizer: DomSanitizer) { }
|
|
17
19
|
|
|
18
20
|
ngOnInit() {
|
|
@@ -23,11 +25,14 @@ export class FrameComponent implements OnInit {
|
|
|
23
25
|
// this.height = this.getSizeImg(this.metadata).height;
|
|
24
26
|
}
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
28
|
ngOnDestroy(){
|
|
29
29
|
this.url = null;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
onLoaded(event){
|
|
33
|
+
this.loading = false
|
|
34
|
+
this.onElementRendered.emit({element: "image", status:true})
|
|
35
|
+
}
|
|
36
|
+
|
|
32
37
|
|
|
33
38
|
}
|
|
@@ -10,7 +10,7 @@ export class ImageComponent implements OnInit {
|
|
|
10
10
|
@Input() metadata: any;
|
|
11
11
|
@Input() width: string;
|
|
12
12
|
@Input() height: number;
|
|
13
|
-
@Output()
|
|
13
|
+
@Output() onElementRendered = new EventEmitter<{element: string, status: boolean}>();
|
|
14
14
|
|
|
15
15
|
loading: boolean = true
|
|
16
16
|
tooltipMessage: string;
|
|
@@ -44,7 +44,7 @@ export class ImageComponent implements OnInit {
|
|
|
44
44
|
|
|
45
45
|
onLoaded(event) {
|
|
46
46
|
this.loading = false
|
|
47
|
-
this.
|
|
47
|
+
this.onElementRendered.emit({element: "image", status:true})
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
_downloadImage(url: string, fileName: string) {
|
|
@@ -11,10 +11,11 @@ import { MessageModel } from 'src/chat21-core/models/message';
|
|
|
11
11
|
export class MessageAttachmentComponent implements OnInit {
|
|
12
12
|
|
|
13
13
|
// ========= begin:: Input/Output values ============//
|
|
14
|
-
@Output() onAttachmentButtonClicked = new EventEmitter<any>();
|
|
15
14
|
@Input() message: MessageModel;
|
|
16
15
|
@Input() isLastMessage: boolean;
|
|
17
16
|
@Input() stylesMap: Map<string, string>;
|
|
17
|
+
@Output() onAttachmentButtonClicked = new EventEmitter<any>();
|
|
18
|
+
@Output() onElementRendered = new EventEmitter<{element: string, status: boolean}>()
|
|
18
19
|
// ========= end:: Input/Output values ============//
|
|
19
20
|
|
|
20
21
|
public type: string;
|
|
@@ -45,6 +46,10 @@ export class MessageAttachmentComponent implements OnInit {
|
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
48
|
|
|
49
|
+
ngAfterViewInit(){
|
|
50
|
+
this.onElementRendered.emit({element: 'attachment', status: true})
|
|
51
|
+
}
|
|
52
|
+
|
|
48
53
|
returnOnAttachmentButtonClicked(event: any){
|
|
49
54
|
if ( event && event.target ) {
|
|
50
55
|
const ev = {target: event.target, message: this.message, currentTarget: this }
|
package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html
CHANGED
|
@@ -68,9 +68,7 @@
|
|
|
68
68
|
style="font-size: 30px;transform: rotate(42deg);"></ion-icon>
|
|
69
69
|
<input #fileInput type="file" (change)="onFileSelected($event)" capture="camera" id="file-input"
|
|
70
70
|
[accept]="fileUploadAccept">
|
|
71
|
-
|
|
72
71
|
</ion-button>
|
|
73
|
-
|
|
74
72
|
</div>
|
|
75
73
|
|
|
76
74
|
<!-- <ion-icon (click)="showEmojiPicker = !showEmojiPicker" color="secondary" name="happy" style="zoom:2;"></ion-icon> -->
|
package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts
CHANGED
|
@@ -52,11 +52,11 @@ export class MessageTextAreaComponent implements OnInit, AfterViewInit, OnChange
|
|
|
52
52
|
@Input() isOpenInfoConversation: boolean;
|
|
53
53
|
@Input() translationMap: Map<string, string>;
|
|
54
54
|
@Input() dropEvent: any;
|
|
55
|
+
@Input() disableTextarea: boolean;
|
|
55
56
|
@Output() eventChangeTextArea = new EventEmitter<object>();
|
|
56
57
|
@Output() hasClickedOpenCannedResponses = new EventEmitter<boolean>();
|
|
57
58
|
@Output() eventSendMessage = new EventEmitter<object>();
|
|
58
59
|
@Output() onPresentModalScrollToBottom = new EventEmitter<boolean>();
|
|
59
|
-
@Input() disableTextarea: boolean;
|
|
60
60
|
|
|
61
61
|
public conversationEnabled = false;
|
|
62
62
|
public messageString: string;
|
|
@@ -118,6 +118,7 @@
|
|
|
118
118
|
</ion-grid>
|
|
119
119
|
|
|
120
120
|
|
|
121
|
+
|
|
121
122
|
<ion-conversation-detail *ngIf="isHovering === false" #conversationContentDetail
|
|
122
123
|
[channelType]="channelType"
|
|
123
124
|
[messages]="messages"
|
|
@@ -126,12 +127,12 @@
|
|
|
126
127
|
[areVisibleCAR]="areVisibleCAR"
|
|
127
128
|
[supportMode]= "supportMode"
|
|
128
129
|
[stylesMap]="styleMap"
|
|
129
|
-
(onBeforeMessageRender)="
|
|
130
|
-
(onAfterMessageRender)="
|
|
131
|
-
(onAttachmentButtonClicked)="
|
|
130
|
+
(onBeforeMessageRender)="onBeforeMessageRenderFN($event)"
|
|
131
|
+
(onAfterMessageRender)="onAfterMessageRenderFN($event)"
|
|
132
|
+
(onAttachmentButtonClicked)="onAttachmentButtonClickedFN($event)"
|
|
132
133
|
(onScrollContent)="returnOnScrollContent($event)"
|
|
133
134
|
(onMenuOptionShow)="returnOnMenuOption($event)"
|
|
134
|
-
(
|
|
135
|
+
(onElementRendered)="onElementRenderedFN($event)"
|
|
135
136
|
(onAddUploadingBubble)="addUploadingBubbleEvent($event)">
|
|
136
137
|
</ion-conversation-detail>
|
|
137
138
|
|
|
@@ -149,12 +150,27 @@
|
|
|
149
150
|
<!-- ----------------------------------------------------------- -->
|
|
150
151
|
<!-- Canned responses -->
|
|
151
152
|
<!-- ----------------------------------------------------------- -->
|
|
153
|
+
<!-- <app-canned-response *ngIf="!HIDE_CANNED_RESPONSES"
|
|
154
|
+
[conversationWith]="conversationWith"
|
|
155
|
+
[conversationWithFullname]="conversationWithFullname"
|
|
156
|
+
[currentString]="messageStr"
|
|
157
|
+
[translationMap]="translationMap">
|
|
158
|
+
</app-canned-response> -->
|
|
159
|
+
|
|
160
|
+
|
|
152
161
|
<div id="canned">
|
|
153
162
|
<ion-list class="canned-list" *ngIf="tagsCannedFilter.length > 0 && HIDE_CANNED_RESPONSES === false">
|
|
154
163
|
<ion-item button="true" [ngClass]="{'is_active_item': i == arrowkeyLocation}" lines="none"
|
|
155
|
-
class="canned-item" id="{{'canned-item_'+ i }}"
|
|
156
|
-
*ngFor="let canned of tagsCannedFilter; let i = index;"
|
|
164
|
+
class="canned-item no-ripple" id="{{'canned-item_'+ i }}"
|
|
165
|
+
*ngFor="let canned of tagsCannedFilter; let i = index;"
|
|
157
166
|
(click)="replaceTagInMessage(canned, $event)">
|
|
167
|
+
<div class="cannedContent">
|
|
168
|
+
<ion-input [(ngModel)]="canned.title" class="title" id="{{'titleCanned_'+canned._id}}" [disabled]="canned.disabled"></ion-input>
|
|
169
|
+
<ion-input [(ngModel)]="canned.text" class="text" [disabled]="canned.disabled"></ion-input>
|
|
170
|
+
</div>
|
|
171
|
+
<ion-icon class="canned-item-icon" name="checkmark-sharp" slot=end *ngIf="canned.createdBy === loggedUser.uid && !canned.disabled" (click)="onConfirmEditCanned(canned, $event)"></ion-icon>
|
|
172
|
+
<ion-icon class="canned-item-icon" name="pencil-sharp" slot=end *ngIf="canned.createdBy === loggedUser.uid && canned.disabled" (click)="onEditCanned(canned, $event)"></ion-icon>
|
|
173
|
+
<ion-icon class="canned-item-icon" name="trash-bin-outline" slot=end *ngIf="canned.createdBy === loggedUser.uid" (click)="onDeleteCanned(canned, $event)"></ion-icon>
|
|
158
174
|
</ion-item>
|
|
159
175
|
<ion-item class="canned-item add-canned-response-wpr" button="true" lines="none" (click)="presentCreateCannedResponseModal()">
|
|
160
176
|
<ion-icon class="add-canned-response-icon" name="flash-outline"></ion-icon>
|