iachat/app/javascript/dashboard/components-next
Sojan Jose 2a90652f05
feat: Add draft status for help center locales (#13768)
This adds a draft status for Help Center locales so teams can prepare
localized content in the dashboard without exposing those locales in the
public portal switcher until they are ready to publish.

Fixes: https://github.com/chatwoot/chatwoot/issues/10412
Closes: https://github.com/chatwoot/chatwoot/issues/10412

## Why

Teams need a way to work on locale-specific Help Center content ahead of
launch. The public portal should only show ready locales, while the
admin dashboard should continue to expose every allowed locale for
ongoing article and category work.

## What this change does

- Adds `draft_locales` to portal config as a subset of `allowed_locales`
- Hides drafted locales from the public portal language switchers while
keeping direct locale URLs working
- Keeps drafted locales fully visible in the admin dashboard for article
and category management
- Adds locale actions to move an existing locale to draft, publish a
drafted locale, and keep the default locale protected from drafting
- Adds a status dropdown when creating a locale so new locales can be
created as `Published` or `Draft`
- Returns each admin locale with a `draft` flag so the locale UI can
reflect the public visibility state

## Validation

- Seed a portal with multiple locales, draft one locale, and confirm the
public portal switcher hides it while `/hc/:slug/:locale` still loads
directly
- In the admin dashboard, confirm drafted locales still appear in the
locale list and remain selectable for articles and categories
- Create a new locale with `Draft` status and confirm it stays out of
the public switcher until published
- Move an existing locale back and forth between `Published` and `Draft`
and confirm the public switcher updates accordingly


## Demo 



https://github.com/user-attachments/assets/ba22dc26-c2e7-463a-b1f5-adf1fda1f9be

---------

Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2026-03-17 12:45:54 +04:00
..
Accordion
AssignmentPolicy feat(inbox): Enable conversation continuity for social channels (#11079) 2026-02-25 13:56:51 +04:00
avatar feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
banner
breadcrumb
button chore: Update theme colors and add new Inter variable fonts (#13347) 2026-01-28 14:36:04 -08:00
buttonGroup
Campaigns fix: ProseMirror prompt modal UI issue (#13722) 2026-03-09 16:51:49 +05:30
captain fix: skip Enter key submission during IME composition in AI inputs (#13779) 2026-03-13 10:26:51 +05:30
changelog-card chore: Update theme colors and add new Inter variable fonts (#13347) 2026-01-28 14:36:04 -08:00
checkbox
colorpicker
combobox feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
Companies feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
Contacts fix(contacts): Show telegram id in contact details form (#13611) 2026-02-23 19:26:45 +04:00
content-templates
Conversation feat: Conversation workflows(EE) (#13040) 2026-01-27 11:36:20 +04:00
ConversationWorkflow fix: Adjust inbox settings pages layout width (#13590) 2026-02-20 20:20:32 +05:30
copilot fix: skip Enter key submission during IME composition in AI inputs (#13779) 2026-03-13 10:26:51 +05:30
CustomAttributes feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
dialog fix: ProseMirror prompt modal UI issue (#13722) 2026-03-09 16:51:49 +05:30
dropdown-menu chore: Remove vue-multiselect and migrate to next components (#13506) 2026-02-17 16:40:12 +05:30
Editor feat: compose form improvements (#13668) 2026-03-02 18:27:51 +05:30
feature-spotlight feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
filter chore: Remove vue-multiselect and migrate to next components (#13506) 2026-02-17 16:40:12 +05:30
flag
HelpCenter feat: Add draft status for help center locales (#13768) 2026-03-17 12:45:54 +04:00
icon feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
Inbox chore: Update theme colors and add new Inter variable fonts (#13347) 2026-01-28 14:36:04 -08:00
inline-input
input feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
label feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
message fix: Correct reversed message status indicators for API channel (#13594) 2026-03-16 13:21:18 +04:00
NewConversation fix: ProseMirror prompt modal UI issue (#13722) 2026-03-09 16:51:49 +05:30
pagination feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
phonenumberinput
radioCard feat(inbox): Enable conversation continuity for social channels (#11079) 2026-02-25 13:56:51 +04:00
select feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
selectmenu
Settings feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
sidebar feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
spinner
switch feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
tabbar chore: Update theme colors and add new Inter variable fonts (#13347) 2026-01-28 14:36:04 -08:00
table feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
taginput feat: compose form improvements (#13668) 2026-03-02 18:27:51 +05:30
textarea feat: Conversation workflows(EE) (#13040) 2026-01-27 11:36:20 +04:00
whatsapp
year-in-review feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
CardLayout.vue feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
EmptyStateLayout.vue feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
SidebarActionsHeader.story.vue
SidebarActionsHeader.vue
TeleportWithDirection.vue