From 8687d72394e14216bd876d789b74432807d5ca2e Mon Sep 17 00:00:00 2001 From: kenilkb Date: Fri, 17 Jul 2026 10:18:36 +0530 Subject: [PATCH] production V2 --- .../src/components/ui/PageHeader.tsx | 2 +- Channel-Frontend/src/pages/AssetsPage.tsx | 24 ++-- Channel-Frontend/src/pages/DashboardPage.tsx | 7 +- Channel-Frontend/src/pages/EcosystemPage.tsx | 40 +++--- Channel-Frontend/src/pages/LoginPage.tsx | 4 +- .../src/pages/admin/DirectoryPage.tsx | 121 ++++++++++++++++++ .../src/pages/admin/LegalTemplatesPage.tsx | 24 ++-- 7 files changed, 168 insertions(+), 54 deletions(-) diff --git a/Channel-Frontend/src/components/ui/PageHeader.tsx b/Channel-Frontend/src/components/ui/PageHeader.tsx index 2bc131c..e84ea6c 100644 --- a/Channel-Frontend/src/components/ui/PageHeader.tsx +++ b/Channel-Frontend/src/components/ui/PageHeader.tsx @@ -18,7 +18,7 @@ export const PageHeader: React.FC = ({ title, subtitle, badge, {badge &&
{badge}
} {subtitle && ( -

+

{subtitle}

)} diff --git a/Channel-Frontend/src/pages/AssetsPage.tsx b/Channel-Frontend/src/pages/AssetsPage.tsx index 954ba12..fb5cb0c 100644 --- a/Channel-Frontend/src/pages/AssetsPage.tsx +++ b/Channel-Frontend/src/pages/AssetsPage.tsx @@ -274,12 +274,12 @@ export const AssetsPage = () => { - - Global CDN Active - - } + // badge={ + //
+ // + // Global CDN Active + //
+ // } /> ); @@ -306,21 +306,19 @@ export const AssetsPage = () => {
@@ -91,7 +83,7 @@ export const EcosystemPage: React.FC = () => {
) : ( - @@ -123,11 +115,10 @@ export const EcosystemPage: React.FC = () => { )} - + }`}> {offering.type} @@ -153,9 +144,8 @@ export const EcosystemPage: React.FC = () => {
    {offering.benefits.map((benefit, bIdx) => (
  • - + {benefit}
  • ))} diff --git a/Channel-Frontend/src/pages/LoginPage.tsx b/Channel-Frontend/src/pages/LoginPage.tsx index 41c2b90..8a8fa50 100644 --- a/Channel-Frontend/src/pages/LoginPage.tsx +++ b/Channel-Frontend/src/pages/LoginPage.tsx @@ -139,12 +139,12 @@ export const LoginPage = () => { - RECOVERY? - + */}
    diff --git a/Channel-Frontend/src/pages/admin/DirectoryPage.tsx b/Channel-Frontend/src/pages/admin/DirectoryPage.tsx index 33ebcd7..76418a0 100644 --- a/Channel-Frontend/src/pages/admin/DirectoryPage.tsx +++ b/Channel-Frontend/src/pages/admin/DirectoryPage.tsx @@ -950,6 +950,127 @@ export const DirectoryPage: React.FC = () => { size="lg" >
    + {/* ── Group Assignment Section ── */} + {!isAddingPartnerAssets && ( +
    +
    +

    + + Recommendation Groups +

    +
    + + {/* Current Groups as Tags */} +
    + {(() => { + const currentGroups = selectedPartnerForAssets?.partnerGroup + ? selectedPartnerForAssets.partnerGroup.split(',').map((s: string) => s.trim()).filter(Boolean) + : []; + + if (currentGroups.length === 0) { + return ( + No recommendation groups assigned + ); + } + + return currentGroups.map((groupName: string) => ( + + {groupName} + + + )); + })()} + + {/* Add Group Dropdown */} + {(() => { + const currentGroups = selectedPartnerForAssets?.partnerGroup + ? selectedPartnerForAssets.partnerGroup.split(',').map((s: string) => s.trim().toLowerCase()).filter(Boolean) + : []; + const availableGroups = assetGroups.filter( + g => !currentGroups.includes(g.name.trim().toLowerCase()) + ); + + if (availableGroups.length === 0) return null; + + return ( + + ); + })()} +
    +
    + )} + {/* Header Action */}

    diff --git a/Channel-Frontend/src/pages/admin/LegalTemplatesPage.tsx b/Channel-Frontend/src/pages/admin/LegalTemplatesPage.tsx index 95c81e2..eee8892 100644 --- a/Channel-Frontend/src/pages/admin/LegalTemplatesPage.tsx +++ b/Channel-Frontend/src/pages/admin/LegalTemplatesPage.tsx @@ -39,10 +39,10 @@ export const LegalTemplatesPage: React.FC = () => { axiosInstance.get('/legal/documents/active/NDA').catch(() => null), axiosInstance.get('/legal/documents/active/MSA').catch(() => null) ]); - + setNdaDoc(ndaRes?.data || null); setMsaDoc(msaRes?.data || null); - + // Populate defaults for form based on active selection const activeDoc = activeTab === 'NDA' ? ndaRes?.data : msaRes?.data; if (activeDoc) { @@ -92,7 +92,7 @@ export const LegalTemplatesPage: React.FC = () => { const formData = new FormData(); formData.append('file', pdfFile); formData.append('title', `${activeTab} Agreement Template v${version}`); - + const assetRes = await axiosInstance.post('/assets/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' @@ -113,7 +113,7 @@ export const LegalTemplatesPage: React.FC = () => { success(`Successfully published ${activeTab} version ${version}!`, 'The new legal template version is now active.'); setPdfFile(null); if (fileInputRef.current) fileInputRef.current.value = ''; - + await fetchActiveDocuments(); } catch (err: any) { console.error('Failed to publish legal document template:', err); @@ -132,12 +132,12 @@ export const LegalTemplatesPage: React.FC = () => { - - Compliance Panel -

    - } + // badge={ + //
    + // + // Compliance Panel + //
    + // } /> ); @@ -170,7 +170,7 @@ export const LegalTemplatesPage: React.FC = () => {

    Active Configuration

    - + {loading ? (
    @@ -261,7 +261,7 @@ export const LegalTemplatesPage: React.FC = () => {
    -
    fileInputRef.current?.click()} className="flex items-center gap-3 p-2 rounded-lg border border-dashed border-ink-200 hover:border-ink-400 cursor-pointer bg-ink-50 hover:bg-ink-100/50 transition-colors" >