feat: add per-channel disable settings and global settings to channel admin

- Add global settings section (CHANNEL_IS_REQUIRED_SUB, trial/paid toggles)
  at top of AdminChannelSubscriptions page
- Add per-channel disable_trial_on_leave and disable_paid_on_leave toggles
  in each channel card with inline Toggle controls
- Update RequiredChannel type and API request interfaces with new fields
- Add translations for globalSettings and perChannel in en/ru/fa/zh locales
This commit is contained in:
Fringg
2026-02-25 00:24:36 +03:00
parent 5a55892145
commit 48be067d1b
6 changed files with 241 additions and 0 deletions

View File

@@ -1322,6 +1322,21 @@
"submit": "Add",
"save": "Save",
"cancel": "Cancel"
},
"globalSettings": {
"title": "Channel Settings",
"channelRequired": "Require subscription",
"channelRequiredDesc": "Users must subscribe to channels to use the bot",
"disableTrialOnUnsub": "Disable trial on unsubscribe",
"disableTrialOnUnsubDesc": "Revoke trial access when user unsubscribes from any channel",
"requiredForAll": "Required for all users",
"requiredForAllDesc": "Apply channel subscription check to all users, including paid"
},
"perChannel": {
"disableTrial": "Disable trial on leave",
"disableTrialDesc": "Revoke trial when user leaves this channel",
"disablePaid": "Disable paid on leave",
"disablePaidDesc": "Revoke paid access when user leaves this channel"
}
},
"settings": {

View File

@@ -1025,6 +1025,21 @@
"submit": "افزودن",
"save": "ذخیره",
"cancel": "لغو"
},
"globalSettings": {
"title": "تنظیمات کانال",
"channelRequired": "الزام عضویت",
"channelRequiredDesc": "کاربران باید در کانال‌ها عضو شوند تا از ربات استفاده کنند",
"disableTrialOnUnsub": "غیرفعال‌سازی آزمایشی هنگام لغو عضویت",
"disableTrialOnUnsubDesc": "لغو دسترسی آزمایشی هنگام لغو عضویت از هر کانال",
"requiredForAll": "اجباری برای همه",
"requiredForAllDesc": "بررسی عضویت برای همه کاربران، از جمله پولی"
},
"perChannel": {
"disableTrial": "غیرفعال‌سازی آزمایشی هنگام خروج",
"disableTrialDesc": "لغو دسترسی آزمایشی هنگام خروج از این کانال",
"disablePaid": "غیرفعال‌سازی پولی هنگام خروج",
"disablePaidDesc": "لغو دسترسی پولی هنگام خروج از این کانال"
}
},
"payments": {

View File

@@ -1348,6 +1348,21 @@
"submit": "Добавить",
"save": "Сохранить",
"cancel": "Отмена"
},
"globalSettings": {
"title": "Настройки каналов",
"channelRequired": "Требовать подписку",
"channelRequiredDesc": "Пользователи должны подписаться на каналы для использования бота",
"disableTrialOnUnsub": "Отключать триал при отписке",
"disableTrialOnUnsubDesc": "Отзывать пробный доступ при отписке от любого канала",
"requiredForAll": "Обязательно для всех",
"requiredForAllDesc": "Проверять подписку для всех пользователей, включая платных"
},
"perChannel": {
"disableTrial": "Отключать триал при выходе",
"disableTrialDesc": "Отзывать пробный доступ при выходе из этого канала",
"disablePaid": "Отключать платный при выходе",
"disablePaidDesc": "Отзывать платный доступ при выходе из этого канала"
}
},
"settings": {

View File

@@ -1077,6 +1077,21 @@
"submit": "添加",
"save": "保存",
"cancel": "取消"
},
"globalSettings": {
"title": "频道设置",
"channelRequired": "要求订阅",
"channelRequiredDesc": "用户必须订阅频道才能使用机器人",
"disableTrialOnUnsub": "取消订阅时禁用试用",
"disableTrialOnUnsubDesc": "用户取消订阅任何频道时撤销试用权限",
"requiredForAll": "对所有用户强制",
"requiredForAllDesc": "对所有用户(包括付费用户)检查频道订阅"
},
"perChannel": {
"disableTrial": "退出时禁用试用",
"disableTrialDesc": "用户退出此频道时撤销试用权限",
"disablePaid": "退出时禁用付费",
"disablePaidDesc": "用户退出此频道时撤销付费权限"
}
},
"settings": {