ctrlpanel/app/Http/Controllers/HomeController.php

109 lines
2.8 KiB
PHP
Raw Normal View History

2021-06-05 09:26:32 +00:00
<?php
namespace App\Http\Controllers;
2021-07-05 19:49:28 +00:00
use App\Models\UsefulLink;
2021-10-26 14:12:47 +00:00
use App\Models\Configuration;
2021-06-05 09:26:32 +00:00
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class HomeController extends Controller
{
2021-10-27 05:48:00 +00:00
const TIME_LEFT_BG_SUCCESS = "bg-success";
const TIME_LEFT_BG_WARNING = "bg-warning";
const TIME_LEFT_BG_DANGER = "bg-danger";
2021-06-05 09:26:32 +00:00
public function __construct()
{
$this->middleware('auth');
}
2021-10-27 05:48:00 +00:00
/** Get the Background Color for the Days-Left-Box in HomeView */
public function getTimeLeftBoxBackground($days){
switch($days){
case ($days >= 15):
return $this::TIME_LEFT_BG_SUCCESS;
break;
2021-10-27 05:48:41 +00:00
2021-10-27 05:48:00 +00:00
case ($days >= 8 && $days <= 14):
return $this::TIME_LEFT_BG_WARNING;
break;
2021-10-27 05:48:41 +00:00
2021-10-27 05:48:00 +00:00
case ($days <= 7):
return $this::TIME_LEFT_BG_DANGER;
break;
2021-10-27 05:48:41 +00:00
2021-10-27 05:48:00 +00:00
default:
return $this::TIME_LEFT_BG_WARNING;
}
}
/** Get the Text for the Days-Left-Box in HomeView */
public function getTimeLeftBoxText($days,$hours){
if ($days < 1)
{
if ($hours < 1)
{
return 'You ran out of Credits ';
}
else
{
return $hours;
}
}
else
{
return number_format($days, 0);
}
}
2021-10-27 05:48:41 +00:00
public function getTimeLeftUnit($days){
2021-10-27 05:48:00 +00:00
switch($days){
case ($days < 1):
return "hours";
break;
2021-10-27 05:48:41 +00:00
2021-10-27 05:48:00 +00:00
case ($days > 1):
return "days";
break;
2021-10-27 05:48:41 +00:00
2021-10-27 05:48:00 +00:00
default:
return "days";
}
}
2021-06-06 18:17:52 +00:00
/** Show the application dashboard. */
2021-06-06 21:26:36 +00:00
public function index(Request $request)
2021-06-05 09:26:32 +00:00
{
2021-10-26 15:51:15 +00:00
$usage = Auth::user()->creditUsage();
$credits = Auth::user()->Credits();
2021-10-26 15:55:55 +00:00
$bg = "";
$boxText = "";
2021-10-26 14:53:53 +00:00
$unit = "";
2021-06-05 09:26:32 +00:00
2021-10-27 05:48:00 +00:00
/** Build our Time-Left-Box */
2021-10-26 15:55:55 +00:00
if ($credits > 0.01 and $usage > 0)
{
$days = number_format(($credits * 30) / $usage, 2, '.', '');
$hours = number_format($credits / ($usage / 30 / 24) , 2, '.', '');
2021-10-27 05:48:00 +00:00
$bg = $this->getTimeLeftBoxBackground($days);
$boxText = $this->getTimeLeftBoxText($days,$hours);
$unit = $this->getTimeLeftUnit($days,$hours);
2021-10-26 14:24:57 +00:00
2021-10-26 14:18:16 +00:00
}
2021-10-26 15:55:55 +00:00
// RETURN ALL VALUES
2021-10-26 14:53:53 +00:00
return view('home')->with([
'useage' => $usage,
2021-10-26 17:26:41 +00:00
'credits' => $credits,
2021-10-26 14:53:53 +00:00
'useful_links' => UsefulLink::all()->sortBy('id'),
'bg' => $bg,
2021-10-26 15:55:55 +00:00
'boxText' => $boxText,
2021-10-26 14:53:53 +00:00
'unit' => $unit
]);
2021-10-26 15:55:55 +00:00
}
2021-10-26 14:53:53 +00:00
}