From aa0f4751b327ea493b7f019dbbd186e4cebb18da Mon Sep 17 00:00:00 2001 From: btalhaoui <9967432+btalhaoui@users.noreply.github.com> Date: Sat, 10 Feb 2018 03:16:50 +0100 Subject: [PATCH] Added reboot status on dashboard --- Web/app/Http/Controllers/HomeController.php | 18 +++++++++++++----- .../Controllers/OrganizationController.php | 2 +- Web/app/Models/Organizations.php | 1 + Web/app/Models/Sensors.php | 2 +- Web/app/Models/Server.php | 18 ++++++++++++++++-- Web/resources/views/home.blade.php | 16 ++++++++++++++++ Web/resources/views/org/detail.blade.php | 15 ++++++++++++++- 7 files changed, 62 insertions(+), 10 deletions(-) diff --git a/Web/app/Http/Controllers/HomeController.php b/Web/app/Http/Controllers/HomeController.php index a434dda..8003d45 100644 --- a/Web/app/Http/Controllers/HomeController.php +++ b/Web/app/Http/Controllers/HomeController.php @@ -2,8 +2,10 @@ namespace App\Http\Controllers; +use App\Models\Organizations; +use App\Models\Server; use App\Models\Sensors; -use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; class HomeController extends Controller { @@ -12,11 +14,9 @@ class HomeController extends Controller * * @return void */ - public $model; - public function __construct(Sensors $sensor) + public function __construct() { $this->middleware('auth'); - $this->model = $sensor; } /** @@ -26,6 +26,14 @@ class HomeController extends Controller */ public function index() { - return view("home",['sensor' => Sensors::all()]); + $organization = Auth::user()->organizations()->get(); + foreach($organization as $org){ + $servers = $org->servers()->get(); + foreach($servers as $server){ + $server->lastState = $server->getLastState(); + } + $org->servers = $servers; + } + return view("home",['organization' => $organization]); } } diff --git a/Web/app/Http/Controllers/OrganizationController.php b/Web/app/Http/Controllers/OrganizationController.php index dd3d226..8fe0644 100644 --- a/Web/app/Http/Controllers/OrganizationController.php +++ b/Web/app/Http/Controllers/OrganizationController.php @@ -23,7 +23,7 @@ class OrganizationController extends Controller if($org==null)abort(404); $servers = $org->servers()->get(); foreach($servers as $server){ - $server->sensors($server->id); + $server->sensors(); } return view("org/detail",['organization' => $org , 'servers' => $servers]); } diff --git a/Web/app/Models/Organizations.php b/Web/app/Models/Organizations.php index ab53925..0f8a324 100644 --- a/Web/app/Models/Organizations.php +++ b/Web/app/Models/Organizations.php @@ -17,4 +17,5 @@ class Organizations extends Model { return $this->hasMany('App\Models\Server', 'organization_id'); } + } diff --git a/Web/app/Models/Sensors.php b/Web/app/Models/Sensors.php index bdee213..ce635c4 100644 --- a/Web/app/Models/Sensors.php +++ b/Web/app/Models/Sensors.php @@ -13,6 +13,6 @@ class Sensors extends Moloquent public function server($id) { - $server = Server::find($id); + $this->server = Server::find($id); } } \ No newline at end of file diff --git a/Web/app/Models/Server.php b/Web/app/Models/Server.php index 24bd5c9..bc2f939 100644 --- a/Web/app/Models/Server.php +++ b/Web/app/Models/Server.php @@ -8,12 +8,26 @@ class Server extends Model { protected $fillable = ['name']; public $sensors; + protected $primaryKey = 'id'; + public $lastState; public function organization() { return $this->belongsTo('App\Models\Organizations'); } - public function sensors($id) + + public function sensors() + { + $sensors = Sensors::where("server_id","".$this->getKey())->get(); + foreach($sensors as $sensor){ + $sensor["content"] = json_decode($sensor["content"]); + } + return $this->sensors = $sensors; + } + public function getLastState() { - $this->sensors = json_encode(Sensors::where("server_id","".$id)->get()); + $sensor = Sensors::where("server_id","".$this->getKey())->orderBy('created_at', 'desc')->first(); + $sensor["content"] = json_decode($sensor["content"]); + + return $this->lastState = $sensor; } } diff --git a/Web/resources/views/home.blade.php b/Web/resources/views/home.blade.php index e545ba7..f97e288 100644 --- a/Web/resources/views/home.blade.php +++ b/Web/resources/views/home.blade.php @@ -16,7 +16,23 @@ Look at your organizations : <a href="org"> Organizations </a> + @foreach($organization as $org) + <p> Organization : {{ $org->name }}</p> + @foreach ($org->servers as $server) + <p> Server : {{ $server->name }}</p> + @if ($server->lastState["content"] != null) + <p> Last updated state:</p> + + @if($server->lastState["content"]->{"Reboot"}) + <p> ok</p> + @else + <p>not ok</p> + @endif + + @endif + @endforeach + @endforeach </div> </div> </div> diff --git a/Web/resources/views/org/detail.blade.php b/Web/resources/views/org/detail.blade.php index 81f503b..a54421f 100644 --- a/Web/resources/views/org/detail.blade.php +++ b/Web/resources/views/org/detail.blade.php @@ -8,7 +8,20 @@ <div class="panel-heading">Organization : {{ $organization->name }}</div> @foreach ($servers as $server) <p> Server : {{ $server->name }}</p> - <p> Sensors : {{ $server->sensors }}</p> + @if ($server->sensors !=null) + <p> Sensors :}</p> + @foreach($server->sensors as $sensor){ + <p> {{$sensor["content"]->{"TCP"} }}</p> + <p> {{$sensor["content"]->{"UDP"} }}</p> + <p> {{$sensor["content"]->{"Network"} }}</p> + <p> {{$sensor["content"]->{"Inodes"} }}</p> + @if($sensor["content"]->{"Reboot"}) + <p> ok</p> + @else + <p>not ok</p> + @endif + @endforeach + @endif @endforeach </div> </div> -- GitLab