mirror of
https://git.meshkee.com/Meshkee/dashboards.git
synced 2026-08-11 22:30:58 +04:30
Collect owner FA/EN names and clarify SSL status labels in super-admin.
Create business now requires both locales, and the businesses list shows FA and EN owner names when available. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
672091d1f5
commit
76d1cb7001
@@ -462,6 +462,13 @@
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.ownerNameEn {
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.ownerPhone {
|
||||
font-size: 11px;
|
||||
font-weight: 500;
|
||||
|
||||
@@ -217,6 +217,8 @@ export function BusinessesPage() {
|
||||
const [createCategoryIds, setCreateCategoryIds] = useState<number[]>([])
|
||||
const [createOwnerFirstName, setCreateOwnerFirstName] = useState('')
|
||||
const [createOwnerLastName, setCreateOwnerLastName] = useState('')
|
||||
const [createOwnerFirstNameEn, setCreateOwnerFirstNameEn] = useState('')
|
||||
const [createOwnerLastNameEn, setCreateOwnerLastNameEn] = useState('')
|
||||
const [createOwnerCell, setCreateOwnerCell] = useState('')
|
||||
const [createOwnerPassword, setCreateOwnerPassword] = useState('')
|
||||
const [createSubmitting, setCreateSubmitting] = useState(false)
|
||||
@@ -695,6 +697,8 @@ export function BusinessesPage() {
|
||||
setCreateCategoryIds([])
|
||||
setCreateOwnerFirstName('')
|
||||
setCreateOwnerLastName('')
|
||||
setCreateOwnerFirstNameEn('')
|
||||
setCreateOwnerLastNameEn('')
|
||||
setCreateOwnerCell('')
|
||||
setCreateOwnerPassword('')
|
||||
setCreateError('')
|
||||
@@ -719,6 +723,8 @@ export function BusinessesPage() {
|
||||
categoryIds: createCategoryIds,
|
||||
ownerFirstName: createOwnerFirstName.trim(),
|
||||
ownerLastName: createOwnerLastName.trim(),
|
||||
ownerFirstNameEn: createOwnerFirstNameEn.trim(),
|
||||
ownerLastNameEn: createOwnerLastNameEn.trim(),
|
||||
ownerCellNumber,
|
||||
ownerPassword: createOwnerPassword,
|
||||
})
|
||||
@@ -782,6 +788,8 @@ export function BusinessesPage() {
|
||||
createCategoryIds.length > 0 &&
|
||||
createOwnerFirstName.trim().length >= 2 &&
|
||||
createOwnerLastName.trim().length >= 2 &&
|
||||
createOwnerFirstNameEn.trim().length >= 2 &&
|
||||
createOwnerLastNameEn.trim().length >= 2 &&
|
||||
toE164CellNumber(createOwnerCell.trim()).length > 0 &&
|
||||
createOwnerPassword.length >= 8
|
||||
|
||||
@@ -929,16 +937,16 @@ export function BusinessesPage() {
|
||||
{b.sslEnabled ? (
|
||||
<span
|
||||
className={styles.sslIcon}
|
||||
title="SSL enabled"
|
||||
aria-label="SSL enabled"
|
||||
title="SSL certificate valid"
|
||||
aria-label="SSL certificate valid"
|
||||
>
|
||||
<Lock size={16} className={styles.sslOk} aria-hidden="true" />
|
||||
</span>
|
||||
) : (
|
||||
<span
|
||||
className={styles.sslIcon}
|
||||
title="SSL not enabled"
|
||||
aria-label="SSL not enabled"
|
||||
title="SSL certificate missing or invalid"
|
||||
aria-label="SSL certificate missing or invalid"
|
||||
>
|
||||
<AlertTriangle
|
||||
size={16}
|
||||
@@ -954,7 +962,12 @@ export function BusinessesPage() {
|
||||
</td>
|
||||
<td className={styles.td}>
|
||||
<div className={styles.ownerCell}>
|
||||
<div className={styles.ownerName}>{b.ownerName ?? '—'}</div>
|
||||
<div className={`${styles.ownerName} faText`} dir="rtl" lang="fa">
|
||||
{b.ownerName ?? '—'}
|
||||
</div>
|
||||
{b.ownerNameEn ? (
|
||||
<div className={styles.ownerNameEn}>{b.ownerNameEn}</div>
|
||||
) : null}
|
||||
<div className={styles.ownerPhone}>
|
||||
{b.ownerCellNumber ? formatCellForDisplay(b.ownerCellNumber) : '—'}
|
||||
</div>
|
||||
@@ -1488,21 +1501,51 @@ export function BusinessesPage() {
|
||||
</div>
|
||||
|
||||
<div className={styles.field}>
|
||||
<label htmlFor="create-owner-first-name">First name</label>
|
||||
<label htmlFor="create-owner-first-name-en">First name (EN)</label>
|
||||
<input
|
||||
id="create-owner-first-name"
|
||||
value={createOwnerFirstName}
|
||||
onChange={(e) => setCreateOwnerFirstName(e.target.value)}
|
||||
id="create-owner-first-name-en"
|
||||
value={createOwnerFirstNameEn}
|
||||
onChange={(e) => setCreateOwnerFirstNameEn(e.target.value)}
|
||||
placeholder="First name"
|
||||
disabled={createSubmitting}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className={styles.field}>
|
||||
<label htmlFor="create-owner-last-name">Last name</label>
|
||||
<label htmlFor="create-owner-last-name-en">Last name (EN)</label>
|
||||
<input
|
||||
id="create-owner-last-name-en"
|
||||
value={createOwnerLastNameEn}
|
||||
onChange={(e) => setCreateOwnerLastNameEn(e.target.value)}
|
||||
placeholder="Last name"
|
||||
disabled={createSubmitting}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className={styles.field}>
|
||||
<label htmlFor="create-owner-first-name">First name (FA)</label>
|
||||
<input
|
||||
id="create-owner-first-name"
|
||||
className="faText"
|
||||
value={createOwnerFirstName}
|
||||
onChange={(e) => setCreateOwnerFirstName(e.target.value)}
|
||||
placeholder="نام"
|
||||
dir="rtl"
|
||||
lang="fa"
|
||||
disabled={createSubmitting}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className={styles.field}>
|
||||
<label htmlFor="create-owner-last-name">Last name (FA)</label>
|
||||
<input
|
||||
id="create-owner-last-name"
|
||||
className="faText"
|
||||
value={createOwnerLastName}
|
||||
onChange={(e) => setCreateOwnerLastName(e.target.value)}
|
||||
placeholder="نام خانوادگی"
|
||||
dir="rtl"
|
||||
lang="fa"
|
||||
disabled={createSubmitting}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -493,16 +493,16 @@ export function WebsitesPage() {
|
||||
{domain.sslEnabled ? (
|
||||
<span
|
||||
className={tableStyles.sslIcon}
|
||||
title="SSL enabled"
|
||||
aria-label="SSL enabled"
|
||||
title="SSL certificate valid"
|
||||
aria-label="SSL certificate valid"
|
||||
>
|
||||
<Lock size={16} className={tableStyles.sslOk} aria-hidden="true" />
|
||||
</span>
|
||||
) : (
|
||||
<span
|
||||
className={tableStyles.sslIcon}
|
||||
title="SSL not enabled"
|
||||
aria-label="SSL not enabled"
|
||||
title="SSL certificate missing or invalid"
|
||||
aria-label="SSL certificate missing or invalid"
|
||||
>
|
||||
<AlertTriangle
|
||||
size={16}
|
||||
@@ -512,7 +512,7 @@ export function WebsitesPage() {
|
||||
</span>
|
||||
)}
|
||||
<span className={tableStyles.subText}>
|
||||
{domain.sslEnabled ? 'Enabled' : 'Disabled'}
|
||||
{domain.sslEnabled ? 'Valid' : 'Invalid'}
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -19,6 +19,7 @@ export interface BusinessListItem {
|
||||
domain: string | null
|
||||
sslEnabled: boolean | null
|
||||
ownerName: string | null
|
||||
ownerNameEn: string | null
|
||||
ownerCellNumber: string | null
|
||||
isActive: boolean
|
||||
primaryColor: BusinessPrimaryColorId
|
||||
@@ -94,6 +95,8 @@ export interface CreateBusinessPayload {
|
||||
categoryIds: number[]
|
||||
ownerFirstName: string
|
||||
ownerLastName: string
|
||||
ownerFirstNameEn: string
|
||||
ownerLastNameEn: string
|
||||
ownerCellNumber: string
|
||||
ownerPassword: string
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user