From d94b9ac76c2bdea7c4858d48c3469b751e46ddfc Mon Sep 17 00:00:00 2001 From: amee Date: Mon, 30 Mar 2026 12:29:18 +0530 Subject: [PATCH 1/3] test --- src/application/modules/admin/components/ModuleForm.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/application/modules/admin/components/ModuleForm.tsx b/src/application/modules/admin/components/ModuleForm.tsx index 0ac44ec..546dbe7 100644 --- a/src/application/modules/admin/components/ModuleForm.tsx +++ b/src/application/modules/admin/components/ModuleForm.tsx @@ -10,6 +10,7 @@ interface ModuleFormProps { module: Module | null; onClose: (saved: boolean) => void; } +/*hhhh*/ interface ModuleFormData { module_id: string; From 5d9851c6c6e1f2c3825656feeb763fc289c7bbcb Mon Sep 17 00:00:00 2001 From: amee Date: Mon, 30 Mar 2026 13:07:05 +0530 Subject: [PATCH 2/3] fix: modal bg transparency, static key removal from dropdown and trust type just the HMAC --- .../admin/components/EnvironmentForm.tsx | 24 ++++++++++--------- .../modules/admin/components/ModuleForm.tsx | 1 - src/i18n/locales/ar/common.json | 1 + src/i18n/locales/en/common.json | 1 + 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/application/modules/admin/components/EnvironmentForm.tsx b/src/application/modules/admin/components/EnvironmentForm.tsx index fe690e0..a2b54eb 100644 --- a/src/application/modules/admin/components/EnvironmentForm.tsx +++ b/src/application/modules/admin/components/EnvironmentForm.tsx @@ -47,7 +47,7 @@ const EnvironmentForm = ({ moduleId, environment, onClose }: EnvironmentFormProp setLoading(true); setError(''); - const trust_credentials = formData.trust_type === 'hmac' + const trust_credentials = formData.trust_type === 'hmac' ? { hmac_secret: formData.hmac_secret } : { secret_key: formData.hmac_secret }; @@ -116,15 +116,17 @@ const EnvironmentForm = ({ moduleId, environment, onClose }: EnvironmentFormProp />
- - +
+ + +
@@ -188,7 +190,7 @@ const EnvironmentForm = ({ moduleId, environment, onClose }: EnvironmentFormProp
void; } -/*hhhh*/ interface ModuleFormData { module_id: string; diff --git a/src/i18n/locales/ar/common.json b/src/i18n/locales/ar/common.json index 26ff8c2..f568cf7 100644 --- a/src/i18n/locales/ar/common.json +++ b/src/i18n/locales/ar/common.json @@ -73,6 +73,7 @@ "status": { "active": "نشط", "inactive": "غير نشط", + "default": "افتراضي", "pending": "قيد الانتظار", "approved": "موافق عليه", "rejected": "مرفوض", diff --git a/src/i18n/locales/en/common.json b/src/i18n/locales/en/common.json index bd23205..fb28af2 100644 --- a/src/i18n/locales/en/common.json +++ b/src/i18n/locales/en/common.json @@ -73,6 +73,7 @@ "status": { "active": "Active", "inactive": "Inactive", + "default": "Default", "pending": "Pending", "approved": "Approved", "rejected": "Rejected", From acee988018b94a807871dd10349fd362ed65c970 Mon Sep 17 00:00:00 2001 From: amee Date: Fri, 3 Apr 2026 12:16:22 +0530 Subject: [PATCH 3/3] fix: environment modal bg and logs in sidebar, --- .../admin/components/EnvironmentForm.tsx | 288 +++++++++--------- src/components/layout/AppSidebar.tsx | 7 + src/routes/index.tsx | 6 +- 3 files changed, 162 insertions(+), 139 deletions(-) diff --git a/src/application/modules/admin/components/EnvironmentForm.tsx b/src/application/modules/admin/components/EnvironmentForm.tsx index a2b54eb..0550c44 100644 --- a/src/application/modules/admin/components/EnvironmentForm.tsx +++ b/src/application/modules/admin/components/EnvironmentForm.tsx @@ -1,7 +1,7 @@ import { useState, useEffect } from 'react'; -import { X } from 'lucide-react'; import { adminModuleApi } from '../AdminModuleApi'; import type { ModuleEnvironment, EnvironmentCreate, EnvironmentUpdate } from '../AdminModuleTypes'; +import CustomModal from '../../../../components/custom/CustomModal'; interface EnvironmentFormProps { moduleId: string; @@ -90,159 +90,173 @@ const EnvironmentForm = ({ moduleId, environment, onClose }: EnvironmentFormProp }; return ( -
-
-
-

{environment ? 'Edit' : 'Create'} Environment

- +
- -
- {error &&
{error}
} - -
-
- - setFormData({ ...formData, slug: e.target.value })} - className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" - placeholder="prod, staging, eu-prod" - required - disabled={!!environment} - /> -
-
-
- - -
-
+ } + > + + {error && ( +
+ {error}
+ )} +
- - setFormData({ ...formData, frontend_base_url: e.target.value })} - className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" - placeholder="https://module.example.com" - required - /> -
- -
- - setFormData({ ...formData, backend_base_url: e.target.value })} - className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" - placeholder="https://api.module.example.com" - required - /> -
- -
-
- - setFormData({ ...formData, sso_entry_path: e.target.value })} - className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" - required - /> -
-
- - setFormData({ ...formData, permission_sync_endpoint: e.target.value })} - className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" - required - /> -
-
- -
- + setFormData({ ...formData, provisioning_endpoint: e.target.value })} - className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" + value={formData.slug} + onChange={(e) => setFormData({ ...formData, slug: e.target.value })} + className="w-full px-3 py-2 bg-(--background) border border-(--card-border) text-(--text-primary) rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" + placeholder="prod, staging, eu-prod" + required + disabled={!!environment} + /> +
+
+ + +
+
+ +
+ + setFormData({ ...formData, frontend_base_url: e.target.value })} + className="w-full px-3 py-2 bg-(--background) border border-(--card-border) text-(--text-primary) rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" + placeholder="https://module.example.com" + required + /> +
+ +
+ + setFormData({ ...formData, backend_base_url: e.target.value })} + className="w-full px-3 py-2 bg-(--background) border border-(--card-border) text-(--text-primary) rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" + placeholder="https://api.module.example.com" + required + /> +
+ +
+
+ + setFormData({ ...formData, sso_entry_path: e.target.value })} + className="w-full px-3 py-2 bg-(--background) border border-(--card-border) text-(--text-primary) rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" required />
-
-
+
-
- - -
+
+ + setFormData({ ...formData, provisioning_endpoint: e.target.value })} + className="w-full px-3 py-2 bg-(--background) border border-(--card-border) text-(--text-primary) rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" + required + /> +
-
- - -
- -
-
+
+ + setFormData({ ...formData, hmac_secret: e.target.value })} + className="w-full px-3 py-2 bg-(--background) border border-(--card-border) text-(--text-primary) rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" + placeholder={environment ? "Leave blank to keep existing" : "Enter secret"} + required={!environment} + /> +

