Sivin Varghese 
							
						 
					 
					
						
						
							
						
						280bc58963 
					 
					
						
						
							
							chore: Update buttons in conversation screens( #11132 )  
						
						 
						
						... 
						
						
						
						# Pull Request Template
### Changes includes
* Update send message and add note button
<img width="151" alt="image"
src="https://github.com/user-attachments/assets/646d1d22-07be-4f2f-9090-6642556aa761 "
/>
<img width="151" alt="image"
src="https://github.com/user-attachments/assets/b5651420-c48b-4932-aff9-911788b9eabc "
/>
<img width="165" alt="image"
src="https://github.com/user-attachments/assets/f1ace171-2115-4eba-9055-e568d1b73c5e "
/>
<img width="165" alt="image"
src="https://github.com/user-attachments/assets/0c818461-ccdb-46ab-b7d3-3917e4ee4e74 "
/>
<img width="165" alt="image"
src="https://github.com/user-attachments/assets/eef1545b-1bed-47a1-8b83-ed5d5da3f24f "
/>
<img width="165" alt="image"
src="https://github.com/user-attachments/assets/429de6e6-1263-4216-9222-4eaece95da81 "
/>
<img width="165" alt="image"
src="https://github.com/user-attachments/assets/59a69867-4da1-4695-b88c-329142a693a8 "
/>
<img width="165" alt="image"
src="https://github.com/user-attachments/assets/7114745c-836f-4c5a-b5d6-e200e1343a73 "
/>
* Remove Unused component `AnnouncementPopup.vue`
* Updated button for custom attributes in conversation sidebar.
<img width="225" alt="image"
src="https://github.com/user-attachments/assets/a71f6c31-aca9-4e1b-bf63-6b9d5ed183c8 "
/>
<img width="310" alt="image"
src="https://github.com/user-attachments/assets/8d847e1b-4a13-4108-a487-ce3d36257afa "
/>
* Update button in custom snooze modal buttons
<img width="207" alt="image"
src="https://github.com/user-attachments/assets/78315ce6-9734-467b-a4d3-e753d3eca384 "
/>
* Update modal component close button
<img width="80" alt="image"
src="https://github.com/user-attachments/assets/643e9ef0-b781-47ce-a66b-a9ee4760c952 "
/>
* Update AI assistant modal and AICTA modal
<img width="319" alt="image"
src="https://github.com/user-attachments/assets/8d0986ec-ec7a-4abb-9327-f73df8b4d942 "
/>
<img width="565" alt="image"
src="https://github.com/user-attachments/assets/1e02ddd1-7f51-4d8a-bb57-558b9a50c938 "
/>
* Update remove attachment button
<img width="301" alt="image"
src="https://github.com/user-attachments/assets/90c93eee-0b4d-4839-9db5-edc4b023df4b "
/>
* Update the conversation header buttons
<img width="256" alt="image"
src="https://github.com/user-attachments/assets/abac5d7e-dd83-40ae-b548-76bbafaa2231 "
/>
* Update the retry button in old message bubbles.
---------
Co-authored-by: Pranav <pranav@chatwoot.com > 
						
						
					 
					
						2025-03-21 14:47:28 +05:30  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Shivam Mishra 
							
						 
					 
					
						
						
							
						
						c51a458c25 
					 
					
						
						
							
							style: apply fixes for eslint issues [cw-3590] ( #10210 )  
						
						 
						
						... 
						
						
						
						These fixes are all auto generated and can be merged directly
Fixes the following issues
1. Event used on components should be hypenated
2. Attribute orders in components
3. Use `unmounted` instead of `destroyed`
4. Add explicit `emits` declarations for components, autofixed [using
this
script](https://gist.github.com/scmmishra/6f549109b96400006bb69bbde392eddf )
We ignore the top level v-if for now, we will fix it later 
						
						
					 
					
						2024-10-03 15:02:12 +05:30  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Sivin Varghese 
							
						 
					 
					
						
						
							
						
						d19a9c38d7 
					 
					
						
						
							
							feat: Rewrite aiMixin to a composable ( #9955 )  
						
						 
						
						... 
						
						
						
						This PR will replace the usage of aiMixin with the useAI composable.
Fixes https://linear.app/chatwoot/issue/CW-3443/rewrite-aimixin-mixin-to-a-composable 
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com > 
						
						
					 
					
						2024-08-22 13:58:51 +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  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								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  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								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  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Muhsin Keloth 
							
						 
					 
					
						
						
							
						
						b89c917198 
					 
					
						
						
							
							feat: Add CTAs for AI features ( #7538 )  
						
						 
						
						
						
						
					 
					
						2023-08-16 08:39:41 +05:30