Skip to content

Commit

Permalink
Closes #22
Browse files Browse the repository at this point in the history
  • Loading branch information
csavelief committed May 21, 2024
1 parent 981dc71 commit 7725121
Show file tree
Hide file tree
Showing 7 changed files with 77 additions and 15 deletions.
19 changes: 18 additions & 1 deletion app/Http/Controllers/HomeController.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use App\Models\Invitation;
use App\Models\YnhOrder;
use App\Models\YnhServer;
use App\Models\YnhSshTraces;
use App\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
Expand Down Expand Up @@ -62,6 +63,22 @@ public function index(Request $request)
$invitations = Invitation::whereNull('user_id')->get();
}

$pendingActions = collect();
$traces = collect();

if ($tab === 'traces') {
$pendingActions = $servers->flatMap(fn(YnhServer $server) => $server->pendingActions())
->sortBy([
fn(YnhSshTraces $a, YnhSshTraces $b) => $a->updated_at->diffInMilliseconds($b->updated_at),
fn(YnhSshTraces $a, YnhSshTraces $b) => strcmp($a->server->name, $b->server->name),
]);
$traces = $servers->flatMap(fn(YnhServer $server) => $server->latestTraces())
->sortBy([
fn(YnhSshTraces $a, YnhSshTraces $b) => strcmp($a->server->name, $b->server->name),
fn(YnhSshTraces $a, YnhSshTraces $b) => $b->order - $a->order,
]);
}

$users = collect();

if ($tab === 'users') {
Expand All @@ -75,7 +92,7 @@ public function index(Request $request)
$users = User::where('is_active', true)->get();
}
}
return view('home.index', compact('tab', 'servers', 'orders', 'users', 'invitations', 'memory_usage', 'disk_usage', 'security_events', 'interdependencies'));
return view('home.index', compact('tab', 'servers', 'orders', 'users', 'invitations', 'memory_usage', 'disk_usage', 'security_events', 'interdependencies', 'traces', 'pendingActions'));
}

private function memoryUsage(Collection $servers): Collection
Expand Down
2 changes: 1 addition & 1 deletion app/Models/YnhServer.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class YnhServer extends Model
'ssh_public_key',
'ssh_private_key',
'user_id', // the user who created this server
'updated', // restricted usage to UpdateServersInfos
'updated', // restricted usage to PullServersInfos
'is_ready',
'ynh_order_id',
'secret',
Expand Down
5 changes: 5 additions & 0 deletions app/Models/YnhSshTraces.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,9 @@ public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}

