@chat21/chat21-ionic 3.0.59-rc4 → 3.0.59
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 +77 -0
- package/README.md +5 -0
- package/config.xml +2 -2
- package/env.sample +3 -1
- package/package.json +1 -1
- package/resources/Android/splash/drawable-land-hdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-land-ldpi-screen.png +0 -0
- package/resources/Android/splash/drawable-land-mdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-land-xhdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-land-xxhdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-land-xxxhdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-port-hdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-port-ldpi-screen.png +0 -0
- package/resources/Android/splash/drawable-port-mdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-port-xhdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-port-xxhdpi-screen.png +0 -0
- package/resources/Android/splash/drawable-port-xxxhdpi-screen.png +0 -0
- package/resources/Android/splash.png +0 -0
- package/src/app/app.component.scss +10 -5
- package/src/app/app.component.ts +393 -234
- package/src/app/app.module.ts +12 -7
- package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.html +1 -1
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +7 -6
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +2 -1
- package/src/app/chatlib/list-conversations-component/list-conversations/list-conversations.component.html +1 -1
- package/src/app/components/authentication/login/login.component.html +8 -8
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +2 -4
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +7 -2
- package/src/app/components/ddp-header/ddp-header.component.html +1 -1
- package/src/app/components/ddp-header/ddp-header.component.ts +4 -2
- package/src/app/components/project-item/project-item.component.html +61 -16
- package/src/app/components/project-item/project-item.component.scss +165 -38
- package/src/app/components/project-item/project-item.component.ts +58 -36
- package/src/app/pages/authentication/login/login.page.html +1 -2
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +2 -0
- package/src/app/pages/conversations-list/conversations-list.page.html +12 -7
- package/src/app/pages/conversations-list/conversations-list.page.scss +279 -261
- package/src/app/pages/conversations-list/conversations-list.page.ts +149 -17
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +10 -2
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +79 -0
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +47 -36
- package/src/app/services/app-config.ts +77 -5
- package/src/app/services/websocket/websocket-js.ts +12 -14
- package/src/app/services/websocket/websocket.service.ts +26 -8
- package/src/assets/i18n/en.json +2 -1
- package/src/assets/i18n/it.json +2 -1
- package/src/assets/js/chat21client.js +144 -82
- package/src/assets/logo.png +0 -0
- package/src/assets/transparent.png +0 -0
- package/src/chat-config-pre-test.json +3 -1
- package/src/chat-config-template.json +4 -1
- package/src/chat-config.json +4 -1
- package/src/chat21-core/providers/firebase/firebase-archivedconversations-handler.ts +1 -1
- package/src/chat21-core/providers/firebase/firebase-conversations-handler.ts +1 -1
- package/src/chat21-core/providers/firebase/firebase-notifications.ts +31 -23
- package/src/chat21-core/providers/mqtt/mqtt-auth-service.ts +27 -27
- package/src/chat21-core/providers/mqtt/mqtt-conversation-handler.ts +3 -5
- package/src/chat21-core/providers/mqtt/mqtt-conversations-handler.ts +13 -5
- package/src/chat21-core/providers/mqtt/mqtt-notifications.ts +101 -11
- package/src/chat21-core/providers/tiledesk/tiledesk-auth.service.ts +12 -3
- package/src/chat21-core/utils/utils-message.ts +2 -2
- package/src/firebase-messaging-sw-template.js +1 -1
- package/src/assets/images/tiledesk_logo_50x50.png +0 -0
package/src/app/app.module.ts
CHANGED
|
@@ -103,7 +103,7 @@ export function createTranslateLoader(http: HttpClient) {
|
|
|
103
103
|
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
export function authenticationFactory(http: HttpClient, appConfig: AppConfigProvider, chat21Service: Chat21Service, appSorage: AppStorageService, network: Network, connectionService:ConnectionService) {
|
|
106
|
+
export function authenticationFactory(http: HttpClient, appConfig: AppConfigProvider, chat21Service: Chat21Service, appSorage: AppStorageService, network: Network, connectionService: ConnectionService) {
|
|
107
107
|
const config = appConfig.getConfig()
|
|
108
108
|
if (config.chatEngine === CHAT_ENGINE_MQTT) {
|
|
109
109
|
|
|
@@ -112,8 +112,13 @@ export function authenticationFactory(http: HttpClient, appConfig: AppConfigProv
|
|
|
112
112
|
|
|
113
113
|
const auth = new MQTTAuthService(http, chat21Service, appSorage);
|
|
114
114
|
|
|
115
|
-
auth.setBaseUrl(appConfig.getConfig().apiUrl)
|
|
116
|
-
|
|
115
|
+
auth.setBaseUrl(appConfig.getConfig().apiUrl);
|
|
116
|
+
|
|
117
|
+
if (config.pushEngine = PUSH_ENGINE_MQTT) {
|
|
118
|
+
// FOR PUSH NOTIFICATIONS INIT FIREBASE APP
|
|
119
|
+
FirebaseInitService.initFirebase(config.firebaseConfig);
|
|
120
|
+
}
|
|
121
|
+
|
|
117
122
|
return auth
|
|
118
123
|
} else {
|
|
119
124
|
|
|
@@ -121,7 +126,7 @@ export function authenticationFactory(http: HttpClient, appConfig: AppConfigProv
|
|
|
121
126
|
// console.log('[APP-MOD] FirebaseInitService config ', config)
|
|
122
127
|
const auth = new FirebaseAuthService(http, network, connectionService);
|
|
123
128
|
auth.setBaseUrl(config.apiUrl)
|
|
124
|
-
|
|
129
|
+
|
|
125
130
|
return auth
|
|
126
131
|
}
|
|
127
132
|
}
|
|
@@ -217,12 +222,12 @@ export function uploadFactory(http: HttpClient, appConfig: AppConfigProvider, ap
|
|
|
217
222
|
}
|
|
218
223
|
}
|
|
219
224
|
|
|
220
|
-
export function notificationsServiceFactory(appConfig: AppConfigProvider) {
|
|
225
|
+
export function notificationsServiceFactory(appConfig: AppConfigProvider, chat21Service: Chat21Service) {
|
|
221
226
|
const config = appConfig.getConfig()
|
|
222
227
|
if (config.pushEngine === PUSH_ENGINE_FIREBASE) {
|
|
223
228
|
return new FirebaseNotifications();
|
|
224
229
|
} else if (config.pushEngine === PUSH_ENGINE_MQTT) {
|
|
225
|
-
return new MQTTNotifications();
|
|
230
|
+
return new MQTTNotifications(chat21Service);
|
|
226
231
|
} else {
|
|
227
232
|
return;
|
|
228
233
|
}
|
|
@@ -340,7 +345,7 @@ const appInitializerFn = (appConfig: AppConfigProvider, logger: NGXLogger) => {
|
|
|
340
345
|
{
|
|
341
346
|
provide: NotificationsService,
|
|
342
347
|
useFactory: notificationsServiceFactory,
|
|
343
|
-
deps: [AppConfigProvider]
|
|
348
|
+
deps: [AppConfigProvider, Chat21Service]
|
|
344
349
|
},
|
|
345
350
|
{
|
|
346
351
|
provide: AppStorageService,
|
package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.html
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<div class="chat21-bounce1" [ngStyle]="{'background-color': stylesMap.get('themeColor')}"></div>
|
|
11
11
|
<div class="chat21-bounce2" [ngStyle]="{'background-color': stylesMap.get('themeColor')}"></div>
|
|
12
12
|
<div class="chat21-bounce3" [ngStyle]="{'background-color': stylesMap.get('themeColor')}"></div>
|
|
13
|
-
<span>{{translationMap
|
|
13
|
+
<span>{{translationMap?.get('LABEL_LOADING')}}</span>
|
|
14
14
|
</div>
|
|
15
15
|
</span>
|
|
16
16
|
|
|
@@ -74,6 +74,7 @@
|
|
|
74
74
|
</ion-item-options>
|
|
75
75
|
</ion-item-sliding> -->
|
|
76
76
|
|
|
77
|
+
|
|
77
78
|
<ion-item button="true" lines="none" class="ion-no-padding" [class.ion-selected]="conversation.uid === uidConvSelected"
|
|
78
79
|
*ngFor="let conversation of listConversations" (click)="openConversationByID(conversation)" detail=false>
|
|
79
80
|
<div tabindex="0"></div>
|
|
@@ -117,7 +118,8 @@
|
|
|
117
118
|
<ion-note *ngIf="!conversation.archived" class="conversation_time">{{conversation.timestamp | amTimeAgo}}</ion-note>
|
|
118
119
|
|
|
119
120
|
<ion-buttons slot="end">
|
|
120
|
-
<ion-button *ngIf="!conversation.archived"
|
|
121
|
+
<ion-button *ngIf="!conversation.archived"
|
|
122
|
+
[ngClass]="{'hide': !isApp, 'button-on-desktop': !isApp, 'button-on-mobile': isApp }"
|
|
121
123
|
id="{{ 'close_conversation_button' + conversation.uid }}" class="close-conversation-button" ion-button clear
|
|
122
124
|
item-end (click)="closeConversation(conversation);$event.stopPropagation();" padding>
|
|
123
125
|
<ion-icon slot="icon-only" style="display:block;" id="{{ 'close_button_icon' + conversation.uid }}"
|
|
@@ -132,21 +134,20 @@
|
|
|
132
134
|
|
|
133
135
|
<div item-end *ngIf="conversation?.archived" class="achived-icon-wpr">
|
|
134
136
|
<span *ngIf="(conversation.timestamp | amDateFormat:'YYYY') === currentYear" class="time-in-archived">
|
|
135
|
-
{{browserLang === '
|
|
136
|
-
amDateFormat:'MMM DD')}}
|
|
137
|
+
{{browserLang === 'en' ? (conversation.timestamp | amDateFormat:'MMM DD') : (conversation.timestamp| amDateFormat:'DD MMM')}}
|
|
137
138
|
|
|
138
139
|
<!-- {{conversation.timestamp | amDateFormat:'DD MMM'}} -->
|
|
139
140
|
</span>
|
|
140
141
|
<span *ngIf="(conversation.timestamp | amDateFormat:'YYYY') !== currentYear" class="time-in-archived">
|
|
141
|
-
{{browserLang === '
|
|
142
|
-
amDateFormat:'MMM DD YYYY')}}
|
|
142
|
+
{{browserLang === 'en' ? (conversation.timestamp | amDateFormat:'MMM DD YYYY') : (conversation.timestamp| amDateFormat:'DD MMM YYYY') }}
|
|
143
143
|
<!-- {{conversation.timestamp | amDateFormat:'DD MMM YYYY'}} -->
|
|
144
144
|
</span>
|
|
145
145
|
<i class="material-icons" item-end style="font-size: 15px;font-weight: 400;color: #666666;"> history </i>
|
|
146
146
|
</div>
|
|
147
147
|
|
|
148
148
|
<!-- && !conversation?.archived -->
|
|
149
|
-
<div item-end class="notification_point"
|
|
149
|
+
<div item-end class="notification_point"
|
|
150
|
+
[ngClass]="{'notification_point-on-desktop': !isApp, 'notification_point-on-mobile': isApp }"
|
|
150
151
|
*ngIf="conversation.is_new">
|
|
151
152
|
</div>
|
|
152
153
|
|
|
@@ -78,9 +78,10 @@ export class IonListConversationsComponent extends ListConversationsComponent im
|
|
|
78
78
|
this.isApp = this.platform.is('ios') || this.platform.is('android')
|
|
79
79
|
this.logger.log('[ION-LIST-CONVS-COMP] - ngOnInit - IS-APP ', this.isApp)
|
|
80
80
|
this.logger.log('[ION-LIST-CONVS-COMP] - ngOnInit - Platform', this.platform.platforms());
|
|
81
|
-
|
|
82
81
|
}
|
|
83
82
|
|
|
83
|
+
|
|
84
|
+
|
|
84
85
|
|
|
85
86
|
|
|
86
87
|
// --------------------------------------------------
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
width="24px" height="24px" viewBox="0 0 24 24">
|
|
35
35
|
<path fill="none" d="M0 0h24v24H0z"/>
|
|
36
36
|
<path d="M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"/>
|
|
37
|
-
<title id="altIconTitle">{{ translationMap
|
|
37
|
+
<title id="altIconTitle">{{ translationMap?.get('CLOSED') }}</title>
|
|
38
38
|
</svg>
|
|
39
39
|
</button>
|
|
40
40
|
</div>
|
|
@@ -8,25 +8,25 @@
|
|
|
8
8
|
|
|
9
9
|
<div class="signin-title" style="text-align:center">
|
|
10
10
|
<h2 style="font-family: 'Montserrat', sans-serif; font-weight: 400;">
|
|
11
|
-
{{ translationMap
|
|
11
|
+
{{ translationMap?.get('LABEL_SIGNIN_TO') }}
|
|
12
12
|
{{companyName}}
|
|
13
13
|
</h2>
|
|
14
14
|
</div>
|
|
15
15
|
<div class="login-container">
|
|
16
16
|
<form [formGroup]="userForm" (ngSubmit)="signInWithEmailAndPassword()" novalidate>
|
|
17
17
|
|
|
18
|
-
<ion-label stacked for="email">{{ translationMap
|
|
18
|
+
<ion-label stacked for="email">{{ translationMap?.get('LABEL_EMAIL') }}</ion-label>
|
|
19
19
|
<ion-input #email formControlName="email" type="email" id="email" required autocapitalize="off" spellcheck="false"
|
|
20
|
-
placeholder="{{ translationMap
|
|
20
|
+
placeholder="{{ translationMap?.get('LABEL_PLACEHOLDER_EMAIL') }}"
|
|
21
21
|
[class.invalid]="!userForm.controls.email.valid" ></ion-input>
|
|
22
22
|
<div *ngIf="formErrors.email" class="is-danger">
|
|
23
23
|
{{ formErrors.email }}
|
|
24
24
|
</div>
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
<ion-label stacked for="password">{{ translationMap
|
|
27
|
+
<ion-label stacked for="password">{{ translationMap?.get('LABEL_PASSWORD') }}</ion-label>
|
|
28
28
|
<ion-input #password formControlName="password" type="password" id="password" required
|
|
29
|
-
placeholder="{{ translationMap
|
|
29
|
+
placeholder="{{ translationMap?.get('LABEL_PLACEHOLDER_PASSWORD') }}"
|
|
30
30
|
[class.invalid]="!userForm.controls.password.valid"></ion-input>
|
|
31
31
|
|
|
32
32
|
<div *ngIf="formErrors.password" class="is-danger">
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
|
|
37
37
|
<button type="submit" class="btn signin-button ion-activatable ripple-parent" [ngClass]="{'signin-button-is-disabled': !userForm.valid}" [disabled]="!userForm.valid">
|
|
38
38
|
<span class="signin-button-label" *ngIf="showSpinnerInLoginBtn === false" >
|
|
39
|
-
{{ translationMap
|
|
39
|
+
{{ translationMap?.get('LABEL_SIGNIN') }}
|
|
40
40
|
</span>
|
|
41
41
|
<ion-ripple-effect type="unbounded"></ion-ripple-effect>
|
|
42
42
|
<ion-spinner *ngIf="showSpinnerInLoginBtn === true" name="bubbles" color="white" duration="2" ></ion-spinner>
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
</p> -->
|
|
51
51
|
|
|
52
52
|
<p style="color: #666666; font-size: 1.1em; text-align: center; margin-top: 16px;">
|
|
53
|
-
{{ translationMap
|
|
53
|
+
{{ translationMap?.get('LABEL_FORGOT_YOUR_PASSWORD') }}
|
|
54
54
|
<span style="color: #03a5e8; cursor:pointer" (click)="goToResetPsw()">
|
|
55
|
-
{{ translationMap
|
|
55
|
+
{{ translationMap?.get('LABEL_CLICK_HERE') }}
|
|
56
56
|
</span>
|
|
57
57
|
</p>
|
|
58
58
|
|
|
@@ -3,10 +3,8 @@
|
|
|
3
3
|
<ion-toolbar>
|
|
4
4
|
|
|
5
5
|
<ion-buttons slot="start">
|
|
6
|
-
<!-- (click)="pushPage('conversations-list')" -->
|
|
7
|
-
<ion-back-button text="" *ngIf="isMobile"
|
|
8
|
-
defaultHref="/conversations-list"
|
|
9
|
-
>
|
|
6
|
+
<!-- (click)="pushPage('conversations-list')" defaultHref="/conversations-list" -->
|
|
7
|
+
<ion-back-button style="display: block;" text="" *ngIf="isMobile" (click)="goBackToConversationList()">
|
|
10
8
|
</ion-back-button>
|
|
11
9
|
</ion-buttons>
|
|
12
10
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, OnInit, Input, Output, EventEmitter, OnChanges } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute } from '@angular/router';
|
|
2
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
3
|
import { ImageRepoService } from 'src/chat21-core/providers/abstract/image-repo.service';
|
|
4
4
|
|
|
5
5
|
// Logger
|
|
@@ -43,7 +43,8 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
|
|
|
43
43
|
constructor(
|
|
44
44
|
public imageRepoService: ImageRepoService,
|
|
45
45
|
private route: ActivatedRoute,
|
|
46
|
-
public platform: Platform
|
|
46
|
+
public platform: Platform,
|
|
47
|
+
private router: Router
|
|
47
48
|
) {
|
|
48
49
|
this.route.paramMap.subscribe(params => {
|
|
49
50
|
|
|
@@ -125,4 +126,8 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
|
|
|
125
126
|
/** */
|
|
126
127
|
pushPage(event) { }
|
|
127
128
|
|
|
129
|
+
goBackToConversationList() {
|
|
130
|
+
this.router.navigateByUrl('/conversations-list');
|
|
131
|
+
}
|
|
132
|
+
|
|
128
133
|
}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
<ion-buttons slot="end">
|
|
16
16
|
|
|
17
|
-
<ion-button *ngIf="
|
|
17
|
+
<ion-button *ngIf="supportMode" ion-button fill="clear" (click)="onOpenContactsDirectory($event)">
|
|
18
18
|
<ion-icon slot="icon-only" name="create-outline"></ion-icon>
|
|
19
19
|
</ion-button>
|
|
20
20
|
|
|
@@ -7,14 +7,16 @@ import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
|
|
|
7
7
|
})
|
|
8
8
|
export class DdpHeaderComponent implements OnInit {
|
|
9
9
|
@Input() numberOpenConv: number;
|
|
10
|
-
@Input() supportMode
|
|
10
|
+
@Input() supportMode: boolean;
|
|
11
11
|
@Output() openContactsDirectory = new EventEmitter();
|
|
12
12
|
@Output() openProfileInfo = new EventEmitter();
|
|
13
13
|
|
|
14
14
|
constructor(
|
|
15
15
|
) { }
|
|
16
16
|
|
|
17
|
-
ngOnInit() {
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
// console.log('DDP HEADER SUPPORT MODE ', this.supportMode)
|
|
19
|
+
}
|
|
18
20
|
|
|
19
21
|
// START @Output() //
|
|
20
22
|
/** */
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<div class="flex-child-left">
|
|
16
16
|
<!-- padding:6px; background: rgb(31,107,192); -->
|
|
17
17
|
<div class="unassigned-notifications-icon-wpr">
|
|
18
|
-
<svg viewBox="0 0 28 28" alt="" class="a8c37x1j ms05siws hwsy1cff b7h9ocf4 fzdkajry" height="40"
|
|
18
|
+
<!-- <svg viewBox="0 0 28 28" alt="" class="a8c37x1j ms05siws hwsy1cff b7h9ocf4 fzdkajry" height="40"
|
|
19
19
|
width="40"
|
|
20
20
|
style="vertical-align: middle;border-radius: 50%;">
|
|
21
21
|
<style type="text/css">
|
|
@@ -26,21 +26,40 @@
|
|
|
26
26
|
<path class="notifications-icons"
|
|
27
27
|
d="M7.847 23.488C9.207 23.488 11.443 23.363 14.467 22.806 13.944 24.228 12.581 25.247 10.98 25.247 9.649 25.247 8.483 24.542 7.825 23.488L7.847 23.488ZM24.923 15.73C25.17 17.002 24.278 18.127 22.27 19.076 21.17 19.595 18.724 20.583 14.684 21.369 11.568 21.974 9.285 22.113 7.848 22.113 7.421 22.113 7.068 22.101 6.79 22.085 4.574 21.958 3.324 21.248 3.077 19.976 2.702 18.049 3.295 17.305 4.278 16.073L4.537 15.748C5.2 14.907 5.459 14.081 5.035 11.902 4.086 7.022 6.284 3.687 11.064 2.753 15.846 1.83 19.134 4.096 20.083 8.977 20.506 11.156 21.056 11.824 21.986 12.355L21.986 12.356 22.348 12.561C23.72 13.335 24.548 13.802 24.923 15.73Z">
|
|
28
28
|
</path>
|
|
29
|
+
</svg> -->
|
|
30
|
+
|
|
31
|
+
<!-- <svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="bell"
|
|
32
|
+
class="svg-inline--fa fa-bell fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg"
|
|
33
|
+
viewBox="0 0 448 512" height="auto" width="24px">
|
|
34
|
+
<path fill="currentColor"
|
|
35
|
+
d="M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z">
|
|
36
|
+
</path>
|
|
37
|
+
</svg> -->
|
|
38
|
+
|
|
39
|
+
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false"
|
|
40
|
+
class="style-scope yt-icon"
|
|
41
|
+
style="pointer-events: none; width: 37px; height:auto; fill: rgb(107,107,107);margin-left:4px">
|
|
42
|
+
<g class="style-scope yt-icon">
|
|
43
|
+
<path
|
|
44
|
+
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"
|
|
45
|
+
class="style-scope yt-icon"></path>
|
|
46
|
+
</g>
|
|
29
47
|
</svg>
|
|
48
|
+
|
|
30
49
|
</div>
|
|
31
50
|
<div class="unassigned-notifications-badge">
|
|
32
51
|
<!-- || currentUserRequestCount > 0 -->
|
|
33
52
|
<!-- <span *ngIf="unservedRequestCount > 0 "> -->
|
|
34
|
-
|
|
35
|
-
|
|
53
|
+
<!-- + currentUserRequestCount -->
|
|
54
|
+
<span class="notification-count">{{ unservedRequestCount }}</span>
|
|
36
55
|
<!-- </span> -->
|
|
37
|
-
|
|
56
|
+
|
|
38
57
|
</div>
|
|
39
58
|
|
|
40
59
|
</div>
|
|
41
60
|
|
|
42
|
-
|
|
43
|
-
<div class="flex-child-right"
|
|
61
|
+
|
|
62
|
+
<div class="flex-child-right">
|
|
44
63
|
<div class="project-name-project-for-panel">
|
|
45
64
|
{{ project?.id_project?.name }}
|
|
46
65
|
</div>
|
|
@@ -62,30 +81,56 @@
|
|
|
62
81
|
</span>
|
|
63
82
|
</div> -->
|
|
64
83
|
<div class="availabily-and-busy-wpr">
|
|
65
|
-
<div class="onoffswitch"
|
|
84
|
+
<!-- <div class="onoffswitch"
|
|
66
85
|
(click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)">
|
|
67
86
|
<input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch"
|
|
68
87
|
tabindex="0" [checked]="project?.ws_projct_user_available">
|
|
69
88
|
<label class="onoffswitch-label" for="myonoffswitch"></label>
|
|
89
|
+
</div> -->
|
|
90
|
+
<div class="availabily---wpr">
|
|
91
|
+
<!-- <div class="i_onoffswitch"
|
|
92
|
+
(click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)">
|
|
93
|
+
<input type="checkbox" name="i_onoffswitch" class="i_onoffswitch-checkbox"
|
|
94
|
+
id="i_switch_availability" tabindex="0" [checked]="project?.ws_projct_user_available">
|
|
95
|
+
<label style="margin-bottom: 0px" class="i_onoffswitch-label" for="i_switch_availability"></label>
|
|
96
|
+
</div> -->
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
<div class="onoffswitch"
|
|
100
|
+
(click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)">
|
|
101
|
+
<input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch"
|
|
102
|
+
tabindex="0" [checked]="project?.ws_projct_user_available">
|
|
103
|
+
<label class="onoffswitch-label" for="myonoffswitch"></label>
|
|
104
|
+
</div>
|
|
70
105
|
</div>
|
|
71
106
|
|
|
107
|
+
<!-- (click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)" -->
|
|
72
108
|
<span *ngIf="project?.ws_projct_user_available === true" class="availibility-status-text"
|
|
73
|
-
[ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}"
|
|
74
|
-
(
|
|
75
|
-
{{translationMap.get('Available') }}
|
|
109
|
+
[ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}">
|
|
110
|
+
{{translationMap?.get('Available') }}
|
|
76
111
|
</span>
|
|
112
|
+
<!-- (click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)" -->
|
|
77
113
|
<span *ngIf="project?.ws_projct_user_available === false" class="availibility-status-text"
|
|
78
|
-
[ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}"
|
|
79
|
-
(
|
|
80
|
-
{{translationMap.get('Unavailable')}}
|
|
114
|
+
[ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}">
|
|
115
|
+
{{translationMap?.get('Unavailable')}}
|
|
81
116
|
</span>
|
|
82
117
|
<div class="project-item--isBusy-icon-wpr" *ngIf="project?.ws_projct_user_isBusy === true">
|
|
83
|
-
<span class="material-icons project-item--isBusy-icon">
|
|
118
|
+
<!-- <span class="material-icons project-item--isBusy-icon">
|
|
84
119
|
access_time
|
|
85
|
-
</span>
|
|
120
|
+
</span> -->
|
|
121
|
+
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="16px"
|
|
122
|
+
viewBox="0 0 24 24" width="16px" fill="#FEB92C">
|
|
123
|
+
<g>
|
|
124
|
+
<path d="M0,0h24v24H0V0z" fill="none" />
|
|
125
|
+
</g>
|
|
126
|
+
<g>
|
|
127
|
+
<path
|
|
128
|
+
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" />
|
|
129
|
+
</g>
|
|
130
|
+
</svg>
|
|
86
131
|
</div>
|
|
87
132
|
<span *ngIf="project?.ws_projct_user_isBusy === true" class="project-item--isBusy-busy-text text-pulse-animation">
|
|
88
|
-
{{translationMap
|
|
133
|
+
{{translationMap?.get('Busy')}}
|
|
89
134
|
</span>
|
|
90
135
|
</div>
|
|
91
136
|
|