@chat21/chat21-ionic 3.0.76-rc.4 → 3.0.77-rc.2
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 +12 -1
- package/package.json +1 -1
- package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.html +5 -5
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +12 -4
- package/src/app/components/conversation-info/info-content/info-content.component.html +3 -3
- package/src/app/components/conversation-info/info-content/info-content.component.ts +0 -1
- package/src/app/components/project-item/project-item.component.html +9 -21
- package/src/app/components/project-item/project-item.component.scss +1 -3
- package/src/app/components/project-item/project-item.component.ts +4 -4
- package/src/app/components/sidebar/sidebar.component.html +7 -6
- package/src/app/components/sidebar/sidebar.component.ts +23 -22
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +25 -9
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.scss +1 -1
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +57 -69
- package/src/app/components/utils/user-presence/user-presence.component.ts +1 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +3 -1
- package/src/app/pages/profile-info/profile-info.page.ts +1 -1
- package/src/app/services/websocket/websocket.service.ts +5 -2
- package/src/app/shared/shared.module.ts +4 -0
- package/src/assets/i18n/ar.json +1 -4
- package/src/assets/i18n/az.json +1 -4
- package/src/assets/i18n/de.json +1 -4
- package/src/assets/i18n/en.json +1 -4
- package/src/assets/i18n/es.json +1 -4
- package/src/assets/i18n/fr.json +1 -4
- package/src/assets/i18n/it.json +1 -4
- package/src/assets/i18n/kk.json +1 -4
- package/src/assets/i18n/pt.json +1 -4
- package/src/assets/i18n/ru.json +1 -4
- package/src/assets/i18n/sr.json +1 -4
- package/src/assets/i18n/sv.json +1 -4
- package/src/assets/i18n/tr.json +1 -4
- package/src/assets/i18n/uk.json +1 -4
- package/src/assets/i18n/uz.json +1 -4
- package/src/assets/images/teammate-status/avaible.svg +9 -0
- package/src/assets/images/teammate-status/inactive.svg +11 -0
- package/src/assets/images/teammate-status/unavaible.svg +9 -0
- package/src/chat-config-pre.json +1 -1
- package/src/global.scss +67 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# chat21-ionic ver 3.0
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
### 3.0.77-rc.2
|
|
4
|
+
- bug-fixed: on ng-select focused element show blue border
|
|
5
|
+
- removed: unused labels and translations
|
|
6
|
+
|
|
7
|
+
### 3.0.77-rc.1
|
|
8
|
+
- added: new sidebar-user-details and sidebar components
|
|
9
|
+
- changed: updateCurrentUserAvailability body http request to manage Inactive state
|
|
10
|
+
- removed label 'LABEL_ACTIVE_NOW'
|
|
11
|
+
|
|
12
|
+
## 3.0.76 in PROD
|
|
13
|
+
|
|
3
14
|
### 3.0.76-rc.4
|
|
4
15
|
- bug-fixed: if canned component is opened and press twice the canned icon, canned-component not opens
|
|
5
16
|
- bug-fixed: bot images not resized
|
package/package.json
CHANGED
package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.html
CHANGED
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
[class.chat-text-emoticon]="isEmojii(message?.text)"
|
|
32
32
|
[message]="message"
|
|
33
33
|
[textColor]="'col-msg-sent'"
|
|
34
|
-
(onBeforeMessageRender)="
|
|
35
|
-
(onAfterMessageRender)="
|
|
34
|
+
(onBeforeMessageRender)="onBeforeMessageRenderFN($event)"
|
|
35
|
+
(onAfterMessageRender)="onAfterMessageRenderFN($event)">
|
|
36
36
|
</tiledeskwidget-bubble-message>
|
|
37
37
|
|
|
38
38
|
<!-- icon status message -->
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
[class.chat-text-emoticon]="isEmojii(message?.text)"
|
|
59
59
|
[message]="message"
|
|
60
60
|
[textColor]="'black'"
|
|
61
|
-
(onBeforeMessageRender)="
|
|
62
|
-
(onAfterMessageRender)="
|
|
61
|
+
(onBeforeMessageRender)="onBeforeMessageRenderFN($event)"
|
|
62
|
+
(onAfterMessageRender)="onAfterMessageRenderFN($event)">
|
|
63
63
|
</tiledeskwidget-bubble-message>
|
|
64
64
|
|
|
65
65
|
</div>
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
[message]="message"
|
|
128
128
|
[isLastMessage] = "isLastMessage(message?.uid)"
|
|
129
129
|
[stylesMap]="stylesMap"
|
|
130
|
-
(onAttachmentButtonClicked)="
|
|
130
|
+
(onAttachmentButtonClicked)="onAttachmentButtonClickedFN($event)">
|
|
131
131
|
</tiledeskwidget-message-attachment>
|
|
132
132
|
</div>
|
|
133
133
|
|
|
@@ -18,14 +18,22 @@
|
|
|
18
18
|
</div>
|
|
19
19
|
<!-- [ngStyle] = "{ 'left': platformName === 'ios' ? '63px' : '' }" -->
|
|
20
20
|
<div *ngIf="isDirect" class="user-presence" [ngClass]="{ 'user-presence-ios': platformName === 'ios' }">
|
|
21
|
-
<app-user-presence
|
|
22
|
-
[
|
|
21
|
+
<app-user-presence
|
|
22
|
+
[idUser]=conversationAvatar.conversation_with
|
|
23
|
+
[translationMap]=translationMap
|
|
24
|
+
[borderColor]=borderColor
|
|
25
|
+
[fontColor]=fontColor>
|
|
23
26
|
</app-user-presence>
|
|
24
27
|
</div>
|
|
25
28
|
|
|
26
29
|
<div *ngIf="conversationAvatar" class="user-typing">
|
|
27
|
-
<app-user-typing
|
|
28
|
-
[
|
|
30
|
+
<app-user-typing
|
|
31
|
+
[idConversation]=conversationAvatar.uid
|
|
32
|
+
[idCurrentUser]=idLoggedUser
|
|
33
|
+
[isDirect]=isDirect
|
|
34
|
+
[translationMap]=translationMap
|
|
35
|
+
[color]=fontColor
|
|
36
|
+
[membersConversation]=membersConversation>
|
|
29
37
|
</app-user-typing>
|
|
30
38
|
</div>
|
|
31
39
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<ion-content [style.display]="openInfoConversation ? 'block' : 'none'">
|
|
2
2
|
|
|
3
3
|
<app-info-direct *ngIf="panelType === 'direct-panel'"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
[member]=member
|
|
5
|
+
[translationMap]=translationMap
|
|
6
|
+
[conversationWith]= "conversationWith">
|
|
7
7
|
</app-info-direct>
|
|
8
8
|
|
|
9
9
|
<app-info-group *ngIf="panelType === 'group-panel' && IS_GROUP_PANEL === true"
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
</span>
|
|
67
67
|
</ng-template>
|
|
68
68
|
|
|
69
|
-
<div class="availabily-and-busy-wpr">
|
|
69
|
+
<!-- <div class="availabily-and-busy-wpr">
|
|
70
70
|
<div class="availabily---wpr" tooltip="{{avaialble_status_for_tooltip}}" [options]="tooltipOptions">
|
|
71
71
|
<div class="onoffswitch"
|
|
72
72
|
(click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)">
|
|
@@ -77,39 +77,27 @@
|
|
|
77
77
|
</div>
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
<!- - (click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)" - ->
|
|
81
81
|
<span *ngIf="project?.ws_projct_user_available === true" class="availibility-status-text"
|
|
82
82
|
[ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}">
|
|
83
|
-
{{translationMap?.get('
|
|
83
|
+
{{translationMap?.get('LABEL_AVAILABLE') }}
|
|
84
84
|
</span>
|
|
85
|
-
|
|
85
|
+
<!- - (click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)" - ->
|
|
86
86
|
<span *ngIf="project?.ws_projct_user_available === false" class="availibility-status-text"
|
|
87
87
|
[ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}">
|
|
88
|
-
{{translationMap?.get('
|
|
88
|
+
{{translationMap?.get('LABEL_NOT_AVAILABLE')}}
|
|
89
89
|
</span>
|
|
90
90
|
|
|
91
|
-
<div class="project-item--isBusy-icon-wpr" *ngIf="project?.ws_projct_user_isBusy === true" tooltip="{{translationMap?.get('
|
|
91
|
+
<div class="project-item--isBusy-icon-wpr" *ngIf="project?.ws_projct_user_isBusy === true" tooltip="{{translationMap?.get('LABEL_BUSY')}}"
|
|
92
92
|
[options]="tooltipOptions" placement="top" >
|
|
93
|
-
<!-- <span class="material-icons project-item--isBusy-icon">
|
|
94
|
-
access_time
|
|
95
|
-
</span> -->
|
|
96
93
|
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="16px"
|
|
97
94
|
viewBox="0 0 24 24" width="16px" fill="#FEB92C">
|
|
98
|
-
<g>
|
|
99
|
-
|
|
100
|
-
</g>
|
|
101
|
-
<g>
|
|
102
|
-
<path
|
|
103
|
-
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" />
|
|
104
|
-
</g>
|
|
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>
|
|
105
97
|
</svg>
|
|
106
98
|
</div>
|
|
107
|
-
<!-- <span *ngIf="project?.ws_projct_user_isBusy === true"
|
|
108
|
-
class="project-item--isBusy-busy-text text-pulse-animation">
|
|
109
|
-
{{translationMap?.get('Busy')}}
|
|
110
|
-
</span> -->
|
|
111
99
|
</div>
|
|
112
|
-
</div>
|
|
100
|
+
</div> -->
|
|
113
101
|
|
|
114
102
|
<div *ngIf="IS_ON_MOBILE_DEVICE === true" class="flex-child-view-all-convs">
|
|
115
103
|
<div class="view-all-convs-icon-wpr" style="cursor: pointer;" [tooltip]="viewAllConvs"
|
|
@@ -128,9 +128,9 @@ export class ProjectItemComponent implements OnInit {
|
|
|
128
128
|
|
|
129
129
|
public translations() {
|
|
130
130
|
const keys = [
|
|
131
|
-
'
|
|
132
|
-
'
|
|
133
|
-
'
|
|
131
|
+
'LABEL_AVAILABLE',
|
|
132
|
+
'LABEL_NOT_AVAILABLE',
|
|
133
|
+
'LABEL_BUSY',
|
|
134
134
|
'VIEW_ALL_CONVERSATIONS',
|
|
135
135
|
'CONVERSATIONS_IN_QUEUE',
|
|
136
136
|
'CONVERSATION_IN_QUEUE',
|
|
@@ -278,7 +278,7 @@ export class ProjectItemComponent implements OnInit {
|
|
|
278
278
|
available = !available
|
|
279
279
|
this.logger.log('[PROJECT-ITEM] - changeAvailabilityState projectid', projectid, ' available: ', available);
|
|
280
280
|
|
|
281
|
-
this.wsService.updateCurrentUserAvailability(this.tiledeskToken, projectid, available).subscribe((projectUser: any) => {
|
|
281
|
+
this.wsService.updateCurrentUserAvailability(this.tiledeskToken, projectid, available, "").subscribe((projectUser: any) => {
|
|
282
282
|
|
|
283
283
|
this.logger.log('[PROJECT-ITEM] - PROJECT-USER UPDATED ', projectUser)
|
|
284
284
|
// NOTIFY TO THE USER SERVICE WHEN THE AVAILABLE / UNAVAILABLE BUTTON IS CLICKED
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
onerror="this.src='assets/images/no_image_user.png'" />
|
|
16
16
|
|
|
17
17
|
<div *ngIf="!USER_PHOTO_PROFILE_EXIST" id="sidebaravatar-no-img" class="sidebar-avatar"
|
|
18
|
-
[ngStyle]="{'background': 'linear-gradient(rgb(255,255,255) -125%,' +
|
|
18
|
+
[ngStyle]="{'background': 'linear-gradient(rgb(255,255,255) -125%,' + user?.fillColour + ')'}">
|
|
19
19
|
<span id="sidebaravatar-altenative-user-avatar" class="sidebar-altenative-user-avatar">
|
|
20
20
|
{{ currentUser?.fullname_initial }}
|
|
21
21
|
</span>
|
|
@@ -23,13 +23,14 @@
|
|
|
23
23
|
|
|
24
24
|
<!-- matTooltipClass="custom-mat-tooltip" matTooltip="{{ tooltip_text_for_availability_status}}" #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100" -->
|
|
25
25
|
<!-- (click)="changeAvailabilityState(IS_AVAILABLE = !IS_AVAILABLE)" -->
|
|
26
|
-
<div id="
|
|
27
|
-
|
|
26
|
+
<div id="teammate-status-icon" *ngIf="project_id" class="status-icon" [ngClass]="{
|
|
27
|
+
'is-user-online' : IS_AVAILABLE === true && IS_INACTIVE === false,
|
|
28
|
+
'is-user-offline' : IS_AVAILABLE === false && IS_INACTIVE === false,
|
|
29
|
+
'is-user-inactive': IS_AVAILABLE === false && IS_INACTIVE === true}">
|
|
28
30
|
</div>
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
style="cursor:pointer">
|
|
32
|
+
<!-- matTooltipClass="custom-mat-tooltip" matTooltip="{{ 'LABEL_BUSY' | translate }}" #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100" -->
|
|
33
|
+
<div id="sidebaravatar-isbusy-icon-wpr" class="sidebar--isBusy-icon-wpr" [ngClass]="{'sidebar--isBusy-icon-wpr-with-image': USER_PHOTO_PROFILE_EXIST}" *ngIf="IS_BUSY === true" style="cursor:pointer">
|
|
33
34
|
<span id="sidebaravatar-isbusy-icon" class="material-icons sidebar-is-busy-icon">
|
|
34
35
|
access_time
|
|
35
36
|
</span>
|
|
@@ -25,11 +25,10 @@ export class SidebarComponent implements OnInit {
|
|
|
25
25
|
private logger: LoggerService = LoggerInstance.getInstance();
|
|
26
26
|
|
|
27
27
|
USER_ROLE: string = 'agent'
|
|
28
|
-
SIDEBAR_IS_SMALL = true
|
|
29
28
|
IS_AVAILABLE: boolean;
|
|
30
|
-
|
|
29
|
+
IS_INACTIVE: boolean;
|
|
31
30
|
IS_BUSY: boolean;
|
|
32
|
-
|
|
31
|
+
|
|
33
32
|
isVisibleAPP: boolean;
|
|
34
33
|
isVisibleANA: boolean;
|
|
35
34
|
isVisibleACT: boolean;
|
|
@@ -319,22 +318,24 @@ export class SidebarComponent implements OnInit {
|
|
|
319
318
|
}
|
|
320
319
|
|
|
321
320
|
listenTocurrentProjectUserUserAvailability$() {
|
|
322
|
-
this.wsService.currentProjectUserAvailability$.subscribe((
|
|
323
|
-
this.logger.log('[SIDEBAR] - $UBSC TO WS USER AVAILABILITY & BUSY STATUS RES ',
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
321
|
+
this.wsService.currentProjectUserAvailability$.subscribe((data) => {
|
|
322
|
+
this.logger.log('[SIDEBAR] - $UBSC TO WS USER AVAILABILITY & BUSY STATUS RES ', data);
|
|
323
|
+
|
|
324
|
+
if (data !== null) {
|
|
325
|
+
if (data['user_available'] === false && data['profileStatus'] === "inactive") {
|
|
326
|
+
this.IS_AVAILABLE = false;
|
|
327
|
+
this.IS_INACTIVE = true;
|
|
328
|
+
// console.log('[SIDEBAR] - GET WS CURRENT-USER - data - IS_INACTIVE ' , this.IS_INACTIVE)
|
|
329
|
+
} else if (data['user_available'] === false && (data['profileStatus'] === '' || !data['profileStatus'] )) {
|
|
330
|
+
this.IS_AVAILABLE = false;
|
|
331
|
+
this.IS_INACTIVE = false;
|
|
332
|
+
// console.log('[SIDEBAR] - GET WS CURRENT-USER - data - IS_AVAILABLE ' , this.IS_AVAILABLE)
|
|
333
|
+
} else if (data['user_available'] === true && (data['profileStatus'] === '' || !data['profileStatus'])) {
|
|
334
|
+
this.IS_AVAILABLE = true;
|
|
335
|
+
this.IS_INACTIVE = false;
|
|
336
|
+
// console.log('[SIDEBAR] - GET WS CURRENT-USER - data - IS_AVAILABLE ' , this.IS_AVAILABLE)
|
|
337
|
+
}
|
|
338
|
+
}
|
|
338
339
|
|
|
339
340
|
}, (error) => {
|
|
340
341
|
this.logger.error('[SIDEBAR] - $UBSC TO WS USER AVAILABILITY & BUSY STATUS error ', error);
|
|
@@ -438,9 +439,9 @@ export class SidebarComponent implements OnInit {
|
|
|
438
439
|
|
|
439
440
|
public translations() {
|
|
440
441
|
const keys = [
|
|
441
|
-
'
|
|
442
|
-
'
|
|
443
|
-
'
|
|
442
|
+
'LABEL_AVAILABLE',
|
|
443
|
+
'LABEL_NOT_AVAILABLE',
|
|
444
|
+
'LABEL_BUSY',
|
|
444
445
|
'VIEW_ALL_CONVERSATIONS',
|
|
445
446
|
'CONVERSATIONS_IN_QUEUE',
|
|
446
447
|
'CONVERSATION_IN_QUEUE',
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
</div>
|
|
35
35
|
|
|
36
36
|
<div class="user-details-user-isbusy" *ngIf="IS_BUSY === true" style="cursor:pointer"
|
|
37
|
-
matTooltipClass="custom-mat-tooltip" matTooltip="{{
|
|
37
|
+
matTooltipClass="custom-mat-tooltip" matTooltip="{{translationsMap.get('LABEL_BUSY')}}" #tooltip="matTooltip"
|
|
38
38
|
matTooltipPosition='right' matTooltipHideDelay="100">
|
|
39
39
|
<span class="material-icons user-details-user-isbusy-icon">access_time</span>
|
|
40
40
|
</div>
|
|
@@ -52,25 +52,41 @@
|
|
|
52
52
|
<h3>{{ USER_ROLE_LABEL }} </h3>
|
|
53
53
|
|
|
54
54
|
<div class="user-details-view-profile" (click)="goToUserProfile()">
|
|
55
|
-
{{EditProfileLabel}}
|
|
55
|
+
{{translationsMap.get('EditProfileLabel')}}
|
|
56
56
|
</div>
|
|
57
57
|
</div>
|
|
58
58
|
|
|
59
59
|
<section class="availability-section">
|
|
60
|
-
<mat-slide-toggle (change)="changeAvailabilityStateInUserDetailsSidebar(IS_AVAILABLE = !IS_AVAILABLE)"
|
|
60
|
+
<!-- <mat-slide-toggle (change)="changeAvailabilityStateInUserDetailsSidebar(IS_AVAILABLE = !IS_AVAILABLE)"
|
|
61
61
|
class="custom-mat-slide-toggle" [checked]="IS_AVAILABLE" labelPosition="before">
|
|
62
62
|
|
|
63
63
|
<span *ngIf="IS_AVAILABLE"
|
|
64
64
|
style="font-weight: 400 !important; text-transform: capitalize; font-size:14px; color:#a9afbb">
|
|
65
65
|
{{IS_AVAILABLE_msg}}
|
|
66
|
-
<!-- {{translationMap?.get('Available') }} -->
|
|
67
66
|
</span>
|
|
68
67
|
<span *ngIf="!IS_AVAILABLE"
|
|
69
68
|
style="font-weight: 400 !important;text-transform: capitalize;font-size:14px; color:#a9afbb">
|
|
70
69
|
{{IS_UNAVAILABLE_msg}}
|
|
71
|
-
<!-- {{translationMap?.get('Unavailable') }} -->
|
|
72
70
|
</span>
|
|
73
|
-
</mat-slide-toggle>
|
|
71
|
+
</mat-slide-toggle> -->
|
|
72
|
+
|
|
73
|
+
<ng-select style="text-align: left;"
|
|
74
|
+
(change)="changeAvailabilityStateInUserDetailsSidebar(selectedStatus)"
|
|
75
|
+
[(ngModel)]="selectedStatus"
|
|
76
|
+
class="teammate-status-in-drawer"
|
|
77
|
+
[items]="teammateStatus"
|
|
78
|
+
bindLabel="name" bindValue="id"
|
|
79
|
+
[clearable]="false"
|
|
80
|
+
[searchable]="false">
|
|
81
|
+
<ng-template ng-label-tmp let-item="item">
|
|
82
|
+
<img style="width: 15px;height: 15px;position: relative; top: 1px;" height="15" width="15" [src]="item.avatar" />
|
|
83
|
+
<span id="sidebaravatar_{{item.name}}" style="text-transform: capitalize; margin-left:8px"> {{item.label}} </span>
|
|
84
|
+
</ng-template>
|
|
85
|
+
<ng-template ng-option-tmp let-item="item" let-index="index">
|
|
86
|
+
<img style="width: 15px;height: 15px;position: relative; top: 1px;" height="15" width="15" [src]="item.avatar" />
|
|
87
|
+
<span id="sidebaravatar_{{item.name}}" style="text-transform: capitalize; margin-left:8px"> {{item.label}} </span>
|
|
88
|
+
</ng-template>
|
|
89
|
+
</ng-select>
|
|
74
90
|
</section>
|
|
75
91
|
|
|
76
92
|
<hr class="first-divider">
|
|
@@ -85,12 +101,12 @@
|
|
|
85
101
|
style="color:#f44336; position:relative; top: -1px;display: inline-block;">
|
|
86
102
|
<i *ngIf="project?.plan_name !== 'enterprise'" class="material-icons" style="vertical-align: middle; color:#f44336; cursor:pointer;
|
|
87
103
|
font-size: 16px;" matTooltipClass="custom-mat-tooltip"
|
|
88
|
-
matTooltip="{{
|
|
104
|
+
matTooltip="{{ translationsMap.get('SubscriptionPaymentProblem') }}" #tooltip="matTooltip" matTooltipPosition='right'
|
|
89
105
|
matTooltipHideDelay="100">
|
|
90
106
|
error_outline
|
|
91
107
|
</i>
|
|
92
108
|
<i *ngIf="project?.plan_name === 'enterprise'" class="material-icons" style="vertical-align: middle; color:#f44336; cursor:pointer;
|
|
93
|
-
font-size: 16px;" matTooltipClass="custom-mat-tooltip" matTooltip="{{
|
|
109
|
+
font-size: 16px;" matTooltipClass="custom-mat-tooltip" matTooltip="{{ translationsMap.get('ThePlanHasExpired') }}"
|
|
94
110
|
#tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100">
|
|
95
111
|
error_outline
|
|
96
112
|
</i>
|
|
@@ -114,7 +130,7 @@
|
|
|
114
130
|
logout
|
|
115
131
|
</i>
|
|
116
132
|
<div class="user-details-logout-text">
|
|
117
|
-
{{
|
|
133
|
+
{{translationsMap.get('LABEL_LOGOUT')}}
|
|
118
134
|
</div>
|
|
119
135
|
</div>
|
|
120
136
|
</section>
|
|
@@ -32,17 +32,6 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
32
32
|
IS_AVAILABLE: boolean;
|
|
33
33
|
USER_ROLE: boolean;
|
|
34
34
|
USER_ROLE_LABEL: string;
|
|
35
|
-
EditProfileLabel: string;
|
|
36
|
-
IS_BUSY_msg: string;
|
|
37
|
-
IS_AVAILABLE_msg: string;
|
|
38
|
-
IS_UNAVAILABLE_msg: string;
|
|
39
|
-
SUBSCRIPTION_PAYMENT_PROBLEM_msg: string;
|
|
40
|
-
THE_PLAN_HAS_EXPIRED_msg: string;
|
|
41
|
-
PAYD_PLAN_NAME_PRO_msg: string;
|
|
42
|
-
PAYD_PLAN_NAME_ENTERPRISE_msg: string;
|
|
43
|
-
PRO_PLAN_TRIAL_msg: string;
|
|
44
|
-
FREE_PLAN_msg: string;
|
|
45
|
-
LOGOUT_msg: string;
|
|
46
35
|
profile_name_translated: string;
|
|
47
36
|
SubscriptionPaymentProblem: string;
|
|
48
37
|
user: any
|
|
@@ -56,6 +45,16 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
56
45
|
version: string
|
|
57
46
|
company_name: string = 'Tiledesk'
|
|
58
47
|
DASHBOARD_URL: string;
|
|
48
|
+
|
|
49
|
+
selectedStatus: any;
|
|
50
|
+
teammateStatus = [
|
|
51
|
+
{ id: 1, name: 'Available', avatar: 'assets/images/teammate-status/avaible.svg', label: "LABEL_AVAILABLE" },
|
|
52
|
+
{ id: 2, name: 'Unavailable', avatar: 'assets/images/teammate-status/unavaible.svg', label: "LABEL_NOT_AVAILABLE" },
|
|
53
|
+
{ id: 3, name: 'Inactive', avatar: 'assets/images/teammate-status/inactive.svg', label: "LABEL_INACTIVE" },
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
translationsMap: Map<string, string> = new Map();
|
|
57
|
+
|
|
59
58
|
constructor(
|
|
60
59
|
private translate: TranslateService,
|
|
61
60
|
public tiledeskAuthService: TiledeskAuthService,
|
|
@@ -199,22 +198,29 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
199
198
|
translateLabels() {
|
|
200
199
|
let keys= [
|
|
201
200
|
'EditProfile',
|
|
202
|
-
'
|
|
203
|
-
'Unavailable',
|
|
204
|
-
'Busy',
|
|
201
|
+
'LABEL_BUSY',
|
|
205
202
|
'LABEL_LOGOUT',
|
|
206
203
|
'SubscriptionPaymentProblem',
|
|
207
|
-
'ThePlanHasExpired'
|
|
204
|
+
'ThePlanHasExpired',
|
|
205
|
+
"LABEL_AVAILABLE",
|
|
206
|
+
"LABEL_NOT_AVAILABLE",
|
|
207
|
+
"LABEL_INACTIVE"
|
|
208
208
|
]
|
|
209
209
|
|
|
210
210
|
this.translate.get(keys).subscribe((text: string) => {
|
|
211
|
-
|
|
212
|
-
this.
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
211
|
+
|
|
212
|
+
this.translationsMap.set('LABEL_AVAILABLE',text['LABEL_AVAILABLE'])
|
|
213
|
+
.set('LABEL_NOT_AVAILABLE', text['LABEL_NOT_AVAILABLE'] )
|
|
214
|
+
.set('LABEL_INACTIVE', text['LABEL_INACTIVE'])
|
|
215
|
+
.set('EditProfile', text['EditProfile'])
|
|
216
|
+
.set('LABEL_BUSY', text['LABEL_BUSY'])
|
|
217
|
+
.set('LABEL_LOGOUT', text['LABEL_LOGOUT'])
|
|
218
|
+
.set('SubscriptionPaymentProblem', text['SubscriptionPaymentProblem'])
|
|
219
|
+
.set('ThePlanHasExpired', text['ThePlanHasExpired'])
|
|
220
|
+
|
|
221
|
+
this.teammateStatus.forEach(element => {
|
|
222
|
+
element.label = this.translationsMap.get(element.label)
|
|
223
|
+
});
|
|
218
224
|
|
|
219
225
|
});
|
|
220
226
|
}
|
|
@@ -249,48 +255,6 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
249
255
|
}
|
|
250
256
|
}
|
|
251
257
|
|
|
252
|
-
getEditProfileTranslation() {
|
|
253
|
-
this.translate.get('EditProfile').subscribe((text: string) => {
|
|
254
|
-
this.EditProfileLabel = text
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
getAvailableTranslation() {
|
|
259
|
-
this.translate.get('Available').subscribe((text: string) => {
|
|
260
|
-
this.IS_AVAILABLE_msg = text
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
getUnavailableTranslation() {
|
|
264
|
-
this.translate.get('Unavailable').subscribe((text: string) => {
|
|
265
|
-
this.IS_UNAVAILABLE_msg = text
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
getIsBusyTranslation() {
|
|
270
|
-
this.translate.get('Busy').subscribe((text: string) => {
|
|
271
|
-
this.IS_BUSY_msg = text
|
|
272
|
-
});
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
getLogoutTranslation() {
|
|
276
|
-
this.translate.get('LABEL_LOGOUT').subscribe((text: string) => {
|
|
277
|
-
this.LOGOUT_msg = text
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
getSubscriptionPaymentProblemTranslation() {
|
|
282
|
-
this.translate.get('SubscriptionPaymentProblem').subscribe((text: string) => {
|
|
283
|
-
this.SUBSCRIPTION_PAYMENT_PROBLEM_msg = text
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
getThePlanHasExpiredTranslation() {
|
|
288
|
-
this.translate.get('ThePlanHasExpired').subscribe((text: string) => {
|
|
289
|
-
this.THE_PLAN_HAS_EXPIRED_msg = text
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
|
|
294
258
|
listenToCurrentStoredProject() {
|
|
295
259
|
this.events.subscribe('storage:last_project', projectObjct => {
|
|
296
260
|
if (projectObjct && projectObjct !== 'undefined') {
|
|
@@ -360,7 +324,20 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
360
324
|
this.logger.log('[SIDEBAR-USER-DETAILS] - $UBSC TO WS USER AVAILABILITY & BUSY STATUS RES ', projectUser);
|
|
361
325
|
|
|
362
326
|
if (projectUser) {
|
|
363
|
-
|
|
327
|
+
if (projectUser['user_available'] === false && projectUser['profileStatus'] === 'inactive') {
|
|
328
|
+
// console.log('teammateStatus ', this.teammateStatus)
|
|
329
|
+
this.selectedStatus = this.teammateStatus[2].id;
|
|
330
|
+
console.log('[SIDEBAR-USER-DETAILS] - PROFILE_STATUS selected option', this.teammateStatus[2].name);
|
|
331
|
+
this.teammateStatus = this.teammateStatus.slice(0)
|
|
332
|
+
} else if (projectUser['user_available'] === false && (projectUser['profileStatus'] === '' || !projectUser['profileStatus'])) {
|
|
333
|
+
this.selectedStatus = this.teammateStatus[1].id;
|
|
334
|
+
console.log('[SIDEBAR-USER-DETAILS] - PROFILE_STATUS selected option', this.teammateStatus[1].name);
|
|
335
|
+
this.teammateStatus = this.teammateStatus.slice(0)
|
|
336
|
+
} else if (projectUser['user_available'] === true && (projectUser['profileStatus'] === '' || !projectUser['profileStatus'])) {
|
|
337
|
+
this.selectedStatus = this.teammateStatus[0].id
|
|
338
|
+
this.teammateStatus = this.teammateStatus.slice(0)
|
|
339
|
+
console.log('[SIDEBAR-USER-DETAILS] - PROFILE_STATUS selected option', this.teammateStatus[0].name);
|
|
340
|
+
}
|
|
364
341
|
this.IS_BUSY = projectUser['isBusy']
|
|
365
342
|
this.USER_ROLE = projectUser['role']
|
|
366
343
|
this.translateUserRole(this.USER_ROLE)
|
|
@@ -376,7 +353,7 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
376
353
|
translateUserRole(role) {
|
|
377
354
|
this.translate.get(role).subscribe((text: string) => {
|
|
378
355
|
this.USER_ROLE_LABEL = text
|
|
379
|
-
|
|
356
|
+
});
|
|
380
357
|
}
|
|
381
358
|
|
|
382
359
|
|
|
@@ -386,10 +363,21 @@ export class SidebarUserDetailsComponent implements OnInit, OnChanges {
|
|
|
386
363
|
|
|
387
364
|
|
|
388
365
|
|
|
389
|
-
changeAvailabilityStateInUserDetailsSidebar(
|
|
390
|
-
this.logger.log('[SIDEBAR-USER-DETAILS] - changeAvailabilityState projectid', this.project._id, ' available 1: ',
|
|
366
|
+
changeAvailabilityStateInUserDetailsSidebar(selectedStatusID) {
|
|
367
|
+
this.logger.log('[SIDEBAR-USER-DETAILS] - changeAvailabilityState projectid', this.project._id, ' available 1: ', selectedStatusID);
|
|
368
|
+
|
|
369
|
+
let IS_AVAILABLE = null
|
|
370
|
+
let profilestatus = ''
|
|
371
|
+
if (selectedStatusID === 1) {
|
|
372
|
+
IS_AVAILABLE = true
|
|
373
|
+
} else if (selectedStatusID === 2) {
|
|
374
|
+
IS_AVAILABLE = false
|
|
375
|
+
} else if (selectedStatusID === 3) {
|
|
376
|
+
IS_AVAILABLE = false
|
|
377
|
+
profilestatus = 'inactive'
|
|
378
|
+
}
|
|
391
379
|
|
|
392
|
-
this.wsService.updateCurrentUserAvailability(this.tiledeskToken, this.project._id,
|
|
380
|
+
this.wsService.updateCurrentUserAvailability(this.tiledeskToken, this.project._id, IS_AVAILABLE, profilestatus)
|
|
393
381
|
.subscribe((projectUser: any) => {
|
|
394
382
|
|
|
395
383
|
this.logger.log('[SIDEBAR-USER-DETAILS] - PROJECT-USER UPDATED ', projectUser)
|
|
@@ -122,7 +122,7 @@ export class UserPresenceComponent implements OnInit, OnDestroy {
|
|
|
122
122
|
this.logger.log('[USER-PRESENCE-COMP] userIsOnLine - userId: ', userId, ' - isOnline: ', isOnline);
|
|
123
123
|
this.online = isOnline;
|
|
124
124
|
if (isOnline) {
|
|
125
|
-
this.status = this.translationMap.get('
|
|
125
|
+
this.status = this.translationMap.get('LABEL_AVAILABLE');
|
|
126
126
|
} else {
|
|
127
127
|
this.status = this.translationMap.get('LABEL_NOT_AVAILABLE');
|
|
128
128
|
if (this.lastConnectionDate && this.lastConnectionDate.trim() !== '') {
|
|
@@ -131,6 +131,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
131
131
|
|
|
132
132
|
public messageStr: string;
|
|
133
133
|
public tagsCannedFilter: Array<any>= [];
|
|
134
|
+
public tagsCannedCount: number;
|
|
134
135
|
public HIDE_CANNED_RESPONSES: boolean = true
|
|
135
136
|
|
|
136
137
|
public window: any = window
|
|
@@ -590,12 +591,12 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
590
591
|
const keys = [
|
|
591
592
|
'LABEL_AVAILABLE',
|
|
592
593
|
'LABEL_NOT_AVAILABLE',
|
|
594
|
+
'LABEL_INACTIVE',
|
|
593
595
|
'LABEL_TODAY',
|
|
594
596
|
'LABEL_TOMORROW',
|
|
595
597
|
'LABEL_TO',
|
|
596
598
|
'LABEL_LAST_ACCESS',
|
|
597
599
|
'ARRAY_DAYS',
|
|
598
|
-
'LABEL_ACTIVE_NOW',
|
|
599
600
|
'LABEL_IS_WRITING',
|
|
600
601
|
'LABEL_INFO_ADVANCED',
|
|
601
602
|
'ID_CONVERSATION',
|
|
@@ -1242,6 +1243,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1242
1243
|
this.logger.log('[CONVS-DETAIL] onLoadedCannedResponses --> ',event)
|
|
1243
1244
|
if(event && event.length > 0 ){
|
|
1244
1245
|
this.tagsCannedFilter = event
|
|
1246
|
+
this.tagsCannedCount = event.length
|
|
1245
1247
|
}
|
|
1246
1248
|
}
|
|
1247
1249
|
|
|
@@ -106,12 +106,12 @@ export class ProfileInfoPage implements OnInit {
|
|
|
106
106
|
const keys = [
|
|
107
107
|
'LABEL_AVAILABLE',
|
|
108
108
|
'LABEL_NOT_AVAILABLE',
|
|
109
|
+
'LABEL_INACTIVE',
|
|
109
110
|
'LABEL_TODAY',
|
|
110
111
|
'LABEL_TOMORROW',
|
|
111
112
|
'LABEL_TO',
|
|
112
113
|
'LABEL_LAST_ACCESS',
|
|
113
114
|
'ARRAY_DAYS',
|
|
114
|
-
'LABEL_ACTIVE_NOW',
|
|
115
115
|
'LABEL_IS_WRITING',
|
|
116
116
|
'LABEL_LOGOUT'
|
|
117
117
|
];
|
|
@@ -61,7 +61,7 @@ export class WebsocketService {
|
|
|
61
61
|
})
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
public updateCurrentUserAvailability(token: string, projectId: string, user_is_available: boolean) {
|
|
64
|
+
public updateCurrentUserAvailability(token: string, projectId: string, user_is_available: boolean, profile_status: string) {
|
|
65
65
|
const httpOptions = {
|
|
66
66
|
headers: new HttpHeaders({
|
|
67
67
|
'Accept': 'application/json',
|
|
@@ -70,7 +70,10 @@ export class WebsocketService {
|
|
|
70
70
|
})
|
|
71
71
|
};
|
|
72
72
|
|
|
73
|
-
const body = {
|
|
73
|
+
const body = {
|
|
74
|
+
'user_available': user_is_available,
|
|
75
|
+
'profileStatus': profile_status
|
|
76
|
+
};
|
|
74
77
|
|
|
75
78
|
const url = this.apiUrl + projectId + '/project_users/';
|
|
76
79
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { FormsModule } from '@angular/forms';
|
|
2
|
+
import { NgSelectModule } from '@ng-select/ng-select';
|
|
1
3
|
import { NetworkOfflineComponent } from './../components/network-offline/network-offline.component';
|
|
2
4
|
import { ContactsDirectoryComponent } from './../components/contacts-directory/contacts-directory.component';
|
|
3
5
|
import { HtmlComponent } from './../chatlib/conversation-detail/message/html/html.component';
|
|
@@ -140,6 +142,8 @@ import { SafeHtmlPipe } from '../directives/safe-html.pipe';
|
|
|
140
142
|
CommonModule,
|
|
141
143
|
IonicModule,
|
|
142
144
|
MomentModule,
|
|
145
|
+
NgSelectModule,
|
|
146
|
+
FormsModule,
|
|
143
147
|
TooltipModule.forRoot(DefaultTooltipOptions as TooltipOptions)
|
|
144
148
|
|
|
145
149
|
],
|
package/src/assets/i18n/ar.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "أنت: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "لا محادثة حتى الآن",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "ابدأ الدردشة",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "متوفرة",
|
|
6
5
|
"LABEL_AVAILABLE": "متوفرة",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "غير متاح",
|
|
7
|
+
"LABEL_INACTIVE":"غير نشط",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "لا توجد رسالة هنا حتى الآن ...",
|
|
9
9
|
"LABEL_TODAY": "اليوم",
|
|
10
10
|
"LABEL_TOMORROW": "في الامس",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "معرف المستخدم",
|
|
186
186
|
"CLOSE_TOAST": "قريب",
|
|
187
187
|
"WAITING_FOR_NETWORK": "في انتظار الشبكة",
|
|
188
|
-
"Available": "متوفرة",
|
|
189
|
-
"Unavailable": "غير متوفره",
|
|
190
|
-
"Busy": "مشغول",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "إذا انضممت إلى هذه المحادثة ، فستظهر في قائمة المحادثة. سيتعين عليك بعد ذلك تحديده ، بعد إغلاق الشريط الجانبي للمحادثات غير المعينة ، لبدء الدردشة مع المستخدم",
|
|
192
189
|
"Cancel": "يلغي",
|
|
193
190
|
"AreYouSure": "هل أنت متأكد؟",
|
package/src/assets/i18n/az.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "Sən: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "Hələ söhbət yoxdur",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "Söhbətə başlayın",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "mövcuddur",
|
|
6
5
|
"LABEL_AVAILABLE": "mövcuddur",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "Mövcud deyil",
|
|
7
|
+
"LABEL_INACTIVE":"qeyri-aktiv",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "Burada hələ mesaj yoxdur...",
|
|
9
9
|
"LABEL_TODAY": "bu gün",
|
|
10
10
|
"LABEL_TOMORROW": "dünən",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "İstifadəçi adı",
|
|
186
186
|
"CLOSE_TOAST": "Yaxın",
|
|
187
187
|
"WAITING_FOR_NETWORK": "Şəbəkə gözlənilir",
|
|
188
|
-
"Available": "Mövcuddur",
|
|
189
|
-
"Unavailable": "Əlçatan deyil",
|
|
190
|
-
"Busy": "Məşğul",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "Bu söhbətə qoşulsanız, söhbət siyahısında görünəcək. Daha sonra istifadəçi ilə söhbətə başlamaq üçün təyin edilməmiş söhbətlərin yan panelini bağladıqdan sonra onu seçməli olacaqsınız",
|
|
192
189
|
"Cancel": "Ləğv et",
|
|
193
190
|
"AreYouSure": "Sən əminsən?",
|
package/src/assets/i18n/de.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "sie: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "Noch kein Gespräch",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "Fangen Sie an zu chatten",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "erhältlich",
|
|
6
5
|
"LABEL_AVAILABLE": "erhältlich",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "Nicht verfügbar",
|
|
7
|
+
"LABEL_INACTIVE":"inaktiv",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "Hier noch keine Nachricht...",
|
|
9
9
|
"LABEL_TODAY": "heute",
|
|
10
10
|
"LABEL_TOMORROW": "gestern",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "Benutzeridentifikation",
|
|
186
186
|
"CLOSE_TOAST": "Nah dran",
|
|
187
187
|
"WAITING_FOR_NETWORK": "Warte auf Netzwerk",
|
|
188
|
-
"Available": "Erhältlich",
|
|
189
|
-
"Unavailable": "Nicht verfügbar",
|
|
190
|
-
"Busy": "Beschäftigt",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "Wenn Sie an dieser Konversation teilnehmen, wird sie in der Konversationsliste angezeigt. Sie müssen es dann auswählen, nachdem Sie die Seitenleiste für nicht zugewiesene Konversationen geschlossen haben, um mit dem Benutzer zu chatten",
|
|
192
189
|
"Cancel": "Abbrechen",
|
|
193
190
|
"AreYouSure": "Bist du sicher?",
|
package/src/assets/i18n/en.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "you: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "No conversation yet",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "Start chatting",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "available",
|
|
6
5
|
"LABEL_AVAILABLE": "available",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "not available",
|
|
7
|
+
"LABEL_INACTIVE":"inactive",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "Still no message here...",
|
|
9
9
|
"LABEL_TODAY": "today",
|
|
10
10
|
"LABEL_TOMORROW": "yesterday",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "User ID",
|
|
186
186
|
"CLOSE_TOAST": "Close",
|
|
187
187
|
"WAITING_FOR_NETWORK": "Waiting for network",
|
|
188
|
-
"Available": "Available",
|
|
189
|
-
"Unavailable": "Unavailable",
|
|
190
|
-
"Busy": "Busy",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "If you join this conversation, it will appear in the conversation list. You will then have to select it, after closing the unassigned conversations sidebar, to start chatting with the user",
|
|
192
189
|
"Cancel": "Cancel",
|
|
193
190
|
"AreYouSure": "Are you sure?",
|
package/src/assets/i18n/es.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "tú: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "Aún no hay conversación",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "Empezar a chatear",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "disponible",
|
|
6
5
|
"LABEL_AVAILABLE": "disponible",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "no disponible",
|
|
7
|
+
"LABEL_INACTIVE":"inactiva",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "Todavía no hay mensajes...",
|
|
9
9
|
"LABEL_TODAY": "hoy",
|
|
10
10
|
"LABEL_TOMORROW": "ayer",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "ID Usuario",
|
|
186
186
|
"CLOSE_TOAST": "Cerrar",
|
|
187
187
|
"WAITING_FOR_NETWORK": "Esperando a la red",
|
|
188
|
-
"Available": "Disponible",
|
|
189
|
-
"Unavailable": "Indisponible",
|
|
190
|
-
"Busy": "Ocupado",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "Si te unes a esta conversación, aparecerá en la lista de conversaciones. Luego deberá seleccionarlo, después de cerrar la barra lateral de conversaciones no asignadas, para comenzar a chatear con el usuario.",
|
|
192
189
|
"Cancel": "Cancelar",
|
|
193
190
|
"AreYouSure": "¿Estás seguro?",
|
package/src/assets/i18n/fr.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "vous: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "Pas encore de conversation",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "Commencez à discuter",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "disponible",
|
|
6
5
|
"LABEL_AVAILABLE": "disponible",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "indisponible",
|
|
7
|
+
"LABEL_INACTIVE":"inactif",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "Toujours pas de message ici...",
|
|
9
9
|
"LABEL_TODAY": "aujourd'hui",
|
|
10
10
|
"LABEL_TOMORROW": "hier",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "Identifiant d'utilisateur",
|
|
186
186
|
"CLOSE_TOAST": "Fermer",
|
|
187
187
|
"WAITING_FOR_NETWORK": "En attente de réseau",
|
|
188
|
-
"Available": "Disponible",
|
|
189
|
-
"Unavailable": "Indisponible",
|
|
190
|
-
"Busy": "Occupé",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "Si vous rejoignez cette conversation, elle apparaîtra dans la liste des conversations. Vous devrez ensuite le sélectionner, après avoir fermé la barre latérale des conversations non attribuées, pour commencer à discuter avec l'utilisateur",
|
|
192
189
|
"Cancel": "Annuler",
|
|
193
190
|
"AreYouSure": "Es-tu sûr?",
|
package/src/assets/i18n/it.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "tu: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "Ancora nessuna conversazione",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "inizia a chattare",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "disponibile",
|
|
6
5
|
"LABEL_AVAILABLE": "disponibile",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "non disponibile",
|
|
7
|
+
"LABEL_INACTIVE":"inattivo",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "Ancora nessun messaggio qui...",
|
|
9
9
|
"LABEL_TODAY": "oggi",
|
|
10
10
|
"LABEL_TOMORROW": "ieri",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "ID utente",
|
|
186
186
|
"CLOSE_TOAST": "Chiudi",
|
|
187
187
|
"WAITING_FOR_NETWORK": "In attesa di rete",
|
|
188
|
-
"Available": "Disponibile",
|
|
189
|
-
"Unavailable": "Non disponibile",
|
|
190
|
-
"Busy": "Occupato",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "Se ti unisci a questa conversazione, apparirà nell'elenco delle conversazioni. Dovrai quindi selezionarla, dopo aver chiuso la barra laterale delle conversazioni non assegnate, per iniziare a chattare con l'utente",
|
|
192
189
|
"Cancel": "Annulla",
|
|
193
190
|
"AreYouSure": "Sei sicuro?",
|
package/src/assets/i18n/kk.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "сен: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "Әзірге әңгіме жоқ",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "Сөйлесуді бастаңыз",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "қолжетімді",
|
|
6
5
|
"LABEL_AVAILABLE": "қолжетімді",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "жоқ",
|
|
7
|
+
"LABEL_INACTIVE":"белсенді емес",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "Бұл жерде әлі хабар жоқ...",
|
|
9
9
|
"LABEL_TODAY": "бүгін",
|
|
10
10
|
"LABEL_TOMORROW": "кеше",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "Қолданушының ID",
|
|
186
186
|
"CLOSE_TOAST": "Жабық",
|
|
187
187
|
"WAITING_FOR_NETWORK": "Желі күтілуде",
|
|
188
|
-
"Available": "Қол жетімді",
|
|
189
|
-
"Unavailable": "Қолжетімсіз",
|
|
190
|
-
"Busy": "Бос емес",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "Егер сіз осы әңгімеге қосылсаңыз, ол сөйлесулер тізімінде пайда болады. Пайдаланушымен сөйлесуді бастау үшін тағайындалмаған сөйлесулердің бүйірлік тақтасын жапқаннан кейін оны таңдау керек",
|
|
192
189
|
"Cancel": "Болдырмау",
|
|
193
190
|
"AreYouSure": "Сіз сенімдісіз бе?",
|
package/src/assets/i18n/pt.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "vocês: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "Nenhuma conversa ainda",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "Começar a conversar",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "disponível",
|
|
6
5
|
"LABEL_AVAILABLE": "disponível",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "não disponível",
|
|
7
|
+
"LABEL_INACTIVE":"inativo",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "Ainda sem mensagem aqui...",
|
|
9
9
|
"LABEL_TODAY": "hoje",
|
|
10
10
|
"LABEL_TOMORROW": "ontem",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "ID do usuário",
|
|
186
186
|
"CLOSE_TOAST": "Fechar",
|
|
187
187
|
"WAITING_FOR_NETWORK": "Aguardando rede",
|
|
188
|
-
"Available": "Disponível",
|
|
189
|
-
"Unavailable": "Indisponível",
|
|
190
|
-
"Busy": "Ocupado",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "Se você participar desta conversa, ela aparecerá na lista de conversas. Você terá que selecioná-lo, depois de fechar a barra lateral de conversas não atribuídas, para começar a conversar com o usuário",
|
|
192
189
|
"Cancel": "Cancelar",
|
|
193
190
|
"AreYouSure": "Tem certeza?",
|
package/src/assets/i18n/ru.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "ты: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "Разговора пока нет",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "Начать чат",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "имеется в наличии",
|
|
6
5
|
"LABEL_AVAILABLE": "имеется в наличии",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "недоступно",
|
|
7
|
+
"LABEL_INACTIVE":"неактивный",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "До сих пор нет сообщения здесь...",
|
|
9
9
|
"LABEL_TODAY": "сегодня",
|
|
10
10
|
"LABEL_TOMORROW": "вчерашний день",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "Идентификатор пользователя",
|
|
186
186
|
"CLOSE_TOAST": "Закрывать",
|
|
187
187
|
"WAITING_FOR_NETWORK": "Ожидание сети",
|
|
188
|
-
"Available": "Доступный",
|
|
189
|
-
"Unavailable": "Недоступен",
|
|
190
|
-
"Busy": "Занятый",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "Если вы присоединитесь к этой беседе, она появится в списке бесед. Затем вам нужно будет выбрать его после закрытия боковой панели неназначенных разговоров, чтобы начать общение с пользователем.",
|
|
192
189
|
"Cancel": "Отмена",
|
|
193
190
|
"AreYouSure": "Уверены ли вы?",
|
package/src/assets/i18n/sr.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "ти: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "Још нема разговора",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "Почнете разговор",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "на располагању",
|
|
6
5
|
"LABEL_AVAILABLE": "на располагању",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "није доступно",
|
|
7
|
+
"LABEL_INACTIVE":"неактиван",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "Још увек нема поруке овде...",
|
|
9
9
|
"LABEL_TODAY": "данас",
|
|
10
10
|
"LABEL_TOMORROW": "јуче",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "ИД корисник",
|
|
186
186
|
"CLOSE_TOAST": "Затвори",
|
|
187
187
|
"WAITING_FOR_NETWORK": "Чека се мрежа",
|
|
188
|
-
"Available": "На располагању",
|
|
189
|
-
"Unavailable": "Недоступно",
|
|
190
|
-
"Busy": "Заузет",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "Ако се придружите овој конверзацији, она ће се појавити на листи разговора. Затим ћете морати да га изаберете, након што затворите бочну траку недодељених разговора, да бисте започели ћаскање са корисником",
|
|
192
189
|
"Cancel": "Поништити, отказати",
|
|
193
190
|
"AreYouSure": "Да ли сте сигурни?",
|
package/src/assets/i18n/sv.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "du: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "Ingen konversation ännu",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "Börja chatta",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "tillgängligt",
|
|
6
5
|
"LABEL_AVAILABLE": "tillgängligt",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "inte tillgänglig",
|
|
7
|
+
"LABEL_INACTIVE":"inaktiv",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "Fortfarande inget meddelande här...",
|
|
9
9
|
"LABEL_TODAY": "i dag",
|
|
10
10
|
"LABEL_TOMORROW": "i går",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "användar ID",
|
|
186
186
|
"CLOSE_TOAST": "Stänga",
|
|
187
187
|
"WAITING_FOR_NETWORK": "Väntar på nätverk",
|
|
188
|
-
"Available": "Tillgängligt",
|
|
189
|
-
"Unavailable": "Inte tillgänglig",
|
|
190
|
-
"Busy": "Upptagen",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "Om du går med i den här konversationen kommer den att visas i konversationslistan. Du måste sedan välja den, efter att ha stängt sidofältet för otilldelade konversationer, för att börja chatta med användaren",
|
|
192
189
|
"Cancel": "Annullera",
|
|
193
190
|
"AreYouSure": "Är du säker?",
|
package/src/assets/i18n/tr.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "sen: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "Henüz görüşme yok",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "Sohbeti başlat",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "mevcut",
|
|
6
5
|
"LABEL_AVAILABLE": "mevcut",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "müsait değil",
|
|
7
|
+
"LABEL_INACTIVE":"etkin değil",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "Hala mesaj yok...",
|
|
9
9
|
"LABEL_TODAY": "bugün",
|
|
10
10
|
"LABEL_TOMORROW": "dün",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "Kullanıcı kimliği",
|
|
186
186
|
"CLOSE_TOAST": "Kapat",
|
|
187
187
|
"WAITING_FOR_NETWORK": "Ağ bekleniyor",
|
|
188
|
-
"Available": "Mevcut",
|
|
189
|
-
"Unavailable": "Kullanım dışı",
|
|
190
|
-
"Busy": "Meşgul",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "Bu sohbete katılırsanız, konuşma listesinde görünecektir. Daha sonra, kullanıcıyla sohbet etmeye başlamak için, atanmamış konuşmaların kenar çubuğunu kapattıktan sonra onu seçmeniz gerekecektir.",
|
|
192
189
|
"Cancel": "İptal etmek",
|
|
193
190
|
"AreYouSure": "Emin misin?",
|
package/src/assets/i18n/uk.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"LABEL_TU": "ти: ",
|
|
3
3
|
"LABEL_MSG_PUSH_START_CHAT": "Розмови ще немає",
|
|
4
4
|
"LABEL_MSG_START_CHAT": "Почніть спілкуватися",
|
|
5
|
-
"LABEL_ACTIVE_NOW": "доступний",
|
|
6
5
|
"LABEL_AVAILABLE": "доступний",
|
|
7
6
|
"LABEL_NOT_AVAILABLE": "недоступний",
|
|
7
|
+
"LABEL_INACTIVE":"неактивний",
|
|
8
8
|
"LABEL_NO_MSG_HERE": "Тут досі немає повідомлення...",
|
|
9
9
|
"LABEL_TODAY": "сьогодні",
|
|
10
10
|
"LABEL_TOMORROW": "вчора",
|
|
@@ -185,9 +185,6 @@
|
|
|
185
185
|
"USER_ID": "ідентифікатор користувача",
|
|
186
186
|
"CLOSE_TOAST": "Закрити",
|
|
187
187
|
"WAITING_FOR_NETWORK": "Очікування мережі",
|
|
188
|
-
"Available": "Доступний",
|
|
189
|
-
"Unavailable": "Недоступно",
|
|
190
|
-
"Busy": "Зайняте",
|
|
191
188
|
"YouAreAboutToJoinThisChat": "Якщо ви приєднаєтесь до цієї розмови, вона з’явиться в списку розмов. Потім вам потрібно буде вибрати його, закривши бічну панель непризначених розмов, щоб почати спілкуватися з користувачем",
|
|
192
189
|
"Cancel": "Скасувати",
|
|
193
190
|
"AreYouSure": "Ти впевнений?",
|
package/src/assets/i18n/uz.json
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"LABEL_TU": "siz: ",
|
|
4
4
|
"LABEL_MSG_PUSH_START_CHAT": "Hali suhbat yo'q",
|
|
5
5
|
"LABEL_MSG_START_CHAT": "Suhbatni boshlang",
|
|
6
|
-
"LABEL_ACTIVE_NOW": "mavjud",
|
|
7
6
|
"LABEL_AVAILABLE": "mavjud",
|
|
8
7
|
"LABEL_NOT_AVAILABLE": "mavjud emas",
|
|
8
|
+
"LABEL_INACTIVE":"harakatsiz",
|
|
9
9
|
"LABEL_NO_MSG_HERE": "Bu yerda hali xabar yo'q...",
|
|
10
10
|
"LABEL_TODAY": "Bugun",
|
|
11
11
|
"LABEL_TOMORROW": "kecha",
|
|
@@ -186,9 +186,6 @@
|
|
|
186
186
|
"USER_ID": "foydalanuvchi IDsi",
|
|
187
187
|
"CLOSE_TOAST": "Yopish",
|
|
188
188
|
"WAITING_FOR_NETWORK": "Tarmoq kutilmoqda",
|
|
189
|
-
"Available": "Mavjud",
|
|
190
|
-
"Unavailable": "Mavjud emas",
|
|
191
|
-
"Busy": "Band",
|
|
192
189
|
"YouAreAboutToJoinThisChat": "Agar siz ushbu suhbatga qo'shilsangiz, u suhbatlar ro'yxatida paydo bo'ladi. Keyin, tayinlanmagan suhbatlar yon panelini yopganingizdan so'ng, foydalanuvchi bilan suhbatni boshlash uchun uni tanlashingiz kerak bo'ladi",
|
|
193
190
|
"Cancel": "Bekor qilish",
|
|
194
191
|
"AreYouSure": "Ishonchingiz komilmi?",
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
2
|
+
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
|
3
|
+
<style type="text/css">
|
|
4
|
+
.st0{fill:none;}
|
|
5
|
+
.st1{fill:#4CAF50;}
|
|
6
|
+
</style>
|
|
7
|
+
<path class="st0" d="M0,0h24v24H0V0z"/>
|
|
8
|
+
<path class="st1" d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z"/>
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
.st0{fill:none;}
|
|
7
|
+
.st1{fill:#697482;}
|
|
8
|
+
</style>
|
|
9
|
+
<path class="st0" d="M0,0h24v24H0V0z"/>
|
|
10
|
+
<path class="st1" d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z"/>
|
|
11
|
+
</svg>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
2
|
+
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
|
3
|
+
<style type="text/css">
|
|
4
|
+
.st0{fill:none;}
|
|
5
|
+
.st1{fill:#F44336;}
|
|
6
|
+
</style>
|
|
7
|
+
<path class="st0" d="M0,0h24v24H0V0z"/>
|
|
8
|
+
<path class="st1" d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z"/>
|
|
9
|
+
</svg>
|
package/src/chat-config-pre.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"apiUrl": "https://tiledesk-server-pre.herokuapp.com/",
|
|
25
25
|
"baseImageUrl": "https://firebasestorage.googleapis.com/v0/b/",
|
|
26
|
-
"dashboardUrl": "/dashboard/",
|
|
26
|
+
"dashboardUrl": "https://support-pre.tiledesk.com/dashboard/",
|
|
27
27
|
"logLevel": "DEBUG",
|
|
28
28
|
"authPersistence": "LOCAL",
|
|
29
29
|
"supportMode": true,
|
package/src/global.scss
CHANGED
|
@@ -603,12 +603,6 @@ select:-webkit-autofill:focus {
|
|
|
603
603
|
max-width: 35px;
|
|
604
604
|
}
|
|
605
605
|
|
|
606
|
-
.small-sidebar-status-icon {
|
|
607
|
-
left: 26px !important;
|
|
608
|
-
bottom: -1px !important;
|
|
609
|
-
width: 12px !important;
|
|
610
|
-
height: 12px !important;
|
|
611
|
-
}
|
|
612
606
|
|
|
613
607
|
.status-icon {
|
|
614
608
|
position: absolute;
|
|
@@ -619,6 +613,11 @@ select:-webkit-autofill:focus {
|
|
|
619
613
|
border: 2px solid #2d323e;
|
|
620
614
|
border-radius: 50%;
|
|
621
615
|
// background-color: #4caf50;
|
|
616
|
+
|
|
617
|
+
left: 26px;
|
|
618
|
+
bottom: -1px;
|
|
619
|
+
width: 12px;
|
|
620
|
+
height: 12px;
|
|
622
621
|
}
|
|
623
622
|
|
|
624
623
|
.small-sidebar-camera-icon {
|
|
@@ -696,9 +695,6 @@ select:-webkit-autofill:focus {
|
|
|
696
695
|
color: #fff !important;
|
|
697
696
|
pointer-events: none;
|
|
698
697
|
}
|
|
699
|
-
.is-user-online {
|
|
700
|
-
background-color: #4caf50;
|
|
701
|
-
}
|
|
702
698
|
|
|
703
699
|
.is-desktop-menu {
|
|
704
700
|
margin-top: 40px;
|
|
@@ -786,6 +782,9 @@ select:-webkit-autofill:focus {
|
|
|
786
782
|
.is-user-offline {
|
|
787
783
|
background-color: #f44336;
|
|
788
784
|
}
|
|
785
|
+
.is-user-inactive {
|
|
786
|
+
background-color: #697482;
|
|
787
|
+
}
|
|
789
788
|
|
|
790
789
|
.is-desktop-menu {
|
|
791
790
|
margin-top: 40px;
|
|
@@ -794,6 +793,65 @@ select:-webkit-autofill:focus {
|
|
|
794
793
|
margin-top: 0px;
|
|
795
794
|
}
|
|
796
795
|
|
|
796
|
+
// select teammate status in user detail drawer
|
|
797
|
+
.ng-select.teammate-status-in-drawer {
|
|
798
|
+
|
|
799
|
+
.ng-select-container {
|
|
800
|
+
background-color: #2d323e;
|
|
801
|
+
color: #fff;
|
|
802
|
+
border: 1px solid #2d323e;
|
|
803
|
+
}
|
|
804
|
+
&.ng-select-opened{
|
|
805
|
+
.ng-select-container {
|
|
806
|
+
background-color: #2d323e;
|
|
807
|
+
border: 1px solid #2d323e;
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
&.ng-select-focused:not(.ng-select-opened){
|
|
812
|
+
>.ng-select-container{
|
|
813
|
+
border: 1px solid #2d323e;
|
|
814
|
+
box-shadow: unset;
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
|
|
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 {
|
|
843
|
+
background-color: #2d323e;
|
|
844
|
+
color: #fff;
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
&.ng-option-marked.ng-option-selected{
|
|
848
|
+
background-color: rgba(30, 33, 41, 0.3);
|
|
849
|
+
color: #fff;
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
}
|
|
854
|
+
}
|
|
797
855
|
|
|
798
856
|
|
|
799
857
|
/* *** SMALL SIDEBAR STYLE *** */
|