@chat21/chat21-ionic 3.0.5-8.1 → 3.0.5-9.1

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.
Files changed (102) hide show
  1. package/CHANGELOG.md +104 -2
  2. package/README.md +9 -0
  3. package/config.xml +2 -2
  4. package/env.sample +3 -1
  5. package/package.json +1 -1
  6. package/resources/Android/splash/drawable-land-hdpi-screen.png +0 -0
  7. package/resources/Android/splash/drawable-land-ldpi-screen.png +0 -0
  8. package/resources/Android/splash/drawable-land-mdpi-screen.png +0 -0
  9. package/resources/Android/splash/drawable-land-xhdpi-screen.png +0 -0
  10. package/resources/Android/splash/drawable-land-xxhdpi-screen.png +0 -0
  11. package/resources/Android/splash/drawable-land-xxxhdpi-screen.png +0 -0
  12. package/resources/Android/splash/drawable-port-hdpi-screen.png +0 -0
  13. package/resources/Android/splash/drawable-port-ldpi-screen.png +0 -0
  14. package/resources/Android/splash/drawable-port-mdpi-screen.png +0 -0
  15. package/resources/Android/splash/drawable-port-xhdpi-screen.png +0 -0
  16. package/resources/Android/splash/drawable-port-xxhdpi-screen.png +0 -0
  17. package/resources/Android/splash/drawable-port-xxxhdpi-screen.png +0 -0
  18. package/resources/Android/splash.png +0 -0
  19. package/src/app/app-routing.module.ts +21 -17
  20. package/src/app/app.component.html +6 -3
  21. package/src/app/app.component.scss +10 -5
  22. package/src/app/app.component.ts +496 -174
  23. package/src/app/app.module.ts +16 -8
  24. package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.html +1 -1
  25. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +4 -4
  26. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +8 -2
  27. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +6 -1
  28. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +7 -2
  29. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +47 -2
  30. package/src/app/chatlib/conversation-detail/message/image/image.component.html +7 -6
  31. package/src/app/chatlib/conversation-detail/message/image/image.component.ts +20 -1
  32. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +40 -10
  33. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +8 -144
  34. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +14 -17
  35. package/src/app/chatlib/list-conversations-component/list-conversations/list-conversations.component.html +1 -1
  36. package/src/app/components/authentication/login/login.component.html +10 -10
  37. package/src/app/components/authentication/login/login.component.ts +2 -1
  38. package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.ts +1 -1
  39. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.ts +1 -1
  40. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +15 -12
  41. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +12 -0
  42. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +27 -6
  43. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +3 -2
  44. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +22 -17
  45. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +46 -5
  46. package/src/app/components/ddp-header/ddp-header.component.html +1 -1
  47. package/src/app/components/ddp-header/ddp-header.component.ts +4 -2
  48. package/src/app/components/image-viewer/image-viewer.component.html +23 -0
  49. package/src/app/components/image-viewer/image-viewer.component.scss +107 -0
  50. package/src/app/components/image-viewer/image-viewer.component.spec.ts +24 -0
  51. package/src/app/components/image-viewer/image-viewer.component.ts +38 -0
  52. package/src/app/components/project-item/project-item.component.html +147 -0
  53. package/src/app/components/project-item/project-item.component.scss +669 -0
  54. package/src/app/components/project-item/project-item.component.spec.ts +24 -0
  55. package/src/app/components/project-item/project-item.component.ts +330 -0
  56. package/src/app/components/utils/avatar-profile/avatar-profile.component.html +7 -0
  57. package/src/app/components/utils/avatar-profile/avatar-profile.component.ts +22 -5
  58. package/src/app/pages/authentication/login/login.page.html +1 -2
  59. package/src/app/pages/authentication/login/login.page.ts +1 -1
  60. package/src/app/pages/conversation-detail/conversation-detail.page.html +5 -3
  61. package/src/app/pages/conversation-detail/conversation-detail.page.ts +124 -30
  62. package/src/app/pages/conversations-list/conversations-list.page.html +44 -23
  63. package/src/app/pages/conversations-list/conversations-list.page.scss +290 -127
  64. package/src/app/pages/conversations-list/conversations-list.page.ts +225 -17
  65. package/src/app/pages/unassigned-conversations/unassigned-conversations-routing.module.ts +17 -0
  66. package/src/app/pages/unassigned-conversations/unassigned-conversations.module.ts +22 -0
  67. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +22 -0
  68. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +79 -0
  69. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.spec.ts +24 -0
  70. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +116 -0
  71. package/src/app/services/app-config.ts +77 -5
  72. package/src/app/services/nav-proxy.service.ts +1 -1
  73. package/src/app/services/tiledesk/tiledesk.service.ts +22 -1
  74. package/src/app/services/websocket/websocket-js.ts +560 -0
  75. package/src/app/services/websocket/websocket.service.spec.ts +12 -0
  76. package/src/app/services/websocket/websocket.service.ts +292 -0
  77. package/src/app/shared/shared.module.ts +7 -1
  78. package/src/assets/i18n/en.json +9 -1
  79. package/src/assets/i18n/it.json +9 -1
  80. package/src/assets/js/chat21client.js +144 -82
  81. package/src/assets/logo.png +0 -0
  82. package/src/assets/transparent.png +0 -0
  83. package/src/chat-config-pre-test.json +2 -2
  84. package/src/chat-config-template.json +4 -1
  85. package/src/chat-config.json +4 -1
  86. package/src/chat21-core/providers/chat-manager.ts +3 -3
  87. package/src/chat21-core/providers/firebase/firebase-archivedconversations-handler.ts +2 -2
  88. package/src/chat21-core/providers/firebase/firebase-auth-service.ts +6 -6
  89. package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +1 -1
  90. package/src/chat21-core/providers/firebase/firebase-conversations-handler.ts +1 -1
  91. package/src/chat21-core/providers/firebase/firebase-notifications.ts +32 -24
  92. package/src/chat21-core/providers/firebase/firebase-presence.service.ts +2 -2
  93. package/src/chat21-core/providers/firebase/firebase-typing.service.ts +1 -1
  94. package/src/chat21-core/providers/firebase/firebase-upload.service.ts +1 -1
  95. package/src/chat21-core/providers/mqtt/mqtt-conversation-handler.ts +3 -5
  96. package/src/chat21-core/providers/mqtt/mqtt-conversations-handler.ts +13 -5
  97. package/src/chat21-core/providers/mqtt/mqtt-notifications.ts +101 -11
  98. package/src/chat21-core/providers/tiledesk/tiledesk-auth.service.ts +13 -4
  99. package/src/chat21-core/utils/utils-message.ts +2 -2
  100. package/src/chat21-core/utils/utils.ts +1 -1
  101. package/src/firebase-messaging-sw-template.js +1 -1
  102. package/src/assets/images/tiledesk_logo_50x50.png +0 -0
