@chat21/chat21-ionic 3.0.65-rc2 → 3.0.65
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 +14 -0
- package/deploy_amazon_prod.sh +2 -2
- package/package.json +3 -3
- package/src/app/app.component.ts +14 -33
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +0 -10
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +1 -1
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +18 -30
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +1 -1
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +2 -0
- package/src/app/components/project-item/project-item.component.ts +5 -0
- package/src/app/components/sidebar/sidebar.component.ts +8 -15
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +12 -23
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.scss +3 -0
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +88 -136
- package/src/app/directives/truncate.pipe.ts +0 -1
- package/src/app/pages/authentication/login/login.page.ts +0 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +40 -44
- package/src/app/pages/conversations-list/conversations-list.page.ts +25 -5
- package/src/assets/i18n/ar.json +266 -0
- package/src/chat21-core/providers/firebase/firebase-archivedconversations-handler.ts +26 -21
- package/src/chat21-core/providers/firebase/firebase-conversations-handler.ts +62 -55
- package/src/chat21-core/utils/constants.ts +1 -1
- package/src/global.scss +2 -2
- package/deploy_prod.sh +0 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# chat21-ionic ver 3.0
|
|
2
2
|
|
|
3
|
+
### 3.0.65 in PROD
|
|
4
|
+
- bug-fixed: icons in sidebar were not alignet correctly on Safari
|
|
5
|
+
- bug-fixed: missing translations on sidebar-detail component and login-modal page on start when user logged in for the first time
|
|
6
|
+
- bug-fixed: some icons not showed in side-bar user detail component: replaced material-design-icons with material-icons
|
|
7
|
+
- bug-fixed: if removed conversation.uid is the selected ones, change url from /active to /archived with navigateByUrl after archivedConversation is completed
|
|
8
|
+
- bug-fixed: truncate sender_fullname in conversation-list and conversation-detail header components
|
|
9
|
+
- added: arabic translations language
|
|
10
|
+
- changed: behaviour of is_new of a conversation (not update 'is_new' conversation property if conv is the selected one or if sender is me)
|
|
11
|
+
|
|
12
|
+
### 3.0.65-rc3 - LATEST
|
|
13
|
+
- changed: retrive conversations with 'onces' firebase event and remove lastTimestamp from added, changed and removed fireabase subscriptions event
|
|
14
|
+
- bug-fixed: conversation not archived due to conversation_removed unhandled event
|
|
15
|
+
- bug-fixed: if removed conversation.uid is the selected ones, change url from /active to /archived with navigateByUrl after archivedConversation is completed
|
|
16
|
+
|
|
3
17
|
|
|
4
18
|
### 3.0.65-rc2 - LATEST
|
|
5
19
|
- changed: behaviour of is_new of a conversation (not update 'is_new' conversation property if conv is the selected one or if sender is me)
|
package/deploy_amazon_prod.sh
CHANGED
|
@@ -15,9 +15,9 @@ cp -p src/manifest.json platforms/browser/www/
|
|
|
15
15
|
cp -p src/chat-config.json platforms/browser/www/
|
|
16
16
|
|
|
17
17
|
cd platforms/browser/www
|
|
18
|
-
|
|
18
|
+
aws s3 sync . s3://tiledesk-console/v2/chat/
|
|
19
19
|
# aws s3 sync . s3://tiledesk-console/v2/chat/$version/
|
|
20
|
-
aws s3 sync . s3://tiledesk-console/v2/chat/latest/
|
|
20
|
+
# aws s3 sync . s3://tiledesk-console/v2/chat/latest/
|
|
21
21
|
cd ../../../
|
|
22
22
|
# aws cloudfront create-invalidation --distribution-id E36UIP90GOSFPM --paths "/*"
|
|
23
23
|
|
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.65
|
|
4
|
+
"version": "3.0.65",
|
|
5
5
|
"license": "AGPL-3.0",
|
|
6
6
|
"homepage": "https://tiledesk.com/",
|
|
7
7
|
"repository": {
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"file-saver": "^2.0.5",
|
|
61
61
|
"firebase": "^8.6.7",
|
|
62
62
|
"marked": "^2.0.1",
|
|
63
|
-
"material-
|
|
63
|
+
"material-icons": "^1.11.2",
|
|
64
64
|
"moment": "^2.24.0",
|
|
65
65
|
"moment-timezone": "^0.5.28",
|
|
66
66
|
"ng-connection-service": "^1.0.4",
|
|
@@ -119,4 +119,4 @@
|
|
|
119
119
|
"ios"
|
|
120
120
|
]
|
|
121
121
|
}
|
|
122
|
-
}
|
|
122
|
+
}
|
package/src/app/app.component.ts
CHANGED
|
@@ -37,7 +37,7 @@ import { LoginPage } from './pages/authentication/login/login.page';
|
|
|
37
37
|
import { ConversationListPage } from './pages/conversations-list/conversations-list.page';
|
|
38
38
|
|
|
39
39
|
// utils
|
|
40
|
-
import {
|
|
40
|
+
import { checkPlatformIsMobile, isGroup, getParameterByName, searchIndexInArrayForUid, compareValues } from '../chat21-core/utils/utils';
|
|
41
41
|
import { STORAGE_PREFIX, PLATFORM_MOBILE, PLATFORM_DESKTOP, CHAT_ENGINE_FIREBASE, AUTH_STATE_OFFLINE, AUTH_STATE_ONLINE } from '../chat21-core/utils/constants';
|
|
42
42
|
import { environment } from '../environments/environment';
|
|
43
43
|
import { UserModel } from '../chat21-core/models/user';
|
|
@@ -481,6 +481,7 @@ export class AppComponent implements OnInit {
|
|
|
481
481
|
}
|
|
482
482
|
this.uploadService.initialize();
|
|
483
483
|
|
|
484
|
+
this.setLanguage(null)
|
|
484
485
|
this.initAuthentication();
|
|
485
486
|
this.initSubscriptions();
|
|
486
487
|
this.initAudio();
|
|
@@ -627,16 +628,13 @@ export class AppComponent implements OnInit {
|
|
|
627
628
|
|
|
628
629
|
|
|
629
630
|
translateToastMsgs() {
|
|
630
|
-
this.translate.get('AnErrorOccurredWhileUnsubscribingFromNotifications')
|
|
631
|
-
.subscribe((text: string) => {
|
|
631
|
+
this.translate.get('AnErrorOccurredWhileUnsubscribingFromNotifications').subscribe((text: string) => {
|
|
632
632
|
this.toastMsgErrorWhileUnsubscribingFromNotifications = text;
|
|
633
633
|
});
|
|
634
|
-
this.translate.get('CLOSE_TOAST')
|
|
635
|
-
.subscribe((text: string) => {
|
|
634
|
+
this.translate.get('CLOSE_TOAST').subscribe((text: string) => {
|
|
636
635
|
this.toastMsgCloseToast = text;
|
|
637
636
|
});
|
|
638
|
-
this.translate.get('WAITING_FOR_NETWORK')
|
|
639
|
-
.subscribe((text: string) => {
|
|
637
|
+
this.translate.get('WAITING_FOR_NETWORK').subscribe((text: string) => {
|
|
640
638
|
this.toastMsgWaitingForNetwork = text;
|
|
641
639
|
});
|
|
642
640
|
}
|
|
@@ -867,7 +865,7 @@ export class AppComponent implements OnInit {
|
|
|
867
865
|
}).catch((error: any) => {
|
|
868
866
|
that.logger.error('[APP-COMP] ***soundMessage error*', error);
|
|
869
867
|
});
|
|
870
|
-
},
|
|
868
|
+
}, 4000);
|
|
871
869
|
}
|
|
872
870
|
/**---------------- SOUND FUNCTIONS --> END <--- +*/
|
|
873
871
|
/***************************************************+*/
|
|
@@ -922,8 +920,8 @@ export class AppComponent implements OnInit {
|
|
|
922
920
|
// that.conversationsChanged(conversations);
|
|
923
921
|
if (conversation && conversation.is_new === true) {
|
|
924
922
|
this.manageTabNotification()
|
|
925
|
-
this.updateConversationsOnStorage()
|
|
926
923
|
}
|
|
924
|
+
if(conversation) this.updateConversationsOnStorage()
|
|
927
925
|
});
|
|
928
926
|
|
|
929
927
|
this.conversationsHandlerService.conversationChanged.subscribe((conversation: ConversationModel) => {
|
|
@@ -1195,9 +1193,7 @@ export class AppComponent implements OnInit {
|
|
|
1195
1193
|
// 1 - init chatConversationsHandler and archviedConversationsHandler
|
|
1196
1194
|
this.conversationsHandlerService.initialize(this.tenant, userId, translationMap);
|
|
1197
1195
|
// this.subscribeToConvs()
|
|
1198
|
-
|
|
1199
|
-
this.logger.log('[APP-COMP] initConversationsHandler: get lastTimestamp', lastTimestamp)
|
|
1200
|
-
this.conversationsHandlerService.subscribeToConversations(lastTimestamp, () => {
|
|
1196
|
+
this.conversationsHandlerService.subscribeToConversations(null, () => {
|
|
1201
1197
|
// this.logger.log('[APP-COMP] - CONVS - INIT CONV')
|
|
1202
1198
|
const conversations = this.conversationsHandlerService.conversations;
|
|
1203
1199
|
this.logger.info('initialize FROM [APP-COMP] - [APP-COMP]-CONVS - INIT CONV CONVS', conversations)
|
|
@@ -1211,34 +1207,18 @@ export class AppComponent implements OnInit {
|
|
|
1211
1207
|
|
|
1212
1208
|
}
|
|
1213
1209
|
|
|
1214
|
-
// START: manage conversations on firebase upon last timestamp from stored conversations
|
|
1215
|
-
private manageStoredConversations(): number {
|
|
1216
|
-
let timestamp = 0
|
|
1217
|
-
if(this.appStorageService.getItem('conversations')){
|
|
1218
|
-
const conversationsStored = JSON.parse(this.appStorageService.getItem('conversations'))
|
|
1219
|
-
if(conversationsStored && conversationsStored.length > 0) {
|
|
1220
|
-
this.conversationsHandlerService.conversations = conversationsStored
|
|
1221
|
-
timestamp = conversationsStored[0].timestamp
|
|
1222
|
-
this.events.publish('appcompSubscribeToConvs:loadingIsActive', false);
|
|
1223
|
-
}
|
|
1224
|
-
}
|
|
1225
|
-
return timestamp
|
|
1226
|
-
}
|
|
1227
|
-
|
|
1228
1210
|
private updateConversationsOnStorage(){
|
|
1229
1211
|
const that = this
|
|
1230
1212
|
//reset timer and save conversation on storage after 2s
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1213
|
+
// clearTimeout(this.setTimeoutConversationsEvent);
|
|
1214
|
+
// this.setTimeoutConversationsEvent = setTimeout(() => {
|
|
1215
|
+
// this.logger.debug('[APP-COMP] updateConversationsOnStorage: reset timer and save conversations -> ', this.conversationsHandlerService.conversations.length)
|
|
1216
|
+
// that.appStorageService.setItem('conversations', JSON.stringify(this.conversationsHandlerService.conversations))
|
|
1217
|
+
// }, 2000);
|
|
1236
1218
|
}
|
|
1237
|
-
// END: manage conversations on firebase upon last timestamp from stored conversations
|
|
1238
1219
|
|
|
1239
1220
|
private initArchivedConversationsHandler(userId: string) {
|
|
1240
1221
|
const keys = ['YOU'];
|
|
1241
|
-
|
|
1242
1222
|
const translationMap = this.translateService.translateLanguage(keys);
|
|
1243
1223
|
|
|
1244
1224
|
this.logger.debug('[APP-COMP] initArchivedConversationsHandler ------------->', userId, this.tenant);
|
|
@@ -1305,3 +1285,4 @@ export class AppComponent implements OnInit {
|
|
|
1305
1285
|
}
|
|
1306
1286
|
}
|
|
1307
1287
|
}
|
|
1288
|
+
|
package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts
CHANGED
|
@@ -59,16 +59,12 @@ export class BubbleMessageComponent implements OnInit, OnChanges {
|
|
|
59
59
|
setMomentLocale() {
|
|
60
60
|
this.browserLang = this.translate.getBrowserLang();
|
|
61
61
|
const currentUser = this.tiledeskAuthService.getCurrentUser();
|
|
62
|
-
this.logger.log('[BUBBLE-MESSAGE] - ngOnInit - currentUser ', currentUser)
|
|
63
62
|
let currentUserId = ''
|
|
64
63
|
if (currentUser) {
|
|
65
64
|
currentUserId = currentUser.uid
|
|
66
|
-
this.logger.log('[BUBBLE-MESSAGE] - ngOnInit - currentUserId ', currentUserId)
|
|
67
65
|
}
|
|
68
66
|
|
|
69
67
|
const stored_preferred_lang = localStorage.getItem(currentUserId + '_lang');
|
|
70
|
-
this.logger.log('[BUBBLE-MESSAGE] stored_preferred_lang: ', stored_preferred_lang);
|
|
71
|
-
|
|
72
68
|
|
|
73
69
|
let chat_lang = ''
|
|
74
70
|
if (this.browserLang && !stored_preferred_lang) {
|
|
@@ -81,15 +77,9 @@ export class BubbleMessageComponent implements OnInit, OnChanges {
|
|
|
81
77
|
sameElse: 'LLLL'
|
|
82
78
|
}
|
|
83
79
|
});
|
|
84
|
-
// this.translate.getTranslation(chat_lang).subscribe((labels: string) => {
|
|
85
|
-
// console.log('[BUBBLE-MESSAGE] translations: ', labels);
|
|
86
|
-
// });
|
|
87
80
|
}
|
|
88
81
|
|
|
89
82
|
ngOnChanges() {
|
|
90
|
-
this.logger.log('BUBBLE-MSG Hello !!!! this.message ', this.message)
|
|
91
|
-
this.logger.log('BUBBLE-MSG ngOnChanges areVisibleCAR', this.areVisibleCAR)
|
|
92
|
-
this.logger.log('BUBBLE-MSG ngOnChanges supportMode', this.supportMode)
|
|
93
83
|
if (this.message && this.message.metadata && typeof this.message.metadata === 'object') {
|
|
94
84
|
this.getMetadataSize(this.message.metadata)
|
|
95
85
|
}
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
|
|
77
77
|
|
|
78
78
|
<ion-item button="true" lines="none" class="ion-no-padding" [class.ion-selected]="conversation?.uid === uidConvSelected"
|
|
79
|
-
*ngFor="let conversation of listConversations" (click)="openConversationByID(conversation)" detail=false>
|
|
79
|
+
*ngFor="let conversation of listConversations; let index= index" (click)="openConversationByID(conversation)" detail=false>
|
|
80
80
|
<div tabindex="0"></div>
|
|
81
81
|
|
|
82
82
|
<!-- <div [class.selected]="conversation.uid === uidConvSelected"></div> -->
|
|
@@ -41,7 +41,7 @@ export class IonListConversationsComponent extends ListConversationsComponent im
|
|
|
41
41
|
public alert_lbl: string;
|
|
42
42
|
public actionNotAllowed_lbl: string;
|
|
43
43
|
public youAreNoLongerAmongTheTeammatesManagingThisConversation_lbl: string;
|
|
44
|
-
public ok_lbl: string;
|
|
44
|
+
public ok_lbl: string;
|
|
45
45
|
|
|
46
46
|
tooltip_options = {
|
|
47
47
|
'show-delay': 0,
|
|
@@ -119,35 +119,22 @@ public ok_lbl: string;
|
|
|
119
119
|
|
|
120
120
|
|
|
121
121
|
translateLbls() {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
this.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
.subscribe((text: string) => {
|
|
139
|
-
this.actionNotAllowed_lbl = text;
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
this.translate.get('YouAreNoLongerAmongTheTeammatesManagingThisConversation')
|
|
143
|
-
.subscribe((text: string) => {
|
|
144
|
-
this.youAreNoLongerAmongTheTeammatesManagingThisConversation_lbl = text;
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
this.translate.get('CLOSE_ALERT_CONFIRM_LABEL')
|
|
148
|
-
.subscribe((text: string) => {
|
|
149
|
-
this.ok_lbl = text;
|
|
150
|
-
});
|
|
122
|
+
const translationKeys = [
|
|
123
|
+
'Resolve',
|
|
124
|
+
'Archive',
|
|
125
|
+
'ALERT_TITLE',
|
|
126
|
+
'ActionNotAllowed',
|
|
127
|
+
'CLOSE_ALERT_CONFIRM_LABEL',
|
|
128
|
+
'YouAreNoLongerAmongTheTeammatesManagingThisConversation'
|
|
129
|
+
]
|
|
130
|
+
this.translate.get(['Resolve', 'Archive', 'ALERT_TITLE']).subscribe((translations: string) => {
|
|
131
|
+
this.resolve_btn_tooltip = translations['Resolve'];
|
|
132
|
+
this.archive_btn_tooltip = translations['Archive'];
|
|
133
|
+
this.alert_lbl = translations['ALERT_TITLE']
|
|
134
|
+
this.actionNotAllowed_lbl = translations['ActionNotAllowed']
|
|
135
|
+
this.ok_lbl = translations['CLOSE_ALERT_CONFIRM_LABEL']
|
|
136
|
+
this.youAreNoLongerAmongTheTeammatesManagingThisConversation_lbl = translations['YouAreNoLongerAmongTheTeammatesManagingThisConversation']
|
|
137
|
+
});
|
|
151
138
|
}
|
|
152
139
|
|
|
153
140
|
setMomentLocale() {
|
|
@@ -227,6 +214,7 @@ public ok_lbl: string;
|
|
|
227
214
|
var conversationId = conversation.uid;
|
|
228
215
|
this.logger.log('[ION-LIST-CONVS-COMP] - closeConversation - conversationId ', conversationId)
|
|
229
216
|
this.onCloseConversation.emit(conversation)
|
|
217
|
+
let currentIndex = this.listConversations.findIndex(conv => conv.uid === conversation.uid)
|
|
230
218
|
}
|
|
231
219
|
|
|
232
220
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<ion-header no-border class="ion-no-border">
|
|
2
|
-
<ion-toolbar
|
|
2
|
+
<ion-toolbar>
|
|
3
3
|
<ion-buttons slot="start" style="height:60px" *ngIf="isMobile">
|
|
4
4
|
<!-- (click)="pushPage('conversations-list')" defaultHref="/conversations-list" -->
|
|
5
5
|
<ion-back-button style="display: block;" text="" (click)="goBackToConversationList()">
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EventsService } from './../../services/events-service';
|
|
1
2
|
import { Component, EventEmitter, HostListener, OnInit, Output } from '@angular/core';
|
|
2
3
|
import { WebsocketService } from 'src/app/services/websocket/websocket.service';
|
|
3
4
|
import { Subject } from 'rxjs';
|
|
@@ -53,6 +54,7 @@ export class ProjectItemComponent implements OnInit {
|
|
|
53
54
|
public tiledeskService: TiledeskService,
|
|
54
55
|
public webSocketJs: WebSocketJs,
|
|
55
56
|
private appConfigProvider: AppConfigProvider,
|
|
57
|
+
public events: EventsService
|
|
56
58
|
) { }
|
|
57
59
|
|
|
58
60
|
ngOnInit() {
|
|
@@ -209,10 +211,13 @@ export class ProjectItemComponent implements OnInit {
|
|
|
209
211
|
this.logger.log('[PROJECT-ITEM] - LAST PROJECT PARSED ', this.project)
|
|
210
212
|
}
|
|
211
213
|
|
|
214
|
+
|
|
215
|
+
|
|
212
216
|
|
|
213
217
|
}
|
|
214
218
|
|
|
215
219
|
doProjectSubscriptions(project) {
|
|
220
|
+
this.events.publish('storage:last_project', project)
|
|
216
221
|
this.logger.log('[PROJECT-ITEM] doProjectSubscriptions project ', project)
|
|
217
222
|
if (project) {
|
|
218
223
|
const user_role = this.project.role
|
|
@@ -83,21 +83,14 @@ export class SidebarComponent implements OnInit {
|
|
|
83
83
|
|
|
84
84
|
|
|
85
85
|
getStoredProjectAndUserRole() {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
this.USER_ROLE = project.role;
|
|
96
|
-
this.logger.log('[SIDEBAR] USER_ROLE ', this.USER_ROLE)
|
|
97
|
-
this.buildURLs(this.USER_ROLE)
|
|
98
|
-
} else {
|
|
99
|
-
this.logger.error('[SIDEBAR] stored_project not found in storage', stored_project)
|
|
100
|
-
}
|
|
86
|
+
this.events.subscribe('storage:last_project',project =>{
|
|
87
|
+
this.logger.log('[SIDEBAR] stored_project ', project)
|
|
88
|
+
if (project && project !== 'undefined') {
|
|
89
|
+
this.project_id = project.id_project.id
|
|
90
|
+
this.USER_ROLE = project.role;
|
|
91
|
+
this.buildURLs(this.USER_ROLE)
|
|
92
|
+
}
|
|
93
|
+
})
|
|
101
94
|
}
|
|
102
95
|
|
|
103
96
|
buildURLs(USER_ROLE) {
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
onerror="this.src='assets/images/no_image_user.png'" />
|
|
26
26
|
|
|
27
27
|
<div *ngIf="!USER_PHOTO_PROFILE_EXIST" class="user-img-in-sidebar-user-details"
|
|
28
|
-
[ngStyle]="{'background': 'linear-gradient(rgb(255,255,255) -125%,' + user?.
|
|
28
|
+
[ngStyle]="{'background': 'linear-gradient(rgb(255,255,255) -125%,' + user?.color + ')'}">
|
|
29
29
|
<span id="sidebaravatar-altenative-user-avatar" class="sidebar-user-details-altenative-user-avatar">
|
|
30
|
-
{{ user?.
|
|
30
|
+
{{ user?.avatar }}
|
|
31
31
|
</span>
|
|
32
32
|
</div>
|
|
33
33
|
|
|
@@ -36,9 +36,7 @@
|
|
|
36
36
|
<div class="user-details-user-isbusy" *ngIf="IS_BUSY === true" style="cursor:pointer"
|
|
37
37
|
matTooltipClass="custom-mat-tooltip" matTooltip="{{IS_BUSY_msg}}" #tooltip="matTooltip"
|
|
38
38
|
matTooltipPosition='right' matTooltipHideDelay="100">
|
|
39
|
-
<span class="material-icons user-details-user-isbusy-icon">
|
|
40
|
-
access_time
|
|
41
|
-
</span>
|
|
39
|
+
<span class="material-icons user-details-user-isbusy-icon">access_time</span>
|
|
42
40
|
</div>
|
|
43
41
|
|
|
44
42
|
|
|
@@ -78,22 +76,20 @@
|
|
|
78
76
|
<hr class="first-divider">
|
|
79
77
|
|
|
80
78
|
<section *ngIf="isVisiblePAY" class="user-details-plan-info">
|
|
81
|
-
<span class="material-icons user-details-plan-icon">
|
|
82
|
-
apps
|
|
83
|
-
</span>
|
|
79
|
+
<span class="material-icons user-details-plan-icon">apps</span>
|
|
84
80
|
<span>
|
|
85
|
-
<div> {{
|
|
81
|
+
<div> {{project?.name}} </div>
|
|
86
82
|
<div style="display: inline-block; margin-left: 26px;"> {{ profile_name_translated }} </div>
|
|
87
83
|
|
|
88
|
-
<div *ngIf="
|
|
89
|
-
style="color:#f44336; position:relative; top: -1px
|
|
90
|
-
<i *ngIf="plan_name !== 'enterprise'" class="material-icons" style="vertical-align: middle; color:#f44336; cursor:pointer;
|
|
84
|
+
<div *ngIf="project?.type === 'payment' && project?.isActiveSubscription === false"
|
|
85
|
+
style="color:#f44336; position:relative; top: -1px;display: inline-block;">
|
|
86
|
+
<i *ngIf="project?.plan_name !== 'enterprise'" class="material-icons" style="vertical-align: middle; color:#f44336; cursor:pointer;
|
|
91
87
|
font-size: 16px;" matTooltipClass="custom-mat-tooltip"
|
|
92
88
|
matTooltip="{{ SUBSCRIPTION_PAYMENT_PROBLEM_msg }}" #tooltip="matTooltip" matTooltipPosition='right'
|
|
93
89
|
matTooltipHideDelay="100">
|
|
94
90
|
error_outline
|
|
95
91
|
</i>
|
|
96
|
-
<i *ngIf="plan_name === 'enterprise'" class="material-icons" style="vertical-align: middle; color:#f44336; cursor:pointer;
|
|
92
|
+
<i *ngIf="project?.plan_name === 'enterprise'" class="material-icons" style="vertical-align: middle; color:#f44336; cursor:pointer;
|
|
97
93
|
font-size: 16px;" matTooltipClass="custom-mat-tooltip" matTooltip="{{ THE_PLAN_HAS_EXPIRED_msg }}"
|
|
98
94
|
#tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100">
|
|
99
95
|
error_outline
|
|
@@ -103,12 +99,8 @@
|
|
|
103
99
|
</section>
|
|
104
100
|
|
|
105
101
|
<section class="user-details-help-center">
|
|
106
|
-
<span class="material-icons user-details-help-center-icon">
|
|
107
|
-
|
|
108
|
-
</span>
|
|
109
|
-
<span class="user-details-help-center" (click)="goToHelpCenter()">
|
|
110
|
-
Help center
|
|
111
|
-
</span>
|
|
102
|
+
<span class="material-icons user-details-help-center-icon">support</span>
|
|
103
|
+
<span class="user-details-help-center" (click)="goToHelpCenter()"> Help center</span>
|
|
112
104
|
</section>
|
|
113
105
|
|
|
114
106
|
<!-- <hr class="second-divider" style="margin-top: 20px;border: 0;
|
|
@@ -128,10 +120,7 @@
|
|
|
128
120
|
</section>
|
|
129
121
|
|
|
130
122
|
<section class="user-details-footer-chat-version">
|
|
131
|
-
<div class="chat-version">
|
|
132
|
-
<!-- © {{test | date: 'yyyy'}} {{company_name}} ver {{version}} -->
|
|
133
|
-
ver {{version}}
|
|
134
|
-
</div>
|
|
123
|
+
<div class="chat-version"> ver {{version}}</div>
|
|
135
124
|
</section>
|
|
136
125
|
|
|
137
126
|
</div>
|