From 45724bde1d1dea2b850cb08af05cdca39df3265e Mon Sep 17 00:00:00 2001 From: Thibault Debatty <t.debatty@cylab.be> Date: Tue, 26 Mar 2024 13:05:17 +0100 Subject: [PATCH] server : add description) --- app/Http/Controllers/ServerController.php | 4 ++- app/Server.php | 11 +++++++ ...4_03_26_114754_servers_add_description.php | 32 +++++++++++++++++++ resources/views/server/edit.blade.php | 17 ++++++++++ resources/views/server/show.blade.php | 6 ++++ 5 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 database/migrations/2024_03_26_114754_servers_add_description.php diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php index fb1aafc..9b1f1fe 100644 --- a/app/Http/Controllers/ServerController.php +++ b/app/Http/Controllers/ServerController.php @@ -20,7 +20,8 @@ class ServerController extends Controller { return [ 'name' => 'required|string|regex:/^[a-zA-Z0-9\s\-\.]+$/|max:255', - "organization_id" => Rule::in(Auth::user()->organizations->modelKeys())]; + "organization_id" => Rule::in(Auth::user()->organizations->modelKeys()), + "description" => 'nullable|string']; } /** @@ -85,6 +86,7 @@ class ServerController extends Controller $server->name = $request->name; $server->organization_id = $request->organization_id; + $server->description = $request->description; $server->save(); return redirect(action("ServerController@show", ["server" => $server])); diff --git a/app/Server.php b/app/Server.php index 4fc48e5..373eb33 100644 --- a/app/Server.php +++ b/app/Server.php @@ -2,6 +2,8 @@ namespace App; +use League\CommonMark\CommonMarkConverter; + use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Collection as DatabaseCollection; use Illuminate\Support\Collection; @@ -14,6 +16,7 @@ use Illuminate\Support\Collection; * @property \Illuminate\Support\Carbon|null $created_at * @property \Illuminate\Support\Carbon|null $updated_at * @property string $name + * @property string $description * @property string $token * @property string $read_token * @property-read \App\Organization $organization @@ -67,6 +70,8 @@ class Server extends Model return $this->lastSummary()->time; } + // ------------------------------------- + private $info = null; public function __construct(array $attributes = array()) @@ -186,4 +191,10 @@ class Server extends Model { return $this->changes()->latest("time")->first(); } + + public function descriptionAsHTML() : string + { + $converter = new CommonMarkConverter(); + return $converter->convertToHtml($this->description ?? ''); + } } diff --git a/database/migrations/2024_03_26_114754_servers_add_description.php b/database/migrations/2024_03_26_114754_servers_add_description.php new file mode 100644 index 0000000..6582733 --- /dev/null +++ b/database/migrations/2024_03_26_114754_servers_add_description.php @@ -0,0 +1,32 @@ +<?php + +use Illuminate\Database\Migrations\Migration; +use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\Schema; + +class ServersAddDescription extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::table('servers', function (Blueprint $table) { + $table->text("description")->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('servers', function (Blueprint $table) { + $table->dropColumn("description"); + }); + } +} diff --git a/resources/views/server/edit.blade.php b/resources/views/server/edit.blade.php index 69dce6b..ae6bc32 100644 --- a/resources/views/server/edit.blade.php +++ b/resources/views/server/edit.blade.php @@ -56,6 +56,23 @@ @endif </div> </div> + + <div class="form-group row"> + <label for="description" class="col-md-4 col-form-label text-md-right">Description</label> + + <div class="col-md-6"> + <textarea id="description" + class="form-control{{ $errors->has('description') ? ' is-invalid' : '' }}" + name="description" + rows="10">{{ old('description', $server->description) }}</textarea> + + @if ($errors->has('description')) + <span class="invalid-feedback"> + <strong>{{ $errors->first('description') }}</strong> + </span> + @endif + </div> + </div> <div class="form-group row"> <div class="col-md-6 offset-md-4"> diff --git a/resources/views/server/show.blade.php b/resources/views/server/show.blade.php index 123d66e..0ca0e46 100644 --- a/resources/views/server/show.blade.php +++ b/resources/views/server/show.blade.php @@ -46,6 +46,12 @@ window.monitorServerToken = "{{ $server->read_token }}"; <p>Uptime: {{ $server->info()->uptime() }}</p> </div> </div> + + <div class="card"> + <div class="card-body"> + {!! $server->descriptionAsHTML() !!} + </div> + </div> @foreach ($server->lastSummary()->reports() as $report) <div class="card"> -- GitLab