Files
cedry2k1992andClaude Sonnet 5 873699e23e Initial commit: Laravel OSINT platform
Multi-user OSINT investigation tool with owner-controlled per-user and
per-group access grants. Includes Sherlock, theHarvester, crt.sh, WHOIS,
and ip-api.com collectors wired through a pluggable Runner/queue pipeline,
investigation search, and printable/CSV/JSON reporting.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-20 10:22:05 +03:00

69 lines
3.0 KiB
PHP

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ $investigation->name }} — {{ __('Report') }}</title>
@vite(['resources/css/app.css', 'resources/js/app.js'])
<style>
@media print {
.no-print { display: none !important; }
}
</style>
</head>
<body class="font-sans antialiased bg-white text-gray-900 p-8 max-w-4xl mx-auto">
<div class="no-print mb-6 flex justify-between items-center">
<a href="{{ route('investigations.show', $investigation) }}" class="text-sm text-indigo-600 hover:underline">
{{ __('Back to investigation') }}
</a>
<button onclick="window.print()" class="text-sm bg-gray-800 text-white px-3 py-1.5 rounded-md">
{{ __('Print / Save as PDF') }}
</button>
</div>
<h1 class="text-2xl font-bold">{{ $investigation->name }}</h1>
<p class="text-sm text-gray-500 mt-1">
{{ __('Owner') }}: {{ $investigation->owner->name }} &middot;
{{ __('Status') }}: {{ $investigation->status }} &middot;
{{ __('Generated') }}: {{ now()->toDayDateTimeString() }}
</p>
@if ($investigation->description)
<p class="mt-4 text-gray-700">{{ $investigation->description }}</p>
@endif
<h2 class="text-lg font-semibold mt-8 mb-3 border-b border-gray-300 pb-1">{{ __('Targets & Findings') }}</h2>
@forelse ($investigation->targets as $target)
<div class="mt-5 break-inside-avoid">
<p class="font-medium">
<span class="text-xs uppercase tracking-wide text-gray-500">{{ $target->type }}</span>
{{ $target->value }}
</p>
@if ($target->notes)
<p class="text-sm text-gray-600">{{ $target->notes }}</p>
@endif
@forelse ($target->findings as $finding)
<div class="ml-4 mt-2 text-sm">
<p>
<span class="font-medium">{{ $finding->source->name }}</span>
<span class="text-gray-500">({{ $finding->status }})</span>
</p>
@if ($finding->summary)
<p class="text-gray-700">{{ $finding->summary }}</p>
@endif
@if ($finding->error)
<p class="text-red-600">{{ $finding->error }}</p>
@endif
</div>
@empty
<p class="ml-4 mt-2 text-sm text-gray-400">{{ __('No lookups run yet.') }}</p>
@endforelse
</div>
@empty
<p class="text-gray-500">{{ __('No targets in this investigation.') }}</p>
@endforelse
</body>
</html>