Commit Graph

406 Commits

Author SHA1 Message Date
Abhinav Raut 081a5c615a fix: update main.js to import styles from shared-ui instead 2025-08-03 17:35:52 +05:30
Abhinav Raut c35ab42b47 feat: configurable visitor information collection with a form before starting chat.
fix: Chat initialization failing due to the JWT authenticated user doesn't exist in the DB yet.

fix: Always upsert custom attribues instead of replacing.
2025-07-21 01:58:30 +05:30
Abhinav Raut f05014f412 refactor: implement widget authentication middleware with standard HTTP headers
- Add widgetAuth middleware to handle JWT and inbox validation consistently
  - Move authentication logic from request body to standard HTTP headers:
    * JWT: Authorization: Bearer <token>
    * Inbox ID: X-Libredesk-Inbox-ID: <id>
  - Refactor all widget handlers to use middleware context instead of duplicate auth code
  - Frontend now sends auth headers via HTTP interceptor for all widget requests
2025-07-20 17:44:36 +05:30
Abhinav Raut e2bba04669 Fix: Trusted domain validation for live chat widget, check the referrer header instead of origin.
- Removed the widgetOrigin middleware as it would have same origin as the iFrame URL, changed this to use `Referrer` header on initial iFrame load.
- Feat(agent-view): Added external_user_id display in the conversation sidebar.
2025-07-20 16:44:33 +05:30
Abhinav Raut 11fd57adb0 update lucide-vue-next to version 0.525.0 2025-07-20 16:20:26 +05:30
Abhinav Raut d4f644c531 feat translate widget app 2025-07-17 02:56:32 +05:30
Abhinav Raut 646bbc7efe wait for widget vue app to be ready before showing the widget icon
- show arrow down when when widget is open
2025-07-17 02:37:03 +05:30
Abhinav Raut 3c3709557e feat: Add loading indicators to chat components and improve spinner UI 2025-07-17 02:29:05 +05:30
Abhinav Raut 74732bfe91 feat: Add expand/collapse functionality to chat view 2025-07-17 01:49:22 +05:30
Abhinav Raut 8ee81c2d64 feat: Widget dark mode and chat reply expectation message in chat title.
feat: Add HTTP utility functions for trusted origin checks

feat: Implement typing status broadcasting for live chat clients and agents.

feat: Add support for signed URLs in media manager

fix: Update database migration to handle duplicate visitors with same email address.

feat: Add conversation subscription and typing message models for WebSocket communication

feat: Implement conversation subscription management in WebSocket hub this is used for broadcasting typing indicator.

