From d253de992e54ecf23f95a210a694b0a5f89a3a79 Mon Sep 17 00:00:00 2001 From: Thibault Debatty <thibault.debatty@gmail.com> Date: Thu, 11 Apr 2019 14:03:26 +0200 Subject: [PATCH] Add organization dashboard --- .../Controllers/OrganizationController.php | 5 +++ web/app/Http/Controllers/ServerController.php | 2 +- .../views/organization/dashboard.blade.php | 36 +++++++++++++++++++ web/routes/web.php | 3 +- 4 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 web/resources/views/organization/dashboard.blade.php diff --git a/web/app/Http/Controllers/OrganizationController.php b/web/app/Http/Controllers/OrganizationController.php index 77a8b12..d712506 100644 --- a/web/app/Http/Controllers/OrganizationController.php +++ b/web/app/Http/Controllers/OrganizationController.php @@ -78,6 +78,11 @@ class OrganizationController extends Controller return view("organization.show", array("organization" => $organization)); } + public function dashboard(Organization $organization) + { + return view("organization.dashboard", array("organization" => $organization)); + } + /** * Show the form for editing the specified resource. * diff --git a/web/app/Http/Controllers/ServerController.php b/web/app/Http/Controllers/ServerController.php index 8fbfe6c..0e8219b 100644 --- a/web/app/Http/Controllers/ServerController.php +++ b/web/app/Http/Controllers/ServerController.php @@ -24,7 +24,7 @@ class ServerController extends Controller protected function validator(array $data) { return Validator::make($data, [ - 'name' => 'required|string|regex:/^[a-zA-Z0-9\s-\.]+$/|max:255' + 'name' => 'required|string|regex:/^[a-zA-Z0-9\s\-\.]+$/|max:255' ]); } diff --git a/web/resources/views/organization/dashboard.blade.php b/web/resources/views/organization/dashboard.blade.php new file mode 100644 index 0000000..59fe349 --- /dev/null +++ b/web/resources/views/organization/dashboard.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.app') + +@section('content') +<div class="container-fluid"> + + <h1>{{ $organization->name }}</h1> + + <div class="row"> + @foreach($organization->servers()->orderBy("name")->get() as $server) + <div class="col-md-3"> + <div class="card"> + <div class="card-header"> + <h5 class="card-title"> + {{ $server->name }} + </h5> + </div> + + <div class="card-body"> + {!! $server->getBadge() !!} + <p> + {{ $server->lastRecordTime()->diffForHumans() }} + </p> + </div> + + <div class="card-footer"> + <a class="btn btn-primary btn-sm" + href="{{ action("ServerController@show", ["server" => $server]) }}"> + View + </a> + </div> + </div> + </div> + @endforeach + </div> +</div> +@endsection diff --git a/web/routes/web.php b/web/routes/web.php index 1958018..37d4193 100644 --- a/web/routes/web.php +++ b/web/routes/web.php @@ -22,10 +22,11 @@ Route::get("home", function() { }); Route::get('app/dashboard', function() { - //return view("dashboard"); return redirect(action("OrganizationController@index")); })->name('dashboard'); +Route::get('app/organizations/{organization}/dashboard', 'OrganizationController@dashboard'); + Route::resource('app/organizations', 'OrganizationController'); Route::resource("app/organizations.user", "OrganizationUserController"); Route::resource('app/servers', 'ServerController'); \ No newline at end of file -- GitLab