@chat21/chat21-ionic 3.0.78-rc.3 → 3.0.78-rc.4
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 +7 -0
- package/package.json +1 -1
- package/src/app/app.component.scss +1 -0
- package/src/app/app.component.ts +2 -7
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +5 -8
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +38 -37
- package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.html +5 -1
- package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.scss +22 -15
- package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.ts +25 -5
- package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.html +2 -1
- package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.scss +14 -15
- package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.ts +24 -5
- package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.html +6 -1
- package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.scss +12 -13
- package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.ts +26 -5
- package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.html +16 -6
- package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.ts +2 -0
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +16 -18
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +3 -3
- package/src/app/components/canned-response/canned-response.component.html +4 -4
- package/src/app/components/canned-response/canned-response.component.scss +1 -1
- package/src/app/components/canned-response/canned-response.component.ts +1 -0
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +2 -2
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +5 -2
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +1 -1
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +4 -4
- package/src/app/components/ddp-header/ddp-header.component.scss +1 -1
- package/src/app/components/project-item/project-item.component.ts +2 -1
- package/src/app/components/utils/user-presence/user-presence.component.html +1 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.html +10 -4
- package/src/app/pages/conversation-detail/conversation-detail.page.scss +1 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +8 -1
- package/src/app/pages/conversations-list/conversations-list.page.ts +1 -17
- package/src/app/pages/loader-preview/loader-preview.page.html +1 -1
- package/src/app/pages/loader-preview/loader-preview.page.scss +4 -0
- package/src/global.scss +47 -43
- package/src/variables.scss +12 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# chat21-ionic ver 3.0
|
|
2
2
|
|
|
3
|
+
### 3.0.78-rc.4
|
|
4
|
+
- bug-fixed: unassigned request not sound the if is the first at all
|
|
5
|
+
- bug-fixed: translations missed
|
|
6
|
+
- bug-fixed: direct info not showed in conversation-header component
|
|
7
|
+
- removed: conversation-footer border top
|
|
8
|
+
- changed: colors to message-text-area icons and message-attachment components
|
|
9
|
+
|
|
3
10
|
### 3.0.78-rc.3
|
|
4
11
|
- changed: user-typing location moved from conversation-header to conversation-detail component
|
|
5
12
|
- changed: replace includes with startsWith for check what type of conversation is in project info conversation-list component
|
package/package.json
CHANGED
package/src/app/app.component.ts
CHANGED
|
@@ -102,7 +102,6 @@ export class AppComponent implements OnInit {
|
|
|
102
102
|
public missingConnectionToast: any
|
|
103
103
|
public executedInitializeAppByWatchConnection: boolean = false;
|
|
104
104
|
private isInitialized: boolean = false;
|
|
105
|
-
private hasToSoundUnservedRequestCount: boolean = false;
|
|
106
105
|
private version: string;
|
|
107
106
|
IS_ONLINE: boolean;
|
|
108
107
|
IS_ON_MOBILE_DEVICE: boolean;
|
|
@@ -1125,7 +1124,6 @@ export class AppComponent implements OnInit {
|
|
|
1125
1124
|
if (hasClickedLogout === true) {
|
|
1126
1125
|
this.appStorageService.removeItem('conversations')
|
|
1127
1126
|
this.isInitialized = false;
|
|
1128
|
-
this.hasToSoundUnservedRequestCount = false;
|
|
1129
1127
|
// ----------------------------------------------
|
|
1130
1128
|
// PUSH NOTIFICATIONS
|
|
1131
1129
|
// ----------------------------------------------
|
|
@@ -1150,12 +1148,9 @@ export class AppComponent implements OnInit {
|
|
|
1150
1148
|
|
|
1151
1149
|
subscribeUnservedRequestCount = (unservedRequestCount) => {
|
|
1152
1150
|
if(unservedRequestCount && unservedRequestCount > 0){
|
|
1153
|
-
this.logger.debug("
|
|
1154
|
-
if(this.
|
|
1151
|
+
this.logger.debug("appIsInitialized::::",this.isInitialized)
|
|
1152
|
+
if(this.isInitialized){
|
|
1155
1153
|
this.manageTabNotification(unservedRequestCount) //sound and alternate title
|
|
1156
|
-
} else {
|
|
1157
|
-
//not sound the first time
|
|
1158
|
-
this.hasToSoundUnservedRequestCount = true
|
|
1159
1154
|
}
|
|
1160
1155
|
}
|
|
1161
1156
|
}
|
|
@@ -120,8 +120,6 @@
|
|
|
120
120
|
class="message_sender_fullname">
|
|
121
121
|
{{message.sender_fullname}}
|
|
122
122
|
</div>
|
|
123
|
-
|
|
124
|
-
|
|
125
123
|
<div role="messaggio" *ngIf="messageType(MESSAGE_TYPE_OTHERS, message)" class="msg_container base_receive">
|
|
126
124
|
|
|
127
125
|
<!-- <chat-avatar-image class="slide-in-left"
|
|
@@ -164,12 +162,11 @@
|
|
|
164
162
|
|
|
165
163
|
<!-- uploadProgress -> {{ uploadProgress }} -->
|
|
166
164
|
<div *ngIf="uploadProgress !== 100" class="msg_container base_sent" style="margin-right: 20px;">
|
|
167
|
-
<div class="
|
|
168
|
-
<div class="
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
</div>
|
|
165
|
+
<div class="chat21-spinner active" id="chat21-spinner" style="margin: 0px 6px 0px;">
|
|
166
|
+
<div class="chat21-bounce1" [ngStyle]="{'background-color': stylesMap.get('themeColor')}"></div>
|
|
167
|
+
<div class="chat21-bounce2" [ngStyle]="{'background-color': stylesMap.get('themeColor'), 'opacity': 0.4}"></div>
|
|
168
|
+
<div class="chat21-bounce3" [ngStyle]="{'background-color': stylesMap.get('themeColor'), 'opacity': 0.6}"></div>
|
|
169
|
+
<!-- <span [ngStyle]="{'color': stylesMap.get('themeColor')}">{{translationMap.get('LABEL_LOADING')}}</span> -->
|
|
173
170
|
</div>
|
|
174
171
|
</div>
|
|
175
172
|
|
|
@@ -65,10 +65,11 @@
|
|
|
65
65
|
|
|
66
66
|
ion-button {
|
|
67
67
|
text-transform: unset;
|
|
68
|
+
color: var(--basic-blue);
|
|
68
69
|
&:hover {
|
|
69
70
|
--background-hover: transparent;
|
|
70
71
|
text-decoration: underline;
|
|
71
|
-
text-decoration-color: var(--
|
|
72
|
+
text-decoration-color: var(--basic-blue);
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
|
|
@@ -105,7 +106,7 @@ ion-item {
|
|
|
105
106
|
|
|
106
107
|
.message_sender_fullname {
|
|
107
108
|
font-size: 0.9em;
|
|
108
|
-
margin: 0 0 1px
|
|
109
|
+
margin: 0 0 1px 20px;
|
|
109
110
|
// color: var(--gray);
|
|
110
111
|
font-weight: 500;
|
|
111
112
|
color: #080f1a;
|
|
@@ -179,7 +180,7 @@ ion-item {
|
|
|
179
180
|
/** recive message **/
|
|
180
181
|
.base_receive {
|
|
181
182
|
// padding: 0px 0px 6px 0px;
|
|
182
|
-
padding: 0px 0px 15px
|
|
183
|
+
padding: 0px 0px 15px 10px; // edited to display the date at the bottom of the "message bubble"
|
|
183
184
|
/* avatar */
|
|
184
185
|
.content-avatar {
|
|
185
186
|
position: relative;
|
|
@@ -240,57 +241,57 @@ ion-item {
|
|
|
240
241
|
margin-bottom: 20px;
|
|
241
242
|
}
|
|
242
243
|
|
|
243
|
-
|
|
244
|
-
.
|
|
245
|
-
|
|
246
|
-
|
|
244
|
+
/* LOADING */
|
|
245
|
+
/*http://tobiasahlin.com/spinkit/*/
|
|
246
|
+
#chat21-spinner {
|
|
247
|
+
display: none;
|
|
248
|
+
width: 70px;
|
|
247
249
|
min-height: 20px;
|
|
248
|
-
|
|
250
|
+
margin: 20px auto 0;
|
|
249
251
|
text-align: center;
|
|
250
252
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
253
|
+
#chat21-spinner.active {
|
|
254
|
+
display: block;
|
|
255
|
+
}
|
|
256
|
+
#chat21-spinner > div {
|
|
257
|
+
width: 12px;
|
|
258
|
+
height: 12px;
|
|
259
|
+
background-color: var(--bubble-blue);
|
|
257
260
|
border-radius: 100%;
|
|
258
261
|
display: inline-block;
|
|
259
262
|
-webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
|
|
260
263
|
animation: sk-bouncedelay 1.4s infinite ease-in-out both;
|
|
261
264
|
}
|
|
262
|
-
|
|
263
|
-
.spinner .bounce1 {
|
|
265
|
+
#chat21-spinner .chat21-bounce1 {
|
|
264
266
|
-webkit-animation-delay: -0.32s;
|
|
265
267
|
animation-delay: -0.32s;
|
|
266
268
|
}
|
|
267
|
-
|
|
268
|
-
.spinner .bounce2 {
|
|
269
|
+
#chat21-spinner .chat21-bounce2 {
|
|
269
270
|
-webkit-animation-delay: -0.16s;
|
|
270
271
|
animation-delay: -0.16s;
|
|
271
272
|
}
|
|
272
|
-
|
|
273
|
+
#chat21-spinner span {
|
|
274
|
+
display: block;
|
|
275
|
+
margin: 0.5em 0 0 0;
|
|
276
|
+
color: var(--col-msg-sent);
|
|
277
|
+
/* text-transform: uppercase; */
|
|
278
|
+
font-family: 'Roboto', sans-serif;
|
|
279
|
+
-webkit-animation: pulse 2000ms linear infinite;
|
|
280
|
+
-moz-animation: pulse 2000ms linear infinite;
|
|
281
|
+
animation: pulse 2000ms linear infinite;
|
|
282
|
+
text-align: center;
|
|
283
|
+
}
|
|
273
284
|
@-webkit-keyframes sk-bouncedelay {
|
|
274
|
-
0%,
|
|
275
|
-
|
|
276
|
-
100% {
|
|
277
|
-
-webkit-transform: scale(0);
|
|
278
|
-
}
|
|
279
|
-
40% {
|
|
280
|
-
-webkit-transform: scale(1);
|
|
281
|
-
}
|
|
285
|
+
0%, 80%, 100% { -webkit-transform: scale(0) }
|
|
286
|
+
40% { -webkit-transform: scale(1.0) }
|
|
282
287
|
}
|
|
283
|
-
|
|
284
288
|
@keyframes sk-bouncedelay {
|
|
285
|
-
0%,
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
40% {
|
|
292
|
-
-webkit-transform: scale(1);
|
|
293
|
-
transform: scale(1);
|
|
289
|
+
0%, 80%, 100% {
|
|
290
|
+
-webkit-transform: scale(0);
|
|
291
|
+
transform: scale(0);
|
|
292
|
+
} 40% {
|
|
293
|
+
-webkit-transform: scale(1.0);
|
|
294
|
+
transform: scale(1.0);
|
|
294
295
|
}
|
|
295
296
|
}
|
|
296
297
|
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
<div #actionButton id="actionButton" class="button-in-msg action"
|
|
1
|
+
<div #actionButton id="actionButton" class="button-in-msg action"
|
|
2
|
+
title="{{button?.value}}"
|
|
3
|
+
(click)="actionButtonAction()"
|
|
4
|
+
(mouseover)="onMouseOver($event)"
|
|
5
|
+
(mouseout)="onMouseOut($event)">
|
|
2
6
|
{{button.value}}
|
|
3
7
|
</div>
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
// @import '../../../../../sass/variables';
|
|
2
2
|
|
|
3
3
|
div {
|
|
4
|
-
--
|
|
5
|
-
--
|
|
6
|
-
--
|
|
7
|
-
--
|
|
8
|
-
--
|
|
9
|
-
--blue: rgb(42, 106, 193);
|
|
4
|
+
--backgroundColor: --basic-blue;
|
|
5
|
+
--textColor: --bck-msg-sent;
|
|
6
|
+
--hoverBackgroundColor: --bck-msg-sent;
|
|
7
|
+
--hoverTextColor: --basic-blue;
|
|
8
|
+
--buttonFontSize: --button-in-msg-font-size;
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
.button-in-msg {
|
|
@@ -15,32 +14,32 @@ div {
|
|
|
15
14
|
max-width: 300px;
|
|
16
15
|
min-width: inherit;
|
|
17
16
|
cursor: pointer;
|
|
18
|
-
border: 1px solid var(--
|
|
17
|
+
border: 1px solid var(--textColor);
|
|
19
18
|
border-radius: 20px;
|
|
20
19
|
margin: 3px;
|
|
21
|
-
background:
|
|
20
|
+
background: var(--backgroundColor);
|
|
22
21
|
overflow: hidden;
|
|
23
22
|
font-family: 'Muli', sans-serif;
|
|
24
|
-
font-size:
|
|
23
|
+
font-size: var(--buttonFontSize);
|
|
25
24
|
-o-text-overflow: ellipsis;
|
|
26
25
|
text-overflow: ellipsis;
|
|
27
26
|
white-space: nowrap;
|
|
28
27
|
letter-spacing: -0.24px;
|
|
29
28
|
-webkit-font-smoothing: antialiased;
|
|
30
|
-
color: var(--
|
|
29
|
+
color: var(--textColor);
|
|
31
30
|
line-height: 16px;
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
.action {
|
|
35
|
-
background:
|
|
34
|
+
background: var(--backgroundColor);
|
|
36
35
|
transition: background-color .6s ease;
|
|
37
36
|
&:focus,
|
|
38
37
|
&:hover {
|
|
39
|
-
color:
|
|
40
|
-
background: var(--
|
|
38
|
+
color: var(--hoverTextColor);
|
|
39
|
+
background: var(--hoverBackgroundColor);
|
|
41
40
|
.icon-button-action {
|
|
42
41
|
svg {
|
|
43
|
-
fill:
|
|
42
|
+
fill: var(--hoverTextColor);
|
|
44
43
|
}
|
|
45
44
|
}
|
|
46
45
|
}
|
|
@@ -80,4 +79,12 @@ div {
|
|
|
80
79
|
// height: 200px;
|
|
81
80
|
// }
|
|
82
81
|
// }
|
|
83
|
-
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
.disabled {
|
|
86
|
+
// border: 1px solid #999999;
|
|
87
|
+
// background-color: #cccccc;
|
|
88
|
+
// color: #666666;
|
|
89
|
+
pointer-events: none;
|
|
90
|
+
}
|
package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
|
1
|
+
import { Component, ElementRef, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
@Component({
|
|
4
4
|
selector: 'chat-action-button-attachment',
|
|
@@ -8,16 +8,36 @@ import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@ang
|
|
|
8
8
|
export class ActionButtonComponent implements OnInit {
|
|
9
9
|
|
|
10
10
|
@Input() button: any;
|
|
11
|
-
@Input()
|
|
12
|
-
@Input()
|
|
11
|
+
@Input() fontSize: string;
|
|
12
|
+
@Input() backgroundColor: string;
|
|
13
|
+
@Input() textColor: string;
|
|
14
|
+
@Input() hoverBackgroundColor: string;
|
|
15
|
+
@Input() hoverTextColor: string;
|
|
13
16
|
@Output() onButtonClicked = new EventEmitter();
|
|
17
|
+
|
|
14
18
|
public type: string = "action"
|
|
15
19
|
constructor(private elementRef: ElementRef) { }
|
|
16
20
|
|
|
17
21
|
ngOnInit() {
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
ngOnChanges(changes: SimpleChanges){
|
|
18
25
|
//decomment if element should have same color of themeColor and fregroundColor
|
|
19
|
-
|
|
20
|
-
|
|
26
|
+
if(this.fontSize) this.elementRef.nativeElement.querySelector('.action').style.setProperty('--buttonFontSize', this.fontSize);
|
|
27
|
+
if(this.backgroundColor) this.elementRef.nativeElement.querySelector('.action').style.setProperty('--backgroundColor', this.backgroundColor);
|
|
28
|
+
if(this.textColor) this.elementRef.nativeElement.querySelector('.action').style.setProperty('--textColor', this.textColor);
|
|
29
|
+
if(this.hoverBackgroundColor) this.elementRef.nativeElement.querySelector('.action').style.setProperty('--hoverBackgroundColor', this.hoverBackgroundColor);
|
|
30
|
+
if(this.hoverTextColor) this.elementRef.nativeElement.querySelector('.action').style.setProperty('--hoverTextColor', this.hoverTextColor);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
onMouseOver(event){
|
|
34
|
+
// if(this.themeColor) this.elementRef.nativeElement.querySelector('.action').style.background = this.themeColor
|
|
35
|
+
// if(this.foregroundColor) this.elementRef.nativeElement.querySelector('.action').style.color = this.foregroundColor
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
onMouseOut(event){
|
|
39
|
+
// this.elementRef.nativeElement.querySelector('.action').style.color = '';
|
|
40
|
+
// this.elementRef.nativeElement.querySelector('.action').style.background = ''
|
|
21
41
|
}
|
|
22
42
|
|
|
23
43
|
actionButtonAction(){
|
package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.html
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
<div class="button-in-msg url" (click)="actionButtonUrl()" title="{{button?.value}}"
|
|
1
|
+
<div class="button-in-msg url" (click)="actionButtonUrl()" title="{{button?.value}}"
|
|
2
|
+
(mouseover)="onMouseOver($event)" (mouseout)="onMouseOut($event)">
|
|
2
3
|
<span *ngIf="button?.target !== 'self'" class="icon-button-action">
|
|
3
4
|
<!-- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="12px" height="12px">
|
|
4
5
|
<path d="M0 0h24v24H0z" fill="none"/>
|
package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.scss
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
// @import '../../../../../sass/variables';
|
|
2
2
|
|
|
3
3
|
div {
|
|
4
|
-
--
|
|
5
|
-
--
|
|
6
|
-
--
|
|
7
|
-
--
|
|
8
|
-
--
|
|
9
|
-
--blue: rgb(42, 106, 193);
|
|
4
|
+
--backgroundColor: --basic-blue;
|
|
5
|
+
--textColor: --bck-msg-sent;
|
|
6
|
+
--hoverBackgroundColor: --bck-msg-sent;
|
|
7
|
+
--hoverTextColor: --basic-blue;
|
|
8
|
+
--buttonFontSize: --button-in-msg-font-size;
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
.button-in-msg {
|
|
@@ -15,19 +14,19 @@ div {
|
|
|
15
14
|
max-width: 300px;
|
|
16
15
|
min-width: inherit;
|
|
17
16
|
cursor: pointer;
|
|
18
|
-
border: 1px solid var(--
|
|
17
|
+
border: 1px solid var(--textColor);
|
|
19
18
|
border-radius: 20px;
|
|
20
19
|
margin: 3px;
|
|
21
|
-
background:
|
|
20
|
+
background: var(--backgroundColor);
|
|
22
21
|
overflow: hidden;
|
|
23
22
|
font-family: 'Muli', sans-serif;
|
|
24
|
-
font-size:
|
|
23
|
+
font-size: var(--buttonFontSize);
|
|
25
24
|
-o-text-overflow: ellipsis;
|
|
26
25
|
text-overflow: ellipsis;
|
|
27
26
|
white-space: nowrap;
|
|
28
27
|
letter-spacing: -0.24px;
|
|
29
28
|
-webkit-font-smoothing: antialiased;
|
|
30
|
-
color: var(--
|
|
29
|
+
color: var(--textColor);
|
|
31
30
|
line-height: 16px;
|
|
32
31
|
}
|
|
33
32
|
|
|
@@ -38,23 +37,23 @@ div {
|
|
|
38
37
|
top: -1px;
|
|
39
38
|
right: 1px;
|
|
40
39
|
svg {
|
|
41
|
-
fill: var(--
|
|
40
|
+
fill: var(--textColor);
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
43
|
.icon-button-action-self{
|
|
45
44
|
position: absolute;
|
|
46
45
|
right: 1px;
|
|
47
46
|
svg {
|
|
48
|
-
fill: var(--
|
|
47
|
+
fill: var(--textColor);
|
|
49
48
|
}
|
|
50
49
|
}
|
|
51
50
|
&:focus,
|
|
52
51
|
&:hover {
|
|
53
|
-
color:
|
|
54
|
-
background: var(--
|
|
52
|
+
color: var(--hoverTextColor);
|
|
53
|
+
background: var(--hoverBackgroundColor);
|
|
55
54
|
.icon-button-action, .icon-button-action-self {
|
|
56
55
|
svg {
|
|
57
|
-
fill:
|
|
56
|
+
fill: var(--hoverTextColor);
|
|
58
57
|
}
|
|
59
58
|
}
|
|
60
59
|
}
|
package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
|
1
|
+
import { Component, ElementRef, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
@Component({
|
|
4
4
|
selector: 'chat-link-button-attachment',
|
|
@@ -8,16 +8,35 @@ import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@ang
|
|
|
8
8
|
export class LinkButtonComponent implements OnInit {
|
|
9
9
|
|
|
10
10
|
@Input() button: any;
|
|
11
|
-
@Input()
|
|
12
|
-
@Input()
|
|
11
|
+
@Input() fontSize: string;
|
|
12
|
+
@Input() backgroundColor: string;
|
|
13
|
+
@Input() textColor: string;
|
|
14
|
+
@Input() hoverBackgroundColor: string;
|
|
15
|
+
@Input() hoverTextColor: string;
|
|
13
16
|
@Output() onButtonClicked = new EventEmitter();
|
|
14
17
|
public type: string = "url"
|
|
15
18
|
constructor(private elementRef: ElementRef) { }
|
|
16
19
|
|
|
17
20
|
ngOnInit() {
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
ngOnChanges(changes: SimpleChanges){
|
|
18
24
|
//decomment if element should have same color of themeColor and fregroundColor
|
|
19
|
-
|
|
20
|
-
|
|
25
|
+
if(this.fontSize) this.elementRef.nativeElement.querySelector('.url').style.setProperty('--buttonFontSize', this.fontSize);
|
|
26
|
+
if(this.backgroundColor) this.elementRef.nativeElement.querySelector('.url').style.setProperty('--backgroundColor', this.backgroundColor);
|
|
27
|
+
if(this.textColor) this.elementRef.nativeElement.querySelector('.url').style.setProperty('--textColor', this.textColor);
|
|
28
|
+
if(this.hoverBackgroundColor) this.elementRef.nativeElement.querySelector('.url').style.setProperty('--hoverBackgroundColor', this.hoverBackgroundColor);
|
|
29
|
+
if(this.hoverTextColor) this.elementRef.nativeElement.querySelector('.url').style.setProperty('--hoverTextColor', this.hoverTextColor);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
onMouseOver(event){
|
|
33
|
+
// if(this.themeColor) this.elementRef.nativeElement.querySelector('.url').style.background = this.themeColor
|
|
34
|
+
// if(this.foregroundColor) this.elementRef.nativeElement.querySelector('.url').style.color = this.foregroundColor
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
onMouseOut(event){
|
|
38
|
+
// this.elementRef.nativeElement.querySelector('.url').style.color = '';
|
|
39
|
+
// this.elementRef.nativeElement.querySelector('.url').style.background = ''
|
|
21
40
|
}
|
|
22
41
|
|
|
23
42
|
actionButtonUrl(){
|
package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.html
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
<div class="button-in-msg text"
|
|
1
|
+
<div class="button-in-msg text"
|
|
2
|
+
[ngClass]="{'disabled': isConversationArchived}"
|
|
3
|
+
title="{{button?.value}}"
|
|
4
|
+
(click)="actionButtonText()"
|
|
5
|
+
(mouseover)="onMouseOver($event)"
|
|
6
|
+
(mouseout)="onMouseOut($event)">
|
|
2
7
|
{{button?.value}}
|
|
3
8
|
</div>
|
package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.scss
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
// @import '../../../../../sass/variables';
|
|
2
2
|
div {
|
|
3
|
-
--
|
|
4
|
-
--
|
|
5
|
-
--
|
|
6
|
-
--
|
|
7
|
-
--
|
|
8
|
-
--blue: rgb(42, 106, 193);
|
|
3
|
+
--backgroundColor: --basic-blue;
|
|
4
|
+
--textColor: --bck-msg-sent;
|
|
5
|
+
--hoverBackgroundColor: --bck-msg-sent;
|
|
6
|
+
--hoverTextColor: --basic-blue;
|
|
7
|
+
--buttonFontSize: --button-in-msg-font-size;
|
|
9
8
|
}
|
|
10
9
|
|
|
11
10
|
|
|
@@ -15,19 +14,19 @@ div {
|
|
|
15
14
|
max-width: 300px;
|
|
16
15
|
min-width: inherit;
|
|
17
16
|
cursor: pointer;
|
|
18
|
-
border: 1px solid var(--
|
|
17
|
+
border: 1px solid var(--textColor); //$blue
|
|
19
18
|
border-radius: 20px;
|
|
20
19
|
margin: 3px;
|
|
21
|
-
background:
|
|
20
|
+
background: var(--backgroundColor);
|
|
22
21
|
overflow: hidden;
|
|
23
22
|
font-family: 'Muli', sans-serif;
|
|
24
|
-
font-size:
|
|
23
|
+
font-size: var(--buttonFontSize);
|
|
25
24
|
-o-text-overflow: ellipsis;
|
|
26
25
|
text-overflow: ellipsis;
|
|
27
26
|
white-space: nowrap;
|
|
28
27
|
letter-spacing: -0.24px;
|
|
29
28
|
-webkit-font-smoothing: antialiased;
|
|
30
|
-
color: var(--
|
|
29
|
+
color: var(--textColor); //$blue
|
|
31
30
|
line-height: 16px;
|
|
32
31
|
}
|
|
33
32
|
|
|
@@ -36,11 +35,11 @@ div {
|
|
|
36
35
|
transition: background-color .6s ease;
|
|
37
36
|
&:focus,
|
|
38
37
|
&:hover {
|
|
39
|
-
color:
|
|
40
|
-
background: var(--
|
|
38
|
+
color: var(--hoverTextColor);
|
|
39
|
+
background: var(--hoverBackgroundColor);
|
|
41
40
|
.icon-button-action {
|
|
42
41
|
svg {
|
|
43
|
-
fill:
|
|
42
|
+
fill: --black;
|
|
44
43
|
}
|
|
45
44
|
}
|
|
46
45
|
}
|
package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
|
1
|
+
import { Component, ElementRef, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
@Component({
|
|
@@ -9,16 +9,37 @@ import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@ang
|
|
|
9
9
|
export class TextButtonComponent implements OnInit {
|
|
10
10
|
|
|
11
11
|
@Input() button: any;
|
|
12
|
-
@Input()
|
|
13
|
-
@Input()
|
|
12
|
+
@Input() isConversationArchived: boolean;
|
|
13
|
+
@Input() fontSize: string;
|
|
14
|
+
@Input() backgroundColor: string;
|
|
15
|
+
@Input() textColor: string;
|
|
16
|
+
@Input() hoverBackgroundColor: string;
|
|
17
|
+
@Input() hoverTextColor: string;
|
|
14
18
|
@Output() onButtonClicked = new EventEmitter();
|
|
19
|
+
|
|
15
20
|
public type: string = "text"
|
|
16
21
|
constructor(private elementRef: ElementRef) { }
|
|
17
22
|
|
|
18
23
|
ngOnInit() {
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
ngOnChanges(changes: SimpleChanges){
|
|
19
27
|
//decomment if element should have same color of themeColor and fregroundColor
|
|
20
|
-
|
|
21
|
-
|
|
28
|
+
if(this.fontSize) this.elementRef.nativeElement.querySelector('.text').style.setProperty('--buttonFontSize', this.fontSize);
|
|
29
|
+
if(this.backgroundColor) this.elementRef.nativeElement.querySelector('.text').style.setProperty('--backgroundColor', this.backgroundColor);
|
|
30
|
+
if(this.textColor) this.elementRef.nativeElement.querySelector('.text').style.setProperty('--textColor', this.textColor);
|
|
31
|
+
if(this.hoverBackgroundColor) this.elementRef.nativeElement.querySelector('.text').style.setProperty('--hoverBackgroundColor', this.hoverBackgroundColor);
|
|
32
|
+
if(this.hoverTextColor) this.elementRef.nativeElement.querySelector('.text').style.setProperty('--hoverTextColor', this.hoverTextColor);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
onMouseOver(event){
|
|
36
|
+
// if(this.backgroundColor) this.elementRef.nativeElement.querySelector('.text').style.background = this.textColor
|
|
37
|
+
// if(this.textColor) this.elementRef.nativeElement.querySelector('.text').style.color = this.backgroundColor
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
onMouseOut(event){
|
|
41
|
+
// this.elementRef.nativeElement.querySelector('.text').style.color = '';
|
|
42
|
+
// this.elementRef.nativeElement.querySelector('.text').style.background = ''
|
|
22
43
|
}
|
|
23
44
|
|
|
24
45
|
actionButtonText(){
|
|
@@ -4,22 +4,32 @@
|
|
|
4
4
|
|
|
5
5
|
<chat-text-button-attachment *ngIf="button.type === 'text' && isLastMessage === true" class="div-button"
|
|
6
6
|
[button]="button"
|
|
7
|
-
[
|
|
8
|
-
[
|
|
7
|
+
[isConversationArchived]="isConversationArchived"
|
|
8
|
+
[fontSize]="stylesMap.get('buttonFontSize')"
|
|
9
|
+
[backgroundColor]="stylesMap.get('buttonBackgroundColor')"
|
|
10
|
+
[textColor]="stylesMap.get('buttonTextColor')"
|
|
11
|
+
[hoverBackgroundColor]="stylesMap.get('buttonHoverBackgroundColor')"
|
|
12
|
+
[hoverTextColor]="stylesMap.get('buttonHoverTextColor')"
|
|
9
13
|
(onButtonClicked)="returnOnAttachmentButtonClicked($event)">
|
|
10
14
|
</chat-text-button-attachment>
|
|
11
15
|
|
|
12
16
|
<chat-link-button-attachment *ngIf="button.type === 'url'" class="div-button"
|
|
13
17
|
[button]="button"
|
|
14
|
-
[
|
|
15
|
-
[
|
|
18
|
+
[fontSize]="stylesMap.get('buttonFontSize')"
|
|
19
|
+
[backgroundColor]="stylesMap.get('buttonBackgroundColor')"
|
|
20
|
+
[textColor]="stylesMap.get('buttonTextColor')"
|
|
21
|
+
[hoverBackgroundColor]="stylesMap.get('buttonHoverBackgroundColor')"
|
|
22
|
+
[hoverTextColor]="stylesMap.get('buttonHoverTextColor')"
|
|
16
23
|
(onButtonClicked)="returnOnAttachmentButtonClicked($event)">
|
|
17
24
|
</chat-link-button-attachment>
|
|
18
25
|
|
|
19
26
|
<chat-action-button-attachment *ngIf="button.type === 'action' && isLastMessage === true" class="div-button"
|
|
20
27
|
[button]="button"
|
|
21
|
-
[
|
|
22
|
-
[
|
|
28
|
+
[fontSize]="stylesMap.get('buttonFontSize')"
|
|
29
|
+
[backgroundColor]="stylesMap.get('buttonBackgroundColor')"
|
|
30
|
+
[textColor]="stylesMap.get('buttonTextColor')"
|
|
31
|
+
[hoverBackgroundColor]="stylesMap.get('buttonHoverBackgroundColor')"
|
|
32
|
+
[hoverTextColor]="stylesMap.get('buttonHoverTextColor')"
|
|
23
33
|
(onButtonClicked)="returnOnAttachmentButtonClicked($event)">
|
|
24
34
|
</chat-action-button-attachment>
|
|
25
35
|
|
|
@@ -12,7 +12,9 @@ export class MessageAttachmentComponent implements OnInit {
|
|
|
12
12
|
|
|
13
13
|
// ========= begin:: Input/Output values ============//
|
|
14
14
|
@Input() message: MessageModel;
|
|
15
|
+
@Input() isConversationArchived: boolean;
|
|
15
16
|
@Input() isLastMessage: boolean;
|
|
17
|
+
@Input() fullscreenMode: boolean;
|
|
16
18
|
@Input() stylesMap: Map<string, string>;
|
|
17
19
|
@Output() onAttachmentButtonClicked = new EventEmitter<any>();
|
|
18
20
|
@Output() onElementRendered = new EventEmitter<{element: string, status: boolean}>()
|
|
@@ -144,19 +144,28 @@
|
|
|
144
144
|
<ion-note *ngIf="!conversation.archived" class="conversation_time" [ngClass]="{'is-on-mobile': isApp}">
|
|
145
145
|
{{conversation.timestamp | amTimeAgo}}
|
|
146
146
|
</ion-note>
|
|
147
|
+
<ion-note item-end *ngIf="conversation?.archived" class="conversation_time">
|
|
148
|
+
<span *ngIf="(conversation.timestamp | amDateFormat:'YYYY') === currentYear">
|
|
149
|
+
{{browserLang === 'en' ? (conversation.timestamp | amDateFormat:'MMM DD') : (conversation.timestamp| amDateFormat:'DD MMM')}}
|
|
150
|
+
<!-- {{conversation.timestamp | amDateFormat:'DD MMM'}} -->
|
|
151
|
+
</span>
|
|
152
|
+
<span *ngIf="(conversation.timestamp | amDateFormat:'YYYY') !== currentYear">
|
|
153
|
+
{{browserLang === 'en' ? (conversation.timestamp | amDateFormat:'MMM DD YYYY') : (conversation.timestamp| amDateFormat:'DD MMM YYYY') }}
|
|
154
|
+
<!-- {{conversation.timestamp | amDateFormat:'DD MMM YYYY'}} -->
|
|
155
|
+
</span>
|
|
156
|
+
</ion-note>
|
|
147
157
|
|
|
148
158
|
<ion-buttons slot="end">
|
|
149
159
|
<ion-button *ngIf="!conversation.archived" [tooltip]="archiveTooltip" [options]="tooltip_options" placement="bottom" content-type="template"
|
|
150
160
|
[ngClass]="{'hide': !isApp, 'button-on-desktop': !isApp, 'button-on-mobile': isApp }"
|
|
151
161
|
id="{{ 'close_conversation_button' + conversation.uid }}" class="close-conversation-button" ion-button clear
|
|
152
162
|
item-end (click)="closeConversation(conversation);$event.stopPropagation();" padding>
|
|
153
|
-
<ion-icon slot="icon-only" style="display:block;" id="{{ 'close_button_icon' + conversation.uid }}"
|
|
154
|
-
color="close-conversation" name="archive-outline" item-end></ion-icon>
|
|
163
|
+
<ion-icon slot="icon-only" style="display:block;" id="{{ 'close_button_icon' + conversation.uid }}" name="archive-outline" item-end></ion-icon>
|
|
155
164
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
165
|
+
<ng-template #archiveTooltip>
|
|
166
|
+
<span *ngIf="conversation?.recipient.startsWith('support-group')"> {{ translationsMap?.get('Resolve')}} </span>
|
|
167
|
+
<span *ngIf="!conversation?.recipient.startsWith('support-group')"> {{ translationsMap?.get('Archive') }} </span>
|
|
168
|
+
</ng-template>
|
|
160
169
|
</ion-button>
|
|
161
170
|
<!-- <ion-button *ngIf="conversation.archived" class="close-conversation-button" ion-button clear item-end disabled padding>
|
|
162
171
|
<!- - <ion-icon style="display:block;" id="{{ 'close_button_icon' + conversation.uid }}" color="close-conversation" name="archive-outline" item-end></ion-icon> - ->
|
|
@@ -165,18 +174,7 @@
|
|
|
165
174
|
</ion-button> -->
|
|
166
175
|
</ion-buttons>
|
|
167
176
|
|
|
168
|
-
|
|
169
|
-
<span *ngIf="(conversation.timestamp | amDateFormat:'YYYY') === currentYear" class="time-in-archived">
|
|
170
|
-
{{browserLang === 'en' ? (conversation.timestamp | amDateFormat:'MMM DD') : (conversation.timestamp| amDateFormat:'DD MMM')}}
|
|
171
|
-
|
|
172
|
-
<!-- {{conversation.timestamp | amDateFormat:'DD MMM'}} -->
|
|
173
|
-
</span>
|
|
174
|
-
<span *ngIf="(conversation.timestamp | amDateFormat:'YYYY') !== currentYear" class="time-in-archived">
|
|
175
|
-
{{browserLang === 'en' ? (conversation.timestamp | amDateFormat:'MMM DD YYYY') : (conversation.timestamp| amDateFormat:'DD MMM YYYY') }}
|
|
176
|
-
<!-- {{conversation.timestamp | amDateFormat:'DD MMM YYYY'}} -->
|
|
177
|
-
</span>
|
|
178
|
-
<!-- <i class="material-icons" item-end style="font-size: 15px;font-weight: 400;color: #666666;"> history </i> -->
|
|
179
|
-
</div>
|
|
177
|
+
|
|
180
178
|
|
|
181
179
|
<!-- && !conversation?.archived -->
|
|
182
180
|
<div item-end class="notification_point"
|
|
@@ -159,7 +159,7 @@ ion-item {
|
|
|
159
159
|
font-size: 10px;
|
|
160
160
|
--padding-start: 0px;
|
|
161
161
|
--padding-end: 0px;
|
|
162
|
-
color: rgba(153, 153, 153, 1);
|
|
162
|
+
color: var(--basic-blue);//rgba(153, 153, 153, 1);
|
|
163
163
|
background-color: transparent;
|
|
164
164
|
border-radius: 50%; // nk
|
|
165
165
|
&:hover {
|
|
@@ -172,7 +172,7 @@ ion-item {
|
|
|
172
172
|
width: 10px;
|
|
173
173
|
height: 10px;
|
|
174
174
|
border-radius: 50%;
|
|
175
|
-
background-color:
|
|
175
|
+
background-color: var(--basic-blue);
|
|
176
176
|
position: absolute;
|
|
177
177
|
right: 6px;
|
|
178
178
|
bottom: 8px;
|
|
@@ -249,7 +249,7 @@ ion-item:hover {
|
|
|
249
249
|
|
|
250
250
|
.ion-selected {
|
|
251
251
|
--background: rgba(24, 119, 242, 0.04);
|
|
252
|
-
border-right: 4px solid
|
|
252
|
+
border-right: 4px solid var(--basic-blue);
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
.time-in-archived {
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
<div class="loader" *ngIf="tagsCannedFilter.length === 0">
|
|
23
23
|
<div class="box">
|
|
24
24
|
<div class="container">
|
|
25
|
-
<span class="circle"></span>
|
|
26
|
-
<span class="circle"></span>
|
|
27
|
-
<span class="circle"></span>
|
|
28
|
-
<span class="circle"></span>
|
|
25
|
+
<span class="circle" [ngStyle]="{'background-color': stylesMap?.get('themeColor')}"></span>
|
|
26
|
+
<span class="circle" [ngStyle]="{'background-color': stylesMap?.get('themeColor')}"></span>
|
|
27
|
+
<span class="circle" [ngStyle]="{'background-color': stylesMap?.get('themeColor')}"></span>
|
|
28
|
+
<span class="circle" [ngStyle]="{'background-color': stylesMap?.get('themeColor')}"></span>
|
|
29
29
|
</div>
|
|
30
30
|
<div class="label">{{translationMap.get('LABEL_LOADING')}}</div>
|
|
31
31
|
</div>
|
|
@@ -20,6 +20,7 @@ export class CannedResponseComponent implements OnInit {
|
|
|
20
20
|
@Input() conversationWith: string;
|
|
21
21
|
@Input() conversationWithFullname: string;
|
|
22
22
|
@Input() currentString: string;
|
|
23
|
+
@Input() stylesMap: Map<string, string>;
|
|
23
24
|
@Input() translationMap: Map<string, string>;
|
|
24
25
|
@Output() onLoadedCannedResponses = new EventEmitter<[any]>();
|
|
25
26
|
@Output() onClickCanned = new EventEmitter<any>();
|
|
@@ -78,12 +78,12 @@
|
|
|
78
78
|
<span style="text-transform: capitalize; margin-left: 5px;"> {{ 'Crea ticket' | translate}} </span>
|
|
79
79
|
</ion-button> -->
|
|
80
80
|
|
|
81
|
-
<ion-button *ngIf="conversationUid?.startsWith('support-group') && conv_type !== 'archived'" ion-button fill="clear"
|
|
81
|
+
<ion-button *ngIf="conversationUid?.startsWith('support-group') && conv_type !== 'archived'" ion-button fill="clear" size="small"
|
|
82
82
|
(click)="closeConversation()" [disabled]="conv_closed === true">
|
|
83
83
|
<!-- <ion-icon slot="icon-only" name="alert-circle-outline"></ion-icon> -->
|
|
84
84
|
<ion-icon name="archive-outline"></ion-icon>
|
|
85
85
|
<!-- <ion-icon slot="icon-only" name="information-outline"></ion-icon> -->
|
|
86
|
-
<span style="text-transform: capitalize; margin-left: 5px;"> {{
|
|
86
|
+
<span style="text-transform: capitalize; margin-left: 5px;"> {{translationsMap?.get('Resolve')}} </span>
|
|
87
87
|
</ion-button>
|
|
88
88
|
|
|
89
89
|
<!-- <ion-button *ngIf="!openInfoConversation" ion-button fill="clear" (click)="onOpenCloseInfoConversation()">
|
|
@@ -5,7 +5,7 @@ ion-header {
|
|
|
5
5
|
border-color: var(--light-gray);
|
|
6
6
|
border-bottom-width: thin;
|
|
7
7
|
ion-toolbar{
|
|
8
|
-
height: --header-height;
|
|
8
|
+
height: var(--header-height);
|
|
9
9
|
.flex-container{
|
|
10
10
|
display: flex;
|
|
11
11
|
}
|
|
@@ -120,6 +120,9 @@ ion-header {
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
ion-buttons {
|
|
123
|
+
ion-icon , span{
|
|
124
|
+
color: var(--basic-blue)
|
|
125
|
+
}
|
|
123
126
|
button {
|
|
124
127
|
max-width: 30px;
|
|
125
128
|
padding: 0;
|
|
@@ -164,7 +167,7 @@ ion-header {
|
|
|
164
167
|
|
|
165
168
|
.user-presence {
|
|
166
169
|
position: absolute;
|
|
167
|
-
bottom: 0;
|
|
170
|
+
bottom: 3px; //0;
|
|
168
171
|
height: 12px;
|
|
169
172
|
left: 30px;
|
|
170
173
|
width: 100px;
|
|
@@ -72,7 +72,6 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
|
|
|
72
72
|
this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnInit) - conversationAvatar', this.conversationAvatar,)
|
|
73
73
|
this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnInit) - conv_type', this.conv_type)
|
|
74
74
|
this.listenToConversationHasBeenClosed()
|
|
75
|
-
this.initialize();
|
|
76
75
|
// this.isOniOSMobileDevice()
|
|
77
76
|
}
|
|
78
77
|
|
|
@@ -90,6 +89,7 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
|
|
|
90
89
|
this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnChanges) - conversationAvatar', this.conversationAvatar)
|
|
91
90
|
if (this.conversationAvatar) {
|
|
92
91
|
this.conversationAvatar.imageurl = this.imageRepoService.getImagePhotoUrl(this.conversationAvatar.uid)
|
|
92
|
+
this.initialize()
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
|
package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
height: auto;
|
|
5
5
|
padding: 0;
|
|
6
6
|
margin: 0;
|
|
7
|
+
|
|
8
|
+
ion-icon{
|
|
9
|
+
color: var(--basic-blue);
|
|
10
|
+
}
|
|
7
11
|
.buttons-left {
|
|
8
12
|
position: absolute;
|
|
9
13
|
left: 0;
|
|
@@ -165,10 +169,6 @@
|
|
|
165
169
|
border-radius: 50%;
|
|
166
170
|
}
|
|
167
171
|
|
|
168
|
-
.send-msg-activated {
|
|
169
|
-
color: #3880ff !important;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
172
|
.send-msg-disabled {
|
|
173
173
|
cursor: default;
|
|
174
174
|
opacity: 0.8;
|
|
@@ -312,8 +312,9 @@ export class ProjectItemComponent implements OnInit {
|
|
|
312
312
|
}
|
|
313
313
|
});
|
|
314
314
|
//not sound if unservedRequest is already chached and web-sk is closed and restart again
|
|
315
|
+
// this.logger.log('updateUnservedRequestCount::: count , unservedRequestCount ', count , this.unservedRequestCount)
|
|
315
316
|
if(count > this.unservedRequestCount ){
|
|
316
|
-
this.events.publish('unservedRequest:count',
|
|
317
|
+
this.events.publish('unservedRequest:count', count)
|
|
317
318
|
}
|
|
318
319
|
this.unservedRequestCount = count;
|
|
319
320
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
<div class="status-icon" [class.online]="online" [style.border-color]="borderColor"></div>
|
|
2
|
-
<div class="online-point" [style.color]="fontColor">{{status}}</div>
|
|
2
|
+
<!-- <div class="online-point" [style.color]="fontColor">{{status}}</div> -->
|
|
@@ -96,10 +96,15 @@
|
|
|
96
96
|
</ng-template>
|
|
97
97
|
|
|
98
98
|
<ng-template #content_messages>
|
|
99
|
-
<ion-content #ionContentChatArea appScrollbarTheme class="ionContentChatArea"
|
|
100
|
-
(
|
|
101
|
-
(
|
|
102
|
-
(
|
|
99
|
+
<ion-content #ionContentChatArea appScrollbarTheme class="ionContentChatArea"
|
|
100
|
+
(drop)="drop($event)"
|
|
101
|
+
(dragover)="allowDrop($event)"
|
|
102
|
+
(dragleave)="drag($event)"
|
|
103
|
+
[scrollEvents]="true"
|
|
104
|
+
(ionScrollStart)="logScrollStart($event)"
|
|
105
|
+
(ionScroll)="logScrolling($event)"
|
|
106
|
+
(ionScrollEnd)="logScrollEnd($event)"
|
|
107
|
+
[class.active]="showIonContent">
|
|
103
108
|
|
|
104
109
|
<!-- ----------------------------------------------------------- -->
|
|
105
110
|
<!-- DROPZONE -->
|
|
@@ -159,6 +164,7 @@
|
|
|
159
164
|
[conversationWith]="conversationWith"
|
|
160
165
|
[conversationWithFullname]="conversationWithFullname"
|
|
161
166
|
[currentString]="messageStr"
|
|
167
|
+
[stylesMap]="styleMap"
|
|
162
168
|
[translationMap]="translationsMap"
|
|
163
169
|
(onLoadedCannedResponses)="onLoadedCannedResponses($event)"
|
|
164
170
|
(onClickCanned)="replaceTagInMessage($event)"
|
|
@@ -620,6 +620,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
620
620
|
'LABEL_TO',
|
|
621
621
|
'LABEL_LAST_ACCESS',
|
|
622
622
|
'ARRAY_DAYS',
|
|
623
|
+
'Resolve',
|
|
623
624
|
]
|
|
624
625
|
|
|
625
626
|
const keysContentDetail = [
|
|
@@ -659,11 +660,17 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
659
660
|
}
|
|
660
661
|
|
|
661
662
|
private setStyleMap(){
|
|
662
|
-
this.styleMap.set('themeColor', 'var(--basic-
|
|
663
|
+
this.styleMap.set('themeColor', 'var(--basic-blue)')
|
|
663
664
|
.set('bubbleReceivedBackground','var(--bck-msg-received)')
|
|
664
665
|
.set('bubbleReceivedTextColor', 'var(--col-msg-received)')
|
|
665
666
|
.set('bubbleSentBackground', 'var(--bck-msg-sent)')
|
|
666
667
|
.set('bubbleSentTextColor', 'var(--col-msg-sent)')
|
|
668
|
+
.set('buttonFontSize','var(--button-in-msg-font-size)')
|
|
669
|
+
.set('buttonBackgroundColor', 'var(--buttonBackgroundColor)')
|
|
670
|
+
.set('buttonTextColor', 'var(--buttonTextColor)')
|
|
671
|
+
.set('buttonHoverBackgroundColor', 'var(--buttonHoverBackgroundColor)')
|
|
672
|
+
.set('buttonHoverTextColor', 'var(--buttonHoverTextColor)')
|
|
673
|
+
|
|
667
674
|
}
|
|
668
675
|
// -------------------------------------------------------------------------------------
|
|
669
676
|
// * retrieving the handler from chatManager
|
|
@@ -502,22 +502,6 @@ export class ConversationListPage implements OnInit {
|
|
|
502
502
|
this.logger.log('[CONVS-LIST-PAGE] - subscribeLoggedUserLogout uidConvSelected ',this.uidConvSelected)
|
|
503
503
|
}
|
|
504
504
|
|
|
505
|
-
// ------------------------------------------------------------------------------------
|
|
506
|
-
// @ SUBSCRIBE TO CONVERSATION CHANGED ??????????? SEEMS NOT USED ?????????????????
|
|
507
|
-
// ------------------------------------------------------------------------------------
|
|
508
|
-
conversationsChanged = (conversations: ConversationModel[]) => {
|
|
509
|
-
this.numberOpenConv = this.conversationsHandlerService.countIsNew()
|
|
510
|
-
this.logger.log('[CONVS-LIST-PAGE] - conversationsChanged - NUMB OF CONVERSATIONS: ',this.numberOpenConv)
|
|
511
|
-
// console.log('conversationsChanged »»»»»»»»» uidConvSelected', that.conversations[0], that.uidConvSelected);
|
|
512
|
-
if (this.uidConvSelected && !this.conversationSelected) {
|
|
513
|
-
const conversationSelected = this.conversations.find((item) => item.uid === this.uidConvSelected)
|
|
514
|
-
if (conversationSelected) {
|
|
515
|
-
this.conversationSelected = conversationSelected
|
|
516
|
-
this.setUidConvSelected(this.uidConvSelected)
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
|
|
521
505
|
/**
|
|
522
506
|
* ::: subscribeChangedConversationSelected :::
|
|
523
507
|
* evento richiamato quando si seleziona un utente nell'elenco degli user
|
|
@@ -654,7 +638,7 @@ export class ConversationListPage implements OnInit {
|
|
|
654
638
|
* ::: setUidConvSelected :::
|
|
655
639
|
*/
|
|
656
640
|
setUidConvSelected(uidConvSelected: string, conversationType?: string) {
|
|
657
|
-
this.logger.log('[CONVS-LIST-PAGE] setuidCOnvSelected', uidConvSelected)
|
|
641
|
+
this.logger.log('[CONVS-LIST-PAGE] setuidCOnvSelected', uidConvSelected, conversationType)
|
|
658
642
|
this.uidConvSelected = uidConvSelected
|
|
659
643
|
// this.conversationsHandlerService.uidConvSelected = uidConvSelected;
|
|
660
644
|
if (uidConvSelected) {
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
|
|
56
56
|
<!-- fab placed to the (vertical) center and end -->
|
|
57
57
|
<ion-fab vertical="end" horizontal="end" slot="fixed" class="sendButton">
|
|
58
|
-
<ion-fab-button
|
|
58
|
+
<ion-fab-button (click)="onSendMessage()">
|
|
59
59
|
<ion-icon name="send"></ion-icon>
|
|
60
60
|
</ion-fab-button>
|
|
61
61
|
</ion-fab>
|
package/src/global.scss
CHANGED
|
@@ -794,66 +794,70 @@ select:-webkit-autofill:focus {
|
|
|
794
794
|
}
|
|
795
795
|
|
|
796
796
|
// select teammate status in user detail drawer
|
|
797
|
-
.
|
|
797
|
+
.teammate-status-in-drawer {
|
|
798
|
+
|
|
799
|
+
&.ng-select {
|
|
798
800
|
|
|
799
|
-
.ng-select-container {
|
|
800
|
-
background-color: #2d323e;
|
|
801
|
-
color: #fff;
|
|
802
|
-
border: 1px solid #2d323e;
|
|
803
|
-
}
|
|
804
|
-
&.ng-select-opened{
|
|
805
801
|
.ng-select-container {
|
|
806
802
|
background-color: #2d323e;
|
|
803
|
+
color: #fff;
|
|
807
804
|
border: 1px solid #2d323e;
|
|
808
805
|
}
|
|
806
|
+
&.ng-select-opened{
|
|
807
|
+
.ng-select-container {
|
|
808
|
+
background-color: #2d323e;
|
|
809
|
+
border: 1px solid #2d323e;
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
&.ng-select-focused:not(.ng-select-opened){
|
|
814
|
+
>.ng-select-container{
|
|
815
|
+
border: 1px solid #2d323e;
|
|
816
|
+
box-shadow: unset;
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
|
|
809
821
|
}
|
|
810
822
|
|
|
811
|
-
|
|
812
|
-
|
|
823
|
+
.ng-dropdown-panel {
|
|
824
|
+
background-color: #2d323e;
|
|
825
|
+
border: 1px solid #2d323e;
|
|
826
|
+
|
|
827
|
+
&.ng-select-bottom {
|
|
813
828
|
border: 1px solid #2d323e;
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
829
|
+
margin-top: 8px;
|
|
830
|
+
border-top-right-radius: 4px;
|
|
831
|
+
border-top-left-radius: 4px;
|
|
832
|
+
}
|
|
818
833
|
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
.ng-dropdown-panel {
|
|
822
|
-
background-color: #2d323e;
|
|
823
|
-
border: 1px solid #2d323e;
|
|
824
|
-
|
|
825
|
-
&.ng-select-bottom {
|
|
826
|
-
border: 1px solid #2d323e;
|
|
827
|
-
margin-top: 8px;
|
|
828
|
-
border-top-right-radius: 4px;
|
|
829
|
-
border-top-left-radius: 4px;
|
|
830
|
-
}
|
|
831
|
-
|
|
832
|
-
.ng-dropdown-panel-items {
|
|
833
|
-
.ng-option {
|
|
834
|
-
background-color: #2d323e;
|
|
835
|
-
color: #fff;
|
|
836
|
-
|
|
837
|
-
&.ng-option-marked {
|
|
838
|
-
background-color: rgba(30, 33, 41, 0.3);
|
|
839
|
-
color: #fff;
|
|
840
|
-
}
|
|
841
|
-
|
|
842
|
-
&.ng-option-selected {
|
|
834
|
+
.ng-dropdown-panel-items {
|
|
835
|
+
.ng-option {
|
|
843
836
|
background-color: #2d323e;
|
|
844
837
|
color: #fff;
|
|
838
|
+
|
|
839
|
+
&.ng-option-marked {
|
|
840
|
+
background-color: rgba(30, 33, 41, 0.3);
|
|
841
|
+
color: #fff;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
&.ng-option-selected {
|
|
845
|
+
background-color: #2d323e;
|
|
846
|
+
color: #fff;
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
&.ng-option-marked.ng-option-selected{
|
|
850
|
+
background-color: rgba(30, 33, 41, 0.3);
|
|
851
|
+
color: #fff;
|
|
852
|
+
}
|
|
845
853
|
}
|
|
846
|
-
|
|
847
|
-
&.ng-option-marked.ng-option-selected{
|
|
848
|
-
background-color: rgba(30, 33, 41, 0.3);
|
|
849
|
-
color: #fff;
|
|
850
|
-
}
|
|
854
|
+
|
|
851
855
|
}
|
|
852
|
-
|
|
853
856
|
}
|
|
854
857
|
}
|
|
855
858
|
|
|
856
859
|
|
|
860
|
+
|
|
857
861
|
/* *** SMALL SIDEBAR STYLE *** */
|
|
858
862
|
.small-sidebar-tiledesk-nav-user {
|
|
859
863
|
height: 40px;
|
package/src/variables.scss
CHANGED
|
@@ -7,18 +7,13 @@
|
|
|
7
7
|
--basic-green: #0A7D41;
|
|
8
8
|
--dark-green: #005f3b;
|
|
9
9
|
--light-green: #8cc841;
|
|
10
|
-
|
|
11
10
|
--light-gray: #F2F2F2;
|
|
12
11
|
--basic-gray: #666666;
|
|
13
12
|
--dark-gray: #363636;
|
|
14
|
-
|
|
15
|
-
|
|
16
13
|
--light-blue: #C9E4F6;
|
|
17
14
|
--basic-blue: #2a69c1;
|
|
18
15
|
--bubble-blue: rgb(0, 153, 255);
|
|
19
|
-
|
|
20
|
-
--bubble-privateMsg: rgb(254, 214, 168);
|
|
21
|
-
--bubble-privateMsgColor: rgb(47, 57, 65);
|
|
16
|
+
|
|
22
17
|
|
|
23
18
|
--basic-yellow: #FFC627;
|
|
24
19
|
--basic-red: #EB1E23;
|
|
@@ -29,11 +24,21 @@
|
|
|
29
24
|
--bck-msg-received: #f0f2f7;
|
|
30
25
|
--col-msg-received: #06132b;
|
|
31
26
|
|
|
27
|
+
--bubble-lightyellow: rgb(255, 247, 237);
|
|
28
|
+
--bubble-privateMsg: rgb(254, 214, 168);
|
|
29
|
+
--bubble-privateMsgColor: rgb(47, 57, 65);
|
|
30
|
+
|
|
32
31
|
--light-white: #f7f7f7;
|
|
33
32
|
--black: #1a1a1a;
|
|
34
33
|
--gray: #aaaaaa;
|
|
35
34
|
|
|
36
35
|
--header-height: 60px;
|
|
37
36
|
|
|
37
|
+
--button-in-msg-font-size: 15px;
|
|
38
|
+
--buttonBackgroundColor: #ffffff;
|
|
39
|
+
--buttonTextColor: #2a6ac1;
|
|
40
|
+
--buttonHoverBackgroundColor: #2a6ac1;
|
|
41
|
+
--buttonHoverTextColor: #ffffff;
|
|
42
|
+
|
|
38
43
|
|
|
39
|
-
|
|
44
|
+
}
|