package/CHANGELOG.md CHANGED
@@ -1,7 +1,109 @@
1
1
  # chat21-ionic ver 3.0
2
2
 
3
- ### 3.0.58.1
4
- - Fix the bug: if the "chatEngine" property value is set to "mqtt "the login modal window does not disappear even if the agent is logged in
3
+ ### 3.0.59.1
4
+ - Fixes the bug: "Unable to read uid of undefined" error occurs when agent logs out
5
+ - Fixes the bug: When the agent logs into the chat and the chat is in mobile mode, no conversations are displayed
6
+ - Conditions the opening of the websocket to retrieve the number of conversations not assigned to the "supportMode" property set to true
7
+
8
+ ### 3.0.59
9
+ - Deploys in production
10
+
11
+ ### 3.0.59-rc23
12
+ - Fixes the bug: the badge indicating the number of unassigned conversations does not update correctly when the project is changed
13
+ - Changes the code that prevent the chat from opening in a new browser tab if the chat tab is already open
14
+ - Publish conversations returned by subscription to websocket conversations > "on data" callback
15
+
16
+ ### 3.0.59-rc22
17
+ - Minor improvements
18
+
19
+ ### 3.0.59-rc21
20
+ - chat21client.js -> v0.1.9
21
+
22
+ ### 3.0.59-rc20
23
+ - Improves the transition from "mobile" to "desktop" mode and vice versa by not reloading the app
24
+
25
+ ### 3.0.59-rc19
26
+ - Fixes the bug: when the chat is in "mobile" mode and from the dashboard the agent clicks on "Open chat" for a specific conversation the "back" button of the chat does not return to the list of conversations
27
+ - Fixes the bug: when the chat is in "mobile" mode and from the dashboard the agent clicks on "Open chat" for a specific conversation the chat does not display the details of the conversation
28
+
29
+ ### 3.0.59-rc18
30
+ - Improves the "app-config" service
31
+
32
+ ### 3.0.59-rc16
33
+ - Changes in config.xml the value of the "SplashScreen"
34
+ - Improves the method to avoid page reloading when an agent clicks the "Open Chat" button of the dashboard on the realtime and non-real time conversation list page and on the conversation detail page
35
+ - Modifies the "app-config" service by adding the ability to pass relative URLs to the websocket
36
+ - Adds "wsUrlRel" property to env.sample, chat-config-template.json and chat-config.json
37
+ - Adds a check in the "websocket-js.ts" service on the existence of the "ws" property of the "WebSocketJs" class before accessing the property "readyState"
38
+
39
+ ### 3.0.59-rc15
40
+ - Implements a method in app.components that counts and stores the number of open Chat tabs
41
+ - Implements a method on the conversation list page that prevents a new chat tab from opening when the agent clicks "Open Chat" from the dashboard
42
+
43
+ ### 3.0.59-rc14
44
+ - Fixes the bug: the sound that warns that a new conversation has been received does not work
45
+
46
+ ### 3.0.59-rc12
47
+ - Fixes the bug: Cannot read properties of undefined (reading 'get') when "translationMap" in not yet defined
48
+ - Fixes the bug: when the log out is performed, the item with the number of new conversations remains visible in the left side panel of the conversations list
49
+
50
+ ### 3.0.59-rc11
51
+ - Fixed bug: the item in the left side panel showing the number of new conversations is not displayed if there are no conversations
52
+ - Removes the "last_project" object and the "contacts" object on logout from local storage
53
+
54
+ ### 3.0.59-rc10
55
+ - Changes in config.xml the site URL of the author
56
+ - Changes the splash screen images
57
+ - Adds the "browser" platform configuration in config.xml
58
+ - Initialize in app.module.ts firebase to handle push notifications if chatEngine is "mqtt"
59
+
60
+ ### 3.0.59-rc9
61
+ - Changes in the archived conversations the date format if the browser language is English
62
+ - Displays the button to open the contact list for direct conversations and the entry at the top of the conversation list showing the number of unassigned conversations for a selected project if the "supportMode" configuration property is set to true
63
+ - Adds a style rule on the unassigned conversations page that changes the background of the "ion-content" if the project list is displayed in the iframe
64
+ - Adds "supportMode" property to env.sample, chat-config-template.json and chat-config.json
65
+
66
+ ### 3.0.59-rc8
67
+ - Changes the title of the modal window showing unassigned conversations from "Unassigned Conversations" to "New Conversations"
68
+ - Fixes the bug: if the "chatEngine" property value is set to "mqtt" the login modal window does not disappear even if the agent is logged in
69
+ - Fixed the value of the configuration property "dashboardUrl"
70
+
71
+ ### 3.0.59-rc7
72
+ - Fixes the bug "Cannot read properties of undefined (reading 'get')" in component template showing the number of new conversations
73
+ - Fixes the bug: the value of the "supportMode" property is passed hard-coded
74
+
75
+ ### 3.0.59-rc6
76
+ - Outsources the websocket URL to environments
77
+ - Improves the graphic of the element, positioned at the top of the conversation list, which displays the number of new conversations
78
+ - Adds "wsUrl" property to env.sample, chat-config-template.json and chat-config.json
79
+ - Updates environments with "wsUrl" property
80
+
81
+ ### 3.0.59-rc5
82
+ - Display a "toast message" of success after that the agent has joined to an unassigned conversation and other minor improvements
83
+
84
+ ### 3.0.59-rc4
85
+ - Adds an item to the top of the conversation list that shows the number of unassigned conversations for a selected project
86
+ - Adds the ability, by clicking on the element that displays the number of unassigned conversations, to view the unassigned conversations and to join to them or archive them
87
+
88
+ ### 3.0.59-rc3
89
+ - Improves the method that allows to chain multiple canned responses
90
+
91
+ ### 3.0.59-rc2
92
+ - Fixes the bug: on small windows, images and iframes are not the same size as the bubble message that contains them
93
+ - Adds in the "bubble-message" component a check if the metadata is an object before calling the getMetadataSize() method
94
+ - Hides the "canned responses" if there are whitespace after the forward slash "/" or if there are no whitespace before the forward slash "/"
95
+ - Fixes the bug: if the "canned responses" are selected with the mouse, the "send message" text area does not have focus
96
+ - Adds the image viewer and the ability to download an image from it
97
+ - Fixes the position of the "archive" button when the app runs on mobile devices
98
+ - Updates Android splash screen .png image
99
+
100
+ ### 3.0.59-rc1
101
+ - Fixes the bug: the "send message" button remains in the "disabled" state even if it is active
102
+ - Changes the format of the date displayed in the message tooltips
103
+ - Fixes the bug: the sender's avatar is not always displayed in the messages header
104
+ - Fixes the bug: the sender's name is not always displayed in the messages header
105
+ - Fixes the bug: in the avatar-profile component the properties 'avatarUrl', 'color' and 'avatar' are private and accessible only within the class
106
+ - Fixes the bug: on ios platforms the back button in the conversation details header overlaps the avatar
5
107
 
