diff --git a/backend/prisma/migrations/20260710150528/migration.sql b/backend/prisma/migrations/20260710150528/migration.sql
new file mode 100644
index 0000000..ed37579
--- /dev/null
+++ b/backend/prisma/migrations/20260710150528/migration.sql
@@ -0,0 +1,7 @@
+-- AlterTable
+ALTER TABLE "lab_case_tasks" ALTER COLUMN "updatedAt" DROP DEFAULT,
+ALTER COLUMN "prosthesisTypeCode" DROP DEFAULT,
+ALTER COLUMN "workflowStepCode" DROP DEFAULT;
+
+-- RenameIndex
+ALTER INDEX "lab_case_tasks_labCaseId_treatmentDetailId_prosthesisTypeCode_s" RENAME TO "lab_case_tasks_labCaseId_treatmentDetailId_prosthesisTypeCo_key";
diff --git a/frontend/messages/en.json b/frontend/messages/en.json
index dd10824..487e65a 100644
--- a/frontend/messages/en.json
+++ b/frontend/messages/en.json
@@ -77,6 +77,8 @@
"confirmPassword": "Confirm password",
"fullName": "Full name",
"rememberMe": "Remember me",
+ "showPassword": "Show password",
+ "hidePassword": "Hide password",
"forgotPassword": "Forgot your password?",
"invalidCredentials": "Invalid email or password",
"loginFailed": "Login failed",
diff --git a/frontend/messages/fa.json b/frontend/messages/fa.json
index fc29e6f..66eeacb 100644
--- a/frontend/messages/fa.json
+++ b/frontend/messages/fa.json
@@ -77,6 +77,8 @@
"confirmPassword": "تأیید رمز عبور",
"fullName": "نام و نام خانوادگی",
"rememberMe": "مرا به خاطر بسپار",
+ "showPassword": "نمایش رمز عبور",
+ "hidePassword": "پنهان کردن رمز عبور",
"forgotPassword": "رمز عبور خود را فراموش کردهاید؟",
"invalidCredentials": "ایمیل یا رمز عبور نامعتبر است",
"loginFailed": "ورود ناموفق بود",
diff --git a/frontend/messages/nl.json b/frontend/messages/nl.json
index 699d061..271252c 100644
--- a/frontend/messages/nl.json
+++ b/frontend/messages/nl.json
@@ -77,6 +77,8 @@
"confirmPassword": "Bevestig wachtwoord",
"fullName": "Volledige naam",
"rememberMe": "Onthoud mij",
+ "showPassword": "Wachtwoord tonen",
+ "hidePassword": "Wachtwoord verbergen",
"forgotPassword": "Wachtwoord vergeten?",
"invalidCredentials": "Ongeldig e-mailadres of wachtwoord",
"loginFailed": "Inloggen mislukt",
diff --git a/frontend/scripts/build-messages.mjs b/frontend/scripts/build-messages.mjs
index d832eee..ac27577 100644
--- a/frontend/scripts/build-messages.mjs
+++ b/frontend/scripts/build-messages.mjs
@@ -82,6 +82,8 @@ const en = {
confirmPassword: 'Confirm password',
fullName: 'Full name',
rememberMe: 'Remember me',
+ showPassword: 'Show password',
+ hidePassword: 'Hide password',
forgotPassword: 'Forgot your password?',
invalidCredentials: 'Invalid email or password',
loginFailed: 'Login failed',
diff --git a/frontend/src/app/[locale]/(dashboard)/settings/account/page.tsx b/frontend/src/app/[locale]/(dashboard)/settings/account/page.tsx
index 981e2ca..d89c954 100644
--- a/frontend/src/app/[locale]/(dashboard)/settings/account/page.tsx
+++ b/frontend/src/app/[locale]/(dashboard)/settings/account/page.tsx
@@ -103,6 +103,11 @@ export default function AccountSettingsPage() {
}
};
+ const passwordToggleLabels = {
+ show: tAuth('showPassword'),
+ hide: tAuth('hidePassword'),
+ };
+
if (!isAuthReady || !user) {
return (
{tCommon('loadingEllipsis')}
@@ -139,6 +144,7 @@ export default function AccountSettingsPage() {
placeholder={tAuth('passwordPlaceholder')}
error={errors.currentPassword?.message}
icon={}
+ passwordToggleLabels={passwordToggleLabels}
/>
)}
@@ -149,6 +155,7 @@ export default function AccountSettingsPage() {
placeholder={tAuth('passwordPlaceholder')}
error={errors.newPassword?.message}
icon={}
+ passwordToggleLabels={passwordToggleLabels}
/>
}
+ passwordToggleLabels={passwordToggleLabels}
/>
{error && (
diff --git a/frontend/src/app/[locale]/(public)/accept-invite/page.tsx b/frontend/src/app/[locale]/(public)/accept-invite/page.tsx
index 5cce4df..6300b2b 100644
--- a/frontend/src/app/[locale]/(public)/accept-invite/page.tsx
+++ b/frontend/src/app/[locale]/(public)/accept-invite/page.tsx
@@ -93,6 +93,11 @@ function AcceptInviteContent() {
}
}
+ const passwordToggleLabels = {
+ show: t('showPassword'),
+ hide: t('hidePassword'),
+ };
+
return (
@@ -134,12 +139,14 @@ function AcceptInviteContent() {
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
+ passwordToggleLabels={passwordToggleLabels}
/>
setConfirmPassword(e.target.value)}
+ passwordToggleLabels={passwordToggleLabels}
/>