@chat21/chat21-ionic 3.0.61-rc8 → 3.0.62
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 +81 -0
- package/README.md +6 -0
- package/angular.json +2 -0
- package/config.xml +0 -1
- package/deploy_pre.sh +1 -1
- package/deploy_prod.sh +1 -1
- package/env.sample +1 -1
- package/package.json +4 -4
- package/src/app/app-routing.module.ts +15 -0
- package/src/app/app.component.ts +12 -9
- package/src/app/app.module.ts +11 -3
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +36 -25
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +160 -50
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +108 -18
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +21 -36
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.scss +19 -7
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +35 -40
- package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.scss +1 -1
- package/src/app/chatlib/list-conversations-component/list-conversations/list-conversations.component.ts +13 -10
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +3 -2
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +2 -0
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +142 -71
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +57 -20
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +32 -9
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +98 -24
- package/src/app/components/ddp-header/ddp-header.component.html +9 -2
- package/src/app/components/ddp-header/ddp-header.component.ts +93 -18
- package/src/app/components/project-item/project-item.component.html +1 -1
- package/src/app/components/project-item/project-item.component.scss +1 -1
- package/src/app/components/project-item/project-item.component.ts +3 -3
- package/src/app/components/sidebar/sidebar.component.html +65 -52
- package/src/app/components/sidebar/sidebar.component.scss +23 -0
- package/src/app/components/sidebar/sidebar.component.ts +74 -26
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +20 -9
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.scss +30 -5
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +24 -8
- package/src/app/pages/conversation-detail/conversation-detail.module.ts +5 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.html +19 -10
- package/src/app/pages/conversation-detail/conversation-detail.page.scss +28 -0
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +229 -389
- package/src/app/pages/conversations-list/conversations-list.page.ts +646 -454
- package/src/app/pages/create-canned-response/create-canned-response-routing.module.ts +17 -0
- package/src/app/pages/create-canned-response/create-canned-response.module.ts +30 -0
- package/src/app/pages/create-canned-response/create-canned-response.page.html +150 -0
- package/src/app/pages/create-canned-response/create-canned-response.page.scss +55 -0
- package/src/app/pages/create-canned-response/create-canned-response.page.spec.ts +24 -0
- package/src/app/pages/create-canned-response/create-canned-response.page.ts +319 -0
- package/src/app/pages/create-requester/create-requester-routing.module.ts +17 -0
- package/src/app/pages/create-requester/create-requester.module.ts +28 -0
- package/src/app/pages/create-requester/create-requester.page.html +67 -0
- package/src/app/pages/create-requester/create-requester.page.scss +30 -0
- package/src/app/pages/create-requester/create-requester.page.spec.ts +24 -0
- package/src/app/pages/create-requester/create-requester.page.ts +138 -0
- package/src/app/pages/create-ticket/create-ticket-routing.module.ts +17 -0
- package/src/app/pages/create-ticket/create-ticket.module.ts +28 -0
- package/src/app/pages/create-ticket/create-ticket.page.html +171 -0
- package/src/app/pages/create-ticket/create-ticket.page.scss +52 -0
- package/src/app/pages/create-ticket/create-ticket.page.spec.ts +24 -0
- package/src/app/pages/create-ticket/create-ticket.page.ts +432 -0
- package/src/app/pages/loader-preview/loader-preview.page.ts +2 -11
- package/src/app/pages/profile-info/profile-info.page.html +2 -2
- package/src/app/pages/profile-info/profile-info.page.scss +12 -1
- package/src/app/services/tiledesk/tiledesk.service.ts +190 -0
- package/src/app/shared/shared.module.ts +1 -1
- package/src/assets/i18n/de.json +37 -1
- package/src/assets/i18n/en.json +37 -1
- package/src/assets/i18n/es.json +38 -2
- package/src/assets/i18n/fr.json +38 -2
- package/src/assets/i18n/it.json +38 -2
- package/src/assets/i18n/pt.json +38 -2
- package/src/assets/i18n/ru.json +38 -2
- package/src/assets/i18n/sr.json +38 -2
- package/src/assets/i18n/tr.json +37 -1
- package/src/assets/images/default-avatar-x-select.png +0 -0
- package/src/assets/images/priority_icons/high.svg +3 -0
- package/src/assets/images/priority_icons/high_v2.svg +14 -0
- package/src/assets/images/priority_icons/low.svg +10 -0
- package/src/assets/images/priority_icons/low_v2.svg +14 -0
- package/src/assets/images/priority_icons/medium.svg +16 -0
- package/src/assets/images/priority_icons/medium_v2.svg +11 -0
- package/src/assets/images/priority_icons/urgent.svg +4 -0
- package/src/assets/images/priority_icons/urgent_v2.svg +16 -0
- package/src/chat-config-mqtt.json +25 -16
- package/src/chat-config-pre-test.json +1 -1
- package/src/chat-config-template.json +5 -4
- package/src/chat-config.json +1 -0
- package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +8 -3
- package/src/chat21-core/utils/constants.ts +2 -0
- package/src/chat21-core/utils/utils-message.ts +19 -0
- package/src/global.scss +33 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,86 @@
|
|
|
1
1
|
# chat21-ionic ver 3.0
|
|
2
2
|
|
|
3
|
+
### 3.0.62
|
|
4
|
+
- Deploys in production
|
|
5
|
+
|
|
6
|
+
### 3.0.62-rc2
|
|
7
|
+
- Fixed bug: in the teammate drawer if the full name is too long it overlaps the email
|
|
8
|
+
- Fixed bug: in the teammate drawer if the email is too long it exceeds the width of the drawer
|
|
9
|
+
|
|
10
|
+
### 3.0.62-rc1
|
|
11
|
+
- Change the URL of the environment variable "dashboardUrl" from absolute to relative
|
|
12
|
+
|
|
13
|
+
### 3.0.61
|
|
14
|
+
- Deploys in production
|
|
15
|
+
|
|
16
|
+
### 3.0.61-rc26
|
|
17
|
+
- Fixes the bug: the conversation detail is not opened if the URL contains round brackets
|
|
18
|
+
|
|
19
|
+
### 3.0.61-rc25
|
|
20
|
+
- Handles the case that in the storage the value of the "last_project" key is undefined
|
|
21
|
+
|
|
22
|
+
### 3.0.61-rc24
|
|
23
|
+
- Handles the "writeToButton" and the 'archivedButton' environment variables if are returned as a string
|
|
24
|
+
- Adds the "authPersistence" key in the chat-config-template.json, chat-config.json and env.sample files
|
|
25
|
+
|
|
26
|
+
### 3.0.61-rc23
|
|
27
|
+
- Handles the "supportMode" environment variable if returned as a string (fixes the Docker image bugs: part of the conversation details go under the sidebar in mobile mode, the "add message as canned response" button is not displayed)
|
|
28
|
+
- Fixes the position of the emoji selection window pop up when the canned responses button is not visible
|
|
29
|
+
|
|
30
|
+
### 3.0.61-rc22
|
|
31
|
+
- Minor improvements
|
|
32
|
+
|
|
33
|
+
### 3.0.61-rc21
|
|
34
|
+
- Removes cordova-plugin-device
|
|
35
|
+
|
|
36
|
+
### 3.0.61-rc20
|
|
37
|
+
- Updates dependencies
|
|
38
|
+
|
|
39
|
+
### 3.0.61-rc19
|
|
40
|
+
- Merge branch 'features/new-sidebar'
|
|
41
|
+
|
|
42
|
+
### 3.0.61-rc18
|
|
43
|
+
- Fix bugs: in the teammate settings drawer the logout button area is too large
|
|
44
|
+
- Fixed the bug: in the detail of the conversation the button messages are not aligned with the other messages
|
|
45
|
+
|
|
46
|
+
### 3.0.61-rc16
|
|
47
|
+
- Does not allow teammates with agent role to access the "settings sidebar"
|
|
48
|
+
|
|
49
|
+
### 3.0.61-rc15
|
|
50
|
+
- Increase the size of the emoji and remove the background color when it is sent or received without text
|
|
51
|
+
- Adds the ability to open sidebar menu items in a new tab by combining left mouse button + CMD keyboard key
|
|
52
|
+
|
|
53
|
+
### 3.0.61-rc14
|
|
54
|
+
- Fixes the bug: the page to which the sidebar Settings menu item redirects is not correct for team members with agent role
|
|
55
|
+
- Fixes the bug: right clicking on the sidebar menu items doesn't show the context menu
|
|
56
|
+
|
|
57
|
+
### 3.0.61-rc12
|
|
58
|
+
- Improves the alignment of left sidebar menu item icons
|
|
59
|
+
- Adds the ability to add a message as a canned response
|
|
60
|
+
- Hides the "Open canned responses" button if the "supportMode" environment variable is set to false
|
|
61
|
+
- Fixes the bug: "Settings" menu item in the left sidebar redirects to the "Canned responses" page instead of the "Widget" page
|
|
62
|
+
- Adds the ability to add a new canned response
|
|
63
|
+
- Fixes the bug: "Resolve conversation" from conversation detail header doesn't work on mobile
|
|
64
|
+
- Adds the ability to insert emoji in the message text
|
|
65
|
+
- Fixes the bug: on iOS mobile devices in the conversation detail the requester's avatar is not vertically aligned
|
|
66
|
+
- Fixes the bug: on mobile devices in the "info profile" modal window the version number is not visible because it is on a white background
|
|
67
|
+
- Fixes the bug: in the "Create canned response" modal window the "Add personalisation" menu does not always work
|
|
68
|
+
- Adds the chat version number to the teammate details drawer
|
|
69
|
+
- Makes the right sidebar "Settings" menu item visible to teammates with agent role
|
|
70
|
+
|
|
71
|
+
### 3.0.61-rc11
|
|
72
|
+
- Fixed the bug: the "Resolve" button is displayed in the header of the details of the archived conversations
|
|
73
|
+
- Fixed the bug: in the header of the conversation detail the "Resolve" button remains active even after resolving the conversation
|
|
74
|
+
- Adds the ability to create a ticket
|
|
75
|
+
- Adds tooltips to the buttons available in the header of the conversation list
|
|
76
|
+
- Change the text of the "Conversations" menu item in the left sidebar to "Monitor"
|
|
77
|
+
|
|
78
|
+
### 3.0.61-rc10
|
|
79
|
+
- Fixes the bug: the Analytics icon of the left sidebar is not displayed
|
|
80
|
+
|
|
81
|
+
### 3.0.61-rc9
|
|
82
|
+
- Fixes the bug: the Apps icon of the left sidebar is not displayed
|
|
83
|
+
|
|
3
84
|
### 3.0.61-rc8
|
|
4
85
|
- Changes the icon of the "Conversations" menu item to the left sidebar
|
|
5
86
|
- Adds Serbian language
|
package/README.md
CHANGED
|
@@ -36,6 +36,12 @@ In progress git
|
|
|
36
36
|
* A Firebase project. Create one free on `https://firebase.google.com`
|
|
37
37
|
* "Chat21 Firebase cloud functions" installed. Instructions:`https://github.com/chat21/chat21-cloud-functions`
|
|
38
38
|
|
|
39
|
+
# Run Tiledesk with Docker Compose
|
|
40
|
+
|
|
41
|
+
Do you want to install all the Tiledesk components on your server with just one click?
|
|
42
|
+
Use [Docker Compose Tiledesk installation guide](https://github.com/Tiledesk/tiledesk-deployment/blob/master/docker-compose/README.md)
|
|
43
|
+
|
|
44
|
+
|
|
39
45
|
# Installation #
|
|
40
46
|
* Install the latest stable release. Check on Github page the last release under the Releases tab and then run
|
|
41
47
|
- `git clone https://github.com/frontiere21/chat21-ionic.git --branch <LATEST-RELEASE-VERSION>`
|
package/angular.json
CHANGED
|
@@ -43,6 +43,8 @@
|
|
|
43
43
|
"styles": [
|
|
44
44
|
"node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css",
|
|
45
45
|
"node_modules/roboto-fontface/css/roboto/roboto-fontface.css",
|
|
46
|
+
"node_modules/@ng-select/ng-select/themes/default.theme.css",
|
|
47
|
+
"node_modules/@ctrl/ngx-emoji-mart/picker.css",
|
|
46
48
|
{
|
|
47
49
|
"input": "src/theme/variables.scss"
|
|
48
50
|
},
|
package/config.xml
CHANGED
|
@@ -106,7 +106,6 @@
|
|
|
106
106
|
<variable name="ANDROID_SUPPORT_VERSION" value="27.+" />
|
|
107
107
|
</plugin>
|
|
108
108
|
<plugin name="cordova-plugin-chooser" spec="^1.3.2" />
|
|
109
|
-
<plugin name="cordova-plugin-device" spec="^2.0.3" />
|
|
110
109
|
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.2.0" />
|
|
111
110
|
<plugin name="cordova-plugin-ionic-webview" spec="^4.2.1">
|
|
112
111
|
<variable name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" value="27.+" />
|
package/deploy_pre.sh
CHANGED
|
@@ -32,7 +32,7 @@ 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 -p config.xml platforms/browser/www/
|
|
36
36
|
|
|
37
37
|
######### chat-ionic5 - the good one - publish in pre
|
|
38
38
|
cd platforms/browser/www
|
package/deploy_prod.sh
CHANGED
|
@@ -25,7 +25,7 @@ cp -p config.xml platforms/browser/www/
|
|
|
25
25
|
|
|
26
26
|
###### CHAT in prod
|
|
27
27
|
cd platforms/browser/www
|
|
28
|
-
aws s3 sync . s3://tiledesk-
|
|
28
|
+
aws s3 sync . s3://tiledesk-console/v2/chat/
|
|
29
29
|
aws s3 sync . s3://tiledesk-console/v2/chat/$version/
|
|
30
30
|
cd ../../../
|
|
31
31
|
# aws cloudfront create-invalidation --distribution-id E2DTAKWHWQ7C3J --paths "/*"
|
package/env.sample
CHANGED
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chat21/chat21-ionic",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.62",
|
|
4
4
|
"author": "Tiledesk SRL",
|
|
5
|
-
"homepage": "https://
|
|
5
|
+
"homepage": "https://tiledesk.com/",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"ng": "ng",
|
|
8
8
|
"start": "ng serve",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"@angular/platform-browser": "~8.2.14",
|
|
24
24
|
"@angular/platform-browser-dynamic": "~8.2.14",
|
|
25
25
|
"@angular/router": "~8.2.14",
|
|
26
|
+
"@ctrl/ngx-emoji-mart": "^1.0.6",
|
|
26
27
|
"@ionic-native/chooser": "^5.29.0",
|
|
27
28
|
"@ionic-native/core": "^5.0.7",
|
|
28
29
|
"@ionic-native/globalization": "^5.28.0",
|
|
@@ -33,6 +34,7 @@
|
|
|
33
34
|
"@ionic/angular": "^5.0.7",
|
|
34
35
|
"@ionic/storage": "^2.2.0",
|
|
35
36
|
"@mdi/font": "^5.1.45",
|
|
37
|
+
"@ng-select/ng-select": "^3.7.3",
|
|
36
38
|
"@ngx-translate/core": "^12.1.2",
|
|
37
39
|
"@ngx-translate/http-loader": "^4.0.0",
|
|
38
40
|
"angular2-moment": "^1.9.0",
|
|
@@ -42,7 +44,6 @@
|
|
|
42
44
|
"cordova-browser": "^5.0.4",
|
|
43
45
|
"cordova-ios": "6.1.1",
|
|
44
46
|
"cordova-plugin-chooser": "^1.3.2",
|
|
45
|
-
"cordova-plugin-device": "^2.0.3",
|
|
46
47
|
"cordova-plugin-ionic-keyboard": "^2.2.0",
|
|
47
48
|
"cordova-plugin-ionic-webview": "^4.2.1",
|
|
48
49
|
"cordova-plugin-network-information": "^2.0.2",
|
|
@@ -95,7 +96,6 @@
|
|
|
95
96
|
"plugins": {
|
|
96
97
|
"cordova-plugin-whitelist": {},
|
|
97
98
|
"cordova-plugin-statusbar": {},
|
|
98
|
-
"cordova-plugin-device": {},
|
|
99
99
|
"cordova-plugin-splashscreen": {},
|
|
100
100
|
"cordova-plugin-ionic-webview": {
|
|
101
101
|
"ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
|
|
@@ -48,9 +48,24 @@ const routes: Routes = [
|
|
|
48
48
|
{
|
|
49
49
|
path: 'unassigned-conversations',
|
|
50
50
|
loadChildren: () => import('./pages/unassigned-conversations/unassigned-conversations.module').then( m => m.UnassignedConversationsPageModule)
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
path: 'create-ticket',
|
|
54
|
+
loadChildren: () => import('./pages/create-ticket/create-ticket.module').then( m => m.CreateTicketPageModule)
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
path: 'create-requester',
|
|
58
|
+
loadChildren: () => import('./pages/create-requester/create-requester.module').then( m => m.CreateRequesterPageModule)
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
path: 'create-canned-response',
|
|
62
|
+
loadChildren: () => import('./pages/create-canned-response/create-canned-response.module').then( m => m.CreateCannedResponsePageModule)
|
|
51
63
|
}
|
|
52
64
|
|
|
53
65
|
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
54
69
|
// {
|
|
55
70
|
// path: 'conversation-detail/:IDConv',
|
|
56
71
|
// loadChildren: () => import('./pages/conversation-detail/conversation-detail.module').then( m => m.ConversationDetailPageModule)
|
package/src/app/app.component.ts
CHANGED
|
@@ -268,7 +268,7 @@ export class AppComponent implements OnInit {
|
|
|
268
268
|
|
|
269
269
|
|
|
270
270
|
saveInStorageNumberOfOpenedChatTab() {
|
|
271
|
-
this.logger.log('Calling saveInStorageChatOpenedTab!');
|
|
271
|
+
// this.logger.log('Calling saveInStorageChatOpenedTab!');
|
|
272
272
|
|
|
273
273
|
// https://jsfiddle.net/jjjs5wd3/3/å
|
|
274
274
|
if (+localStorage.tabCount > 0) {
|
|
@@ -298,12 +298,13 @@ export class AppComponent implements OnInit {
|
|
|
298
298
|
*/
|
|
299
299
|
ngOnInit() {
|
|
300
300
|
const appconfig = this.appConfigProvider.getConfig();
|
|
301
|
-
|
|
302
|
-
if (appconfig && appconfig.supportMode) {
|
|
303
|
-
this.SUPPORT_MODE =
|
|
304
|
-
|
|
301
|
+
this.logger.log('[APP-COMP] ngOnInit appconfig', appconfig)
|
|
302
|
+
if (appconfig && appconfig.supportMode && (appconfig.supportMode === true || appconfig.supportMode === 'true' )) {
|
|
303
|
+
this.SUPPORT_MODE = true;
|
|
304
|
+
this.logger.log('[APP-COMP] appconfig > SUPPORT_MODE', this.SUPPORT_MODE)
|
|
305
305
|
} else {
|
|
306
306
|
this.SUPPORT_MODE = false;
|
|
307
|
+
this.logger.log('[APP-COMP] appconfig > SUPPORT_MODE', this.SUPPORT_MODE)
|
|
307
308
|
}
|
|
308
309
|
this.persistence = appconfig.authPersistence;
|
|
309
310
|
this.appStorageService.initialize(environment.storage_prefix, this.persistence, '')
|
|
@@ -435,7 +436,7 @@ export class AppComponent implements OnInit {
|
|
|
435
436
|
// this.logger.log('[APP-COMP] - X - initializeApp !!! CALLED-BY: ', calledby);
|
|
436
437
|
// console.log('[APP-COMP] appconfig platform is cordova: ', this.platform.is('cordova'))
|
|
437
438
|
|
|
438
|
-
if (!this.platform.is('
|
|
439
|
+
if (!this.platform.is('desktop')) {
|
|
439
440
|
this.splashScreen.show();
|
|
440
441
|
}
|
|
441
442
|
this.tabTitle = document.title;
|
|
@@ -723,6 +724,7 @@ export class AppComponent implements OnInit {
|
|
|
723
724
|
|
|
724
725
|
this.logger.log('[APP-COMP] checkPlatformIsMobile', checkPlatformIsMobile());
|
|
725
726
|
this.platformIs = PLATFORM_MOBILE;
|
|
727
|
+
this.logger.log('[APP-COMP] this.platformIs', this.platformIs);
|
|
726
728
|
const IDConv = this.route.snapshot.firstChild.paramMap.get('IDConv');
|
|
727
729
|
|
|
728
730
|
// console.log('[APP-COMP] platformIs', this.platformIs);
|
|
@@ -736,7 +738,7 @@ export class AppComponent implements OnInit {
|
|
|
736
738
|
this.chatManager.startApp();
|
|
737
739
|
this.logger.log('[APP-COMP] checkPlatformIsMobile', checkPlatformIsMobile());
|
|
738
740
|
this.platformIs = PLATFORM_DESKTOP;
|
|
739
|
-
|
|
741
|
+
this.logger.log('[APP-COMP] platformIs', this.platformIs);
|
|
740
742
|
// console.log('[APP-COMP] PLATFORM', PLATFORM_DESKTOP, 'route.snapshot', this.route.snapshot);
|
|
741
743
|
this.logger.log('[APP-COMP] PLATFORM_DESKTOP ', this.navService);
|
|
742
744
|
|
|
@@ -752,8 +754,8 @@ export class AppComponent implements OnInit {
|
|
|
752
754
|
if (IDConv && FullNameConv) {
|
|
753
755
|
pageUrl += IDConv + '/' + FullNameConv + '/' + Convtype
|
|
754
756
|
}
|
|
755
|
-
|
|
756
|
-
this.router.navigateByUrl(pageUrl);
|
|
757
|
+
// replace(/\(/g, '%28').replace(/\)/g, '%29') -> used for the encoder of any round brackets
|
|
758
|
+
this.router.navigateByUrl(pageUrl.replace(/\(/g, '%28').replace(/\)/g, '%29'));
|
|
757
759
|
|
|
758
760
|
|
|
759
761
|
// const DASHBOARD_URL = this.appConfigProvider.getConfig().DASHBOARD_URL;
|
|
@@ -1005,6 +1007,7 @@ export class AppComponent implements OnInit {
|
|
|
1005
1007
|
let platformIsNow = PLATFORM_DESKTOP;
|
|
1006
1008
|
if (checkPlatformIsMobile()) {
|
|
1007
1009
|
platformIsNow = PLATFORM_MOBILE;
|
|
1010
|
+
this.logger.log('onResize platformIsNow ', platformIsNow)
|
|
1008
1011
|
}
|
|
1009
1012
|
if (!this.platformIs || this.platformIs === '') {
|
|
1010
1013
|
this.platformIs = platformIsNow;
|
package/src/app/app.module.ts
CHANGED
|
@@ -82,7 +82,9 @@ import { ConversationListPageModule } from './pages/conversations-list/conversat
|
|
|
82
82
|
import { ConversationDetailPageModule } from './pages/conversation-detail/conversation-detail.module';
|
|
83
83
|
import { LoginPageModule } from './pages/authentication/login/login.module';
|
|
84
84
|
import { LoaderPreviewPageModule } from './pages/loader-preview/loader-preview.module';
|
|
85
|
-
|
|
85
|
+
import { CreateTicketPageModule } from './pages/create-ticket/create-ticket.module';
|
|
86
|
+
import { CreateRequesterPageModule } from './pages/create-requester/create-requester.module';
|
|
87
|
+
import { CreateCannedResponsePageModule } from './pages/create-canned-response/create-canned-response.module';
|
|
86
88
|
// UTILS
|
|
87
89
|
import { ScrollbarThemeModule } from './utils/scrollbar-theme.directive';
|
|
88
90
|
import { SharedModule } from 'src/app/shared/shared.module';
|
|
@@ -90,6 +92,8 @@ import { ConversationInfoModule } from 'src/app/components/conversation-info/con
|
|
|
90
92
|
|
|
91
93
|
|
|
92
94
|
// Directives
|
|
95
|
+
// import { HtmlEntitiesEncodePipe } from './directives/html-entities-encode.pipe';
|
|
96
|
+
// import { MarkedPipe } from './directives/marked.pipe';
|
|
93
97
|
|
|
94
98
|
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
95
99
|
import { Network } from '@ionic-native/network/ngx';
|
|
@@ -97,6 +101,7 @@ import { ConnectionService } from 'ng-connection-service';
|
|
|
97
101
|
import { WebSocketJs } from './services/websocket/websocket-js';
|
|
98
102
|
import { UnassignedConversationsPageModule } from './pages/unassigned-conversations/unassigned-conversations.module';
|
|
99
103
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
104
|
+
|
|
100
105
|
// FACTORIES
|
|
101
106
|
export function createTranslateLoader(http: HttpClient) {
|
|
102
107
|
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
|
|
@@ -245,7 +250,7 @@ const appInitializerFn = (appConfig: AppConfigProvider, logger: NGXLogger) => {
|
|
|
245
250
|
|
|
246
251
|
@NgModule({
|
|
247
252
|
declarations: [
|
|
248
|
-
AppComponent
|
|
253
|
+
AppComponent
|
|
249
254
|
],
|
|
250
255
|
entryComponents: [
|
|
251
256
|
],
|
|
@@ -280,7 +285,10 @@ const appInitializerFn = (appConfig: AppConfigProvider, logger: NGXLogger) => {
|
|
|
280
285
|
SharedModule,
|
|
281
286
|
ConversationInfoModule,
|
|
282
287
|
NgxLinkifyjsModule.forRoot(),
|
|
283
|
-
LoaderPreviewPageModule
|
|
288
|
+
LoaderPreviewPageModule,
|
|
289
|
+
CreateTicketPageModule,
|
|
290
|
+
CreateRequesterPageModule,
|
|
291
|
+
CreateCannedResponsePageModule
|
|
284
292
|
],
|
|
285
293
|
bootstrap: [AppComponent],
|
|
286
294
|
|
|
@@ -54,12 +54,23 @@
|
|
|
54
54
|
<!-- ----------------------------------------------------------- -->
|
|
55
55
|
|
|
56
56
|
<div class="conversation-wpr" style="height: 100%;">
|
|
57
|
-
<div *ngFor="let message of messages; let i = index">
|
|
57
|
+
<div *ngFor="let message of messages; let i = index; let first = first; trackBy: trackByFn">
|
|
58
|
+
|
|
59
|
+
<ng-container *ngIf="first || (messages[i - 1].timestamp | date:'d') !== (message.timestamp | date:'d')">
|
|
60
|
+
<div class="long-date-divider-wpr">
|
|
61
|
+
<div class="long-date-divider-border-b"></div>
|
|
62
|
+
<div class="long-date-divider">
|
|
63
|
+
<!-- {{message.timestamp | date: 'longDate' : 'it'}} -->
|
|
64
|
+
{{message.timestamp | amDateFormat:'LL'}}
|
|
65
|
+
|
|
66
|
+
</div>
|
|
67
|
+
<div class="long-date-divider-border-b"></div>
|
|
68
|
+
</div>
|
|
69
|
+
</ng-container>
|
|
58
70
|
|
|
59
71
|
<div class="align-center" class="ion-text-center" *ngIf="messageType(MESSAGE_TYPE_INFO, message)"
|
|
60
72
|
class="msg_info_container">
|
|
61
|
-
<chat-info-message class="messages"
|
|
62
|
-
[message]="message">
|
|
73
|
+
<chat-info-message class="messages" [message]="message">
|
|
63
74
|
</chat-info-message>
|
|
64
75
|
</div>
|
|
65
76
|
|
|
@@ -67,13 +78,15 @@
|
|
|
67
78
|
<div role="messaggio" *ngIf="messageType(MESSAGE_TYPE_MINE, message)" class="msg_container base_sent">
|
|
68
79
|
|
|
69
80
|
<!--backgroundColor non viene ancora usato -->
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
[ngClass]="{'
|
|
73
|
-
[
|
|
74
|
-
(onBeforeMessageRender)="returnOnBeforeMessageRender($event)"
|
|
75
|
-
(onAfterMessageRender)="returnOnAfterMessageRender($event)"
|
|
76
|
-
|
|
81
|
+
|
|
82
|
+
<chat-bubble-message style="position: relative;"
|
|
83
|
+
[ngClass]="{'has-metadata': (isImage(message) || isFrame(message))}" class="messages msg_sent"
|
|
84
|
+
id="message_msg_sent" [ngClass]="{'button-in-msg' : message.metadata && message.metadata.button}"
|
|
85
|
+
[message]="message" [textColor]="'col-msg-sent'" (onBeforeMessageRender)="returnOnBeforeMessageRender($event)"
|
|
86
|
+
(onAfterMessageRender)="returnOnAfterMessageRender($event)" (onImageRendered)="onImageRenderedFN($event)"
|
|
87
|
+
[addAsCannedResponseTooltipText]="addAsCannedResponseTooltipText" [areVisibleCAR]="areVisibleCAR"
|
|
88
|
+
[support_mode]="support_mode"
|
|
89
|
+
[class.emoticon]="message?.emoticon">
|
|
77
90
|
</chat-bubble-message>
|
|
78
91
|
|
|
79
92
|
<!-- icon status message -->
|
|
@@ -98,32 +111,30 @@
|
|
|
98
111
|
</chat-avatar-image> -->
|
|
99
112
|
|
|
100
113
|
<!--backgroundColor non viene ancora usato -->
|
|
101
|
-
|
|
102
|
-
<chat-bubble-message
|
|
103
|
-
[
|
|
104
|
-
[textColor]="'black'"
|
|
114
|
+
|
|
115
|
+
<chat-bubble-message style="position: relative;"
|
|
116
|
+
[ngClass]="{'has-metadata': (isImage(message) || isFrame(message))}" class="messages msg_receive"
|
|
117
|
+
id="message_msg_receive" [message]="message" [textColor]="'black'"
|
|
105
118
|
(onBeforeMessageRender)="returnOnBeforeMessageRender($event)"
|
|
106
|
-
(onAfterMessageRender)="returnOnAfterMessageRender($event)"
|
|
107
|
-
|
|
119
|
+
(onAfterMessageRender)="returnOnAfterMessageRender($event)" (onImageRendered)="onImageRenderedFN($event)"
|
|
120
|
+
[addAsCannedResponseTooltipText]="addAsCannedResponseTooltipText" [areVisibleCAR]="areVisibleCAR"
|
|
121
|
+
[support_mode]="support_mode"
|
|
122
|
+
[class.emoticon]="message?.emoticon">
|
|
108
123
|
</chat-bubble-message>
|
|
109
124
|
</div>
|
|
110
125
|
|
|
111
126
|
<!-- message type:: button && -->
|
|
112
|
-
<div *ngIf="message?.attributes && message?.attributes?.attachment " class="slide-in-left"
|
|
113
|
-
<chat-message-attachment
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
[isLastMessage] = "isLastMessage(message?.uid)"
|
|
117
|
-
[stylesMap]="stylesMap"
|
|
118
|
-
(onAttachmentButtonClicked)="returnOnAttachmentButtonClicked($event)">
|
|
127
|
+
<div *ngIf="message?.attributes && message?.attributes?.attachment " class="slide-in-left">
|
|
128
|
+
<chat-message-attachment style="height: 100%; display: block;" [message]="message"
|
|
129
|
+
[isLastMessage]="isLastMessage(message?.uid)" [stylesMap]="stylesMap"
|
|
130
|
+
(onAttachmentButtonClicked)="returnOnAttachmentButtonClicked($event)">
|
|
119
131
|
</chat-message-attachment>
|
|
120
132
|
</div>
|
|
121
133
|
</div>
|
|
122
134
|
<!-- (fileType === 'file' && uploadProgress !== 100) -->
|
|
123
135
|
|
|
124
136
|
<!-- uploadProgress -> {{ uploadProgress }} -->
|
|
125
|
-
<div *ngIf="uploadProgress !== 100" class="msg_container base_sent"
|
|
126
|
-
style="margin-right: 20px;">
|
|
137
|
+
<div *ngIf="uploadProgress !== 100" class="msg_container base_sent" style="margin-right: 20px;">
|
|
127
138
|
<div class="messages msg_sent">
|
|
128
139
|
<div class="spinner">
|
|
129
140
|
<div class="bounce1"></div>
|