6
108
  ### 3.0.58
7
109
  - Changes the logic with which the 'online' / 'offline' event is published (done before by the onAuthStateChanged() method)
package/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  [![npm version](https://badge.fury.io/js/%40chat21%2Fchat21-ionic.svg)](https://badge.fury.io/js/%40chat21%2Fchat21-ionic)
2
2
 
3
+ > ***🚀 Do you want to install Tiledesk on your server with just one click?***
4
+ >
5
+ > ***Use [Docker Compose Tiledesk installation](https://github.com/Tiledesk/tiledesk-deployment/blob/master/docker-compose/README.md) guide***
6
+
3
7
  Chat21 is the core of the open source live chat platform [Tiledesk.com](http://www.tiledesk.com).
4
8
 
5
9
  # Features #
@@ -56,6 +60,7 @@ In progress git
56
60
  pushEngine:"none", // OR YOUR CUSTOM PUSH ENGINE
57
61
  fileUploadAccept:"*/*",
58
62
  logLevel":"<YOUR-PREFERRED-LOG-LEVEL>",
63
+ supportMode: false,
59
64
  firebaseConfig: {
60
65
  tenant:"tilechat",
61
66
  apiKey: '123ABC..',
@@ -75,6 +80,7 @@ In progress git
75
80
  "apiUrl": "https://<YOUR-TILEDESK-API-URL>",
76
81
  "baseImageUrl": "https://<YOUR-BASE-IMAGE-URL>",
77
82
  "dashboardUrl": "https://<YOUR-DASHBOARD-URL>"
83
+ "wsUrl": 'ws://' + window.location.hostname + '/ws/',
78
84
  }
79
85
  };
80
86
  ```
@@ -84,6 +90,9 @@ In progress git
84
90
 
85
91
  * `fileUploadAccept`: The Chat21-ionic allows you to manage the type of files that can be uploaded. By default, all file types are accepted.
86
92
 
93
+ * `wsUrl`: allows you to know in real time the agent's availability status, the agent's busy status and the number of unassigned conversations for a selected project
94
+
95
+ * `supportMode`: if set to true it allows you to view the list of contacts from which you can make direct conversations and the item at the top of the list of conversations that shows the number of unassigned conversations of a selected project and that the agent can view and take over by clicking on it
87
96
 
88
97
  ### Push notification
89
98
  * open `/src/firebase-messaging-sw.js` and replace messagingSenderId: with < your messagingSenderId >
package/config.xml CHANGED
@@ -2,7 +2,7 @@
2
2
  <widget id="chat.tiledesk" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
3
3
  <name>Chat21</name>
4
4
  <description>Chat21 is the core of the open source live chat platform</description>
5
- <author email="hi@ionicframework.com" href="http://ionicframework.com/">Tiledesk Team</author>
5
+ <author email="" href="https://tiledesk.com/">Tiledesk Team</author>
6
6
  <content src="index.html" />
7
7
  <access origin="*" />
8
8
  <allow-navigation href="*" />
@@ -18,7 +18,7 @@
18
18
  <preference name="SplashMaintainAspectRatio" value="true" />
19
19
  <preference name="FadeSplashScreenDuration" value="300" />
20
20
  <preference name="SplashShowOnlyFirstTime" value="false" />
21
- <preference name="SplashScreen" value="screen" />
21
+ <preference name="SplashScreen" value="assets/logo.png" />
22
22
  <preference name="SplashScreenDelay" value="3000" />
23
23
  <platform name="android">
24
24
  <edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
package/env.sample CHANGED
@@ -1,6 +1,7 @@
1
1
  API_BASEIMAGE_URL=CHANGEIT
2
2
  DASHBOARD_URL=https://YOUR_DASHBOARD_URL
3
-
3
+ WS_URL=wss://YOUR_TILEDESK_SERVER_URL?token=
4
+ WS_URL_RELATIVE=********
4
5
  SERVER_BASE_URL=http://localhost:3000/
5
6
 
6
7
  CHAT21_ENGINE=mqtt
@@ -9,6 +10,7 @@ PUSH_ENGINE=none
9
10
  FILE_UPLOAD_ACCEPT=*/*
10
11
  TENANT=tilechat
11
12
  LOG_LEVEL=INFO
13
+ SUPPORT_MODE=false
12
14
 
13
15
  # For MQTT Chat Engine
14
16
  MQTT_APPID=tilechat
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chat21/chat21-ionic",
3
- "version": "3.0.58.1",
3
+ "version": "3.0.59.1",
4
4
  "author": "Tiledesk SRL",
5
5
  "homepage": "https://ionicframework.com/",
6
6
  "scripts": {
Binary file
@@ -29,6 +29,27 @@ const routes: Routes = [
29
29
  loadChildren: './pages/conversation-detail/conversation-detail.module#ConversationDetailPageModule'
30
30
 
31
31
  },
32
+ {
33
+ path: 'contacts-directory',
34
+ loadChildren: () => import('./pages/contacts-directory/contacts-directory.module').then( m => m.ContactsDirectoryPageModule)
35
+ },
36
+ {
37
+ path: 'login',
38
+ loadChildren: () => import('./pages/authentication/login/login.module').then( m => m.LoginPageModule)
39
+ },
40
+ {
41
+ path: 'profile-info',
42
+ loadChildren: () => import('./pages/profile-info/profile-info.module').then( m => m.ProfileInfoPageModule)
43
+ },
44
+ {
45
+ path: 'loader-preview',
46
+ loadChildren: () => import('./pages/loader-preview/loader-preview.module').then( m => m.LoaderPreviewPageModule)
47
+ },
48
+ {
49
+ path: 'unassigned-conversations',
50
+ loadChildren: () => import('./pages/unassigned-conversations/unassigned-conversations.module').then( m => m.UnassignedConversationsPageModule)
51
+ }
52
+
32
53
 
33
54
  // {
34
55
  // path: 'conversation-detail/:IDConv',
@@ -50,23 +71,6 @@ const routes: Routes = [
50
71
  // // loadChildren: () => import('./pages/details/details.module').then( m => m.DetailsPageModule),
51
72
  // // loadChildren: './pages/details/details.module',
52
73
  // },
53
- {
54
- path: 'contacts-directory',
55
- loadChildren: () => import('./pages/contacts-directory/contacts-directory.module').then( m => m.ContactsDirectoryPageModule)
56
- },
57
- {
58
- path: 'login',
59
- loadChildren: () => import('./pages/authentication/login/login.module').then( m => m.LoginPageModule)
60
- },
61
- {
62
- path: 'profile-info',
63
- loadChildren: () => import('./pages/profile-info/profile-info.module').then( m => m.ProfileInfoPageModule)
64
- },
65
- {
66
- path: 'loader-preview',
67
- loadChildren: () => import('./pages/loader-preview/loader-preview.module').then( m => m.LoaderPreviewPageModule)
68
- }
69
-
70
74
 
71
75
 
72
76
  // {
@@ -1,11 +1,14 @@
1
1
  <ion-app>
2
- <div > <!-- (click)="hideAlert()" -->
2
+ <div>
3
+ <!-- (click)="hideAlert()" -->
4
+ <app-image-viewer></app-image-viewer>
3
5
  <ion-split-pane when="md" contentId="main">
6
+
4
7
  <ion-nav #sidebarNav [root]="sidebarPage"></ion-nav>
5
8
  <!-- our side menu -->
6
9
  <!-- <ion-router-outlet id="sidebar" name='sidebar' animated="false" #masterNav> -->
7
- <!-- <app-conversations-list></app-conversations-list> -->
8
- <!-- <app-details></app-details> -->
10
+ <!-- <app-conversations-list></app-conversations-list> -->
11
+ <!-- <app-details></app-details> -->
9
12
  <!-- </ion-router-outlet> -->
10
13
  <!-- the main content -->
11
14
  <ion-router-outlet id="main" #detailNav animated="false">
@@ -1,6 +1,11 @@
1
- @media (min-width: 768px) {
2
- .split-pane-md.split-pane-visible > .split-pane-side {
3
- min-width: 312px;
4
- display: block; // Safari bug fix
5
- }
1
+ .split-pane-md.split-pane-visible > .split-pane-side {
2
+ min-width: 312px;
3
+ display: block; // Safari bug fix
6
4
  }
5
+
6
+ // @media (min-width: 768px) {
7
+ // .split-pane-md.split-pane-visible > .split-pane-side {
8
+ // min-width: 312px;
9
+ // display: block; // Safari bug fix
10
+ // }
11
+ // }