+ Stored securely on backend +

+
+ +
+ + +
+ + ); }; diff --git a/src/components/layout/AppSidebar.tsx b/src/components/layout/AppSidebar.tsx index c788ba7..3ea5741 100644 --- a/src/components/layout/AppSidebar.tsx +++ b/src/components/layout/AppSidebar.tsx @@ -75,6 +75,12 @@ const navItems: NavItem[] = [ path: "/admin/modules", access: "modules.view", }, + { + icon: , + name: "Logs", + path: "/logs", + access: "admin.logs.read", + }, { icon: , name: "Settings", @@ -111,6 +117,7 @@ const AppSidebar: React.FC = () => { 'Dropdowns': 'dropdowns', 'Settings': 'settings', 'Modules': 'modules', + 'Logs': 'logs', }; const key = keyMap[name]; diff --git a/src/routes/index.tsx b/src/routes/index.tsx index fc12642..32bc1f6 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -4,6 +4,7 @@ import SignInPage from "../application/authentication/SignInPage"; import SignUpPage from "../application/authentication/SignUpPage"; import ResetPasswordPage from "../application/authentication/ResetPasswordPage"; import Roles from "../application/roles"; +import LogsPage from "../application/logs/LogsPage"; import Dashboard from "../application/dashboard/Dashboard"; import ProfilePage from "../application/profile/ProfilePage"; import Tenants from "../application/tenants"; @@ -31,11 +32,12 @@ const AppRoutes = () => { } /> } /> } /> - + } /> + {/* Admin Module Routes */} } /> } /> - + } />