diff --git a/app/controllers/api/v1/accounts/portals_controller.rb b/app/controllers/api/v1/accounts/portals_controller.rb index 8eb24b757..972b244fa 100644 --- a/app/controllers/api/v1/accounts/portals_controller.rb +++ b/app/controllers/api/v1/accounts/portals_controller.rb @@ -79,7 +79,7 @@ class Api::V1::Accounts::PortalsController < Api::V1::Accounts::BaseController def portal_params params.require(:portal).permit( :id, :color, :custom_domain, :header_text, :homepage_link, - :name, :page_title, :slug, :archived, { config: [:default_locale, { allowed_locales: [] }] } + :name, :page_title, :slug, :archived, { config: [:default_locale, { allowed_locales: [] }, { draft_locales: [] }] } ) end diff --git a/app/javascript/dashboard/components-next/HelpCenter/LocaleCard/LocaleCard.story.vue b/app/javascript/dashboard/components-next/HelpCenter/LocaleCard/LocaleCard.story.vue index d51d3dc71..4b00fdb0c 100644 --- a/app/javascript/dashboard/components-next/HelpCenter/LocaleCard/LocaleCard.story.vue +++ b/app/javascript/dashboard/components-next/HelpCenter/LocaleCard/LocaleCard.story.vue @@ -1,8 +1,22 @@ @@ -19,6 +33,8 @@ const locales = [ diff --git a/app/javascript/dashboard/components-next/HelpCenter/LocaleCard/LocaleCard.vue b/app/javascript/dashboard/components-next/HelpCenter/LocaleCard/LocaleCard.vue index 36f90a93f..8619e5b77 100644 --- a/app/javascript/dashboard/components-next/HelpCenter/LocaleCard/LocaleCard.vue +++ b/app/javascript/dashboard/components-next/HelpCenter/LocaleCard/LocaleCard.vue @@ -2,7 +2,7 @@ import { computed } from 'vue'; import { useI18n } from 'vue-i18n'; import { useToggle } from '@vueuse/core'; -import { LOCALE_MENU_ITEMS } from 'dashboard/helper/portalHelper'; +import { buildLocaleMenuItems } from 'dashboard/helper/portalHelper'; import CardLayout from 'dashboard/components-next/CardLayout.vue'; import Button from 'dashboard/components-next/button/Button.vue'; @@ -17,6 +17,10 @@ const props = defineProps({ type: Boolean, required: true, }, + isDraft: { + type: Boolean, + required: true, + }, localeCode: { type: String, required: true, @@ -37,11 +41,28 @@ const { t } = useI18n(); const [showDropdownMenu, toggleDropdown] = useToggle(); +const localeLabel = computed(() => `${props.locale} (${props.localeCode})`); + +const localeMenuLabels = computed(() => ({ + 'change-default': t( + 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.MAKE_DEFAULT' + ), + 'move-to-draft': t( + 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.MOVE_TO_DRAFT' + ), + 'publish-locale': t( + 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.PUBLISH_LOCALE' + ), + delete: t('HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.DELETE'), +})); + const localeMenuItems = computed(() => - LOCALE_MENU_ITEMS.map(item => ({ + buildLocaleMenuItems({ + isDefault: props.isDefault, + isDraft: props.isDraft, + }).map(item => ({ ...item, - label: t(item.label), - disabled: props.isDefault, + label: localeMenuLabels.value[item.action], })) ); @@ -56,7 +77,7 @@ const handleAction = ({ action, value }) => {
- {{ locale }} ({{ localeCode }}) + {{ localeLabel }} { > {{ $t('HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DEFAULT') }} + + {{ $t('HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DRAFT') }} +
@@ -86,6 +113,7 @@ const handleAction = ({ action, value }) => {
diff --git a/app/javascript/dashboard/components-next/HelpCenter/Pages/LocalePage/AddLocaleDialog.vue b/app/javascript/dashboard/components-next/HelpCenter/Pages/LocalePage/AddLocaleDialog.vue index 30044a564..5b7573123 100644 --- a/app/javascript/dashboard/components-next/HelpCenter/Pages/LocalePage/AddLocaleDialog.vue +++ b/app/javascript/dashboard/components-next/HelpCenter/Pages/LocalePage/AddLocaleDialog.vue @@ -1,5 +1,5 @@