@chat21/chat21-ionic 3.0.77 → 3.0.78-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 CHANGED
@@ -1,5 +1,10 @@
1
1
  # chat21-ionic ver 3.0
2
2
 
3
+ ### 3.0.78-rc.1
4
+ - changed: conversation-list page width increased
5
+ - changed: background changed in info-message component
6
+ - changed: project-item UI
7
+ - changed: conversation-list page UI
3
8
 
4
9
  ## 3.0.77 in PROD
5
10
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@chat21/chat21-ionic",
3
3
  "author": "Tiledesk SRL",
4
- "version": "3.0.77",
4
+ "version": "3.0.78-rc.1",
5
5
  "license": "MIT License",
6
6
  "homepage": "https://tiledesk.com/",
7
7
  "repository": {
@@ -1,5 +1,5 @@
1
1
  .split-pane-md.split-pane-visible > .split-pane-side {
2
- min-width: 312px;
2
+ min-width: 360px; //312px;
3
3
  display: block; // Safari bug fix
4
4
  margin-left: 60px;
5
5
  }
@@ -6,12 +6,12 @@
6
6
 
7
7
  .base_info {
8
8
  border-radius: 14px;
9
- border: 1px solid #C9E4F6;
9
+ // border: 1px solid rgba(24, 119, 242, 0.1);
10
10
  padding-left: 4px;
11
11
  padding-right: 4px;
12
12
  padding: 6px 10px;
13
13
  display: inline-block;
14
- background: #C9E4F6;
14
+ background: rgba(24, 119, 242, 0.1);
15
15
  font-size: 0.70em;
16
16
  color: var(--basic-gray);
17
17
  margin-left: 5px; //32px;
@@ -80,42 +80,57 @@
80
80
  <div tabindex="0"></div>
81
81
 
82
82
  <!-- <div [class.selected]="conversation.uid === uidConvSelected"></div> -->
83
- <ion-avatar item-start>
84
- <!-- [style.background-color]="conversation.color" -->
85
- <div #avatarPlaceholder class="avatar-placeholder"
86
- [ngStyle]="{'background': 'linear-gradient(rgb(255,255,255) -125%,' + conversation.color + ')'}"
87
- [innerHTML]="conversation.avatar"></div>
88
- <div *ngIf="conversation.image" #avatarImage class="avatar-profile"
89
- [style.background-image]="'url(' + conversation.image + ')'"></div>
90
- <!-- <div *ngIf="getImageAvatar(conversation.sender)" #avatarImage class="avatar-profile" [style.background-image]="'url(' + getImageAvatar(conversation.sender) + ')'"></div> -->
91
- </ion-avatar>
92
- <ion-label>
93
- <div class="conversation_with truncate">{{conversation.conversation_with_fullname}}</div>
94
- <div class="conversation_message truncate-conv-msg" [ngClass]="{'truncate-on-desktop': !isApp}">
95
-
96
- <!-- -------------------------------------------------------------------------- -->
97
- <!-- if conversation type is image display the image icon before the message -->
98
- <!-- -------------------------------------------------------------------------- -->
99
- <!-- <div *ngIf="conversation.type === 'image'" class="icon-image-before-msg-wpr">
100
- <ion-icon name="image-outline" class="icon-image-before-msg"></ion-icon>
83
+ <div>
84
+ <ion-avatar item-start>
85
+ <!-- [style.background-color]="conversation.color" -->
86
+ <div #avatarPlaceholder class="avatar-placeholder"
87
+ [ngStyle]="{'background': 'linear-gradient(rgb(255,255,255) -125%,' + conversation.color + ')'}"
88
+ [innerHTML]="conversation.avatar"></div>
89
+ <div *ngIf="conversation.image" #avatarImage class="avatar-profile"
90
+ [style.background-image]="'url(' + conversation.image + ')'"></div>
91
+ <!-- <div *ngIf="getImageAvatar(conversation.sender)" #avatarImage class="avatar-profile" [style.background-image]="'url(' + getImageAvatar(conversation.sender) + ')'"></div> -->
92
+ </ion-avatar>
93
+ </div>
94
+ <div class="conv-container">
95
+ <ion-label>
96
+ <div class="conversation_project truncate">
97
+ <svg xmlns="http://www.w3.org/2000/svg" data-v-78d18411="" width="15" height="15" fill="none" viewBox="0 0 24 24" class="inbox-icon"><path d="M22.002 12C22.002 6.477 17.524 2 12 2 6.476 1.999 2 6.477 2 12.001c0 5.186 3.947 9.45 9.001 9.952V20.11c-.778-.612-1.478-1.905-1.939-3.61h1.94V15H8.737a18.969 18.969 0 0 1-.135-5h6.794c.068.64.105 1.31.105 2h1.5c0-.684-.033-1.353-.095-2h3.358c.154.64.237 1.31.237 2h1.5ZM4.786 16.5h2.722l.102.396c.317 1.17.748 2.195 1.27 3.015a8.532 8.532 0 0 1-4.094-3.41ZM3.736 10h3.358a20.847 20.847 0 0 0-.095 2c0 1.043.075 2.051.217 3H4.043a8.483 8.483 0 0 1-.544-3c0-.682.08-1.347.232-1.983L3.736 10Zm5.122-5.902.023-.008C8.16 5.222 7.611 6.748 7.298 8.5H4.25c.905-2 2.56-3.587 4.608-4.402Zm3.026-.594L12 3.5l.126.006c1.262.126 2.48 2.125 3.045 4.995H8.83c.568-2.878 1.79-4.88 3.055-4.996Zm3.343.76-.107-.174.291.121a8.533 8.533 0 0 1 4.339 4.29h-3.048c-.298-1.665-.806-3.125-1.475-4.237Z M12 19a1 1 0 0 0 1 1h3v2h-.5a.5.5 0 1 0 0 1h4a.5.5 0 0 0 0-1H19v-2h3a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1h-9a1 1 0 0 0-1 1v5Z" fill="currentColor"/></svg>
98
+ <span *ngIf="conversation?.attributes?.project_name" class="truncate">{{conversation?.attributes?.project_name}}</span>
99
+ <span *ngIf="!conversation?.attributes?.project_name" class="truncate">{{conversation?.attributes?.projectId}}</span>
101
100
  </div>
102
- <p [class.not-read]="conversation.is_new" class="truncate" [ngClass]="{'truncate-on-desktop': !isApp}"
103
- [innerHTML]="conversation.last_message_text"></p> -->
104
-
105
- <!-- <div *ngIf="conversation.type === 'image'" class="icon-image-before-msg-wpr"> -->
106
- <ion-icon *ngIf="conversation.type === 'image' && conversation.type !== 'file' " name="image-outline"
107
- class="icon-image-before-msg"></ion-icon>
108
- <ion-icon *ngIf="conversation.type === 'file' && conversation.type !== 'image'" name="attach-outline"
109
- class="icon-attach-before-msg"></ion-icon>
110
- <!-- </div> -->
111
- <!-- [innerHTML]="conversation.last_message_text" -->
112
- <span [class.not-read]="conversation.is_new">
113
- {{ conversation.last_message_text }}
114
- </span>
115
- </div>
116
- </ion-label>
101
+ <div style="display: flex;">
102
+ <span class="conversation_with truncate" [class.not-read]="conversation.is_new">
103
+ {{conversation.conversation_with_fullname}}
104
+ </span>
105
+ </div>
106
+ <div class="conversation_message truncate-conv-msg" [ngClass]="{'truncate-on-desktop': !isApp}">
107
+
108
+ <!-- -------------------------------------------------------------------------- -->
109
+ <!-- if conversation type is image display the image icon before the message -->
110
+ <!-- -------------------------------------------------------------------------- -->
111
+ <!-- <div *ngIf="conversation.type === 'image'" class="icon-image-before-msg-wpr">
112
+ <ion-icon name="image-outline" class="icon-image-before-msg"></ion-icon>
113
+ </div>
114
+ <p [class.not-read]="conversation.is_new" class="truncate" [ngClass]="{'truncate-on-desktop': !isApp}"
115
+ [innerHTML]="conversation.last_message_text"></p> -->
116
+
117
+ <!-- <div *ngIf="conversation.type === 'image'" class="icon-image-before-msg-wpr"> -->
118
+ <ion-icon *ngIf="conversation.type === 'image' && conversation.type !== 'file' " name="image-outline"
119
+ class="icon-image-before-msg"></ion-icon>
120
+ <ion-icon *ngIf="conversation.type === 'file' && conversation.type !== 'image'" name="attach-outline"
121
+ class="icon-attach-before-msg"></ion-icon>
122
+ <!-- </div> -->
123
+ <!-- [innerHTML]="conversation.last_message_text" -->
124
+ <span [class.not-read]="conversation.is_new">
125
+ {{ conversation.last_message_text }}
126
+ </span>
127
+ </div>
128
+ </ion-label>
129
+ </div>
117
130
 
118
- <ion-note *ngIf="!conversation.archived" class="conversation_time">{{conversation.timestamp | amTimeAgo}}</ion-note>
131
+ <ion-note *ngIf="!conversation.archived" class="conversation_time" [ngClass]="{'is-on-mobile': isApp}">
132
+ {{conversation.timestamp | amTimeAgo}}
133
+ </ion-note>
119
134
 
120
135
  <ion-buttons slot="end">
121
136
  <ion-button *ngIf="!conversation.archived" [tooltip]="archiveTooltip" [options]="tooltip_options" placement="bottom" content-type="template"
@@ -9,8 +9,8 @@
9
9
  }
10
10
  ion-item {
11
11
  cursor: pointer;
12
- height: 70px;
13
- --min-height: 70px;
12
+ height: 90px; //70px;
13
+ --min-height: 90px; //70px;
14
14
  position: relative;
15
15
  display: flex;
16
16
  text-decoration: none;
@@ -19,6 +19,11 @@ ion-item {
19
19
  --padding-start: 0;
20
20
  --inner-padding-end: 0;
21
21
  --background-hover: #000000 !important;
22
+ .conv-container{
23
+ width: 84%;
24
+ height: 100%;
25
+ padding: 12px 0;
26
+ }
22
27
  .selected {
23
28
  // border-radius: 10px;
24
29
  // padding-left: 8px;
@@ -33,12 +38,13 @@ ion-item {
33
38
  ion-avatar {
34
39
  position: relative;
35
40
  padding: 0;
36
- margin: 0 12px 0 8px;
37
- height: 50px;
38
- width: 50px;
39
- min-width: 50px;
40
- min-height: 50px;
41
- line-height: 50px;
41
+ margin: 20px 8px 0px 8px;//0 12px 0 8px;
42
+ height: 40px; //50px;
43
+ width: 40px; //50px;
44
+ min-width: 40px; //50px;
45
+ min-height: 40px; //50px;
46
+ line-height: 40px; //50px;
47
+ align-self: end;
42
48
  .avatar-placeholder {
43
49
  position: absolute;
44
50
  top: 0;
@@ -47,7 +53,7 @@ ion-item {
47
53
  height: 100%;
48
54
  border-radius: 50%;
49
55
  text-align: center;
50
- font-size: 20px;
56
+ font-size: 15px; //20px;
51
57
  color: #ffffff;
52
58
  font-weight: 500;
53
59
  }
@@ -70,22 +76,45 @@ ion-item {
70
76
  justify-content: center;
71
77
  min-width: 0;
72
78
  padding: 0;
79
+ margin: 0;
73
80
  font-family: Helvetica, Helvetica, Arial, sans-serif;
74
81
  line-height: 1.28;
75
82
  text-rendering: optimizeLegibility;
83
+ .conversation_project{
84
+ display: inline-flex;
85
+ align-items: center;
86
+ line-height: 1.2rem;
87
+ font-weight: 500;
88
+ color: #779bbb;
89
+ font-size: 10px;
90
+ max-width: 90%;
91
+ svg {
92
+ color:#779bbb;
93
+ }
94
+ span{
95
+ padding-left: 5px
96
+ }
97
+ }
76
98
  .conversation_with {
77
99
  color: rgba(0, 0, 0, 1);
78
100
  font-size: 15px;
79
101
  font-weight: 400;
80
102
  line-height: 1.4;
103
+ width: 70% !important;
104
+ &.not-read {
105
+ font-weight: 600;
106
+ color: #3c4858; //#1876f2;
107
+ }
81
108
  }
109
+
82
110
  .conversation_message {
83
111
  p {
84
- color: rgba(153, 153, 153, 1);
85
- font-size: 13px;
112
+ color: #6e6f73; //#3c4858;
113
+ font-size: 15px;
86
114
  font-weight: 400;
87
115
  height: 18px;
88
116
  vertical-align: middle;
117
+ align-self: center;
89
118
  &.not-read {
90
119
  font-weight: 600;
91
120
  color: #1876f2;
@@ -93,13 +122,13 @@ ion-item {
93
122
  }
94
123
 
95
124
  span {
96
- color: rgba(153, 153, 153, 1);
97
- font-size: 13px;
125
+ color: rgb(60, 72, 88);
126
+ font-size: 12px;
98
127
  font-weight: 400;
99
128
  height: 18px;
100
129
  &.not-read {
101
130
  font-weight: 600;
102
- color: #1876f2;
131
+ color: #3c4858; //#1876f2;
103
132
  }
104
133
  }
105
134
  }
@@ -107,8 +136,15 @@ ion-item {
107
136
  ion-note {
108
137
  position: absolute;
109
138
  right: 8px;
110
- top: 4px;
139
+ top: 40px;
111
140
  font-size: 10px;
141
+ display: flex;
142
+ flex-direction: column;
143
+ color: #6e6f73;
144
+
145
+ &.is-on-mobile{
146
+ top: 10px;
147
+ }
112
148
  }
113
149
  ion-buttons {
114
150
  margin: 0;
@@ -140,10 +176,10 @@ ion-item {
140
176
  }
141
177
 
142
178
  .notification_point-on-desktop {
143
- bottom: 29px !important;
179
+ bottom: 22px !important;
144
180
  }
145
181
  .notification_point-on-mobile {
146
- bottom: 29px !important;
182
+ bottom: 22px !important;
147
183
  right: 8px;
148
184
  }
149
185
  }
@@ -209,7 +245,8 @@ ion-item:hover {
209
245
  }
210
246
 
211
247
  .ion-selected {
212
- --background: rgb(231, 241, 255);
248
+ --background: rgba(24, 119, 242, 0.04);
249
+ border-right: 2px solid #1876f2;
213
250
  }
214
251
 
215
252
  .time-in-archived {
@@ -1,158 +1,127 @@
1
1
  <div class="main-content main-content-project-for-panel">
2
- <div class="container-fluid container-project-for-panel">
3
-
4
- <div class="left-sidebar">
5
-
6
- <!-- <loading-spinner *ngIf="showSpinner"></loading-spinner> -->
7
- <!-- *ngIf="!showSpinner" -->
8
- <div class="left-sidebar-project" style="margin-right: -10px;">
9
-
10
- <div class="small-projects-sidebar">
11
- <!-- <div class="pinned-project">Pinned project </div> margin-left:4px -->
12
- <div *ngIf="project?.id_project?.status !== 0" class="flex-container-project-for-panel project-row">
13
- <div class="flex-child-left" [tooltip]="conversationsInQueue" [options]="tooltipOptions" placement="top"
14
- content-type="template" (click)="openUnservedConvs()">
15
- <div class="unassigned-notifications-icon-wpr">
16
- <svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false"
17
- class="style-scope yt-icon"
18
- style="pointer-events: none; width: 37px; height:auto; fill: rgb(107,107,107);margin-top: 9px;">
19
- <g class="style-scope yt-icon">
20
- <path
21
- d="M10,20h4c0,1.1-0.9,2-2,2S10,21.1,10,20z M20,17.35V19H4v-1.65l2-1.88v-5.15c0-2.92,1.56-5.22,4-5.98V3.96 c0-1.42,1.49-2.5,2.99-1.76C13.64,2.52,14,3.23,14,3.96l0,0.39c2.44,0.75,4,3.06,4,5.98v5.15L20,17.35z M19,17.77l-2-1.88v-5.47 c0-2.47-1.19-4.36-3.13-5.1c-1.26-0.53-2.64-0.5-3.84,0.03C8.15,6.11,7,7.99,7,10.42v5.47l-2,1.88V18h14V17.77z"
22
- class="style-scope yt-icon"></path>
23
- </g>
24
- </svg>
25
- </div>
26
- <div class="unassigned-notifications-badge" *ngIf="unservedRequestCount > 0">
27
- <!-- || currentUserRequestCount > 0 -->
28
- <!-- <span *ngIf="unservedRequestCount > 0 "> -->
29
- <!-- + currentUserRequestCount -->
30
- <span class="notification-count">{{ unservedRequestCount }}</span>
31
- </div>
32
- </div>
33
2
 
34
- <ng-template #conversationsInQueue>
35
- <span *ngIf="unservedRequestCount > 1">
36
- {{ unservedRequestCount }}
37
- {{translationMap?.get('CONVERSATIONS_IN_QUEUE') }}
38
- </span>
39
- <span *ngIf="unservedRequestCount === 1">
40
- {{ unservedRequestCount }}
41
- {{translationMap?.get('CONVERSATION_IN_QUEUE') }}
42
- </span>
43
- <span *ngIf="unservedRequestCount === 0">
44
- {{translationMap?.get('NO_CONVERSATION_IN_QUEUE') }}
45
-
46
- </span>
47
- </ng-template>
48
-
49
-
50
- <div class="flex-child-right">
51
- <div class="project-name-project-for-panel" [ngClass]="{'project-name-project-for-panel-on-desktop': IS_ON_MOBILE_DEVICE === false}" [tooltip]="conversationsInQueueOnProjectName"
52
- [options]="tooltipOptions" placement="top" content-type="template" (click)="openUnservedConvs()">
53
- <div class="project---name"> {{ project?.id_project?.name }} </div>
54
- </div>
55
- <ng-template #conversationsInQueueOnProjectName>
56
- <span *ngIf="unservedRequestCount > 1">
57
- {{ unservedRequestCount }}
58
- {{translationMap?.get('CONVERSATIONS_IN_QUEUE') }}
59
- </span>
60
- <span *ngIf="unservedRequestCount === 1">
61
- {{ unservedRequestCount }}
62
- {{translationMap?.get('CONVERSATION_IN_QUEUE') }}
63
- </span>
64
- <span *ngIf="unservedRequestCount === 0">
65
- {{translationMap?.get('NO_CONVERSATION_IN_QUEUE') }}
66
- </span>
67
- </ng-template>
68
-
69
- <!-- <div class="availabily-and-busy-wpr">
70
- <div class="availabily---wpr" tooltip="{{avaialble_status_for_tooltip}}" [options]="tooltipOptions">
71
- <div class="onoffswitch"
72
- (click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)">
73
- <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox"
74
- id="switchavailableunavailablestatus" tabindex="0" [checked]="project?.ws_projct_user_available">
75
- <label class="onoffswitch-label" for="switchavailableunavailablestatus"></label>
76
- </div>
77
- </div>
78
-
79
-
80
- <!- - (click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)" - ->
81
- <span *ngIf="project?.ws_projct_user_available === true" class="availibility-status-text"
82
- [ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}">
83
- {{translationMap?.get('LABEL_AVAILABLE') }}
84
- </span>
85
- <!- - (click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)" - ->
86
- <span *ngIf="project?.ws_projct_user_available === false" class="availibility-status-text"
87
- [ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}">
88
- {{translationMap?.get('LABEL_NOT_AVAILABLE')}}
89
- </span>
90
-
91
- <div class="project-item--isBusy-icon-wpr" *ngIf="project?.ws_projct_user_isBusy === true" tooltip="{{translationMap?.get('LABEL_BUSY')}}"
92
- [options]="tooltipOptions" placement="top" >
93
- <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="16px"
94
- viewBox="0 0 24 24" width="16px" fill="#FEB92C">
95
- <g><path d="M0,0h24v24H0V0z" fill="none" /></g>
96
- <g><path d="M11.99,2C6.47,2,2,6.48,2,12s4.47,10,9.99,10C17.52,22,22,17.52,22,12S17.52,2,11.99,2z M15.29,16.71L11,12.41V7h2v4.59 l3.71,3.71L15.29,16.71z" /></g>
97
- </svg>
98
- </div>
99
- </div>
100
- </div> -->
101
-
102
- <div *ngIf="IS_ON_MOBILE_DEVICE === true" class="flex-child-view-all-convs">
103
- <div class="view-all-convs-icon-wpr" style="cursor: pointer;" [tooltip]="viewAllConvs"
104
- [options]="tooltipOptions" placement="top" content-type="template">
105
-
106
- <ion-button ion-button fill="clear" class="open-unserved-convs-btn"
107
- (click)="openUnservedConvsAndGoToProjectList()">
108
-
109
- <span class="push-icon-and-list-wpr">
110
- <!-- <svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg"
111
- xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24"
112
- style="enable-background:new 0 0 24 24;" xml:space="preserve" style="width: 20px;">
113
- <style type="text/css">
114
- .st0 {
115
- fill: #3880ff;
116
- }
117
- </style>
118
- <path class="st0"
119
- d="M22.8,15v-2c-1.7,0-3-1.3-3-3V5h1c0.5,0,1-0.5,1-1s-0.5-1-1-1h-10c-0.5,0-1,0.5-1,1s0.5,1,1,1h1v5
120
- c0,1.7-1.3,3-3,3v2h6v5c0.6,0,1.4,0,2,0v-5H22.8z M12.8,13c0.7-0.9,1-1.9,1-3V5h4v5c0,1.1,0.4,2.2,1,3H12.8z" />
121
- <rect x="1.2" y="13" class="st0" width="6.3" height="2" />
122
- <rect x="1.2" y="18" class="st0" width="12.1" height="2" />
123
- <rect x="1.2" y="7.6" class="st0" width="9.2" height="2" />
124
- </svg> -->
125
-
126
- <svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg"
127
- xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24"
128
- style="enable-background:new 0 0 24 24;" xml:space="preserve" style="width: 16px;">
129
- <style type="text/css">
130
- .st0 {
131
- fill: #165CEE;
132
- }
133
- </style>
134
- <path class="st0" d="M20.6,16.3v-2.4c-2.1,0-3.7-1.6-3.7-3.7V4h1.2c0.6,0,1.2-0.6,1.2-1.2s-0.6-1.2-1.2-1.2H5.9
135
- c-0.6,0-1.2,0.6-1.2,1.2S5.3,4,5.9,4h1.2v6.1c0,2.1-1.6,3.7-3.7,3.7v2.4h7.3v6.1c0.7,0,1.7,0,2.4,0v-6.1H20.6z M8.3,13.8
136
- c0.9-1.1,1.2-2.3,1.2-3.7V4h4.9v6.1c0,1.3,0.5,2.7,1.2,3.7H8.3z" />
137
- </svg>
138
- </span>
139
-
140
-
141
-
142
- </ion-button>
143
- </div>
144
- <ng-template #viewAllConvs>
145
- <span>
146
- {{translationMap?.get('CHANGE_PINNED_PROJECT') }}</span>
147
- </ng-template>
3
+ <!-- <div class="pinned-project">Pinned project </div> margin-left:4px -->
4
+ <div *ngIf="project?.id_project?.status !== 0" class="flex-container-project-for-panel project-row">
5
+ <div class="flex-child-left" [tooltip]="conversationsInQueue" [options]="tooltipOptions" placement="top"
6
+ content-type="template" (click)="openUnservedConvs()">
7
+ <div class="unassigned-notifications-icon-wpr">
8
+ <svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="style-scope yt-icon">
9
+ <g class="style-scope yt-icon">
10
+ <path
11
+ d="M10,20h4c0,1.1-0.9,2-2,2S10,21.1,10,20z M20,17.35V19H4v-1.65l2-1.88v-5.15c0-2.92,1.56-5.22,4-5.98V3.96 c0-1.42,1.49-2.5,2.99-1.76C13.64,2.52,14,3.23,14,3.96l0,0.39c2.44,0.75,4,3.06,4,5.98v5.15L20,17.35z M19,17.77l-2-1.88v-5.47 c0-2.47-1.19-4.36-3.13-5.1c-1.26-0.53-2.64-0.5-3.84,0.03C8.15,6.11,7,7.99,7,10.42v5.47l-2,1.88V18h14V17.77z"
12
+ class="style-scope yt-icon"></path>
13
+ </g>
14
+ </svg>
15
+ </div>
16
+ <div class="unassigned-notifications-badge" *ngIf="unservedRequestCount > 0">
17
+ <!-- || currentUserRequestCount > 0 -->
18
+ <!-- <span *ngIf="unservedRequestCount > 0 "> -->
19
+ <!-- + currentUserRequestCount -->
20
+ <span class="notification-count">{{ unservedRequestCount }}</span>
21
+ </div>
22
+ </div>
23
+
24
+ <ng-template #conversationsInQueue>
25
+ <span *ngIf="unservedRequestCount > 1">
26
+ {{ unservedRequestCount }}
27
+ {{translationMap?.get('CONVERSATIONS_IN_QUEUE') }}
28
+ </span>
29
+ <span *ngIf="unservedRequestCount === 1">
30
+ {{ unservedRequestCount }}
31
+ {{translationMap?.get('CONVERSATION_IN_QUEUE') }}
32
+ </span>
33
+ <span *ngIf="unservedRequestCount === 0">
34
+ {{translationMap?.get('NO_CONVERSATION_IN_QUEUE') }}
35
+
36
+ </span>
37
+ </ng-template>
38
+
39
+
40
+ <div class="flex-child-right">
41
+ <div class="project-name-project-for-panel" [ngClass]="{'project-name-project-for-panel-on-desktop': IS_ON_MOBILE_DEVICE === false}" [tooltip]="conversationsInQueueOnProjectName"
42
+ [options]="tooltipOptions" placement="top" content-type="template" (click)="openUnservedConvs()">
43
+ <div class="project---name"> {{ project?.id_project?.name }} </div>
44
+ </div>
45
+ <ng-template #conversationsInQueueOnProjectName>
46
+ <span *ngIf="unservedRequestCount > 1">
47
+ {{ unservedRequestCount }}
48
+ {{translationMap?.get('CONVERSATIONS_IN_QUEUE') }}
49
+ </span>
50
+ <span *ngIf="unservedRequestCount === 1">
51
+ {{ unservedRequestCount }}
52
+ {{translationMap?.get('CONVERSATION_IN_QUEUE') }}
53
+ </span>
54
+ <span *ngIf="unservedRequestCount === 0">
55
+ {{translationMap?.get('NO_CONVERSATION_IN_QUEUE') }}
56
+ </span>
57
+ </ng-template>
58
+
59
+ <!-- <div class="availabily-and-busy-wpr">
60
+ <div class="availabily---wpr" tooltip="{{avaialble_status_for_tooltip}}" [options]="tooltipOptions">
61
+ <div class="onoffswitch"
62
+ (click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)">
63
+ <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox"
64
+ id="switchavailableunavailablestatus" tabindex="0" [checked]="project?.ws_projct_user_available">
65
+ <label class="onoffswitch-label" for="switchavailableunavailablestatus"></label>
148
66
  </div>
67
+ </div>
149
68
 
69
+
70
+ <!- - (click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)" - ->
71
+ <span *ngIf="project?.ws_projct_user_available === true" class="availibility-status-text"
72
+ [ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}">
73
+ {{translationMap?.get('LABEL_AVAILABLE') }}
74
+ </span>
75
+ <!- - (click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)" - ->
76
+ <span *ngIf="project?.ws_projct_user_available === false" class="availibility-status-text"
77
+ [ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}">
78
+ {{translationMap?.get('LABEL_NOT_AVAILABLE')}}
79
+ </span>
80
+
81
+ <div class="project-item--isBusy-icon-wpr" *ngIf="project?.ws_projct_user_isBusy === true" tooltip="{{translationMap?.get('LABEL_BUSY')}}"
82
+ [options]="tooltipOptions" placement="top" >
83
+ <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="16px"
84
+ viewBox="0 0 24 24" width="16px" fill="#FEB92C">
85
+ <g><path d="M0,0h24v24H0V0z" fill="none" /></g>
86
+ <g><path d="M11.99,2C6.47,2,2,6.48,2,12s4.47,10,9.99,10C17.52,22,22,17.52,22,12S17.52,2,11.99,2z M15.29,16.71L11,12.41V7h2v4.59 l3.71,3.71L15.29,16.71z" /></g>
87
+ </svg>
150
88
  </div>
151
89
  </div>
90
+ </div> -->
152
91
 
153
- <!-- </div> -->
92
+ <!-- <div *ngIf="IS_ON_MOBILE_DEVICE === true" class="flex-child-view-all-convs">
93
+ <div class="view-all-convs-icon-wpr" style="cursor: pointer;" [tooltip]="viewAllConvs"
94
+ [options]="tooltipOptions" placement="top" content-type="template">
95
+
96
+ <ion-button ion-button fill="clear" class="open-unserved-convs-btn"
97
+ (click)="openUnservedConvsAndGoToProjectList()">
98
+
99
+ <span class="push-icon-and-list-wpr">
100
+ <svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg"
101
+ xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24"
102
+ style="enable-background:new 0 0 24 24;" xml:space="preserve" style="width: 16px;">
103
+ <style type="text/css">
104
+ .st0 {
105
+ fill: #165CEE;
106
+ }
107
+ </style>
108
+ <path class="st0" d="M20.6,16.3v-2.4c-2.1,0-3.7-1.6-3.7-3.7V4h1.2c0.6,0,1.2-0.6,1.2-1.2s-0.6-1.2-1.2-1.2H5.9
109
+ c-0.6,0-1.2,0.6-1.2,1.2S5.3,4,5.9,4h1.2v6.1c0,2.1-1.6,3.7-3.7,3.7v2.4h7.3v6.1c0.7,0,1.7,0,2.4,0v-6.1H20.6z M8.3,13.8
110
+ c0.9-1.1,1.2-2.3,1.2-3.7V4h4.9v6.1c0,1.3,0.5,2.7,1.2,3.7H8.3z" />
111
+ </svg>
112
+ </span>
113
+
114
+
115
+
116
+ </ion-button>
117
+ </div>
118
+ <ng-template #viewAllConvs>
119
+ <span>
120
+ {{translationMap?.get('CHANGE_PINNED_PROJECT') }}</span>
121
+ </ng-template>
122
+ </div> -->
154
123
 
155
- </div>
156
124
  </div>
157
- </div>
125
+
126
+
158
127
  </div>
@@ -4,13 +4,10 @@
4
4
  padding-top: 0px;
5
5
  margin-top: 0px !important;
6
6
  padding-bottom: 0px !important;
7
- // background: #fff;
8
7
  padding-left: 0px;
9
8
  width: 100%;
10
- // min-height: 70px;
11
- // height: 70px;
12
- min-height: 64px;
13
- height: 64px;
9
+ // min-height: 64px;
10
+ // height: 64px;
14
11
  position: relative;
15
12
  // top: -5px; //nk x AS
16
13
  }
@@ -215,14 +212,10 @@
215
212
  }
216
213
  }
217
214
 
218
- .container-project-for-panel {
219
- padding: 0px !important;
220
- width: 296px;
221
- }
222
-
223
215
  .flex-container-project-for-panel {
224
216
  display: flex;
225
- width: 100%;
217
+ // width: 100%;
218
+ // height: 64px;
226
219
  justify-content: center;
227
220
  align-items: center;
228
221
  // position: relative;
@@ -231,17 +224,18 @@
231
224
  -o-transition: all 0.2s ease-in;
232
225
  -webkit-transition: all 0.2s ease-in;
233
226
  transition: all 0.2s ease-in;
234
- height: 64px;
227
+ margin: 6px;
228
+ background-color: rgba(24, 119, 242, 0.1);
229
+ border-radius: 5px;
235
230
  }
236
231
 
237
- .flex-container:hover {
238
- background-color: rgba(200, 200, 200, 0.2);
232
+ .flex-container-project-for-panel:hover {
233
+ background-color: rgba(24, 119, 242, 0.2);
239
234
  }
240
235
 
241
236
  .flex-child-right {
242
237
  flex: 1;
243
- padding: 18px 0px;
244
- // height: 100%;
238
+ // padding: 18px 0px;
245
239
  }
246
240
 
247
241
 
@@ -249,7 +243,7 @@
249
243
  // flex: 0 0 20%;
250
244
  width: 60px;
251
245
  text-align: center;
252
- padding: 18px 0px;
246
+ // padding: 18px 0px;
253
247
  height: 100%;
254
248
  }
255
249
  // border: 2px solid yellow;
@@ -337,7 +331,8 @@
337
331
 
338
332
  }
339
333
  .project---name:hover {
340
- color: rgba(0, 0, 0, 0.35);
334
+ // color: rgba(0, 0, 0, 0.35);
335
+ font-weight: 600;
341
336
  }
342
337
 
343
338
  .view-all-convs-icon:hover {
@@ -452,13 +447,21 @@
452
447
  // top: 3px;
453
448
 
454
449
  position: relative;
455
- top: -8px;
450
+ // top: -8px;
456
451
  background: transparent;
457
452
  border-radius: 50%;
458
- width: 50px;
453
+ width: 40px; //50px;
459
454
  left: 10px;
460
- height: 50px;
455
+ height: 40px; //50px;
461
456
  cursor: pointer;
457
+
458
+ svg {
459
+ pointer-events: none;
460
+ width: 30px;
461
+ height: auto;
462
+ fill: rgb(107,107,107);
463
+ margin-top: 7px;
464
+ }
462
465
  }
463
466
  .unassigned-notifications-icon-wpr:hover {
464
467
  background-color: rgba(0, 0, 0, 0.05);
@@ -467,23 +470,28 @@
467
470
  .unassigned-notifications-badge {
468
471
  position: absolute;
469
472
  // top: 12px;
470
- top: 14px;
473
+ top: 6px;//14px;
471
474
  border-radius: 50%;
472
475
  background: #e41e3f;
473
476
  // width: 24px;
474
477
  // height: 24px;
475
- width: 22px;
476
- height: 22px;
478
+ width: 20px; //22px;
479
+ height: 20px; //22px;
477
480
  color: #fff;
478
481
 
479
- left: 34px;
482
+ left: 40px; //33px;
480
483
  border: 1px solid #fff;
484
+
485
+ display: flex;
486
+ align-content: center;
487
+ justify-content: center;
488
+ align-items: center;
481
489
  }
482
490
  .notification-count {
483
- font-size: 12px;
491
+ font-size: 10px; //12px;
484
492
  font-weight: 500;
485
493
  position: relative;
486
- top: -1px;
494
+ // top: -1px;
487
495
  text-align: center;
488
496
  }
489
497
 
@@ -22,14 +22,14 @@
22
22
  <ion-list>
23
23
 
24
24
  <!-- supportMode && -->
25
- <ion-item *ngIf="displayNewConvsItem && conversationType !=='archived' && supportMode" class="ion-no-padding open-iframe-item">
25
+ <ion-item *ngIf="displayNewConvsItem && conversationType !=='archived' && supportMode" class="ion-no-padding open-iframe-item" lines="none">
26
26
  <div tabindex="0"></div>
27
27
  <!-- <ion-note class="pinned-project">
28
28
  {{ 'PINNED_PROJECT' | translate }}
29
29
  </ion-note> -->
30
30
 
31
31
  <app-project-item
32
- style="width: 100%;"
32
+ style="width: 100%; margin: 0px 8px; border-bottom: 1px dashed #d3dbe5;"
33
33
  (openUnsevedConvsEvent)="openUnsevedConversationIframe($event)"
34
34
  (projectIdEvent)="getLastProjectId($event)">
35
35
  </app-project-item>
@@ -43,7 +43,7 @@ ion-list {
43
43
 
44
44
  ion-item {
45
45
  cursor: pointer;
46
- height: 64px;
46
+ // height: 64px;
47
47
  position: relative;
48
48
  display: flex;
49
49
  text-decoration: none;
@@ -324,7 +324,7 @@ ion-list {
324
324
  padding-left: 0px !important ;
325
325
  padding-right: 0px !important;
326
326
  // height: 55px !important;
327
- border-bottom: 1px solid rgba(0, 0, 0, 0.05);
327
+ // border-bottom: 1px solid rgba(0, 0, 0, 0.05);
328
328
  --background-hover: #ffffff;
329
329
  cursor:default !important;
330
330
  }
@@ -753,6 +753,13 @@ export class ConversationListPage implements OnInit {
753
753
  }
754
754
  }
755
755
 
756
+ if(conversation.attributes && conversation.attributes['projectId']){
757
+ let project = localStorage.getItem(conversation.attributes['projectId'])
758
+ if(project){
759
+ project = JSON.parse(project)
760
+ conversation.attributes.project_name = project['name']
761
+ }
762
+ }
756
763
  // if(conversation.conversation_with_fullname === 'Guest '){
757
764
  // conversation.conversation_with_fullname = 'guest' + '#' + this.getUUidConversation(conversation.uid)
758
765
  // }