Sojan Jose
d48503bdcf
feat(voice): Improved voice call creation flow [EE] ( #12268 )
...
This PR improves the voice call creation flow by simplifying
configuration and automating setup with Twilio APIs.
references: #11602 , #11481
## Key changes
- Removed the requirement for twiml_app_sid – provisioning is now
automated through APIs.
- Auto-configured webhook URLs for:
- Voice number callbacks
- Status callbacks
- twiML callbacks
- Disabled business hours, help center, and related options until voice
inbox is fully supported.
- Added a configuration tab in the voice inbox to display the required
Twilio URLs (to make verification easier in Twilio console).
## Test Cases
- Provisioning
- Create a new voice inbox → verify that Twilio app provisioning happens
automatically.
- Verify twiML callback
- Webhook configuration
- Check that both voice number callback and status callback URLs are
auto-populated in Twilio.
- Disabled features
- Confirm that business hours and help center options are
hidden/disabled for voice inbox.
- Configuration tab
- Open the voice inbox configuration tab → verify that the displayed
Twilio URLs match what’s set in Twilio.
2025-08-22 13:38:23 +02:00
Muhsin Keloth
5c560c7628
feat: WhatsApp enhanced templates front end changes ( #12117 )
...
Part of the https://github.com/chatwoot/chatwoot/pull/11997
Co-authored-by: Sojan Jose <sojan@pepalo.com >
Co-authored-by: iamsivin <iamsivin@gmail.com >
2025-08-12 18:53:19 +05:30
Sivin Varghese
d5286c9535
fix: Installation name not showing ( #12096 )
2025-08-06 13:11:22 +05:30
Sojan Jose
b7f2c151bf
feat: Voice channel creation Flow ( #11775 )
...
This PR introduces a new channel type for voice conversations.
ref: #11481
## Changes
- Add database migration for channel_voice table with phone_number and
provider_config
- Create Channel::Voice model with E.164 phone number validation and
Twilio config validation
- Add voice channel association to Account model
- Extend inbox helpers and types to support voice channels
- Add voice channel setup UI with Twilio configuration form
- Include voice channel in channel factory and list components
- Add API routes and store actions for voice channel creation
- Add comprehensive translations for voice channel management
---------
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
Co-authored-by: iamsivin <iamsivin@gmail.com >
2025-06-25 14:21:03 -07:00
Muhsin Keloth
0a394e16ca
chore: Audit message characters across all channels ( #11343 )
...
- Audited message characters across all channels.
- Replaced `isAInstagramChannel` with `isAnInstagramChannel`
2025-04-21 14:46:51 +05:30
Muhsin Keloth
246deab684
feat: Instagram reauthorization ( #11221 )
...
This PR is part of https://github.com/chatwoot/chatwoot/pull/11054 to
make the review cycle easier.
2025-04-03 14:30:48 +05:30
Sivin Varghese
cc4d54becf
chore: Update buttons in dashboard ( #11145 )
...
# Pull Request Template
## Changes
* Remove unused component `MaskedText.vue`
* Remove unused component `ContactIntro.vue`
* Remove unused `AddCustomViews.vue` component
* Update buttons in help center upgrade page
<img width="741" alt="image"
src="https://github.com/user-attachments/assets/f46b8ffa-ef74-4b83-95c1-83842844c4b7 "
/>
* Update SLA view details button in reports page
<img width="419" alt="image"
src="https://github.com/user-attachments/assets/7db6bff6-9ba5-4c13-850f-b9d4dbb55489 "
/>
* Update assign to me conversation action button
<img width="152" alt="image"
src="https://github.com/user-attachments/assets/587ee1fe-93c9-48e0-910a-390dd4eac1f2 "
/>
* Update button in participants action
<img width="365" alt="image"
src="https://github.com/user-attachments/assets/50eb386f-882b-4277-ad61-d557893ac490 "
/>
<img width="365" alt="image"
src="https://github.com/user-attachments/assets/3c64ed42-0203-43c6-9a26-8ad9465aa394 "
/>
* Update the show more attributes button
<img width="365" alt="image"
src="https://github.com/user-attachments/assets/f2105a2f-8441-4d8b-b355-dfe97ce2e362 "
/>
* Update SLA empty state
<img width="376" alt="image"
src="https://github.com/user-attachments/assets/55fd4376-6183-45c9-acb2-6ad5a6a58730 "
/>
* Update create new label button from dropdown
<img width="376" alt="image"
src="https://github.com/user-attachments/assets/bb8226d0-795f-431f-8fe4-15d15ee1d695 "
/>
* Update add macro button
<img width="382" alt="image"
src="https://github.com/user-attachments/assets/b6375402-5213-4041-841b-09c2157ed56a "
/>
* Update copy button
<img width="382" alt="image"
src="https://github.com/user-attachments/assets/f1929d63-f7ca-4eab-bfa8-716be2aa4be8 "
/>
* Update the buttons in banner component
<img width="849" alt="image"
src="https://github.com/user-attachments/assets/bb86b498-ab8e-4a92-8c6a-60edcef0fd7b "
/>
<img width="838" alt="image"
src="https://github.com/user-attachments/assets/4bde00de-907e-49ac-9128-f364a90cd3c1 "
/>
* Update table pagination buttons
<img width="968" alt="image"
src="https://github.com/user-attachments/assets/8d439af6-8126-4fad-a3fe-89b26a56f880 "
/>
<img width="968" alt="image"
src="https://github.com/user-attachments/assets/a178b3d7-3385-4a2b-a0d7-35be9a25fd93 "
/>
* Update filter chip buttons and dropdown colors
<img width="541" alt="image"
src="https://github.com/user-attachments/assets/7be1f418-82df-4db6-b265-4c185fc79f4b "
/>
<img width="541" alt="image"
src="https://github.com/user-attachments/assets/69110d75-85e9-4974-8c2a-e195b23a335c "
/>
<img width="173" alt="image"
src="https://github.com/user-attachments/assets/c8f5bc82-15b4-4f25-b7d4-35a9280ec7c6 "
/>
<img width="565" alt="image"
src="https://github.com/user-attachments/assets/7dad1d00-784b-46eb-b823-e6e55d5f9dc8 "
/>
<img width="565" alt="image"
src="https://github.com/user-attachments/assets/384a86ed-f45f-488c-b9aa-1f02b16c813d "
/>
---------
Co-authored-by: Pranav <pranav@chatwoot.com >
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com >
2025-03-31 17:21:32 -07:00
Shivam Mishra
7fd8b4d03a
feat: update colors for v4 ( #10660 )
...
Porting changes from https://github.com/chatwoot/chatwoot/pull/10552
---------
Co-authored-by: Pranav <pranav@chatwoot.com >
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
Co-authored-by: Vishnu Narayanan <vishnu@chatwoot.com >
Co-authored-by: Sojan <sojan@pepalo.com >
Co-authored-by: iamsivin <iamsivin@gmail.com >
Co-authored-by: Pranav <pranavrajs@gmail.com >
2025-01-15 17:13:03 +05:30
Sivin Varghese
579efd933b
feat(v4): Update the campaigns page design ( #10371 )
...
<img width="1439" alt="Screenshot 2024-10-30 at 8 58 12 PM"
src="https://github.com/user-attachments/assets/26231270-5e73-40fb-9efa-c661585ebe7c ">
Fixes
https://linear.app/chatwoot/project/campaign-redesign-f82bede26ca7/overview
---------
Co-authored-by: Pranav <pranavrajs@gmail.com >
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com >
2024-10-31 11:57:13 +05:30
Vishnu Narayanan
ee02923ace
chore: fix circleci on vite build ( #10214 )
...
- Switch to pnpm based build
- Switch circleci from docker to machine to have more memory
- Fix frontend and backend tests
Fixes
https://linear.app/chatwoot/issue/CW-3610/fix-circle-ci-for-vite-build
---------
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com >
Co-authored-by: Pranav <pranavrajs@gmail.com >
Co-authored-by: Pranav <pranav@chatwoot.com >
2024-10-07 15:27:41 +05:30
Shivam Mishra
42f6621afb
feat: Vite + vue 3 💚 ( #10047 )
...
Fixes https://github.com/chatwoot/chatwoot/issues/8436
Fixes https://github.com/chatwoot/chatwoot/issues/9767
Fixes https://github.com/chatwoot/chatwoot/issues/10156
Fixes https://github.com/chatwoot/chatwoot/issues/6031
Fixes https://github.com/chatwoot/chatwoot/issues/5696
Fixes https://github.com/chatwoot/chatwoot/issues/9250
Fixes https://github.com/chatwoot/chatwoot/issues/9762
---------
Co-authored-by: Pranav <pranavrajs@gmail.com >
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
2024-10-02 00:36:30 -07:00
Fayaz Ahmed
3b5f5b41ad
chore: Replace campaign mixin with composable [CW-3463] ( #9987 )
...
# Pull Request Template
## Description
Repalces campaignMixin and its usage with the new useCampaign mixin
Fixes
https://linear.app/chatwoot/issue/CW-3463/rewrite-campaignmixin-mixin-to-a-composable
---------
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com >
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2024-08-28 00:53:18 +05:30
Fayaz Ahmed
fe5670832a
chore: Replace filtersMixin with useFilter composable [CW-3466] ( #10036 )
...
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com >
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
2024-08-27 13:50:25 +05:30
Sivin Varghese
bc6420019f
feat: Rewrite automations/methodsMixin to a composable ( #9956 )
...
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com >
2024-08-27 12:30:08 +05:30
Fayaz Ahmed
f82ec3b885
chore: Repalce message formatter mixin with useMessageFormatter [CW-3470] ( #9986 )
...
# Pull Request Template
## Description
Replaced the old messageFormatterMixin with a useMessageFormatter
composable
2024-08-27 08:06:51 +05:30
Sivin Varghese
dd8abe975c
feat: Rewrite configMixin to a composable ( #9921 )
...
# Pull Request Template
## Description
This PR will replace the usage of `configMixin` with the `useConfig`
composable.
**Files updated**
1. dashboard/components/layout/sidebarComponents/SecondaryNavItem.vue
2. dashboard/components/widgets/conversation/MessagesView.vue
3. dashboard/routes/dashboard/settings/inbox/Settings.vue **(Not used)**
4. dashboard/routes/dashboard/settings/inbox/FinishSetup.vue **(Not
used)**
5.
dashboard/routes/dashboard/settings/inbox/settingsPage/CollaboratorsPage.vue
6.
dashboard/routes/dashboard/settings/profile/NotificationPreferences.vue
**(Not used)**
7. dashboard/routes/dashboard/settings/profile/AudioNotifications.vue
**(Not used)**
8. dashboard/routes/dashboard/settings/sla/Index.vue **(Not used)**
9. dashboard/routes/dashboard/settings/account/Index.vue
10. survey/views/Response.vue **(Not used)**
Fixes
https://linear.app/chatwoot/issue/CW-3464/rewrite-configmixin-mixin-to-a-composable
## Type of change
- [x] New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
Test in the component related pages
## Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
2024-08-14 12:56:30 +05:30
Sivin Varghese
452096f4b2
feat: Replace rtlMixin to a composable ( #9924 )
...
This PR will replace the usage of `rtlMixin` to the `useUISettings` composable, and moved the method to component itself.
2024-08-12 15:50:21 +05:30
Sivin Varghese
b4b308336f
feat: Eslint rules ( #9839 )
...
# Pull Request Template
## Description
This PR adds new eslint rules to the code base.
**Error rules**
| Rule name | Type | Files updated |
| ----------------- | --- | - |
| `vue/block-order` | error | ✅ |
| `vue/component-name-in-template-casing` | error | ✅ |
| `vue/component-options-name-casing` | error | ✅ |
| `vue/custom-event-name-casing` | error | ✅ |
| `vue/define-emits-declaration` | error | ✅ |
| `vue/no-unused-properties` | error | ✅ |
| `vue/define-macros-order` | error | ✅ |
| `vue/define-props-declaration` | error | ✅ |
| `vue/match-component-import-name` | error | ✅ |
| `vue/next-tick-style` | error | ✅ |
| `vue/no-bare-strings-in-template` | error | ✅ |
| `vue/no-empty-component-block` | error | ✅ |
| `vue/no-multiple-objects-in-class` | error | ✅ |
| `vue/no-required-prop-with-default` | error | ✅ |
| `vue/no-static-inline-styles` | error | ✅ |
| `vue/no-template-target-blank` | error | ✅ |
| `vue/no-this-in-before-route-enter` | error | ✅ |
| `vue/no-undef-components` | error | ✅ |
| `vue/no-unused-emit-declarations` | error | ✅ |
| `vue/no-unused-refs` | error | ✅ |
| `vue/no-use-v-else-with-v-for` | error | ✅ |
| `vue/no-useless-v-bind` | error | ✅ |
| `vue/no-v-text` | error | ✅ |
| `vue/padding-line-between-blocks` | error | ✅ |
| ~`vue/prefer-prop-type-boolean-first`~ | ~error~ | ❌ (removed this
rule, cause a bug in displaying custom attributes) |
| `vue/prefer-separate-static-class` | error | ✅ |
| `vue/prefer-true-attribute-shorthand` | error | ✅ |
| `vue/require-explicit-slots` | error | ✅ |
| `vue/require-macro-variable-name` | error | ✅ |
**Warn rules**
| Rule name | Type | Files updated |
| ---- | ------------- | ------------- |
| `vue/no-root-v-if` | warn | ❎ |
Fixes https://linear.app/chatwoot/issue/CW-3492/vue-eslint-rules
## Type of change
- [x] New feature (non-breaking change which adds functionality)
## Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
---------
Co-authored-by: Fayaz Ahmed <fayazara@gmail.com >
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com >
Co-authored-by: Pranav <pranav@chatwoot.com >
2024-08-05 14:02:16 +05:30
Shivam Mishra
68482db3a2
fix: templates in whatsapp ( #9862 )
2024-07-31 15:33:31 +05:30
Fayaz Ahmed
ce8e1ec93d
chore: Migrate all instances of old vuelidate to new v2 syntax [CW-3274] ( #9623 )
...
Removes all the old vuelidate syntax and replaced it with the new
`useValidate` composable and the `v$` helper.
| Component | Path | Migrated | Tested |
|------------------------------------|--------------------------------------------------------------|-----------------------------------------------|--------|
| Login page | app/javascript/v3/views/login/Index.vue | ✅ | ✅ |
| Custom Attributes settings page |
app/javascript/dashboard/components/CustomAttribute.vue | ✅ | ✅ |
| Account settings page |
app/javascript/dashboard/routes/dashboard/settings/account/Index.vue | ✅
| ✅ |
| Add Account Modal |
app/javascript/dashboard/components/layout/sidebarComponents/AddAccountModal.vue
| ✅ | ✅ |
| AICTA Modal |
app/javascript/dashboard/components/widgets/AICTAModal.vue | ✅ | ✅ |
| Conversation Advanced Filters |
app/javascript/dashboard/components/widgets/conversation/ConversationAdvancedFilter.vue
| deprecated `$each` prop in validations object | |
| Email Transript Modal |
app/javascript/dashboard/components/widgets/conversation/EmailTranscriptModal.vue
| ✅ | ✅ |
| Linear Create Issue |
app/javascript/dashboard/components/widgets/conversation/linear/CreateIssue.vue
| ✅ | ✅ |
| Template Parser |
app/javascript/dashboard/components/widgets/conversation/WhatsappTemplates/TemplateParser.vue
| ✅ | |
| Delete Confirmation Modal |
app/javascript/dashboard/components/widgets/modal/ConfirmDeleteModal.vue
| ✅ | ✅ |
| Add Custom Attribute |
app/javascript/dashboard/modules/contact/components/AddCustomAttribute.vue
| ✅ | ✅ |
| Merge Contacts |
app/javascript/dashboard/modules/contact/components/MergeContact.vue | ✅
| ✅ |
| Contacts Advanced Filters |
app/javascript/dashboard/routes/dashboard/contacts/components/ContactsAdvancedFilters.vue
| deprecated `$each` prop in validations object | |
| Contact Form |
app/javascript/dashboard/routes/dashboard/conversation/contact/ContactForm.vue
| ✅ | ✅ |
| Conversation Form |
app/javascript/dashboard/routes/dashboard/conversation/contact/ConversationForm.vue
| ✅ | ✅ |
| Add Custom Views |
app/javascript/dashboard/routes/dashboard/customviews/AddCustomViews.vue
| ✅ | ✅ |
| Add Locale |
app/javascript/dashboard/routes/dashboard/helpcenter/components/AddLocale.vue
| ✅ | ✅ |
| Portal Settings Basic Form |
/app/javascript/dashboard/routes/dashboard/helpcenter/components/PortalSettingsBasicForm.vue
| ✅ | ✅ |
| Portal Settings Customization Form |
/app/javascript/dashboard/routes/dashboard/helpcenter/components/PortalSettingsCustomizationForm.vue
| ✅ | ✅ |
| Add Category |
app/javascript/dashboard/routes/dashboard/helpcenter/pages/categories/AddCategory.vue
| ✅ | ✅ |
| Edit Category |
app/javascript/dashboard/routes/dashboard/helpcenter/pages/categories/EditCategory.vue
| ✅ | ✅ |
| CSML Bot Editor |
app/javascript/dashboard/routes/dashboard/settings/agentBots/components/CSMLBotEditor.vue
| ✅ | ✅ |
| Add Agent |
app/javascript/dashboard/routes/dashboard/settings/agents/AddAgent.vue |
✅ | ✅ |
| Edit Agent |
app/javascript/dashboard/routes/dashboard/settings/agents/EditAgent.vue
| ✅ | ✅ |
| Add Attribute |
app/javascript/dashboard/routes/dashboard/settings/attributes/AddAttribute.vue
| ✅ | ✅ |
| Edit Attribute |
app/javascript/dashboard/routes/dashboard/settings/attributes/EditAttribute.vue
| ✅ | ✅ |
| Add Campaign |
app/javascript/dashboard/routes/dashboard/settings/campaigns/AddCampaign.vue
| ✅ | ✅ |
| Edit Campaign |
app/javascript/dashboard/routes/dashboard/settings/campaigns/EditCampaign.vue
| ✅ | ✅ |
| Add Canned |
app/javascript/dashboard/routes/dashboard/settings/canned/AddCanned.vue
| ✅ | ✅ |
| Edit Canned |
app/javascript/dashboard/routes/dashboard/settings/canned/EditCanned.vue
| ✅ | ✅ |
| IMAP Settings |
app/javascript/dashboard/routes/dashboard/settings/inbox/ImapSettings.vue
| ✅ | ✅ |
| SMTP Settings |
app/javascript/dashboard/routes/dashboard/settings/inbox/SmtpSettings.vue
| ✅ | ✅ |
| Widget Builder |
app/javascript/dashboard/routes/dashboard/settings/inbox/WidgetBuilder.vue
| ✅ | ✅ |
| 360 Dialog Whatsapp |
app/javascript/dashboard/routes/dashboard/settings/inbox/channels/360DialogWhatsapp.vue
| ✅ | ✅ |
| Inbox API settings |
app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Api.vue
| ✅ | ✅ |
| SMS Bandwidth settings |
app/javascript/dashboard/routes/dashboard/settings/inbox/channels/BandwidthSms.vue
| ✅ | ✅ |
| Cloud Whatsapp Settings |
app/javascript/dashboard/routes/dashboard/settings/inbox/channels/CloudWhatsapp.vue
| ✅ | ✅ |
| Facebook Settings |
app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Facebook.vue
| ✅ | ✅ |
| Line Settings |
app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Line.vue
| ✅ | ✅ |
| Telegram Settings |
app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Telegram.vue
| ✅ | ✅ |
| Twillio Settings |
app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Twilio.vue
| ✅ | ✅ |
| Forward To option settings |
app/javascript/dashboard/routes/dashboard/settings/inbox/channels/emailChannels/ForwardToOption.vue
| ✅ | ✅ |
| Microsoft settings |
app/javascript/dashboard/routes/dashboard/settings/inbox/channels/emailChannels/Microsoft.vue
| ✅ | ✅ |
| Collaborators page |
app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/CollaboratorsPage.vue
| ✅ | ✅ |
| Configuration Page |
app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/ConfigurationPage.vue
| ✅ | ✅ |
| Dashboard App Modal Settings |
app/javascript/dashboard/routes/dashboard/settings/integrations/DashboardApps/DashboardAppModal.vue
| ✅ | ✅ |
| Settings - Webhook Form |
app/javascript/dashboard/routes/dashboard/settings/integrations/Webhooks/WebhookForm.vue
| ✅ | ✅ |
| Macro Form |
app/javascript/dashboard/routes/dashboard/settings/macros/MacroForm.vue
| deprecated `$each` prop in validations object | |
| Change Password |
app/javascript/dashboard/routes/dashboard/settings/profile/ChangePassword.vue
| ✅ | ✅ |
| settings - User Basic Details |
app/javascript/dashboard/routes/dashboard/settings/profile/UserBasicDetails.vue
| ✅ | ✅ |
| Password Edit | app/javascript/v3/views/auth/password/Edit.vue | ✅ | ✅
|
| Password Reset form |
app/javascript/v3/views/auth/reset/password/Index.vue | ✅ | ✅ |
| Signup form |
app/javascript/v3/views/auth/signup/components/Signup/Form.vue | ✅ | ✅ |
| Login form | app/javascript/v3/views/login/Index.vue | ✅ | ✅ |
| Custom Attributes |
app/javascript/dashboard/components/CustomAttribute.vue | ✅ | ✅ |
| Reply Email Head |
app/javascript/dashboard/components/widgets/conversation/ReplyEmailHead.vue
| ✅ | ✅ |
| Methods Mixin |
app/javascript/dashboard/mixins/automations/methodsMixin.js | ✅ | ✅ |
| Validations mixin |
app/javascript/dashboard/routes/dashboard/settings/labels/validationMixin.js
| ✅ | ✅ |
| SLA Form |
app/javascript/dashboard/routes/dashboard/settings/sla/SlaForm.vue | ✅ |
✅ |
| SLA Time Input |
app/javascript/dashboard/routes/dashboard/settings/sla/SlaTimeInput.vue
| ✅ | ✅ |
| SLA Validation Mixin |
app/javascript/dashboard/routes/dashboard/settings/sla/validationMixin.js
| ✅ | ✅ |
| Team Form |
app/javascript/dashboard/routes/dashboard/settings/teams/TeamForm.vue |
✅ | ✅ |
| Add Agents |
app/javascript/dashboard/routes/dashboard/settings/teams/Create/AddAgents.vue
| ✅ | ✅ |
| Edit Agents |
app/javascript/dashboard/routes/dashboard/settings/teams/Edit/EditAgents.vue
| ✅ | ✅ |
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com >
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
Co-authored-by: Pranav <pranav@chatwoot.com >
2024-07-30 15:08:22 +05:30
Pranav
8b1d98af52
feat: Update the design for integration page ( #9825 )
...
Combine integrations and applications page into one page.
<img width="1182" alt="Screenshot 2024-07-23 at 3 30 51 PM"
src="https://github.com/user-attachments/assets/50920a6f-606f-44b3-b1e4-641046a14444 ">
Major changes:
- The app enabled?, active? checks are all moved to backend.
- The dashboard_apps integration is also now part of the apps.yml file.
- Updated the header design for the new settings pages.
- Merged the folders integrationapps and integrations.
- Updated the copy to match the size of the card and provide clear
instruction.
- Only the list page is updated in this PR, rest of the pages are yet to
be migrated.
| Integration | Verified |
| -- | -- |
| Dashboard Apps | ✅ |
| Dyte | ✅ |
| Slack | ✅ |
| Webhooks | ✅ |
| Dialogflow | ✅ |
| Google Translate | ✅ |
| OpenAI | ✅ |
| Linear | ✅ |
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2024-07-24 16:35:40 -07:00
Sivin Varghese
fb99ba7b40
feat: Rewrite uiSettings mixin to a composable ( #9819 )
2024-07-23 21:27:22 +05:30
Sivin Varghese
79aa5a5d7f
feat: Replace alertMixin usage with useAlert ( #9793 )
...
# Pull Request Template
## Description
This PR will replace the usage of `alertMixin` from the code base with
the `useAlert` composable.
Fixes
https://linear.app/chatwoot/issue/CW-3462/replace-alertmixin-usage-with-usealert
## Type of change
- [x] Breaking change (fix or feature that would cause existing
functionality not to work as expected)
## How Has This Been Tested?
Please refer this issue description
https://linear.app/chatwoot/issue/CW-3462/replace-alertmixin-usage-with-usealert
## Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [ ] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
---------
Co-authored-by: Sojan Jose <sojan@pepalo.com >
2024-07-23 16:41:11 +05:30
Sivin Varghese
81d7c51a84
feat: Replace contentTypeMixin within the component ( #9802 )
...
# Pull Request Template
## Description
This PR will completely remove the `contentTypeMixin` and be used in the
component as it is.
Fixes
https://linear.app/chatwoot/issue/CW-3465/rewrite-contenttypemixin-mixin-as-a-helper
## Type of change
- [x] New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
Take a look at this component
`app/javascript/dashboard/components/widgets/conversation/Message.vue`
## Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [ ] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
2024-07-22 13:08:04 +05:30
Pranav
9de8c27368
feat: Use vitest instead of jest, run all the specs anywhere in app/ folder in the CI ( #9722 )
...
Due to the pattern `**/specs/*.spec.js` defined in CircleCI, none of the
frontend spec in the folders such as
`specs/<domain-name>/getters.spec.js` were not executed in Circle CI.
This PR fixes the issue, along with the following changes:
- Use vitest instead of jest
- Remove jest dependancies
- Update tests to work with vitest
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2024-07-10 08:32:16 -07:00
Shivam Mishra
da4b75a3af
feat: add Google login flow and inbox creation ( #9580 )
...
This PR adds the following changes
1. Refactor `microsoft/callbacks_controller` to move common logic to
`oauth_callback_controller`, most of the logic is re-used for Google
2. Add UI components, `googleClient` and I18n entries for Google login
3. Add Google callback and inbox creation
4. Add a `joinUrl` utility along with specs (need to move it to utils)
5. Add `GoogleConcern`, `Google::AuthorizationsController` and
`Google::CallbacksController`
> Note: The UI is hidden for now, so we can merge this without any
hiccups, to enable it just revert the commit `05c18de`
### Preview
https://github.com/chatwoot/chatwoot/assets/18097732/1606d150-4561-49dc-838d-e0b00fe49ce3
### Linear Tickers
[CW-3370](https://linear.app/chatwoot/issue/CW-3370 )
[CW-3371](https://linear.app/chatwoot/issue/CW-3371 )
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2024-06-07 16:37:46 +05:30
Fayaz Ahmed
b474929f5e
chore: Replace eventBus with mitt.js [CW-3275] ( #9539 )
...
# Replace the deprecated `eventBus` with mitt.js
## Description
Since eventBus and it's respective methods are deprecated and removed
from all future releases of vue, this was blocking us from migrating.
This PR replaces eventBus with
[mitt](https://github.com/developit/mitt ). I have created a wrapper
mitt.js to simulate the same old event names so it's backwards
compatible, without making a lot of changes.
Fixes # (issue)
## Type of change
Please delete options that are not relevant.
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality not to work as expected)
- [ ] This change requires a documentation update
## How Has This Been Tested?
1. Made sure all the places we're listening to bus events are working as
expected.
2. Respective specsf or the events from mitt.
## Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have commented on my code, particularly in hard-to-understand
areas
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [x] Any dependent changes have been merged and published in downstream
modules
2024-05-31 15:50:36 +05:30
Shivam Mishra
6c682a6869
feat: add reauthorization banner for Facebook ( #9553 )
2024-05-30 09:41:04 +05:30
Sivin Varghese
4fd8c7a61b
fix: TypeError cannot set properties of undefined (setting 'keydownHandlerIndex') ( #9327 )
2024-04-30 15:20:05 +05:30
Shivam Mishra
47f8b2cd0c
refactor: handling keyboard shortcuts ( #9242 )
...
* fix: Resolve and go next keyboard shortcuts doesn't work
* refactor: use buildHotKeys instead of hasPressedCommandPlusAltAndEKey
* feat: install tinykeys
* refactor: use tinykeys
* test: update buildKeyEvents
* fix: remove stray import
* feat: handle action list globally
* feat: allow configuring `allowOnFocusedInput`
* chore: Navigate chat list item
* chore: Navigate dashboard
* feat: Navigate editor top panel
* feat: Toggle file upload
* chore: More keyboard shortcuts
* chore: Update mention selection mixin
* chore: Phone input
* chore: Clean up
* chore: Clean up
* chore: Dropdown and editor
* chore: Enter key to send and clean up
* chore: Rename mixin
* chore: Review fixes
* chore: Removed unused shortcut from modal
* fix: Specs
---------
Co-authored-by: iamsivin <iamsivin@gmail.com >
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
2024-04-26 15:41:02 +05:30
Shivam Mishra
2cde42c7ec
feat: add upgrade banner for SLA feature ( #9240 )
...
- Add an upgrade CTA for the SLA feature
-------------------
Co-authored-by: Sojan Jose <sojan@pepalo.com >
Co-authored-by: Pranav <pranav@chatwoot.com >
2024-04-16 16:59:39 -07:00
Sivin Varghese
dafedddc1a
feat: Remove Foundation in favor of Tailwind ( #8984 )
...
* feat: Remove foundation
* chore: Minor fix
* Minor fix
* Update _forms.scss
* chore: More changes
* chore: Minor fix
* chore: Clean up
* fix: font-weight
* chore: More changes
* chore: Setting page
* chore: Editor fix
* chore: Reports page
* chore: More changes
* chore: Minor changes
* chore: More fixes
* chore: More changes
* chore: More changes
* chore: More changes
* chore: Minor fix
* chore: More changes
* chore: More changes
* chore: More changes
* chore: More changes
* chore: Clean up
* chore: Minor fix
* chore: Clean ups
* chore: Rename basic file
* chore: Remove unused files
* chore: Fix expanded input
* Fix campaign rendering
* chore: Clean up
* chore: More changes
* chore: Remove unused files
* fix: Overflow issue
* chore: Minor fix
* chore: Clean up
* chore: Minor fix
* chore: Remove unused files
* chore: Minor fix
* chore: Minor fix
* fix: autoprefixer start/end value has mixed support
* chore: Minor fix
* chore: Remove unused files
* chore: Minor fix
* chore: Minor fix
* chore: Minor fix
* Add responsive design to label settings
* fix inbox view
* chore: Minor fix
* w-60% to w-2/3
* chore: Fix team
* chore: Fix button
* w-[34%] to w-1/3
* chore: Fix border
* Add support mobile views in team page
* chore: fix snackbar
* chore: clean up
* chore: Clean up
* fix: loading state alignment
* fix: alert styles
* chore: Minor fix
* fix: spacing for agent bot row
* fix: layout
* fix: layout for SLA
* fix: checkbox
* fix: SLA checkbox spacing
* Update inbox settings pages
* fix macros listing page layout
* fix canned responses
* chore: Fix bot page
* chore: fix automation page
* chore: fix agents page
* chore: fix canned response editor
* chore: Fix settings table
* chore: fix settings layout
* chore: Minor fix
* fix: canned response table layou
* fix: layout for table header for webhooks
* fix: webhook row layout
* fix: dashboard app modal layout
* fix: add title to canned response truncated shortcode
* fix: dashboard apps row layuot
* fix: layouts hooks
* fix: body color
* fix: delete action color in portal locales
* fix: text color for campagin title
* fix: success button color
---------
Co-authored-by: Pranav <pranav@chatwoot.com >
Co-authored-by: Vishnu Narayanan <iamwishnu@gmail.com >
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com >
2024-02-28 13:56:28 +05:30
Vishnu Narayanan
27ac262a26
feat(ee): Add support for SLA in automation rules ( #8910 )
...
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
2024-02-21 14:45:43 -08:00
Sivin Varghese
3e54d3654b
feat: Updated the search result fly-out menu design ( #8203 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2023-10-25 19:16:49 -07:00
Shivam Mishra
6d9b2a6b33
refactor: UI flags for Reply To ( #8147 )
2023-10-20 14:19:19 +05:30
Shivam Mishra
62d8ec7edb
feat: support reply to for incoming messages on facebook ( #8076 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2023-10-13 16:33:50 +05:30
Shivam Mishra
1b63adfb2e
feat: add option for reply to in context menu ( #8043 )
...
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2023-10-05 20:01:20 +05:30
Shivam Mishra
a88d155dd7
feat: update tool-chain to latest ( #7975 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2023-09-27 14:02:34 +05:30
Pranav Raj S
4e8d17f017
chore: Update specs and warnings in console ( #7467 )
2023-07-05 18:32:55 -07:00
Tejaswini Chile
71837bedf9
feat: Ability to customise the email sender name [CW-1629] ( #7345 )
2023-07-04 20:46:01 +05:30
Shivam Mishra
996325f35b
feat: multiple UX improvements to labels ( #7358 )
...
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com >
2023-06-25 18:49:49 +05:30
Nithin David Thomas
09ce85b30d
Chore: moves localstorage helper as a shared utility ( #6838 )
...
* Chore: moves localstorage helper as a shared utility and refactors constants
* Refactors constants file
* Fixes merge conflicts
* Delete constants.js
---------
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
2023-04-11 15:50:46 +05:30
Sivin Varghese
eb55ff5c9b
chore: Adds the ability to automatically initialize the RTL direction ( #6531 )
2023-02-27 12:03:40 +05:30
Sivin Varghese
409466bbd5
chore: RTL configuration ( #6521 )
...
* chore: RTL configuration
* Adds scss file
2023-02-23 17:50:44 +05:30
Sivin Varghese
af5c71e060
chore: Adds the ability to see the existing filter when we apply a new filter ( #6310 )
...
* feat: Adds existing filter to advance filter modal when we apply a filter
2023-01-24 09:10:17 +05:30
Sivin Varghese
add33d032c
feat: Adds automation view for assigning an agent ( #6131 )
...
* feat: Adds automation view for assigning an agent
Co-authored-by: Tejaswini Chile <tejaswini@chatwoot.com >
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2023-01-10 11:35:56 +05:30
Fayaz Ahmed
9eb861a3b7
feat: Custom attributes in automations and refactor ( #4548 )
...
* Custom attributes
* Custom Attrs Manifest
* Fix dropdown values for custom attributes
* Handle edit mode for custom attributes
* Ported duplicate logic to a mixin
* fix Code climate issue
* Fix Codeclimate complexity warning
* Bug fix - Custom attributes getting duplicated
* Bug fixes and Code Climate issue fix
* Code Climate Issues Breakdown
* Fix test spec
* Add labels for Custom attributes in dropdown
* Refactor
* Refactor Automion mixin
* Refactor Mixin
* Refactor getOperator
* Fix getOperatorType
* File name method refactor
* Refactor appendNewCondition
* spec update
* Refactor methods
* Mixin Spec update
* Automation Mixins Test Specs
* Mixin Spec Rerun
* Automation validations mixin spec
* Automation helper test spec
* Send custom_attr key
* Fix spec fixtures
* fix: Changes for custom attribute type and lower case search
* fix: Specs
* fix: Specs
* fix: Ruby version change
* fix: Ruby version change
* Removes Lowercased values and fix label value in api payload
* Fix specs
* Fixed Query Spec
* Removed disabled labels if no attributes are present
* Code Climate Fixes
* fix: custom attribute with indifferent access
* fix: custom attribute with indifferent access
* Fix specs
* Minor label fix
* REtrigger circle ci build
* Update app/javascript/shared/mixins/specs/automationMixin.spec.js
* Update app/javascript/shared/mixins/specs/automationMixin.spec.js
* fix: Custom attribute case insensitivity search
* Add missing reset action method to input
* Set team_input to single select instead of multiple
* fix: remove value case check for date,boolean and number data type
* fix: cognitive complexity
* fix: cognitive complexity
* fix: Fixed activity message for automation system
* fix: Fixed activity message for automation system
* fix: Fixed activity message for automation system
* fix: codeclimate
* fix: codeclimate
* fix: action cable events for label update
* fix: codeclimate, conversation modela number of methods
* fix: codeclimate, conversation modela number of methods
* fix: codeclimate, conversation modela number of methods
* fix: codeclimate, conversation modela number of methods
* Fix margin bottom for attachment button
* Remove margin bottom to avoid conflict from macros
* Fix automation action query generator using the right key
* fix: not running message created event for activity message
* fix: not running message created event for activity message
* codeclimate fix
* codeclimate fix
* codeclimate fix
* Update app/javascript/dashboard/mixins/automations/methodsMixin.js
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
* Update app/javascript/shared/mixins/specs/automationHelper.spec.js
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
* Update app/javascript/dashboard/helper/automationHelper.js
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
* Update app/javascript/dashboard/mixins/automations/methodsMixin.js
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
Co-authored-by: Tejaswini <tejaswini@chatwoot.com >
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
Co-authored-by: Sojan Jose <sojan@pepalo.com >
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2022-11-10 10:53:29 +05:30
David Kubeš
6c048626d0
chore: Replace deprecated functions ( #5611 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2022-10-12 14:55:59 -07:00
Sivin Varghese
a9d687565e
chore: Displayed WhatsApp API provider name in inbox settings ( #5346 )
2022-08-29 12:40:15 +05:30
David Kubeš
a18c0a97f3
chore: Replace packages with native functions ( #5140 )
2022-08-03 17:08:21 +05:30