From fa1cb5be2e1b08a1337653cbaf38877a8324f730 Mon Sep 17 00:00:00 2001 From: Ida Dittrich Date: Thu, 7 Aug 2025 14:05:05 +0200 Subject: [PATCH] sharepoint test --- src/pages/Home/TestSharepoint.module.css | 80 ++++++++++++++++++++++++ src/pages/Home/TestSharepoint.tsx | 79 ++++++++++++++++++++--- 2 files changed, 152 insertions(+), 7 deletions(-) diff --git a/src/pages/Home/TestSharepoint.module.css b/src/pages/Home/TestSharepoint.module.css index 8e15d39..fc60778 100644 --- a/src/pages/Home/TestSharepoint.module.css +++ b/src/pages/Home/TestSharepoint.module.css @@ -314,4 +314,84 @@ max-height: 200px; overflow-y: auto; margin-top: 10px; +} + +/* SharePoint Site Discovery Styles */ +.sitesDiscovery { + margin-top: 15px; + padding: 15px; + background-color: #f8f9fa; + border: 1px solid #e9ecef; + border-radius: 6px; +} + +.sitesList { + max-height: 300px; + overflow-y: auto; + margin-top: 10px; +} + +.siteItem { + padding: 12px; + margin-bottom: 8px; + background-color: white; + border: 1px solid #dee2e6; + border-radius: 4px; + cursor: pointer; + transition: all 0.2s ease; +} + +.siteItem:hover { + background-color: #f1f3f4; + border-color: #007bff; +} + +.selectedSite { + background-color: #e3f2fd !important; + border-color: #2196f3 !important; + box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.2); +} + +.siteName { + display: flex; + align-items: center; + gap: 8px; + margin-bottom: 4px; +} + +.siteName strong { + color: #333; + font-size: 0.95em; +} + +.siteType { + font-size: 0.8em; + color: #666; + background-color: #e9ecef; + padding: 2px 6px; + border-radius: 12px; + text-transform: uppercase; +} + +.siteUrl { + font-size: 0.85em; + color: #007bff; + margin-bottom: 4px; + word-break: break-all; +} + +.siteDescription { + font-size: 0.8em; + color: #666; + line-height: 1.3; +} + +.noSitesFound { + padding: 15px; + background-color: #fff3cd; + border: 1px solid #ffeaa7; + border-radius: 4px; + color: #856404; + text-align: center; + margin-top: 10px; } \ No newline at end of file diff --git a/src/pages/Home/TestSharepoint.tsx b/src/pages/Home/TestSharepoint.tsx index 6f9cb4b..517201a 100644 --- a/src/pages/Home/TestSharepoint.tsx +++ b/src/pages/Home/TestSharepoint.tsx @@ -49,6 +49,8 @@ function TestSharepoint() { const [examples, setExamples] = useState({}); const [testResults, setTestResults] = useState({}); const [tokenDebugInfo, setTokenDebugInfo] = useState(null); + const [discoveredSites, setDiscoveredSites] = useState([]); + const [sitesDiscovered, setSitesDiscovered] = useState(false); // Form data const [formData, setFormData] = useState({ @@ -123,6 +125,28 @@ function TestSharepoint() { } }; + const handleDiscoverSites = async () => { + try { + const result = await discoverSites(); + if (result.success && result.data.sites) { + setDiscoveredSites(result.data.sites); + setSitesDiscovered(true); + } else { + console.error('Site discovery failed:', result.message); + setDiscoveredSites([]); + setSitesDiscovered(false); + } + } catch (error) { + console.error('Site discovery failed:', error); + setDiscoveredSites([]); + setSitesDiscovered(false); + } + }; + + const handleSelectSite = (siteUrl: string) => { + setFormData(prev => ({ ...prev, siteUrl: siteUrl })); + }; + const handleFormChange = (field: keyof FormData, value: any) => { setFormData(prev => ({ ...prev, [field]: value })); }; @@ -298,13 +322,54 @@ function TestSharepoint() {
- handleFormChange('siteUrl', e.target.value)} - placeholder="https://your-tenant.sharepoint.com/sites/your-site" - /> +
+ handleFormChange('siteUrl', e.target.value)} + placeholder="https://your-tenant.sharepoint.com/sites/your-site" + style={{ flex: 1 }} + /> + +
+ + {sitesDiscovered && discoveredSites.length > 0 && ( +
+ +
+ {discoveredSites.map((site, index) => ( +
handleSelectSite(site.url)} + > +
+ {site.name} + ({site.type}) +
+
{site.url}
+ {site.description && ( +
{site.description}
+ )} +
+ ))} +
+
+ )} + + {sitesDiscovered && discoveredSites.length === 0 && ( +
+ No SharePoint sites found. You may need additional permissions or the sites may not be accessible. +
+ )}
{activeTab === 'list' && (