feat(profile): role-aware nav + avatar menu + full editable profile
Build backend images / build content-svc (push) Failing after 1m59s
Build backend images / build file-svc (push) Failing after 3m18s
Build backend images / build gateway (push) Failing after 3m28s
Build backend images / build identity-svc (push) Failing after 2m1s
Build backend images / build notification-svc (push) Failing after 4m45s
Build backend images / build render-svc (push) Failing after 5m18s
Build backend images / build studio-svc (push) Failing after 2m12s
Build backend images / build content-svc (push) Failing after 1m59s
Build backend images / build file-svc (push) Failing after 3m18s
Build backend images / build gateway (push) Failing after 3m28s
Build backend images / build identity-svc (push) Failing after 2m1s
Build backend images / build notification-svc (push) Failing after 4m45s
Build backend images / build render-svc (push) Failing after 5m18s
Build backend images / build studio-svc (push) Failing after 2m12s
Navigation: - UserMenu (avatar + role-aware dropdown: Dashboard, Admin Panel for admins, Profile, Sign out) replaces Sign In/Try Free when logged in (desktop + mobile). - Real avatars in dashboard sidebar + a new admin-shell profile section. - Shared Avatar primitive (image with initials fallback). SiteChrome excludes /admin. Profile (data-collection surface for future AI video generation): - SettingsProfile rebuilt: avatar upload + slogan, about, company, website, country, national code, birthdate, gender. No resume builder (per scope change). - /api/profile forwards all fields; new user-scoped /api/profile/upload (avatar → MinIO via file-svc, sets avatar). Identity UpdateUserRequest/UserResponse widened (country/national/method); no DB migration (columns already exist). - fa+en strings; verified GET/PATCH round-trip + logged-in SSR render. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+30
-2
@@ -12,6 +12,13 @@
|
||||
"learn": "Learn",
|
||||
"signIn": "Sign In",
|
||||
"tryForFree": "Try for Free",
|
||||
"accountMenu": "Account menu",
|
||||
"roleAdmin": "Admin",
|
||||
"roleUser": "Member",
|
||||
"menuDashboard": "Dashboard",
|
||||
"menuAdminPanel": "Admin panel",
|
||||
"menuProfile": "Profile & settings",
|
||||
"menuSignOut": "Sign out",
|
||||
"openMenuAriaLabel": "Open navigation menu",
|
||||
"mobileMenuTitle": "Menu",
|
||||
"videoMakerBrowse": "Browse Templates",
|
||||
@@ -521,7 +528,7 @@
|
||||
},
|
||||
"componentsDashboardSettingsSettingsProfile": {
|
||||
"title": "Profile",
|
||||
"subtitle": "Your public name and account email.",
|
||||
"subtitle": "Your public profile, photo and account details.",
|
||||
"displayNameLabel": "Display name",
|
||||
"displayNamePlaceholder": "Your name",
|
||||
"emailLabel": "Email",
|
||||
@@ -530,7 +537,28 @@
|
||||
"saveChanges": "Save changes",
|
||||
"updateFailed": "Could not update profile.",
|
||||
"updateSuccess": "Profile updated successfully.",
|
||||
"networkError": "Network error. Please try again."
|
||||
"networkError": "Network error. Please try again.",
|
||||
"changeAvatar": "Change profile picture",
|
||||
"uploading": "Uploading image…",
|
||||
"avatarUpdated": "Profile picture updated.",
|
||||
"uploadFailed": "Could not upload the image.",
|
||||
"sloganLabel": "Slogan / headline",
|
||||
"sloganPlaceholder": "e.g. Motion designer",
|
||||
"aboutLabel": "About me",
|
||||
"aboutPlaceholder": "Tell us a little about yourself…",
|
||||
"companyLabel": "Company / business",
|
||||
"websiteLabel": "Website",
|
||||
"countryLabel": "Country",
|
||||
"countryPlaceholder": "United States",
|
||||
"nationalCodeLabel": "National ID",
|
||||
"birthDateLabel": "Date of birth",
|
||||
"genderLabel": "Gender",
|
||||
"genderUnset": "Not specified",
|
||||
"genderMale": "Male",
|
||||
"genderFemale": "Female",
|
||||
"genderOther": "Other",
|
||||
"genderPreferNotToSay": "Prefer not to say",
|
||||
"dataCollectionHint": "This information is used to personalize your experience and power future AI video generation."
|
||||
},
|
||||
"componentsDashboardSettingsSettingsSecurity": {
|
||||
"title": "Security",
|
||||
|
||||
+30
-2
@@ -12,6 +12,13 @@
|
||||
"learn": "یادگیری",
|
||||
"signIn": "ورود",
|
||||
"tryForFree": "رایگان شروع کنید",
|
||||
"accountMenu": "منوی حساب",
|
||||
"roleAdmin": "مدیر",
|
||||
"roleUser": "کاربر",
|
||||
"menuDashboard": "داشبورد",
|
||||
"menuAdminPanel": "پنل مدیریت",
|
||||
"menuProfile": "پروفایل و تنظیمات",
|
||||
"menuSignOut": "خروج",
|
||||
"openMenuAriaLabel": "باز کردن منو",
|
||||
"mobileMenuTitle": "منو",
|
||||
"videoMakerBrowse": "مرور قالبها",
|
||||
@@ -521,7 +528,7 @@
|
||||
},
|
||||
"componentsDashboardSettingsSettingsProfile": {
|
||||
"title": "پروفایل",
|
||||
"subtitle": "نام عمومی و ایمیل حساب شما.",
|
||||
"subtitle": "پروفایل عمومی، تصویر و اطلاعات حساب شما.",
|
||||
"displayNameLabel": "نام نمایشی",
|
||||
"displayNamePlaceholder": "نام شما",
|
||||
"emailLabel": "ایمیل",
|
||||
@@ -530,7 +537,28 @@
|
||||
"saveChanges": "ذخیره تغییرات",
|
||||
"updateFailed": "بهروزرسانی پروفایل ممکن نشد.",
|
||||
"updateSuccess": "پروفایل با موفقیت بهروزرسانی شد.",
|
||||
"networkError": "خطای شبکه. لطفاً دوباره تلاش کنید."
|
||||
"networkError": "خطای شبکه. لطفاً دوباره تلاش کنید.",
|
||||
"changeAvatar": "تغییر تصویر پروفایل",
|
||||
"uploading": "در حال بارگذاری تصویر…",
|
||||
"avatarUpdated": "تصویر پروفایل بهروزرسانی شد.",
|
||||
"uploadFailed": "بارگذاری تصویر ممکن نشد.",
|
||||
"sloganLabel": "شعار / عنوان",
|
||||
"sloganPlaceholder": "مثلاً طراح موشن گرافیک",
|
||||
"aboutLabel": "درباره من",
|
||||
"aboutPlaceholder": "کمی درباره خودتان بنویسید…",
|
||||
"companyLabel": "شرکت / کسبوکار",
|
||||
"websiteLabel": "وبسایت",
|
||||
"countryLabel": "کشور",
|
||||
"countryPlaceholder": "ایران",
|
||||
"nationalCodeLabel": "کد ملی",
|
||||
"birthDateLabel": "تاریخ تولد",
|
||||
"genderLabel": "جنسیت",
|
||||
"genderUnset": "انتخاب نشده",
|
||||
"genderMale": "مرد",
|
||||
"genderFemale": "زن",
|
||||
"genderOther": "سایر",
|
||||
"genderPreferNotToSay": "ترجیح میدهم نگویم",
|
||||
"dataCollectionHint": "این اطلاعات برای شخصیسازی و ساخت خودکار ویدیو با هوش مصنوعی در آینده استفاده میشود."
|
||||
},
|
||||
"componentsDashboardSettingsSettingsSecurity": {
|
||||
"title": "امنیت",
|
||||
|
||||
Reference in New Issue
Block a user