Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
* feat: Attachments view with key shortcuts and dynamically updates when user delete or sent new attachments
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
* fix: Search improvements and bug fixes
* Resets tab to all on search
* Fix index bug with tabs
---------
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
* feat: init auditlogs ui
* chore: add api
* fix: action
* chore: add action,username,time
* feat: add pagination support
* chore: format time
* chore: refactor
* chore: refactor auditlogs api response
* chore: update icon
* chore: rubocop fixes
* Fixes the way meta is handled in store
* Fixes meta not appearing issue
---------
Co-authored-by: Sojan Jose <sojan@pepalo.com>
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
* feat: sort by position
* chore: whitespace change
* feat: add border bottom color to list item
* feat: allow dragging articles
* feat: add migration to reorder all articles
* feat: add onsort method
* feat: finish UI sorting
* feat: show 50 per page in articles list
* feat: add article sorting methods
* feat: patch up reorder action with the API
* refactor: better naming
* chore: add comments
* feat: attach position to article before create
* feat: move article to end if moved between categories
* chore: add comments
* chore: update version
* fix: don't change position if previous category was nil
* fix: condition to trigger update on category change
* refactor: store new_position
* refactor: use grid instead of table
* feat: add snug spacing
* feat: add grab-icon
* feat: add grab icon to list
* refactor: show draggable only for category page
* feat: add update_positions as a class method
---------
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
* feat: genearte report in a grid
* refactor: update API usage
* refactor: separate generate method
* refactor: abstract transform_data
* feat: annotate with comments
* feat: add explicit timezone
* feat: download data only in user timezone
* fix: dates included in heatmap
* feat: add heatmap component
* feat: add heatmap component
* feat: add dummy heatmap
* refactor: compact tiles
* feat: allow hour
* feat: wire up heatmap query
* feat: allow arbritrary number of weeks
* feat: update position of the widget
* chore: update heatmap title
* refactor: move traffic heatmap to overview
* chore: add comment for perf
* feat: add reconcile logic for heatmap fetching
Fetching the data for the last 6 days all the time is wasteful
So we fetch only the data for today and reconcile it with the data we already have
* refactor: re-org code for new utils
* feat: add translations
* feat: translate days of the week
* chore: update chatwoot utils
* feat: add markers to heatmap
* refactor: update class names
* refactor: move flatten as a separate method
* test: Heatmap Helpers
* chore: add comments
* refactor: method naming
* refactor: use heatmap-level mixin
* refactor: cleanup css
* chore: remove log
* refactor: reports.js to use object instead of separate params
* refactor: report store to use new API design
* refactor: rename HeatmapHelper -> ReportsDataHelper
* refactor: separate clampDataBetweenTimeline
* feat: add tests
* fix: group by hour
* feat: add scroll for smaller screens
* refactor: add base data to reconcile with
* fix: tests
* fix: overflow only on smaller screens
* feat: translate tooltip
* refactor: simplify reconcile
* chore: add docs
* chore: remoev heatmap from account report
* feat: let Heatmap handle loading state
* chore: Apply suggestions from code review
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
* feat: update css
* refactor: color assignment to range
* feat: add short circuit
* Update app/javascript/dashboard/routes/dashboard/settings/reports/components/Heatmap.vue
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
* Added one more endpoint to attach tempfile and get logo
* Added one more endpoint to attach tempfile and get logo
* spec fixes
* Upload file for articles irrespective of the association
* Upload file for articles irrespective of the association
* Add multiple images with different keys
* feat: Adds image attachment for help center articles
* Adds validation for file upload
* Fixes space above image after adding to doc
* chore: Removed svg from file upload type
* Update app/javascript/dashboard/components/widgets/WootWriter/FullEditor.vue
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
* Update app/javascript/dashboard/components/widgets/WootWriter/FullEditor.vue
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
* Removes caption for the image
* Fixes woot prosemirror package version
* Update yarn.lock
* Update yarn.lock
---------
Co-authored-by: Tejaswini Chile <tejaswini@chatwoot.com>
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>
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
* fix: Update unread_count from backend instead of computing on the frontend
* Fix spec
* Remove status indicator on private notifications
* CodeClimate fix
* CodeClimate
- Add more feature flags for CRM, auto_resolution, and reports
- Add a SuperAdmin link in the sidebar if the user is a super-admin
- SuperAdmin could view all the features on an account irrespective of whether the feature is enabled.
Adds the ability to lock conversation to a single thread for Whatsapp and Sms Inboxes when using outbound messages.
demo: https://www.loom.com/share/c9e1e563c8914837a4139dfdd2503feffixes: #4975
Co-authored-by: Nithin David <1277421+nithindavid@users.noreply.github.com>
* feat: Adds the ability to publish an article
* chore: Disabled publish button and dropdown when there is no article id
* chore: Review fixes
* chore: Review fixes
* Update app/javascript/dashboard/routes/dashboard/helpcenter/components/Header/EditArticleHeader.vue
* chore: Review fixes
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
* Add more actions
* Complete sidebar store integration
* Complete portal list store integration
* Fixed the specs
* Added missing specs
* Add comment
* Code cleanup
* Fixed all the spec issues
* Add portal and article API specs
* Add category name in article list
* Add more locales
* Code beautification
* Exclude locale from codeclimate ci
* feat: Category store integration
* chore: Minor fixes
* chore: API call fixes
* chore: Minor fixes
* chore: Minor fixes
* chore: Adds the ability for get articles based on categories
* chore: minor fixes
* chore: Minor fixes
* chore: fixes specs and minor improvements
* chore: Review fixes
* chore: Minor fixes
* chore: Review fixes
* chore: Review fixes
* chore: Spacing fixes
* Code cleanup
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Added the ability to update the contact's avatar via API and Dashboard.
- Contact create and update APIs can now accept avatar attachment parameters [form data].
- Contact create and update endpoints can now accept the avatar_url parameter.[json]
- API endpoint to remove a contact avatar.
- Updated Contact create/edit UI components with avatar support
Fixes: #3428
* Adds last emails to reply editor
* Fixes bug in reply box
* Adds test cases
* Prevents private notes having cc bcc data
* Prevents private notes having cc bcc data
* Init reply head with values
* fix broken tests
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Co-authored-by: Fayaz Ahmed <15716057+fayazara@users.noreply.github.com>
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
* Add automation modal
* Fix the v-model for automations
* Actions and Condition dropdowns for automations
* Fix merge conflicts
* Handle event change and confirmation
* Appends new action
* Removes actions
* Automation api integration
* Api integration for creating automations
* Registers vuex module to the global store
* Automations table
* Updarted labels and actions
* Integrate automation api
* Fixes the mutation error - removed the data key wrapper
* Fixed the automation condition models to work with respective event types
* Remove temporary fixes added to the api request
* Displa timestamp and automation status values
* Added the clone buton
* Removed uncessary helper method
* Specs for automations
* Handle WIP code
* Remove the payload wrap
* Fix the action query payload
* Removed unnecessary files
* Disabled Automations routes
* Ability to delete automations
* Fix specs
* Edit automation modal
* Edit automation modal and api integration
* Replaced hardcoded values
* Using absolute paths
* Update app/javascript/dashboard/routes/dashboard/settings/automation/EditAutomationRule.vue
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
* Update app/javascript/dashboard/routes/dashboard/settings/automation/Index.vue
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
* Intendation fix
* Disable automation route
* Minor fix
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
* Add automation modal
* Fix the v-model for automations
* Actions and Condition dropdowns for automations
* Fix merge conflicts
* Handle event change and confirmation
* Appends new action
* Removes actions
* Automation api integration
* Api integration for creating automations
* Registers vuex module to the global store
* Automations table
* Updarted labels and actions
* Integrate automation api
* Fixes the mutation error - removed the data key wrapper
* Fixed the automation condition models to work with respective event types
* Remove temporary fixes added to the api request
* Displa timestamp and automation status values
* Added the clone buton
* Removed uncessary helper method
* Specs for automations
* Handle WIP code
* Remove the payload wrap
* Fix the action query payload
* Removed unnecessary files
* Disabled Automations routes
* Ability to delete automations
* Fix specs
* Fixed merge conflicts
Co-authored-by: Fayaz Ahmed <15716057+fayazara@users.noreply.github.com>
Co-authored-by: fayazara <fayazara@gmail.com>
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
File and emoji pickers should be enabled by default.
Fixes: #3560
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
* feat: Adds the ability to save custom filters and display folders on the sidebar
* Minor fixes
* Review fixes
* Review fixes
* i18n fixes
* Shows conversations when the user click on the folder sidebar item
* Spacing fixes
* Review fixes
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
When creating a conversation from the contacts tab now we can go directly to the conversation by clicking the link in the success message
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
This change allows the user to configure both IMAP and SMTP for an email inbox. IMAP enables the user to see emails in Chatwoot. And user can use SMTP to reply to an email conversation.
Users can use the default settings to send and receive emails for email inboxes if both IMAP and SMTP are disabled.
Fixes#2520