mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-30 02:23:47 +00:00
feat: info pages — tab replacement, custom pages on /info, responsive fixes
- Add replaces_tab field to admin editor with conflict detection - Show custom InfoPages as extra tabs on /info page - Replace built-in tab content when replacement is configured - Rich DOMPurify sanitizer for TipTap content (images, video, iframe) - Fix query race: built-in queries wait for tab-replacements to load - Horizontal scroll for tabs on mobile, 44px touch targets - Responsive prose: scrollable tables, h-auto on img/video, light theme borders - Loyalty tier names truncation, progress bar labels stack on mobile
This commit is contained in:
@@ -3825,8 +3825,18 @@
|
||||
"isActive": "Active",
|
||||
"sortOrder": "Sort Order",
|
||||
"icon": "Icon (emoji)",
|
||||
"pageType": "Page Type"
|
||||
"pageType": "Page Type",
|
||||
"replacesTab": "Replaces Tab"
|
||||
},
|
||||
"replacesTabNone": "None",
|
||||
"replacesTabOptions": {
|
||||
"faq": "FAQ",
|
||||
"rules": "Rules",
|
||||
"privacy": "Privacy",
|
||||
"offer": "Offer"
|
||||
},
|
||||
"replacesTabConflict": "already assigned",
|
||||
"replacesTabWarning": "Another page already replaces this tab. It will be unassigned on save.",
|
||||
"filter": {
|
||||
"all": "All",
|
||||
"page": "Pages",
|
||||
|
||||
@@ -3393,8 +3393,18 @@
|
||||
"isActive": "فعال",
|
||||
"sortOrder": "ترتیب",
|
||||
"icon": "آیکون (ایموجی)",
|
||||
"pageType": "نوع صفحه"
|
||||
"pageType": "نوع صفحه",
|
||||
"replacesTab": "جایگزینی تب"
|
||||
},
|
||||
"replacesTabNone": "بدون جایگزینی",
|
||||
"replacesTabOptions": {
|
||||
"faq": "FAQ",
|
||||
"rules": "قوانین",
|
||||
"privacy": "حریم خصوصی",
|
||||
"offer": "پیشنهاد"
|
||||
},
|
||||
"replacesTabConflict": "قبلا اختصاص داده شده",
|
||||
"replacesTabWarning": "صفحه دیگری قبلا این تب را جایگزین کرده است. با ذخیره، آن صفحه حذف خواهد شد.",
|
||||
"filter": {
|
||||
"all": "همه",
|
||||
"page": "صفحات",
|
||||
|
||||
@@ -4369,8 +4369,18 @@
|
||||
"isActive": "Активна",
|
||||
"sortOrder": "Порядок сортировки",
|
||||
"icon": "Иконка (эмодзи)",
|
||||
"pageType": "Тип страницы"
|
||||
"pageType": "Тип страницы",
|
||||
"replacesTab": "Заменяет таб"
|
||||
},
|
||||
"replacesTabNone": "Не заменяет",
|
||||
"replacesTabOptions": {
|
||||
"faq": "FAQ",
|
||||
"rules": "Правила",
|
||||
"privacy": "Конфиденциальность",
|
||||
"offer": "Оферта"
|
||||
},
|
||||
"replacesTabConflict": "уже занят",
|
||||
"replacesTabWarning": "Другая страница уже заменяет этот таб. При сохранении она будет снята.",
|
||||
"filter": {
|
||||
"all": "Все",
|
||||
"page": "Страницы",
|
||||
|
||||
@@ -3392,8 +3392,18 @@
|
||||
"isActive": "已激活",
|
||||
"sortOrder": "排序",
|
||||
"icon": "图标(表情)",
|
||||
"pageType": "页面类型"
|
||||
"pageType": "页面类型",
|
||||
"replacesTab": "替换标签"
|
||||
},
|
||||
"replacesTabNone": "不替换",
|
||||
"replacesTabOptions": {
|
||||
"faq": "FAQ",
|
||||
"rules": "规则",
|
||||
"privacy": "隐私",
|
||||
"offer": "条款"
|
||||
},
|
||||
"replacesTabConflict": "已被占用",
|
||||
"replacesTabWarning": "另一个页面已替换此标签。保存后该页面将被取消替换。",
|
||||
"filter": {
|
||||
"all": "全部",
|
||||
"page": "页面",
|
||||
|
||||
Reference in New Issue
Block a user