public function server(): BelongsTo
{
return $this->belongsTo(YnhServer::class, 'ynh_server_id', 'id');
}
}
8 changes: 4 additions & 4 deletions resources/views/home/cards/_pending_actions.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@
@else
@foreach($pendingActions as $pendingAction)
<div>
@if($pendingAction->state->value === 'pending')
@if($pendingAction->state === \App\Enums\SshTraceStateEnum::PENDING)
<span class="me-2 tw-dot-blue"></span>
@elseif ($pendingAction->state->value === 'in_progress')
@elseif ($pendingAction->state === \App\Enums\SshTraceStateEnum::IN_PROGRESS)
<span class="me-2 tw-dot-orange"></span>
@elseif ($pendingAction->state->value === 'done')
@elseif ($pendingAction->state === \App\Enums\SshTraceStateEnum::DONE)
<span class="me-2 tw-dot-green"></span>
@else
<span class="me-2 tw-dot-red"></span>
@endif
{{ $pendingAction->updated_at }} - {{ $pendingAction->trace }}
{{ $pendingAction->updated_at }} - {{ $pendingAction->server->name }} - {{ $pendingAction->trace }}
</div>
@endforeach
@endif
Expand Down
31 changes: 23 additions & 8 deletions resources/views/home/cards/_traces.blade.php
Original file line number Diff line number Diff line change
@@ -1,35 +1,50 @@
@if(Auth::user()->canListServers())
<div class="card card-accent-secondary tw-card">
@if($traces->isEmpty())
<div class="card card-accent-secondary mt-4 tw-card">
<div class="card-header">
<h3 class="m-0"><b>{{ __('Traces') }}</b></h3>
</div>
<div class="card-body">
<div class="row">
<div class="mb-3 col">
@if($traces->isEmpty())
<div class="row">
<div class="col">
None.
</div>
</div>
@else
@foreach($traces as $trace)
</div>
</div>
</div>
</div>
@else
<?php $tracesGroupedByServers = $traces->groupBy(fn($trace) => $trace->server->name) ?>
<?php $servers = $tracesGroupedByServers->map(fn($traces, $server) => $server)->sort() ?>
@foreach($servers as $server)
<div class="card card-accent-secondary mt-4 tw-card">
<div class="card-header">
<h3 class="m-0"><b>{{ $server }} / {{ __('Latest traces') }}</b></h3>
</div>
<div class="card-body">
<div class="row">
<div class="mb-3 col">
@foreach($tracesGroupedByServers[$server] as $trace)
<div>
@if($trace->state->value === 'pending')
@if($trace->state === \App\Enums\SshTraceStateEnum::PENDING)
<span class="me-2 tw-dot-blue"></span>
@elseif ($trace->state->value === 'in_progress')
@elseif ($trace->state === \App\Enums\SshTraceStateEnum::IN_PROGRESS)
<span class="me-2 tw-dot-orange"></span>
@elseif ($trace->state->value === 'done')
@elseif ($trace->state === \App\Enums\SshTraceStateEnum::DONE)
<span class="me-2 tw-dot-green"></span>
@else
<span class="me-2 tw-dot-red"></span>
@endif
{{ $trace->updated_at }} - {{ $trace->trace }}
</div>
@endforeach
@endif
</div>
</div>
</div>
</div>
@endforeach
@endif
@endif
25 changes: 25 additions & 0 deletions resources/views/home/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
<span class="breadcrumb-item active">{{ __('My Apps') }}</span>
@elseif($tab === 'servers')
<span class="breadcrumb-item active">{{ __('Servers') }}</span>
@elseif($tab === 'traces')
<span class="breadcrumb-item active">{{ __('Traces') }}</span>
@elseif($tab === 'interdependencies')
<span class="breadcrumb-item active">{{ __('Interdependencies') }}</span>
@elseif($tab === 'resources_usage')
Expand Down Expand Up @@ -46,6 +48,14 @@
</li>
@endif
@if(Auth::user()->canListServers())
<li class="nav-item">
<a class="nav-link {{ $tab === 'traces' ? 'active' : '' }}"
href="/home?tab=traces">
{{ __('Traces') }}
</a>
</li>
@endif
@if(Auth::user()->canListServers())
<li class="nav-item">
<a class="nav-link {{ $tab === 'interdependencies' ? 'active' : '' }}"
href="/home?tab=interdependencies">
Expand Down Expand Up @@ -118,5 +128,20 @@
@if($tab === 'interdependencies')
@include('home.cards._interdependencies')
@endif
@if($tab === 'traces')
<div class="row">
<div class="col-12">
@include('home.cards._pending_actions')
</div>
</div>
<div class="row">
<div class="col-12">
@include('home.cards._traces')
</div>
</div>
<script>
setTimeout(() => window.location.reload(), 15000);
</script>
@endif
</div>
@endsection
2 changes: 1 addition & 1 deletion resources/views/home/pages/_servers.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
@include('home.cards._backups', [ 'backups' => $server->backups ])
@endif
@if($tab === 'traces')
<div class="row mb-4">
<div class="row">
<div class="col-12">
@include('home.cards._pending_actions', [ 'pendingActions' => $server->pendingActions() ])
</div>
Expand Down

0 comments on commit 7725121

Please sign in to comment.