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
Shivam Mishra
b8d0252511
feat: remove usage of .sync and define explicitly emits ( #10209 )
...
References
- https://v3-migration.vuejs.org/breaking-changes/v-model
-
https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html
2024-10-03 12:44:18 +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
Sivin Varghese
28d4432152
feat: Dynamically show Shift key in shortcut modal for QWERTZ layout ( #9888 )
...
# Pull Request Template
## Description
This PR includes UI changes to dynamically add the `Shift` key to the
key set `Alt+KeyP` and `Alt+KeyL` in the keyboard shortcut modal for the
`QWERTZ` layout.
**Context**
Previously, the `Alt+L` shortcut for toggling the reply editor
conflicted with the `@` symbol on the QWERTZ layout in macOS. The new
`useDetectLayout` composable checks the active keyboard layout. If
`QWERTZ` is detected, the shortcuts are modified to `Shift+Alt+KeyP` and
`Shift+Alt+KeyL`.
[PR with the functionality
changes](https://github.com/chatwoot/chatwoot/pull/9831#event-13764407813 )
Fixes
https://linear.app/chatwoot/issue/PR-1095/typing-a-in-private-note-switches-to-reply-tab-with-german-keyboard
## Type of change
- [x] Breaking change (fix or feature that would cause existing
functionality not to work as expected)
## How Has This Been Tested?
**Loom video**
https://www.loom.com/share/35b741c5afc64bc58bd4e7dc5dad012d?sid=f66ca0bf-b6a7-40fc-8972-ff0cd0196a16
## 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
- [ ] 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-06 16:17:43 +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
12af2fe026
feat: Remove the usage of clickAway mixin with directive ( #9323 )
2024-04-30 10:35:14 +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
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
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
Shivam Mishra
48bf8d08e5
feat: Update dependencies and fix import syntax for Vite migration ( #7959 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2023-09-21 17:55:54 +05:30
Sivin Varghese
396ef02b0c
feat: Improve the initial screen placeholder ( #7708 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2023-08-14 17:50:34 -07:00
Sivin Varghese
40ec0d109a
feat: Dark Mode ( #7471 )
2023-07-21 22:10:25 +05:30
Pranav Raj S
985b3f3bfc
chore: Reset the base font-size to 16px instead of 10px ( #7455 )
...
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com >
2023-07-04 03:23:00 +05:30
Nithin David Thomas
74c6db37b3
fix: Fixes broken style in automation page ( #6171 )
...
* fix: Fixes broken style in automation page
* Fix the position of drag handle
Co-authored-by: fayazara <fayazara@gmail.com >
Co-authored-by: Fayaz Ahmed <15716057+fayazara@users.noreply.github.com >
2023-01-06 15:37:28 +05:30
Nithin David Thomas
b179d1b563
chore: Refactor shortcuts modal to use modal component ( #6151 )
...
* chore: Refactor SHortcuts modal to use modal component
* Typography changes
2022-12-30 13:54:37 -08:00
Pranav Raj S
8af27d861b
chore: Default to rich content editor in website and email channel ( #5357 )
2022-09-13 05:41:42 -07:00
Sivin Varghese
f4fc53b425
feat: Adds the ability to delete a portal ( #5305 )
2022-09-01 13:27:08 +05:30
Fayaz Ahmed
263b8240d3
fix: Add a fix for minor UI / a11y issues ( #4905 )
2022-06-24 23:12:53 +05:30
Pranav Raj S
7bb8186e43
chore: Update self-closing tag eslint config ( #4826 )
...
* chore: Fix self-closing tag issues
* Fix merge conflicts
Co-authored-by: Fayaz Ahmed <15716057+fayazara@users.noreply.github.com >
2022-06-10 19:29:52 +05:30
Muhsin Keloth
f08d1b35d0
feat: Toggle automation status ( #3991 )
2022-03-01 14:14:23 +05:30
Muhsin Keloth
9606abe251
chore: Fix Eslint warnings ( #3654 )
...
* Fix all the eslint warnings
* Revert the schema
2021-12-27 13:49:31 +05:30
Pranav Raj S
c792cfc0be
feat: Use Fluent SVG icons on the dashboard ( #3482 )
2021-11-30 21:03:18 -08:00
Sivin Varghese
d13c4ff8c5
feat: Keyboard shortcuts improvements ( #2790 )
2021-08-26 15:55:58 +05:30
Sivin Varghese
c3314dd186
feat: Creates a modal showing all the available keyboard shortcuts ( #2728 )
...
* feat: Adds modal showing all the available keyboard shortcuts
* Minor fixes
* Minor fixes
* Spacing fixes
* fix translations
* Adds i18n
* Review fixes
* Review fixes
* spacing fixes
* Review fixes
* Minor fixes
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2021-08-09 21:23:40 -07:00
Muhsin Keloth
8a283a7783
feat: Ask to confirm with name before inbox/team deletion ( #2370 )
2021-06-04 13:17:44 +05:30
Pranav Raj S
246d0b407f
Chore: UI Cleanup in modals ( #873 )
...
* Chore: UI Cleanup in modals
* Fix review comments
2020-05-17 21:07:45 +05:30