From 741f195a240d92945556741dce6262749d2fa9f3 Mon Sep 17 00:00:00 2001 From: Martin Folkerts Date: Mon, 9 Sep 2024 14:18:16 +0200 Subject: [PATCH] added downloads counter and stats for reports --- laravel_app/app/Models/ProjectReport.php | 6 +++ ...count_and_log_to_project_reports_table.php | 30 +++++++++++++++ .../livewire/projects/report-row.blade.php | 37 +++++++++++++++++++ .../livewire/projects/tabs/report.blade.php | 4 ++ laravel_app/routes/web.php | 1 + 5 files changed, 78 insertions(+) create mode 100644 laravel_app/database/migrations/2024_09_09_114226_add_download_count_and_log_to_project_reports_table.php diff --git a/laravel_app/app/Models/ProjectReport.php b/laravel_app/app/Models/ProjectReport.php index eabe254..de9ef24 100644 --- a/laravel_app/app/Models/ProjectReport.php +++ b/laravel_app/app/Models/ProjectReport.php @@ -87,4 +87,10 @@ protected static function booted(): void } + public function updateStatistics() + { + $this->increment('download_count'); + $this->log .= "\n".Carbon::now()->toDateTimeString().' - ' . request()->ip(); + $this->save(); + } } diff --git a/laravel_app/database/migrations/2024_09_09_114226_add_download_count_and_log_to_project_reports_table.php b/laravel_app/database/migrations/2024_09_09_114226_add_download_count_and_log_to_project_reports_table.php new file mode 100644 index 0000000..9d16316 --- /dev/null +++ b/laravel_app/database/migrations/2024_09_09_114226_add_download_count_and_log_to_project_reports_table.php @@ -0,0 +1,30 @@ +integer('download_count')->default(0); + $table->text('log')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('project_reports', function (Blueprint $table) { + $table->dropColumn('download_count'); + $table->dropColumn('log'); + }); + } +}; diff --git a/laravel_app/resources/views/livewire/projects/report-row.blade.php b/laravel_app/resources/views/livewire/projects/report-row.blade.php index d4005f2..0edce3f 100644 --- a/laravel_app/resources/views/livewire/projects/report-row.blade.php +++ b/laravel_app/resources/views/livewire/projects/report-row.blade.php @@ -4,6 +4,8 @@ {{ $report->name }} + + {{ $report->download_count }} @@ -159,6 +161,41 @@ class="text-center rounded-xl bg-red-500 text-white px-6 py-2 font-semibold disa + + + + + + + + + Stats / log + + + + + +
+

Downloads stats / logs

+

+ +

+ + + + + +
+
+
diff --git a/laravel_app/resources/views/livewire/projects/tabs/report.blade.php b/laravel_app/resources/views/livewire/projects/tabs/report.blade.php index fe51587..e6f8f21 100644 --- a/laravel_app/resources/views/livewire/projects/tabs/report.blade.php +++ b/laravel_app/resources/views/livewire/projects/tabs/report.blade.php @@ -34,6 +34,10 @@ class="flex justify-center rounded-md bg-indigo-600 px-3 py-2 text-center text-s class="py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-gray-900 sm:pl-6 lg:pl-8"> Name + + Downloads + Status diff --git a/laravel_app/routes/web.php b/laravel_app/routes/web.php index d26f5d0..3d5a7ae 100644 --- a/laravel_app/routes/web.php +++ b/laravel_app/routes/web.php @@ -38,6 +38,7 @@ $report = App\Models\ProjectReport::where('token', $token)->first(); if ($report) { $path = $report->project->download_path . '/' . $report->path; + $report->updateStatistics(); return response()->download(Storage::path($path)); } return abort(404);