feat: Revamp widget JavaScript to improve mobile responsiveness and show unread messages if any.
2025-07-17 01:06:54 +05:30
Abhinav Raut 61a70f6b52 clean up live chat
move last message details in the `meta` JSONB column of conversations
2025-07-06 18:46:54 +05:30
Abhinav Raut 5b6a58fba0 wip: intercom like live chat with chat widget
- new vue app for serving live chat widget, created subdirectories inside frontend dir `main` and `widget`
- vite changes for both main app and widget app.
- new backend live chat channel
- apis for live chat widget
2025-06-29 04:59:55 +05:30
Abhinav Raut 5ea1b9e84c fix: retain conversation view when converstion list type is changed 2025-06-21 14:44:36 +05:30
Abhinav Raut dc2250ce50 remove console log 2025-06-21 11:27:53 +05:30
Abhinav Raut 839a06f0d2 fixes to business hrs form 2025-06-20 19:35:09 +05:30
Abhinav Raut 591108f094 fix: reset recipients when no latest message is found 2025-06-18 01:31:15 +05:30
Abhinav Raut 1b2a5e4f36 feat: standardize API requests to use JSON instead of form data 2025-06-18 01:30:38 +05:30
Abhinav Raut c37258fccb feat: API key management for agents, api keys can now be generated for any agent in libredesk allowing programmatic access.
- Added endpoints to generate and revoke API keys for agents.
- Updated user model to include API key fields.
- Update authentication middleware to support API key validation.
- Modified database schema to accommodate API key fields.
- Updated frontend to manage API keys, including generation and revocation.
- Added localization strings for API key related messages.
2025-06-16 23:45:00 +05:30
Abhinav Raut d274adb19b lower case webhook data table event label 2025-06-15 13:27:56 +05:30
Abhinav Raut d31fcb00b6 refactor: simplify checkbox event handling in webhook form 2025-06-15 13:22:27 +05:30
Abhinav Raut 9303997cea feat: update sidebar title translation to support pluralization for integration nav item 2025-06-14 22:28:46 +05:30
Abhinav Raut aba07b3096 fix transalations for webhooks 2025-06-14 22:24:41 +05:30
Abhinav Raut 981372ab86 wip webhooks 2025-06-13 02:17:00 +05:30
Abhinav Raut 803196985d fix: allow sending messages with just media files and no text in the editor 2025-06-08 16:42:35 +05:30
Abhinav Raut ebf6a980e8 fix: update keyboard shortcuts label from cmd + k to ctrl + k 2025-06-08 16:35:59 +05:30
Abhinav Raut 813ef91964 fix: allow sending messages with ONLY attached media files and NO content in editor 2025-06-08 16:35:20 +05:30
Abhinav Raut 3b9fb7a08d fix: change 'id' prop requirement to optional with default value of null in CreateEditTemplate 2025-06-08 16:19:59 +05:30
Abhinav Raut 7fb86f140c fix: pass missing mediafiles prop to ReplyBoxContent for fullscreen and remove unused variables 2025-06-08 16:18:16 +05:30
Abhinav Raut aa8d326fa1 fix: set default value of 'enabled' to true in EmailInboxForm 2025-06-08 16:17:32 +05:30
Abhinav Raut ca9a0a5892 fix: update deletion confirmation messages for automation rules, SSO, status, tags, and templates 2025-06-08 16:17:26 +05:30
Abhinav Raut 73e2950174 fix: disable autoFocus on the Editor component in ActionBox 2025-06-08 16:14:32 +05:30
Abhinav Raut e7b8e5c4bb fix(frontend): variable reference error 2025-06-08 15:41:24 +05:30
Abhinav Raut 582c906440 remove unncessary compiler macro imports 2025-06-08 15:25:04 +05:30
Abhinav Raut b557c2ca4b fix: update dialog title to use localized term for 'view' 2025-06-08 15:13:22 +05:30
Abhinav Raut 499fc0dad1 fix: update SimpleTable component with loading state and skeleton rows
- remove existing loading table state from activity logs
2025-06-08 12:44:05 +05:30
Abhinav Raut f7a12cffd3 fix: agent password regex validation
- adds vitest dev dep
- adds test cases for the agent form
- replace form loader svg with css spinner
2025-06-08 11:26:26 +05:30
Abhinav Raut b561e79440 fix: cypress test 2025-06-08 01:27:10 +05:30
Abhinav Raut 57d0e90b5f refactors(i18n-keys): use correct keys in vue and go errors
- fix: invalidate agent cache on update / create
2025-06-08 00:59:15 +05:30
Abhinav Raut 5a0e3a8072 refactor: remove unncessary oidc test handler 2025-06-08 00:51:09 +05:30
Abhinav Raut d95a5f40cf feat: add agent cache in user package
- use cached agent in all middlewares
- fix: race in casbin that gave permission denied error.
- stop loading permissions into casbin on every `Enforce` function call instead cache user permissions in authz package and when permissions change only the load permission as policies atomically.
- sort permissions in get-agents to make the permissions slice comparsion using slices.Equal work
2025-06-07 23:43:21 +05:30
Abhinav Raut 6981a0790d fix: update contacts route title to 'All contacts' 2025-06-07 22:38:43 +05:30
Abhinav Raut 55bc9bfc91 fix: safely access sender_id in handleNewMessage 2025-06-07 22:38:36 +05:30
Abhinav Raut 67db2e5ff2 fix: contact note text color in dark mode 2025-06-07 22:38:23 +05:30
Abhinav Raut 64304c2384 fix: reference err 2025-06-07 22:37:59 +05:30
Abhinav Raut c5fe6aaadd open comobox on click of select tag component 2025-06-07 22:37:50 +05:30
Abhinav Raut fea7eef658 dynamic translations in date filter component 2025-06-07 22:37:07 +05:30
Abhinav Raut 475e400810 fix: move isActive parent before watcher 2025-06-07 22:34:59 +05:30
Abhinav Raut 641ae0540e feat(sidebar): implement collapsible functionality for admin navigation based on active routes, this will make sure non active collsapsibles will close when another is opened 2025-06-07 22:32:41 +05:30
Abhinav Raut dc6fede081 fix(inbox-layout): remove unnecessary keep-alive wrapper around router-view component preventing same conversation from being loaded again in different conversation list 2025-06-07 20:23:08 +05:30
Abhinav Raut 28dcd6cb2f fix(conversation-list): prevent error when setting unread count by checking item index 2025-06-07 19:58:45 +05:30