feat: catalog has_landing and landing_* in SuperAdmin UI

Wire website landing keys into system groups and setting labels/help.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-05 17:01:58 +03:30
co-authored by Cursor
parent f4eb43fe4d
commit c970d74f75
3 changed files with 53 additions and 2 deletions
+40 -1
View File
@@ -384,7 +384,19 @@ const KEY_TYPE_FALLBACK: Record<string, SettingFieldType> = {
pargar_item_id_gold: 'number', pargar_item_id_gold: 'number',
support_messengers: 'longtext', support_messengers: 'longtext',
show_to_users_chat: 'switch', show_to_users_chat: 'switch',
has_landing: 'switch',
has_chat: 'switch', has_chat: 'switch',
landing_site: 'longtext',
landing_header: 'longtext',
landing_hero: 'longtext',
landing_live_price: 'longtext',
landing_calculator: 'longtext',
landing_feature: 'longtext',
landing_steps: 'longtext',
landing_trust: 'longtext',
landing_faq: 'longtext',
landing_buttom_cta: 'longtext',
landing_footer: 'longtext',
chat_api: 'text', chat_api: 'text',
chat_api_key: 'text', chat_api_key: 'text',
chat_upload_url: 'text', chat_upload_url: 'text',
@@ -787,6 +799,19 @@ const KEY_HELP_FALLBACK: Record<string, string> = {
'فقط مواردی که در این لیست ثبت شوند در منوی شناور پشتیبانی اپ مشتری نمایش داده می‌شوند. برای تماس تلفنی یا پیامک، نوع «تماس تلفنی» / «پیامک» را با شماره اضافه کنید. لیست می‌تواند خالی باشد؛ اگر چت فعال باشد، پشتیبانی مستقیم به صفحه چت می‌رود.', 'فقط مواردی که در این لیست ثبت شوند در منوی شناور پشتیبانی اپ مشتری نمایش داده می‌شوند. برای تماس تلفنی یا پیامک، نوع «تماس تلفنی» / «پیامک» را با شماره اضافه کنید. لیست می‌تواند خالی باشد؛ اگر چت فعال باشد، پشتیبانی مستقیم به صفحه چت می‌رود.',
show_to_users_chat: show_to_users_chat:
'روشن: قابلیت چت پشتیبانی برای این دیپلوی فعال است (منوی ادمین و پیش‌نیاز نمایش به کاربر). خاموش: چت در ادمین و اپ کاربر مخفی است و سوییچ «چت پشتیبانی» (has_chat) از تنظیمات عادی هم برداشته می‌شود.', 'روشن: قابلیت چت پشتیبانی برای این دیپلوی فعال است (منوی ادمین و پیش‌نیاز نمایش به کاربر). خاموش: چت در ادمین و اپ کاربر مخفی است و سوییچ «چت پشتیبانی» (has_chat) از تنظیمات عادی هم برداشته می‌شود.',
has_landing:
'روشن: منوی تنظیمات وبسایت در ادمین و تنظیمات لندینگ برای اپ کاربر فعال است. خاموش: منو مخفی است.',
landing_site: 'محتوای تنظیمات کلی لندینگ وبسایت.',
landing_header: 'محتوای هدر و ناوبری لندینگ.',
landing_hero: 'محتوای سکشن هیرو لندینگ.',
landing_live_price: 'لیبل‌ها و متن قیمت لحظه‌ای لندینگ.',
landing_calculator: 'عنوان و متن ماشین حساب لندینگ.',
landing_feature: 'متن امکانات لندینگ (چرا نیازی طلا).',
landing_steps: 'متن مراحل شروع لندینگ.',
landing_trust: 'متن اعتماد و مجوزها (بدون اینماد).',
landing_faq: 'سوالات متداول لندینگ.',
landing_buttom_cta: 'متن دعوت به اقدام پایین صفحه لندینگ.',
landing_footer: 'محتوای فوتر لندینگ.',
has_chat: has_chat:
'روشن: چت پشتیبانی در اپ مشتری نمایش داده می‌شود (فقط وقتی show_to_users_chat هم روشن باشد). خاموش: دکمه و صفحه چت برای کاربر مخفی است.', 'روشن: چت پشتیبانی در اپ مشتری نمایش داده می‌شود (فقط وقتی show_to_users_chat هم روشن باشد). خاموش: دکمه و صفحه چت برای کاربر مخفی است.',
chat_api: chat_api:
@@ -1073,7 +1098,19 @@ export const KEY_LABEL_FALLBACK: Record<string, string> = {
zarin_uid_prefix: 'پیشوند عددی uid زرین', zarin_uid_prefix: 'پیشوند عددی uid زرین',
support_messengers: 'پیام‌رسان‌های پشتیبانی', support_messengers: 'پیام‌رسان‌های پشتیبانی',
show_to_users_chat: 'نمایش چت به کاربران', show_to_users_chat: 'نمایش چت به کاربران',
has_landing: 'لندینگ وبسایت',
has_chat: 'چت پشتیبانی', has_chat: 'چت پشتیبانی',
landing_site: 'تنظیمات کلی سایت',
landing_header: 'هدر و ناوبری',
landing_hero: 'هیرو',
landing_live_price: 'لیبل‌های قیمت لحظه‌ای',
landing_calculator: 'عنوان ماشین حساب',
landing_feature: 'امکانات (چرا نیازی طلا)',
landing_steps: 'مراحل شروع',
landing_trust: 'اعتماد و مجوزها',
landing_faq: 'سوالات متداول',
landing_buttom_cta: 'سکشن پایین صفحه لندینگ برای معرفی',
landing_footer: 'فوتر',
chat_api: 'API چت', chat_api: 'API چت',
chat_api_key: 'کلید API چت', chat_api_key: 'کلید API چت',
chat_upload_url: 'آدرس آپلود فایل چت', chat_upload_url: 'آدرس آپلود فایل چت',
@@ -1164,7 +1201,7 @@ export const SETTING_LOCKED_KEYS = new Set([
'unit', 'unit',
'wss_enabled', 'wss_enabled',
'zaarbox_api_url', 'zaarbox_api_url',
'show_to_users_chat', 'chat_api', 'chat_api_key', 'chat_upload_url', 'chat_download_url' 'show_to_users_chat', 'has_landing', 'chat_api', 'chat_api_key', 'chat_upload_url', 'chat_download_url'
]) ])
/** قابل ویرایش در پنل — هم‌تراز deploy_settings_const.sql */ /** قابل ویرایش در پنل — هم‌تراز deploy_settings_const.sql */
@@ -1204,6 +1241,8 @@ export const SETTING_EDITABLE_KEYS = new Set([
'support_messengers', 'support_messenger_text', 'support_messengers', 'support_messenger_text',
'up_price', 'down_price', 'price_extreme_date', 'do_send_liman', 'up_price', 'down_price', 'price_extreme_date', 'do_send_liman',
'has_chat', 'has_chat',
'landing_site', 'landing_header', 'landing_hero', 'landing_live_price', 'landing_calculator',
'landing_feature', 'landing_steps', 'landing_trust', 'landing_faq', 'landing_buttom_cta', 'landing_footer',
'deposit_support_message_text', 'deposit_account_holder', 'deposit_card_number', 'deposit_account_number', 'deposit_sheba', 'deposit_support_message_text', 'deposit_account_holder', 'deposit_card_number', 'deposit_account_number', 'deposit_sheba',
'deposit_method_card_to_card', 'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab', 'deposit_method_card_to_card', 'deposit_method_gateway', 'deposit_method_identified', 'deposit_method_shetab',
'text_about', 'text_rule', 'about_software', 'enamad_url', 'enamad_logo', 'text_about', 'text_rule', 'about_software', 'enamad_url', 'enamad_logo',
+1 -1
View File
@@ -22,7 +22,7 @@ export const KHANEGI_SYSTEM_SETTING_GROUPS: SettingGroupDef[] = [
title: 'دسترسی مشتری به قابلیت‌ها', title: 'دسترسی مشتری به قابلیت‌ها',
icon: 'TeamOutlined', icon: 'TeamOutlined',
match: (k) => match: (k) =>
/^(enable_automation|enable_conditional_order|enable_product_funds|has_page_price_trigger|has_page_notification|has_page_gift_card|enable_customer_level_profit|banner_enabled|jibit_enabled|customer_direct_sms|has_page_earn_money|group_sms|customer_special_pricing|enable_gold_credit|tracking_systems_enabled|permision__enabled|show_to_users_chat)$/.test( /^(enable_automation|enable_conditional_order|enable_product_funds|has_page_price_trigger|has_page_notification|has_page_gift_card|enable_customer_level_profit|banner_enabled|jibit_enabled|customer_direct_sms|has_page_earn_money|group_sms|customer_special_pricing|enable_gold_credit|tracking_systems_enabled|permision__enabled|show_to_users_chat|has_landing)$/.test(
k, k,
), ),
}, },
+12
View File
@@ -11,6 +11,7 @@ export const SUPERADMIN_SYSTEM_SETTING_KEYS = new Set<string>([
"enable_gold_credit", "enable_gold_credit",
"enable_product_funds", "enable_product_funds",
"group_sms", "group_sms",
"has_landing",
"has_page_earn_money", "has_page_earn_money",
"has_page_gift_card", "has_page_gift_card",
"has_page_notification", "has_page_notification",
@@ -76,6 +77,17 @@ export const SUPERADMIN_EDITABLE_SETTING_KEYS = new Set<string>([
"invite_link_text", "invite_link_text",
"is_store", "is_store",
"jibit_verification", "jibit_verification",
"landing_buttom_cta",
"landing_calculator",
"landing_faq",
"landing_feature",
"landing_footer",
"landing_header",
"landing_hero",
"landing_live_price",
"landing_site",
"landing_steps",
"landing_trust",
"logo_login", "logo_login",
"logo_register", "logo_register",
"main_metal", "main_metal",