fix(settings): show API SuperAdmin keys even if frontend catalog lags
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -39,7 +39,7 @@ import {
|
|||||||
normalizeSettingRow,
|
normalizeSettingRow,
|
||||||
resolveSettingFieldType,
|
resolveSettingFieldType,
|
||||||
} from '@/config/khanegiSettingCatalog'
|
} from '@/config/khanegiSettingCatalog'
|
||||||
import { isSuperAdminSystemSettingKey, SUPERADMIN_SYSTEM_SETTING_KEYS } from '@/config/superAdminSettingKeys'
|
import { SUPERADMIN_EDITABLE_SETTING_KEYS, SUPERADMIN_SYSTEM_SETTING_KEYS } from '@/config/superAdminSettingKeys'
|
||||||
import type { KhanegiSettingRow } from '@/config/khanegiSettingRow'
|
import type { KhanegiSettingRow } from '@/config/khanegiSettingRow'
|
||||||
import { useAuthStore } from '@/stores/auth'
|
import { useAuthStore } from '@/stores/auth'
|
||||||
|
|
||||||
@@ -136,12 +136,15 @@ const filteredRows = computed(() => {
|
|||||||
const q = search.value.trim().toLowerCase()
|
const q = search.value.trim().toLowerCase()
|
||||||
return [...items.value]
|
return [...items.value]
|
||||||
.filter((row) => {
|
.filter((row) => {
|
||||||
if (!isSuperAdminSystemSettingKey(row.key)) return false
|
const key = String(row.key || '').trim()
|
||||||
if (!isSettingVisible(row.key)) return false
|
if (!key) return false
|
||||||
|
// کلیدهای مالک نصب را نشان نده؛ بقیه (از API یا کاتالوگ SA) بمانند
|
||||||
|
if (SUPERADMIN_EDITABLE_SETTING_KEYS.has(key)) return false
|
||||||
|
if (!isSettingVisible(key)) return false
|
||||||
if (filterType.value && resolveSettingFieldType(row) !== filterType.value) return false
|
if (filterType.value && resolveSettingFieldType(row) !== filterType.value) return false
|
||||||
if (!q) return true
|
if (!q) return true
|
||||||
return (
|
return (
|
||||||
(row.key || '').toLowerCase().includes(q) ||
|
key.toLowerCase().includes(q) ||
|
||||||
(row.title_fa || '').toLowerCase().includes(q) ||
|
(row.title_fa || '').toLowerCase().includes(q) ||
|
||||||
(row.value || '').toLowerCase().includes(q) ||
|
(row.value || '').toLowerCase().includes(q) ||
|
||||||
(row.description || '').toLowerCase().includes(q)
|
(row.description || '').toLowerCase().includes(q)
|
||||||
@@ -309,13 +312,18 @@ function errText(e: any) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function mergeSystemCatalogRows(rows: KhanegiSettingRow[]): KhanegiSettingRow[] {
|
function mergeSystemCatalogRows(rows: KhanegiSettingRow[]): KhanegiSettingRow[] {
|
||||||
const byKey = new Map(rows.map((row) => [rowKey(row), row]))
|
const byKey = new Map<string, KhanegiSettingRow>()
|
||||||
return [...SUPERADMIN_SYSTEM_SETTING_KEYS]
|
// اول پاسخ API — تا کلید جدید سوپرادمین (مثل enable_automation) قبل از آپدیت کاتالوگ فرانت هم دیده شود
|
||||||
.sort((a, b) => a.localeCompare(b))
|
for (const row of rows) {
|
||||||
.map((key) => {
|
const key = rowKey(row)
|
||||||
const found = byKey.get(key)
|
if (!key) continue
|
||||||
if (found) return normalizeSettingRow(found)
|
byKey.set(key, normalizeSettingRow(row))
|
||||||
return normalizeSettingRow({
|
}
|
||||||
|
for (const key of SUPERADMIN_SYSTEM_SETTING_KEYS) {
|
||||||
|
if (byKey.has(key)) continue
|
||||||
|
byKey.set(
|
||||||
|
key,
|
||||||
|
normalizeSettingRow({
|
||||||
key,
|
key,
|
||||||
value: '',
|
value: '',
|
||||||
title_fa: '',
|
title_fa: '',
|
||||||
@@ -323,8 +331,12 @@ function mergeSystemCatalogRows(rows: KhanegiSettingRow[]): KhanegiSettingRow[]
|
|||||||
type: '',
|
type: '',
|
||||||
is_active: 1,
|
is_active: 1,
|
||||||
can_edit: 0,
|
can_edit: 0,
|
||||||
})
|
}),
|
||||||
})
|
)
|
||||||
|
}
|
||||||
|
return [...byKey.values()].sort((a, b) =>
|
||||||
|
(a.title_fa || a.key || '').localeCompare(b.title_fa || b.key || '', 'fa'),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function applyItems(raw: unknown[]) {
|
function applyItems(raw: unknown[]) {
|
||||||
@@ -674,7 +686,11 @@ onMounted(load)
|
|||||||
</a-collapse>
|
</a-collapse>
|
||||||
<a-empty
|
<a-empty
|
||||||
v-else
|
v-else
|
||||||
description="هنوز تنظیم سیستمی منتقل نشده — از فرم بالا با یوزر و پسورد ادمین خانگی بگیرید"
|
:description="
|
||||||
|
search.trim() || filterType
|
||||||
|
? 'نتیجهای برای این فیلتر پیدا نشد'
|
||||||
|
: 'هنوز تنظیم سیستمی منتقل نشده — از فرم بالا با یوزر و پسورد ادمین خانگی بگیرید'
|
||||||
|
"
|
||||||
/>
|
/>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user