From db187101bf7c90a2317d79881debd50cf7d23072 Mon Sep 17 00:00:00 2001 From: jplanckeel Date: Tue, 20 Jan 2026 16:52:14 +0100 Subject: [PATCH 1/7] fix: correct error js --- web/src/components/EventLinks.tsx | 34 ++++++++++----------- web/src/components/StaticModeBanner.tsx | 8 +++-- web/src/components/icons/GrafanaIcon.tsx | 2 +- web/src/components/icons/KotlinIcon.tsx | 2 +- web/src/components/icons/KubernetesIcon.tsx | 2 +- web/src/components/icons/SlackIcon.tsx | 2 +- web/src/components/icons/TerraformIcon.tsx | 2 +- web/src/pages/CatalogDependencies.tsx | 2 +- web/src/pages/CatalogDetail.tsx | 10 +++--- web/src/pages/CatalogTable.tsx | 10 +++--- web/src/pages/EventsCalendar.tsx | 10 +++--- 11 files changed, 42 insertions(+), 42 deletions(-) diff --git a/web/src/components/EventLinks.tsx b/web/src/components/EventLinks.tsx index 64772f5..157143c 100644 --- a/web/src/components/EventLinks.tsx +++ b/web/src/components/EventLinks.tsx @@ -1,7 +1,7 @@ import type { EventLinks as EventLinksType } from '../types/api' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faGithub, faSlack, faJira } from '@fortawesome/free-brands-svg-icons' -import { faRocket } from '@fortawesome/free-solid-svg-icons' +import { Github, ExternalLink } from 'lucide-react' +import { SlackIcon } from './icons/SlackIcon' +import { GrafanaIcon } from './icons/GrafanaIcon' import { getJiraTicketUrl, getSlackMessageUrl, parseSlackId } from '../config' interface EventLinksProps { @@ -14,13 +14,7 @@ interface EventLinksProps { export default function EventLinks({ links, slackId, className = '' }: EventLinksProps) { const hasLinks = links?.pullRequestLink || links?.ticket || slackId - // Debug - console.log('EventLinks - links:', links) - console.log('EventLinks - ticket:', links?.ticket) - console.log('EventLinks - pullRequestLink:', links?.pullRequestLink) - if (!hasLinks) { - console.log('EventLinks - No links to display') return null } @@ -35,7 +29,7 @@ export default function EventLinks({ links, slackId, className = '' }: EventLink className="inline-flex items-center space-x-1 text-sm text-gray-700 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-colors" title={`Voir la Pull Request: ${links.pullRequestLink}`} > - + PR #{extractPRNumber(links.pullRequestLink)} )} @@ -52,7 +46,7 @@ export default function EventLinks({ links, slackId, className = '' }: EventLink className="inline-flex items-center space-x-1 text-sm text-gray-700 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-colors" title={`View ticket: ${ticketId}`} > - + {ticketId} ) @@ -71,7 +65,7 @@ export default function EventLinks({ links, slackId, className = '' }: EventLink className="inline-flex items-center space-x-1 text-sm text-gray-700 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-colors" title="View in Slack" > - + Slack ) @@ -134,20 +128,24 @@ export function SourceIcon({ source, className = 'w-4 h-4' }: SourceIconProps) { const sourceLower = source.toLowerCase() if (sourceLower.includes('tracker')) { - return + return ( +
+ Tracker +
+ ) } if (sourceLower.includes('slack')) { - return + return } if (sourceLower.includes('github')) { - return + return } - if (sourceLower.includes('jira')) { - return + if (sourceLower.includes('grafana')) { + return } - return null + return } diff --git a/web/src/components/StaticModeBanner.tsx b/web/src/components/StaticModeBanner.tsx index f3f46cb..f5ddc72 100644 --- a/web/src/components/StaticModeBanner.tsx +++ b/web/src/components/StaticModeBanner.tsx @@ -4,8 +4,12 @@ import { getMetadata } from '../lib/staticApi' export default function StaticModeBanner() { const [lastUpdate, setLastUpdate] = useState('') + const isStaticMode = import.meta.env.VITE_STATIC_MODE === 'true' useEffect(() => { + // Only fetch metadata if we're in static mode + if (!isStaticMode) return + const fetchMetadata = async () => { try { const metadata = await getMetadata() @@ -15,9 +19,7 @@ export default function StaticModeBanner() { } } fetchMetadata() - }, []) - - const isStaticMode = import.meta.env.VITE_STATIC_MODE === 'true' + }, [isStaticMode]) if (!isStaticMode) return null diff --git a/web/src/components/icons/GrafanaIcon.tsx b/web/src/components/icons/GrafanaIcon.tsx index db9e264..f032627 100644 --- a/web/src/components/icons/GrafanaIcon.tsx +++ b/web/src/components/icons/GrafanaIcon.tsx @@ -2,7 +2,7 @@ interface GrafanaIconProps { className?: string } -export default function GrafanaIcon({ className = "w-4 h-4" }: GrafanaIconProps) { +export function GrafanaIcon({ className = "w-4 h-4" }: GrafanaIconProps) { return ( {/* Calendar Content */} -
+
{isLoading ? (
@@ -499,9 +499,9 @@ export default function EventsCalendar() {
) : ( -
+
{/* Calendar Grid */} -
+

{format(currentDate, 'MMMM yyyy', { locale: fr })} @@ -587,14 +587,14 @@ export default function EventsCalendar() {

{/* Event Details Panel */} -
+

{selectedDate ? format(selectedDate, 'dd MMMM yyyy', { locale: fr }) : 'Select a Date'}

- +
{selectedDayEvents.length > 0 ? (
From 4dc56721fbe6f5d1491c6282ac451adae3040f61 Mon Sep 17 00:00:00 2001 From: jplanckeel Date: Tue, 20 Jan 2026 17:12:10 +0100 Subject: [PATCH 2/7] fix: routeur warning --- web/src/App.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/web/src/App.tsx b/web/src/App.tsx index aac10b2..c2639de 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -24,7 +24,12 @@ import ThemeTest from './pages/ThemeTest' function App() { return ( - + }> } /> From 366d32bde42bd178a809b084304a3153fc486a63 Mon Sep 17 00:00:00 2001 From: jplanckeel Date: Tue, 20 Jan 2026 17:18:57 +0100 Subject: [PATCH 3/7] fix: remove debug log in frontweb --- web/src/lib/api.ts | 16 ---------------- web/src/lib/eventUtils.tsx | 8 -------- web/src/lib/staticApi.ts | 2 -- web/src/pages/AllDriftsList.tsx | 1 - web/src/pages/CreateCatalog.tsx | 6 ++++-- web/src/pages/DriftsList.tsx | 1 - web/src/pages/Locks.tsx | 1 - 7 files changed, 4 insertions(+), 31 deletions(-) diff --git a/web/src/lib/api.ts b/web/src/lib/api.ts index e2de9c9..610623a 100644 --- a/web/src/lib/api.ts +++ b/web/src/lib/api.ts @@ -9,7 +9,6 @@ const isStaticMode = import.meta.env.VITE_STATIC_MODE === 'true' // Configuration de l'URL de base de l'API const getApiBaseUrl = () => { const apiUrl = import.meta.env.VITE_API_BASE_URL || '/api/v1alpha1' - console.log('๐Ÿ”— API Base URL:', apiUrl) // Debug temporaire return apiUrl } @@ -200,8 +199,6 @@ const realCatalogApi = { }, createOrUpdate: async (catalog: Catalog) => { - console.log('๐ŸŒ API: Sending catalog to backend:', JSON.stringify(catalog, null, 2)) - // Convert to backend format (snake_case for dependencies, simple SLA) // IMPORTANT: Exclude version fields - they are managed separately via updateVersions endpoint const backendCatalog = { @@ -273,10 +270,7 @@ const realCatalogApi = { // They are managed via separate updateVersions endpoint } - console.log('๐Ÿ”„ API: Converted for backend (no version fields):', JSON.stringify(backendCatalog, null, 2)) - const { data } = await axiosInstance.put<{ catalog: any }>('/catalog', backendCatalog) - console.log('โœ… API: Received response:', JSON.stringify(data, null, 2)) // Convert response back to frontend format const frontendCatalog: Catalog = { @@ -314,8 +308,6 @@ const realCatalogApi = { }, updateVersions: async (name: string, versions: string[], latestVersion?: string, referenceVersion?: string) => { - console.log('๐Ÿ”ง API: Updating versions for service:', name, { versions, latestVersion, referenceVersion }) - const requestData = { name, available_versions: versions, @@ -323,10 +315,7 @@ const realCatalogApi = { reference_version: referenceVersion } - console.log('๐Ÿ“ค API: Sending version update:', JSON.stringify(requestData, null, 2)) - const { data } = await axiosInstance.put<{ catalog: any }>(`/catalog/${name}/versions`, requestData) - console.log('โœ… API: Version update response:', JSON.stringify(data, null, 2)) // Convert response back to frontend format const frontendCatalog: Catalog = { @@ -354,18 +343,13 @@ const realCatalogApi = { }, updateDependencies: async (name: string, dependenciesIn: string[], dependenciesOut: string[]) => { - console.log('๐Ÿ”ง API: Updating dependencies for service:', name, { dependenciesIn, dependenciesOut }) - const requestData = { name, dependencies_in: dependenciesIn, dependencies_out: dependenciesOut } - console.log('๐Ÿ“ค API: Sending dependencies update:', JSON.stringify(requestData, null, 2)) - const { data } = await axiosInstance.put<{ catalog: any }>(`/catalog/${name}/dependencies`, requestData) - console.log('โœ… API: Dependencies update response:', JSON.stringify(data, null, 2)) // Convert response back to frontend format const frontendCatalog: Catalog = { diff --git a/web/src/lib/eventUtils.tsx b/web/src/lib/eventUtils.tsx index 4fc969d..78b5959 100644 --- a/web/src/lib/eventUtils.tsx +++ b/web/src/lib/eventUtils.tsx @@ -9,36 +9,28 @@ export const getEventTypeIcon = (type: EventType | string, className: string = ' // Normaliser le type en string lowercase const typeStr = String(type).toLowerCase() - console.log('๐Ÿ” getEventTypeIcon:', type, 'โ†’', typeStr) - switch (typeStr) { case 'deployment': case '1': - console.log('โœ… โ†’ ROCKET (Dรฉploiement)') return case 'operation': case '2': - console.log('โœ… โ†’ WRENCH (Opรฉration)') return case 'drift': case '3': - console.log('โœ… โ†’ CODE_BRANCH (Drift)') return case 'incident': case '4': - console.log('โœ… โ†’ FIRE (Incident)') return case 'rpa_usage': case '5': - console.log('โœ… โ†’ ROBOT (RPA Usage)') return default: - console.warn('โš ๏ธ Type inconnu:', type, typeStr) return } } diff --git a/web/src/lib/staticApi.ts b/web/src/lib/staticApi.ts index 2c04893..62700c8 100644 --- a/web/src/lib/staticApi.ts +++ b/web/src/lib/staticApi.ts @@ -181,8 +181,6 @@ export const staticCatalogApi = { updateVersions: async (name: string, versions: string[], latestVersion?: string, referenceVersion?: string) => { // Mock version update for static mode - console.log('๐Ÿ”ง Static API: Mock updating versions for service:', name, { versions, latestVersion, referenceVersion }) - // In static mode, we just return a mock response return { name, diff --git a/web/src/pages/AllDriftsList.tsx b/web/src/pages/AllDriftsList.tsx index ffaa55c..da1a50d 100644 --- a/web/src/pages/AllDriftsList.tsx +++ b/web/src/pages/AllDriftsList.tsx @@ -52,7 +52,6 @@ export default function AllDriftsList() { type: EventType.DRIFT as unknown as number, } - console.log('Loading all drifts:', searchParams) const data = await eventsApi.search(searchParams) setDrifts(data.events || []) diff --git a/web/src/pages/CreateCatalog.tsx b/web/src/pages/CreateCatalog.tsx index e94e5e3..1f4cdff 100644 --- a/web/src/pages/CreateCatalog.tsx +++ b/web/src/pages/CreateCatalog.tsx @@ -82,8 +82,10 @@ export default function CreateCatalog() { e.preventDefault() if (!formData.name || !formData.owner) return - // Debug: Log the data being sent - console.log('๐Ÿ“ค Sending catalog data:', JSON.stringify(formData, null, 2)) + // Debug: Log the data being sent in development only + if (import.meta.env.DEV) { + console.log('๐Ÿ“ค Sending catalog data:', JSON.stringify(formData, null, 2)) + } createUpdateMutation.mutate(formData as Catalog) } diff --git a/web/src/pages/DriftsList.tsx b/web/src/pages/DriftsList.tsx index 687884e..ce34fdf 100644 --- a/web/src/pages/DriftsList.tsx +++ b/web/src/pages/DriftsList.tsx @@ -40,7 +40,6 @@ export default function DriftsList() { type: EventType.DRIFT as unknown as number, } - console.log('Loading all drifts with filters:', searchParams) const data = await eventsApi.search(searchParams) // Filter out completed/failed drifts - show everything except failed, done, closed diff --git a/web/src/pages/Locks.tsx b/web/src/pages/Locks.tsx index 199324e..57f5589 100644 --- a/web/src/pages/Locks.tsx +++ b/web/src/pages/Locks.tsx @@ -23,7 +23,6 @@ export default function Locks() { setLoading(true) setError(null) const data = await locksApi.list() - console.log('Locks data:', data) setLocks(data.locks || []) } catch (err) { setError('Erreur lors du chargement des locks') From 0f86057800c038058e690bea6d5115b3c661c36c Mon Sep 17 00:00:00 2001 From: jplanckeel Date: Tue, 20 Jan 2026 17:22:28 +0100 Subject: [PATCH 4/7] fix icon event link source tracekr --- web/src/components/EventLinks.tsx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/web/src/components/EventLinks.tsx b/web/src/components/EventLinks.tsx index 157143c..b5a7e00 100644 --- a/web/src/components/EventLinks.tsx +++ b/web/src/components/EventLinks.tsx @@ -1,5 +1,7 @@ import type { EventLinks as EventLinksType } from '../types/api' import { Github, ExternalLink } from 'lucide-react' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { faRocket } from '@fortawesome/free-solid-svg-icons' import { SlackIcon } from './icons/SlackIcon' import { GrafanaIcon } from './icons/GrafanaIcon' import { getJiraTicketUrl, getSlackMessageUrl, parseSlackId } from '../config' @@ -128,11 +130,7 @@ export function SourceIcon({ source, className = 'w-4 h-4' }: SourceIconProps) { const sourceLower = source.toLowerCase() if (sourceLower.includes('tracker')) { - return ( -
- Tracker -
- ) + return } if (sourceLower.includes('slack')) { From 8ef1bb35a9713b9cce309410b4f0e33030283290 Mon Sep 17 00:00:00 2001 From: jplanckeel Date: Tue, 20 Jan 2026 17:33:00 +0100 Subject: [PATCH 5/7] fix: update k6 generate data --- tests/k6/generate-test-data.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/k6/generate-test-data.js b/tests/k6/generate-test-data.js index 940fbbc..5a4dc0c 100644 --- a/tests/k6/generate-test-data.js +++ b/tests/k6/generate-test-data.js @@ -16,10 +16,10 @@ const config = { environments: ['development', 'integration', 'tnr', 'uat', 'preproduction', 'production'], priorities: { p1: 1, p2: 2, p3: 3, p4: 4, p5: 5 }, statuses: { - deployment: ['start', 'success', 'failure'], + deployment: ['planned', 'start', 'success', 'failure'], incident: ['open', 'close'], drift: ['open', 'done', 'warning'], - operation: ['start', 'success', 'failure', 'done'], + operation: ['planned', 'start', 'success', 'failure', 'done'], rpa_usage: ['success', 'failure', 'warning'], }, catalog: { From a8f26a478c082d9fde3f13f4850a9e01a5c11652 Mon Sep 17 00:00:00 2001 From: jplanckeel Date: Wed, 21 Jan 2026 07:05:13 +0100 Subject: [PATCH 6/7] fix: use good icone for github and jira --- web/src/components/EventLinks.tsx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/web/src/components/EventLinks.tsx b/web/src/components/EventLinks.tsx index b5a7e00..0cd54b2 100644 --- a/web/src/components/EventLinks.tsx +++ b/web/src/components/EventLinks.tsx @@ -1,7 +1,7 @@ import type { EventLinks as EventLinksType } from '../types/api' -import { Github, ExternalLink } from 'lucide-react' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faRocket } from '@fortawesome/free-solid-svg-icons' +import { faGithub, faJira } from '@fortawesome/free-brands-svg-icons' +import { faRocket, faTicket, faExternalLink } from '@fortawesome/free-solid-svg-icons' import { SlackIcon } from './icons/SlackIcon' import { GrafanaIcon } from './icons/GrafanaIcon' import { getJiraTicketUrl, getSlackMessageUrl, parseSlackId } from '../config' @@ -31,7 +31,7 @@ export default function EventLinks({ links, slackId, className = '' }: EventLink className="inline-flex items-center space-x-1 text-sm text-gray-700 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-colors" title={`Voir la Pull Request: ${links.pullRequestLink}`} > - + PR #{extractPRNumber(links.pullRequestLink)} )} @@ -40,6 +40,10 @@ export default function EventLinks({ links, slackId, className = '' }: EventLink {links?.ticket && (() => { const ticketId = extractTicketId(links.ticket) const ticketUrl = getJiraTicketUrl(links.ticket) + // Dรฉtecter si c'est un lien Jira/Atlassian + const isJiraLink = ticketUrl.toLowerCase().includes('atlassian') || ticketUrl.toLowerCase().includes('jira') + const icon = isJiraLink ? faJira : faTicket + return ( - + {ticketId} ) @@ -138,12 +142,12 @@ export function SourceIcon({ source, className = 'w-4 h-4' }: SourceIconProps) { } if (sourceLower.includes('github')) { - return + return } if (sourceLower.includes('grafana')) { return } - return + return } From 9e17a1b29215f28016d7c0e1e4e2ddb38895ba75 Mon Sep 17 00:00:00 2001 From: jplanckeel Date: Wed, 21 Jan 2026 07:19:11 +0100 Subject: [PATCH 7/7] fix: correct script generate data --- tests/k6/generate-test-data.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/k6/generate-test-data.js b/tests/k6/generate-test-data.js index 5a4dc0c..36bebdf 100644 --- a/tests/k6/generate-test-data.js +++ b/tests/k6/generate-test-data.js @@ -740,7 +740,7 @@ export default function () { message: `Deployment of ${service} version ${version}`, source: randomElement(['github_actions', 'gitlab_ci', 'argocd']), type: 'deployment', - priority: env === 'production' ? randomElement(['p1', 'p2']) : randomElement(['p3', 'p4']), + priority: env === 'production' ? randomElement([1, 2]) : randomElement([3, 4]), service: service, status: status, environment: env, @@ -778,7 +778,7 @@ export default function () { message: `Incident: ${incident} on ${service}`, source: randomElement(['prometheus', 'datadog', 'manual']), type: 'incident', - priority: env === 'production' ? 'p1' : 'p2', + priority: env === 'production' ? 1 : 2, service: service, status: status, environment: env, @@ -815,7 +815,7 @@ export default function () { message: `Configuration drift: ${drift}`, source: 'terraform', type: 'drift', - priority: randomElement(['p2', 'p3']), + priority: randomElement([2, 3]), service: service, status: status, environment: env, @@ -851,7 +851,7 @@ export default function () { message: `RPA process "${process}" executed`, source: 'uipath', type: 'rpa_usage', - priority: randomElement(['p3', 'p4']), + priority: randomElement([3, 4]), service: service, status: status, environment: env, @@ -889,7 +889,7 @@ export default function () { message: `Operation: ${operation}`, source: randomElement(['manual', 'scheduled', 'automated']), type: 'operation', - priority: randomElement(['p2', 'p3']), + priority: randomElement([2, 3]), service: service, status: status, environment: env,