@chat21/chat21-ionic 3.0.60-rc2 → 3.0.60-rc6
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 +18 -0
- package/deploy_pre.sh +45 -6
- package/deploy_prod.sh +34 -9
- package/package.json +1 -1
- package/src/app/app.module.ts +1 -1
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +10 -8
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +10 -6
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +34 -3
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +7 -5
- package/src/app/components/image-viewer/image-viewer.component.scss +2 -2
- package/src/app/components/project-item/project-item.component.html +114 -114
- package/src/app/components/project-item/project-item.component.scss +145 -83
- package/src/app/components/project-item/project-item.component.ts +40 -19
- package/src/app/pages/conversation-detail/conversation-detail.module.ts +2 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.html +7 -3
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +53 -33
- package/src/app/pages/conversations-list/conversations-list.page.html +11 -5
- package/src/app/pages/conversations-list/conversations-list.page.scss +12 -1
- package/src/app/pages/conversations-list/conversations-list.page.ts +24 -6
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +16 -11
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +157 -63
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +51 -16
- package/src/app/shared/shared.module.ts +3 -3
- package/src/assets/i18n/en.json +19 -7
- package/src/assets/i18n/es.json +205 -0
- package/src/assets/i18n/it.json +37 -33
- package/src/chat-config-mqtt.json +2 -1
- package/src/chat-config-pre-test.json +1 -0
- package/src/global.scss +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# chat21-ionic ver 3.0
|
|
2
2
|
|
|
3
|
+
### 3.0.60-rc6
|
|
4
|
+
- Fixes the bug: push notifications are initialized even if the "pushEngine" configuration variable is set to "none"
|
|
5
|
+
- Adds spanish language
|
|
6
|
+
|
|
7
|
+
### 3.0.60-rc5
|
|
8
|
+
- Change the icon and link of the "pin button" in the item at the top of the conversation list (now opens the list of projects and not the list of new conversations)
|
|
9
|
+
- Add a tooltip on the switch button to change the available/unavailable status
|
|
10
|
+
- Adds a link to the to the new conversations at the icon that display the number of new conversations
|
|
11
|
+
|
|
12
|
+
### 3.0.60-rc4
|
|
13
|
+
- Translates the canned response displayed when there are not canned responses
|
|
14
|
+
|
|
15
|
+
### 3.0.60-rc3
|
|
16
|
+
- Enhances the item at the top of the conversation list that displays the number of new conversations of a selected project
|
|
17
|
+
- Fixes the bug: the loading spinner is sometimes not displayed when loading the list of unassigned conversations
|
|
18
|
+
- Displays as canned response "Test" when no canned responses are available
|
|
19
|
+
- Adds the cursor to the "Send message" textarea after the "Canned responses" button has been clicked
|
|
20
|
+
|
|
3
21
|
### 3.0.60-rc2
|
|
4
22
|
- Fixes the bug: in AppConfigProvider the "wsUrl" is incorrect (window.location.port is missing)
|
|
5
23
|
|
package/deploy_pre.sh
CHANGED
|
@@ -24,21 +24,60 @@ sed -i -e "s/$URL_VER/g" src/utils/constants.ts
|
|
|
24
24
|
|
|
25
25
|
# ng build --prod --base-href /$NEW_BUILD/
|
|
26
26
|
#ionic cordova build browser --prod
|
|
27
|
-
|
|
28
|
-
ionic cordova platform add browser --save
|
|
29
27
|
#ionic cordova build browser --prod --release
|
|
30
|
-
ionic cordova build --env=pre browser
|
|
28
|
+
# ionic cordova build --env=pre browser --prod #--verbose
|
|
31
29
|
|
|
30
|
+
ionic cordova platform add browser --save
|
|
31
|
+
ionic cordova build -c=pre browser --prod
|
|
32
32
|
cp -p src/firebase-messaging-sw.js platforms/browser/www/
|
|
33
33
|
cp -p src/manifest.json platforms/browser/www/
|
|
34
34
|
cp -p src/chat-config.json platforms/browser/www/
|
|
35
|
-
|
|
35
|
+
cp config.xml platforms/browser/www/
|
|
36
|
+
|
|
37
|
+
######### chat-ionic5 - the good one - publish in pre
|
|
36
38
|
cd platforms/browser/www
|
|
37
39
|
aws s3 sync . s3://tiledesk-dashboard-pre/chat-ionic5/$version/
|
|
38
40
|
aws s3 sync . s3://tiledesk-dashboard-pre/chat-ionic5/
|
|
39
41
|
cd ../../../
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
aws cloudfront create-invalidation --distribution-id E2DTAKWHWQ7C3J --paths "/*"
|
|
42
44
|
|
|
43
45
|
echo new version deployed on s3://tiledesk-dashboard-pre/chat-ionic5/$version/
|
|
44
|
-
echo available on https://s3.eu-west-1.amazonaws.com/tiledesk-dashboard-pre/chat-ionic5/$version/index.html
|
|
46
|
+
echo available on https://s3.eu-west-1.amazonaws.com/tiledesk-dashboard-pre/chat-ionic5/$version/index.html
|
|
47
|
+
echo available on https://support-pre.tiledesk.com/chat-ionic5/$version/index.html
|
|
48
|
+
echo available on https://support-pre.tiledesk.com/chat-ionic5/index.html
|
|
49
|
+
|
|
50
|
+
######### chat-ionic5-test - publish in pre with the projects right panel
|
|
51
|
+
# cd platforms/browser/www
|
|
52
|
+
# aws s3 sync . s3://tiledesk-dashboard-pre/chat-ionic5-test/$version/
|
|
53
|
+
# aws s3 sync . s3://tiledesk-dashboard-pre/chat-ionic5-test/
|
|
54
|
+
# cd ../../../
|
|
55
|
+
|
|
56
|
+
# aws cloudfront create-invalidation --distribution-id E2DTAKWHWQ7C3J --paths "/*"
|
|
57
|
+
|
|
58
|
+
# echo new version deployed on s3://tiledesk-dashboard-pre/chat-ionic5-test/$version/
|
|
59
|
+
# echo available on https://s3.eu-west-1.amazonaws.com/tiledesk-dashboard-pre/chat-ionic5-test/$version/index.html
|
|
60
|
+
# echo available on https://support-pre.tiledesk.com/chat-ionic5-test/$version/index.html
|
|
61
|
+
# echo available on https://support-pre.tiledesk.com/chat-ionic5-test/index.html
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
####### chat ionic MQTT in pre da aggiungere in deploy_pre.sh
|
|
65
|
+
# cd platforms/browser/www
|
|
66
|
+
# aws s3 sync . s3://tiledesk-dashboard-pre/native-mqtt/chat-ionic5/
|
|
67
|
+
# aws s3 sync . s3://tiledesk-dashboard-pre/native-mqtt/chat-ionic5/$version
|
|
68
|
+
# cd ../../../
|
|
69
|
+
# echo new version deployed on s3://tiledesk-dashboard-pre/native-mqtt/chat-ionic5/
|
|
70
|
+
# echo new version deployed on s3://tiledesk-dashboard-pre/native-mqtt/chat-ionic5/$version
|
|
71
|
+
# echo http://tiledesk-dashboard-pre.s3-eu-west-1.amazonaws.com/native-mqtt/chat-ionic5/index.html
|
|
72
|
+
# echo http://tiledesk-dashboard-pre.s3-eu-west-1.amazonaws.com/native-mqtt/chat-ionic5/$version/index.html
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
####### chat ionic FIREBASE in pre da aggiungere in deploy_pre.sh
|
|
76
|
+
# cd platforms/browser/www
|
|
77
|
+
# aws s3 sync . s3://tiledesk-dashboard-pre/chat5/
|
|
78
|
+
# aws s3 sync . s3://tiledesk-dashboard-pre/chat5/$version
|
|
79
|
+
# cd ../../../
|
|
80
|
+
# echo new version deployed on s3://tiledesk-dashboard-pre/chat5/$version
|
|
81
|
+
# echo new version deployed on s3://tiledesk-dashboard-pre/chat5/
|
|
82
|
+
# echo available on http://support-pre.tiledesk.com/chat5/index.html
|
|
83
|
+
# echo available on http://support-pre.tiledesk.com/chat5/$version/index.html
|
package/deploy_prod.sh
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
npm version patch
|
|
1
|
+
# npm version patch
|
|
2
2
|
version=`node -e 'console.log(require("./package.json").version)'`
|
|
3
3
|
echo "version $version"
|
|
4
4
|
|
|
@@ -12,22 +12,47 @@ echo 'URL_VER: ---->'$URL_VER
|
|
|
12
12
|
# npm publish
|
|
13
13
|
# fi
|
|
14
14
|
|
|
15
|
-
# sed -i -e "s/$start$ver.$build/$start$NEW_VER.$NEW_BUILD/g" src/utils/constants.ts
|
|
16
15
|
sed -i -e "s/$URL_VER/g" src/utils/constants.ts
|
|
16
|
+
|
|
17
17
|
ionic cordova platform add browser --save
|
|
18
18
|
#ionic cordova build --env=prod browser -- --base-href /www/ --prod
|
|
19
19
|
ionic cordova build --env=prod browser --prod
|
|
20
20
|
cp -p src/firebase-messaging-sw.js platforms/browser/www/
|
|
21
21
|
cp -p src/manifest.json platforms/browser/www/
|
|
22
22
|
cp -p src/chat-config.json platforms/browser/www/
|
|
23
|
+
cp -p config.xml platforms/browser/www/
|
|
24
|
+
|
|
23
25
|
|
|
26
|
+
###### CHAT in prod
|
|
24
27
|
cd platforms/browser/www
|
|
25
|
-
|
|
26
|
-
aws s3 sync . s3://tiledesk-console/v2/chat
|
|
27
|
-
aws s3 sync . s3://tiledesk-console/v2/chat-ionic5/$version/
|
|
28
|
+
aws s3 sync . s3://tiledesk-console/v2/chat/
|
|
29
|
+
aws s3 sync . s3://tiledesk-console/v2/chat/$version/
|
|
28
30
|
cd ../../../
|
|
29
|
-
|
|
31
|
+
echo new version deployed on s3://tiledesk-console/v2/chat/
|
|
32
|
+
echo available on https://console.tiledesk.com/v2/chat/$version/index.html
|
|
33
|
+
echo available on https://console.tiledesk.com/v2/chat/index.html
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
###### CHAT-IONIC5
|
|
37
|
+
# cd platforms/browser/www
|
|
38
|
+
# #aws s3 sync . s3://tiledesk-dashboard/chat/
|
|
39
|
+
# aws s3 sync . s3://tiledesk-console/v2/chat-ionic5/
|
|
40
|
+
# aws s3 sync . s3://tiledesk-console/v2/chat-ionic5/$version/
|
|
41
|
+
# cd ../../../
|
|
42
|
+
# # aws cloudfront create-invalidation --distribution-id E2DTAKWHWQ7C3J --paths "/*"
|
|
43
|
+
|
|
44
|
+
# # echo new version deployed on s3://tiledesk-dashboard/chat/$NEW_BUILD/
|
|
45
|
+
# echo new version deployed on s3://tiledesk-console/v2/chat-ionic5/$version/
|
|
46
|
+
# echo available on https://console.tiledesk.com/v2/chat-ionic5/$version/index.html
|
|
47
|
+
|
|
48
|
+
|
|
30
49
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
50
|
+
####### chat ionic FIREBASE in PROD IN SUBFOLDER
|
|
51
|
+
# cd platforms/browser/www
|
|
52
|
+
# aws s3 sync . s3://tiledesk-console/v2/chat5-dev/
|
|
53
|
+
# aws s3 sync . s3://tiledesk-console/v2/chat5-dev/$version
|
|
54
|
+
# cd ../../../
|
|
55
|
+
# echo new version deployed on s3://console.tiledesk.com/v2/chat5-dev/$version
|
|
56
|
+
# echo new version deployed on s3://console.tiledesk.com/v2/chat5-dev/
|
|
57
|
+
# echo available on http://console.tiledesk.com/v2/chat5-dev/index.html
|
|
58
|
+
# echo available on http://console.tiledesk.com/v2/chat5-dev/$version/index.html
|
package/package.json
CHANGED
package/src/app/app.module.ts
CHANGED
|
@@ -114,7 +114,7 @@ export function authenticationFactory(http: HttpClient, appConfig: AppConfigProv
|
|
|
114
114
|
|
|
115
115
|
auth.setBaseUrl(appConfig.getConfig().apiUrl);
|
|
116
116
|
|
|
117
|
-
if (config.pushEngine
|
|
117
|
+
if (config.pushEngine === PUSH_ENGINE_MQTT) {
|
|
118
118
|
// FOR PUSH NOTIFICATIONS INIT FIREBASE APP
|
|
119
119
|
FirebaseInitService.initFirebase(config.firebaseConfig);
|
|
120
120
|
}
|
|
@@ -55,14 +55,16 @@ export class IonListConversationsComponent extends ListConversationsComponent im
|
|
|
55
55
|
super(iterableDiffers, kvDiffers)
|
|
56
56
|
this.browserLang = this.translate.getBrowserLang();
|
|
57
57
|
if (this.browserLang) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
58
|
+
|
|
59
|
+
moment.locale(this.browserLang)
|
|
60
|
+
// if (this.browserLang === 'it') {
|
|
61
|
+
// // this.translate.use('it');
|
|
62
|
+
// moment.locale('it')
|
|
63
|
+
|
|
64
|
+
// } else {
|
|
65
|
+
// // this.translate.use('en');
|
|
66
|
+
// moment.locale('en')
|
|
67
|
+
// }
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
this.currentYear = moment().format('YYYY');
|
package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html
CHANGED
|
@@ -39,16 +39,20 @@
|
|
|
39
39
|
<ion-col col-auto>
|
|
40
40
|
|
|
41
41
|
<div class="start-buttons" style="position: absolute;display: flex;">
|
|
42
|
-
|
|
43
|
-
<div class="canned-responses-btn-wpr" style="margin-left: -5px;" tooltip="{{translationMap?.get('CANNED_RESPONSES')}}" [options]="tooltipOptions"
|
|
44
|
-
|
|
42
|
+
|
|
43
|
+
<div class="canned-responses-btn-wpr" style="margin-left: -5px;" tooltip="{{translationMap?.get('CANNED_RESPONSES')}}" [options]="tooltipOptions" placement="top">
|
|
45
44
|
<ion-button ion-button fill="clear" class="canned-responses-btn" (click)="openCannedResponses()" [disabled]="!IS_SUPPORT_GROUP_CONVERSATION">
|
|
46
45
|
<ion-icon slot="icon-only" lazy="true" name="flash-outline" style="font-size: 24px;"></ion-icon>
|
|
47
46
|
</ion-button>
|
|
48
|
-
|
|
49
47
|
</div>
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
<div *ngIf="IS_SUPPORT_GROUP_CONVERSATION && tagsCannedCount === 0" tooltip="{{translationMap?.get('NO_CANNED_RESPONSES')}}" [options]="tooltipOptions" placement="top" class="no-canned-responses-btn-badge">
|
|
49
|
+
<ion-icon name="alert-sharp" style="vertical-align: middle;"></ion-icon>
|
|
50
|
+
</div>
|
|
51
|
+
<div *ngIf="IS_SUPPORT_GROUP_CONVERSATION && tagsCannedCount > 0" tooltip="{{translationMap?.get('YES_CANNED_RESPONSES')}}" [options]="tooltipOptions" placement="top" class="canned-responses-btn-badge">
|
|
52
|
+
<ion-icon name="information-sharp" style="vertical-align: middle;"></ion-icon>
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
<div class="upload-image-btn-wpr" tooltip="{{translationMap?.get('UPLOAD')}}" [options]="tooltipOptions" placement="top">
|
|
52
56
|
<ion-button ion-button fill="clear" class="upload-image-btn">
|
|
53
57
|
<ion-icon slot="icon-only" lazy="true" name="attach-outline"
|
|
54
58
|
style="font-size: 30px;transform: rotate(42deg);"></ion-icon>
|
package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss
CHANGED
|
@@ -107,12 +107,43 @@
|
|
|
107
107
|
--padding-bottom: 0px;
|
|
108
108
|
--padding-top: 0px;
|
|
109
109
|
--border-radius: 50%;
|
|
110
|
-
--padding-end:
|
|
111
|
-
--padding-start:
|
|
110
|
+
--padding-end: 2px;
|
|
111
|
+
--padding-start: 2px;
|
|
112
112
|
height: 33px !important;
|
|
113
|
-
width:
|
|
113
|
+
width: 33px;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
+
.no-canned-responses-btn-badge {
|
|
117
|
+
position: absolute;
|
|
118
|
+
font-size: 12px;
|
|
119
|
+
background-color: transparent;
|
|
120
|
+
border-radius: 50%;
|
|
121
|
+
padding: 1px 2px;
|
|
122
|
+
top: 4px;
|
|
123
|
+
color: red;
|
|
124
|
+
left: -3px;
|
|
125
|
+
cursor: pointer;
|
|
126
|
+
}
|
|
127
|
+
.no-canned-responses-btn-badge:hover {
|
|
128
|
+
background-color: rgba(0, 0, 0, 0.05);;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.canned-responses-btn-badge {
|
|
132
|
+
position: absolute;
|
|
133
|
+
font-size: 12px;
|
|
134
|
+
background-color: transparent;
|
|
135
|
+
border-radius: 50%;
|
|
136
|
+
padding: 1px 2px;
|
|
137
|
+
top: 4px;
|
|
138
|
+
color: #92949c;
|
|
139
|
+
left: -3px;
|
|
140
|
+
cursor: pointer;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.canned-responses-btn-badge:hover {
|
|
144
|
+
background-color: rgba(0, 0, 0, 0.05);;
|
|
145
|
+
}
|
|
146
|
+
|
|
116
147
|
|
|
117
148
|
.upload-image-btn .button-native {
|
|
118
149
|
border-radius: 50%;
|
package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts
CHANGED
|
@@ -43,6 +43,7 @@ export class MessageTextAreaComponent implements OnInit, AfterViewInit, OnChange
|
|
|
43
43
|
@Input() loggedUser: UserModel;
|
|
44
44
|
@Input() conversationWith: string;
|
|
45
45
|
@Input() tagsCannedFilter: any = [];
|
|
46
|
+
@Input() tagsCannedCount: number;
|
|
46
47
|
|
|
47
48
|
@Input() events: Observable<void>;
|
|
48
49
|
@Input() fileUploadAccept: string
|
|
@@ -132,6 +133,9 @@ export class MessageTextAreaComponent implements OnInit, AfterViewInit, OnChange
|
|
|
132
133
|
|
|
133
134
|
this.logger.log("[CONVS-DETAIL][MSG-TEXT-AREA] ngOnChanges DROP EVENT ", this.dropEvent);
|
|
134
135
|
this.logger.log("[CONVS-DETAIL][MSG-TEXT-AREA] ngOnChanges tagsCannedFilter ", this.tagsCannedFilter);
|
|
136
|
+
// console.log("[CONVS-DETAIL][MSG-TEXT-AREA] ngOnChanges tagsCannedCount ", this.tagsCannedCount);
|
|
137
|
+
|
|
138
|
+
|
|
135
139
|
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea ngOnChanges in [MSG-TEXT-AREA] this.tagsCannedFilter.length ', this.tagsCannedFilter.length)
|
|
136
140
|
|
|
137
141
|
// use case drop
|
|
@@ -202,9 +206,7 @@ export class MessageTextAreaComponent implements OnInit, AfterViewInit, OnChange
|
|
|
202
206
|
} else if (this.currentWindowWidth <= 273) {
|
|
203
207
|
this.TEXAREA_PLACEHOLDER = this.SHORTER_TEXAREA_PLACEHOLDER;
|
|
204
208
|
}
|
|
205
|
-
|
|
206
209
|
}
|
|
207
|
-
|
|
208
210
|
}
|
|
209
211
|
|
|
210
212
|
// -------------------------------------------------------------------------------------------
|
|
@@ -429,7 +431,7 @@ export class MessageTextAreaComponent implements OnInit, AfterViewInit, OnChange
|
|
|
429
431
|
// this.logger.log("[CONVS-DETAIL][MSG-TEXT-AREA] ionChange detail.value ", e.detail.value);
|
|
430
432
|
|
|
431
433
|
const message = e.detail.value
|
|
432
|
-
|
|
434
|
+
this.logger.log("[CONVS-DETAIL] [MSG-TEXT-AREA] ionChange message ", message);
|
|
433
435
|
// this.logger.log("[CONVS-DETAIL] [MSG-TEXT-AREA] ionChange this.messageString ", this.messageString);
|
|
434
436
|
const height = e.target.offsetHeight + 20; // nk added +20
|
|
435
437
|
// this.logger.log("[CONVS-DETAIL] [MSG-TEXT-AREA] ionChange text-area height ", height);
|
|
@@ -556,12 +558,12 @@ export class MessageTextAreaComponent implements OnInit, AfterViewInit, OnChange
|
|
|
556
558
|
|
|
557
559
|
|
|
558
560
|
sendMessage(text: string) {
|
|
559
|
-
this.logger.log('[CONVS-DETAIL][MSG-TEXT-AREA] sendMessage', text);
|
|
561
|
+
this.logger.log('[CONVS-DETAIL][MSG-TEXT-AREA] sendMessage text', text);
|
|
560
562
|
this.logger.log('[CONVS-DETAIL][MSG-TEXT-AREA] sendMessage conve width', this.conversationWith);
|
|
561
563
|
// text.replace(/\s/g, "")
|
|
562
564
|
this.messageString = '';
|
|
563
565
|
// text = text.replace(/(\r\n|\n|\r)/gm, '');
|
|
564
|
-
if (text.trim() !== '') {
|
|
566
|
+
if (text && text.trim() !== '') {
|
|
565
567
|
this.eventSendMessage.emit({ message: text, type: TYPE_MSG_TEXT });
|
|
566
568
|
}
|
|
567
569
|
}
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
text-decoration: none;
|
|
71
71
|
cursor: pointer;
|
|
72
72
|
svg {
|
|
73
|
-
fill: rgba(255,255,255);
|
|
73
|
+
fill: rgba(255,255,255, 1);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
text-decoration: none;
|
|
96
96
|
cursor: pointer;
|
|
97
97
|
svg {
|
|
98
|
-
fill: rgba(255,255,255);
|
|
98
|
+
fill: rgba(255,255,255, 1);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
|
|
@@ -7,140 +7,140 @@
|
|
|
7
7
|
<!-- *ngIf="!showSpinner" -->
|
|
8
8
|
<div class="left-sidebar-project" style="margin-right: -10px;">
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<div class="
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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>
|
|
47
|
-
</svg>
|
|
10
|
+
<div class="small-projects-sidebar">
|
|
11
|
+
<!-- <div class="pinned-project">Pinned project </div> margin-left:4px -->
|
|
12
|
+
<div *ngIf="project?.id_project?.status !== 0" class="flex-container-project-for-panel project-row">
|
|
13
|
+
<div class="flex-child-left" [tooltip]="conversationsInQueue" [options]="tooltipOptions" placement="top"
|
|
14
|
+
content-type="template" (click)="openUnservedConvs()">
|
|
15
|
+
<div class="unassigned-notifications-icon-wpr">
|
|
16
|
+
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false"
|
|
17
|
+
class="style-scope yt-icon"
|
|
18
|
+
style="pointer-events: none; width: 37px; height:auto; fill: rgb(107,107,107);margin-top: 9px;">
|
|
19
|
+
<g class="style-scope yt-icon">
|
|
20
|
+
<path
|
|
21
|
+
d="M10,20h4c0,1.1-0.9,2-2,2S10,21.1,10,20z M20,17.35V19H4v-1.65l2-1.88v-5.15c0-2.92,1.56-5.22,4-5.98V3.96 c0-1.42,1.49-2.5,2.99-1.76C13.64,2.52,14,3.23,14,3.96l0,0.39c2.44,0.75,4,3.06,4,5.98v5.15L20,17.35z M19,17.77l-2-1.88v-5.47 c0-2.47-1.19-4.36-3.13-5.1c-1.26-0.53-2.64-0.5-3.84,0.03C8.15,6.11,7,7.99,7,10.42v5.47l-2,1.88V18h14V17.77z"
|
|
22
|
+
class="style-scope yt-icon"></path>
|
|
23
|
+
</g>
|
|
24
|
+
</svg>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="unassigned-notifications-badge">
|
|
27
|
+
<!-- || currentUserRequestCount > 0 -->
|
|
28
|
+
<!-- <span *ngIf="unservedRequestCount > 0 "> -->
|
|
29
|
+
<!-- + currentUserRequestCount -->
|
|
30
|
+
<span class="notification-count">{{ unservedRequestCount }}</span>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
48
33
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
<!-- <span *ngIf="unservedRequestCount > 0 "> -->
|
|
53
|
-
<!-- + currentUserRequestCount -->
|
|
54
|
-
<span class="notification-count">{{ unservedRequestCount }}</span>
|
|
55
|
-
<!-- </span> -->
|
|
34
|
+
<ng-template #conversationsInQueue>
|
|
35
|
+
<span>{{ unservedRequestCount }} {{translationMap?.get('CONVERSATIONS_IN_QUEUE') }}</span>
|
|
36
|
+
</ng-template>
|
|
56
37
|
|
|
57
|
-
</div>
|
|
58
38
|
|
|
39
|
+
<div class="flex-child-right">
|
|
40
|
+
<div class="project-name-project-for-panel" [tooltip]="conversationsInQueueOnProjectName" [options]="tooltipOptions"
|
|
41
|
+
placement="top" content-type="template" (click)="openUnservedConvs()">
|
|
42
|
+
<div class="project---name"> {{ project?.id_project?.name }} </div>
|
|
59
43
|
</div>
|
|
44
|
+
<ng-template #conversationsInQueueOnProjectName>
|
|
45
|
+
<span>{{ unservedRequestCount }} {{translationMap?.get('CONVERSATIONS_IN_QUEUE') }}</span>
|
|
46
|
+
</ng-template>
|
|
60
47
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
{{ project?.id_project?.name }}
|
|
65
|
-
</div>
|
|
66
|
-
|
|
67
|
-
<!-- <div class="status--text"
|
|
68
|
-
(click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)"
|
|
69
|
-
[ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}">
|
|
70
|
-
<span *ngIf="project?.ws_projct_user_available === true">
|
|
71
|
-
Online
|
|
72
|
-
</span>
|
|
73
|
-
<span *ngIf="project?.ws_projct_user_available === false">
|
|
74
|
-
Offline
|
|
75
|
-
</span>
|
|
76
|
-
<span class="status--icon-project-for-panel"
|
|
77
|
-
[ngStyle]="{ 'background-color':(project?.ws_projct_user_available)?'#4caf50':'#f44336' }">
|
|
78
|
-
</span>
|
|
79
|
-
<span class="status--icon-project-for-panel busy--icon"
|
|
80
|
-
*ngIf="project?.ws_projct_user_isBusy === true">
|
|
81
|
-
</span>
|
|
82
|
-
</div> -->
|
|
83
|
-
<div class="availabily-and-busy-wpr">
|
|
84
|
-
<!-- <div class="onoffswitch"
|
|
48
|
+
<div class="availabily-and-busy-wpr">
|
|
49
|
+
<div class="availabily---wpr" tooltip="{{avaialble_status_for_tooltip}}" [options]="tooltipOptions">
|
|
50
|
+
<div class="onoffswitch"
|
|
85
51
|
(click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)">
|
|
86
|
-
<input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="
|
|
52
|
+
<input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="switchavailableunavailablestatus"
|
|
87
53
|
tabindex="0" [checked]="project?.ws_projct_user_available">
|
|
88
|
-
<label class="onoffswitch-label" for="
|
|
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>
|
|
54
|
+
<label class="onoffswitch-label" for="switchavailableunavailablestatus"></label>
|
|
105
55
|
</div>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
106
58
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
59
|
+
<!-- (click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)" -->
|
|
60
|
+
<span *ngIf="project?.ws_projct_user_available === true" class="availibility-status-text"
|
|
61
|
+
[ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}">
|
|
62
|
+
{{translationMap?.get('Available') }}
|
|
63
|
+
</span>
|
|
64
|
+
<!-- (click)="$event.stopPropagation();changeAvailabilityState(project?.id_project?._id, project?.ws_projct_user_available)" -->
|
|
65
|
+
<span *ngIf="project?.ws_projct_user_available === false" class="availibility-status-text"
|
|
66
|
+
[ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}">
|
|
67
|
+
{{translationMap?.get('Unavailable')}}
|
|
68
|
+
</span>
|
|
69
|
+
<div class="project-item--isBusy-icon-wpr" *ngIf="project?.ws_projct_user_isBusy === true">
|
|
70
|
+
<!-- <span class="material-icons project-item--isBusy-icon">
|
|
119
71
|
access_time
|
|
120
72
|
</span> -->
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
73
|
+
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="16px"
|
|
74
|
+
viewBox="0 0 24 24" width="16px" fill="#FEB92C">
|
|
75
|
+
<g>
|
|
76
|
+
<path d="M0,0h24v24H0V0z" fill="none" />
|
|
77
|
+
</g>
|
|
78
|
+
<g>
|
|
79
|
+
<path
|
|
80
|
+
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" />
|
|
81
|
+
</g>
|
|
82
|
+
</svg>
|
|
83
|
+
</div>
|
|
84
|
+
<span *ngIf="project?.ws_projct_user_isBusy === true"
|
|
85
|
+
class="project-item--isBusy-busy-text text-pulse-animation">
|
|
86
|
+
{{translationMap?.get('Busy')}}
|
|
87
|
+
</span>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
<div class="flex-child-view-all-convs">
|
|
92
|
+
<div class="view-all-convs-icon-wpr" style="cursor: pointer;" [tooltip]="viewAllConvs"
|
|
93
|
+
[options]="tooltipOptions" placement="top" content-type="template">
|
|
94
|
+
|
|
95
|
+
<ion-button ion-button fill="clear" class="open-unserved-convs-btn" (click)="openUnservedConvsAndGoToProjectList()">
|
|
96
|
+
|
|
97
|
+
<span class="push-icon-and-list-wpr">
|
|
98
|
+
<!-- <svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg"
|
|
99
|
+
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24"
|
|
100
|
+
style="enable-background:new 0 0 24 24;" xml:space="preserve" style="width: 20px;">
|
|
101
|
+
<style type="text/css">
|
|
102
|
+
.st0 {
|
|
103
|
+
fill: #3880ff;
|
|
104
|
+
}
|
|
105
|
+
</style>
|
|
106
|
+
<path class="st0"
|
|
107
|
+
d="M22.8,15v-2c-1.7,0-3-1.3-3-3V5h1c0.5,0,1-0.5,1-1s-0.5-1-1-1h-10c-0.5,0-1,0.5-1,1s0.5,1,1,1h1v5
|
|
108
|
+
c0,1.7-1.3,3-3,3v2h6v5c0.6,0,1.4,0,2,0v-5H22.8z M12.8,13c0.7-0.9,1-1.9,1-3V5h4v5c0,1.1,0.4,2.2,1,3H12.8z" />
|
|
109
|
+
<rect x="1.2" y="13" class="st0" width="6.3" height="2" />
|
|
110
|
+
<rect x="1.2" y="18" class="st0" width="12.1" height="2" />
|
|
111
|
+
<rect x="1.2" y="7.6" class="st0" width="9.2" height="2" />
|
|
112
|
+
</svg> -->
|
|
113
|
+
|
|
114
|
+
<svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg"
|
|
115
|
+
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24"
|
|
116
|
+
style="enable-background:new 0 0 24 24;" xml:space="preserve" style="width: 16px;">
|
|
117
|
+
<style type="text/css">
|
|
118
|
+
.st0 {
|
|
119
|
+
fill: #165CEE;
|
|
120
|
+
}
|
|
121
|
+
</style>
|
|
122
|
+
<path class="st0" d="M20.6,16.3v-2.4c-2.1,0-3.7-1.6-3.7-3.7V4h1.2c0.6,0,1.2-0.6,1.2-1.2s-0.6-1.2-1.2-1.2H5.9
|
|
123
|
+
c-0.6,0-1.2,0.6-1.2,1.2S5.3,4,5.9,4h1.2v6.1c0,2.1-1.6,3.7-3.7,3.7v2.4h7.3v6.1c0.7,0,1.7,0,2.4,0v-6.1H20.6z M8.3,13.8
|
|
124
|
+
c0.9-1.1,1.2-2.3,1.2-3.7V4h4.9v6.1c0,1.3,0.5,2.7,1.2,3.7H8.3z" />
|
|
130
125
|
</svg>
|
|
131
|
-
</div>
|
|
132
|
-
<span *ngIf="project?.ws_projct_user_isBusy === true" class="project-item--isBusy-busy-text text-pulse-animation">
|
|
133
|
-
{{translationMap?.get('Busy')}}
|
|
134
126
|
</span>
|
|
135
|
-
</div>
|
|
136
127
|
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
</ion-button>
|
|
137
131
|
</div>
|
|
132
|
+
<ng-template #viewAllConvs>
|
|
133
|
+
<span>
|
|
138
134
|
|
|
135
|
+
{{translationMap?.get('CHANGE_PINNED_PROJECT') }}</span>
|
|
136
|
+
</ng-template>
|
|
139
137
|
</div>
|
|
140
|
-
</div>
|
|
141
138
|
|
|
139
|
+
</div>
|
|
142
140
|
</div>
|
|
143
141
|
|
|
142
|
+
<!-- </div> -->
|
|
143
|
+
|
|
144
144
|
</div>
|
|
145
145
|
</div>
|
|
146
146
|
</div>
|