chatwoot/app/javascript/widget/components
Pranav 88cb5ba56f
fix: Widget now shows articles based on correct locale (#12316)
# Pull Request Template

## Description

This PR fixes an issue (CW-5529) where articles displayed on the widget
were not respecting the current locale set in the URL (e.g., `/ar` was
showing English articles).

The root cause was that the article queries in the
`_featured_articles.html.erb` and `_uncategorized-block.html.erb` view
templates were missing locale filtering.

The fix involves adding `locale: @locale` to the `articles.where`
clauses in these templates to ensure that only articles matching the
current portal locale are displayed.

Fixes #CW-5529

## Type of change

- [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?

The changes were verified against existing test cases that confirm the
expected behavior for locale-specific article filtering. Specifically,
tests for the articles controller's `index` action and article count by
locale were reviewed, which align with the implemented fixes.

## 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 (N/A, relied on existing tests)
- [ ] New and existing unit tests pass locally with my changes (Unable
to run tests in this environment)
- [ ] Any dependent changes have been merged and published in downstream
modules

---
Linear Issue:
[CW-5529](https://linear.app/chatwoot/issue/CW-5529/articles-from-the-correct-locale-is-not-shown-on-the-widget)

<a
href="https://cursor.com/background-agent?bcId=bc-2f944ea8-863e-4e80-b137-c05ce0b017cc">
  <picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/open-in-cursor-dark.svg">
<source media="(prefers-color-scheme: light)"
srcset="https://cursor.com/open-in-cursor-light.svg">
<img alt="Open in Cursor" src="https://cursor.com/open-in-cursor.svg">
  </picture>
</a>
<a
href="https://cursor.com/agents?id=bc-2f944ea8-863e-4e80-b137-c05ce0b017cc">
  <picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/open-in-web-dark.svg">
<source media="(prefers-color-scheme: light)"
srcset="https://cursor.com/open-in-web-light.svg">
    <img alt="Open in Web" src="https://cursor.com/open-in-web.svg">
  </picture>
</a>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
2025-08-28 18:32:27 +05:30
..
Availability feat: Migrate availability mixins to composable and helper (#11596) 2025-08-22 00:43:34 +05:30
Form feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
layouts feat: Support customizable welcome text, availability messages, and UI toggles (#11891) 2025-07-08 14:26:00 -07:00
pageComponents/Home/Article fix: Widget now shows articles based on correct locale (#12316) 2025-08-28 18:32:27 +05:30
PreChat feat: Migrate availability mixins to composable and helper (#11596) 2025-08-22 00:43:34 +05:30
template chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
AgentMessage.vue chore: Replace Thumbnail with Avatar (#12119) 2025-08-11 15:47:17 +05:30
AgentMessageBubble.vue feat: Improve CSAT responses (#11485) 2025-05-16 14:18:52 +05:30
AgentTypingBubble.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
Banner.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
ChatAttachment.vue feat: Support customizable welcome text, availability messages, and UI toggles (#11891) 2025-07-08 14:26:00 -07:00
ChatFooter.vue feat: Migrate availability mixins to composable and helper (#11596) 2025-08-22 00:43:34 +05:30
ChatHeader.vue feat: Migrate availability mixins to composable and helper (#11596) 2025-08-22 00:43:34 +05:30
ChatHeaderExpanded.vue feat: Support customizable welcome text, availability messages, and UI toggles (#11891) 2025-07-08 14:26:00 -07:00
ChatInputWrap.vue feat: Support customizable welcome text, availability messages, and UI toggles (#11891) 2025-07-08 14:26:00 -07:00
ChatMessage.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
ChatSendButton.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
ConversationWrap.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
DragWrapper.vue style: apply fixes for eslint issues [cw-3590] (#10210) 2024-10-03 15:02:12 +05:30
FileBubble.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
FooterReplyTo.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
GroupedAvatars.vue chore: Replace Thumbnail with Avatar (#12119) 2025-08-11 15:47:17 +05:30
HeaderActions.vue feat: Support customizable welcome text, availability messages, and UI toggles (#11891) 2025-07-08 14:26:00 -07:00
ImageBubble.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
MessageReplyButton.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
ReplyToChip.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
TeamAvailability.vue feat: Migrate availability mixins to composable and helper (#11596) 2025-08-22 00:43:34 +05:30
UnreadMessage.vue chore: Replace Thumbnail with Avatar (#12119) 2025-08-11 15:47:17 +05:30
UnreadMessageList.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
UserMessage.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
UserMessageBubble.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
VideoBubble.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30