1
0
mirror of https://github.com/cp6/my-idlers.git synced 2024-11-16 15:33:44 +01:00

Merge pull request #73 from cp6/main

Development up to main
This commit is contained in:
corbpie 2022-10-20 10:20:35 +11:00 committed by GitHub
commit 54a705fb9b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
73 changed files with 1207 additions and 1075 deletions

View File

@ -8,7 +8,7 @@ Despite what the name infers this self hosted web app isn't just for storing idl
a [YABs](https://github.com/masonr/yet-another-bench-script) output you can get disk & network speed values along with a [YABs](https://github.com/masonr/yet-another-bench-script) output you can get disk & network speed values along with
GeekBench 5 scores to do easier comparing and sorting. GeekBench 5 scores to do easier comparing and sorting.
[![Generic badge](https://img.shields.io/badge/version-2.1.6-blue.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/Laravel-9.0-red.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/PHP-8.1-purple.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/Bootstrap-5.1-pink.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/version-2.1.7-blue.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/Laravel-9.0-red.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/PHP-8.1-purple.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/Bootstrap-5.1-pink.svg)](https://shields.io/)
<img src="https://raw.githubusercontent.com/cp6/my-idlers/main/public/My%20Idlers%20logo.jpg" width="128" height="128" /> <img src="https://raw.githubusercontent.com/cp6/my-idlers/main/public/My%20Idlers%20logo.jpg" width="128" height="128" />
@ -20,7 +20,7 @@ GeekBench 5 scores to do easier comparing and sorting.
[Cloud Five Limited](https://cloud-v.net/) for providing the hosting for demo installation. [Cloud Five Limited](https://cloud-v.net/) for providing the hosting for demo installation.
## 2.1.6 changes (22th September 2022): ## 2.1.7 changes (13th October 2022):
#### You can no longer use the form to submit YABS results #### You can no longer use the form to submit YABS results
yabs.sh now has JSON formatted response and can POST the output directly from calling the script. yabs.sh now has JSON formatted response and can POST the output directly from calling the script.
@ -41,17 +41,21 @@ php artisan route:cache
php artisan cache:clear php artisan cache:clear
``` ```
* Removed old method and functions for adding a YABS result * Added default order by (Change this in settings)
* Fixed YABS JSON parser disk being the ram value * Added dual success & error response alert component
* Fixed YABS JSON parser disk conversion (MB & GB) * Added new response alert component into views
* Fixed YABS JSON parser RAM conversion (MB & GB) * Added input parameters for `compareYabs()`
* Fixed OS icons for server index page (showing wrongly) * Updated and fixed server_type and virt mix-ups
* Added custom HTTP error pages * Updated views title `@section` layout
* Updated yabs table for gb5 values to be nullable * Updated cache timeframes
* Updated error alert component * Updated `RouteServiceProvider::HOME` for `'/'`
* Updated posting YABS now clears relevant caches * Updated the server choose compare method
* Updated models and controllers to use first() * Fixed update server ssh port
* Update yabs compare view blade for nullable values * Fixed server due in X days being null
* Removed unused with 'labels.label' in queries
* Removed unused welcome and dashboard views
* Removed dashboard redirect to / from routes file
* Removed now unused success & error alert components
## Requires ## Requires

View File

@ -82,7 +82,7 @@ class DNSController extends Controller
$labels = DB::table('labels_assigned as l') $labels = DB::table('labels_assigned as l')
->join('labels', 'l.label_id', '=', 'labels.id') ->join('labels', 'l.label_id', '=', 'labels.id')
->where('l.service_id', '=', $dn->id) ->where('l.service_id', '=', $dn->id)
->get(['labels.id', 'labels.label']); ->get(['labels.id']);
return view('dns.edit', compact(['dn', 'labels', 'Servers', 'Domains', 'Shareds', 'Resellers'])); return view('dns.edit', compact(['dn', 'labels', 'Servers', 'Domains', 'Shareds', 'Resellers']));
} }

View File

@ -142,7 +142,7 @@ class ServerController extends Controller
'hostname' => $request->hostname, 'hostname' => $request->hostname,
'server_type' => $request->server_type, 'server_type' => $request->server_type,
'os_id' => $request->os_id, 'os_id' => $request->os_id,
'ssh' => $request->ssh, 'ssh' => $request->ssh_port,
'provider_id' => $request->provider_id, 'provider_id' => $request->provider_id,
'location_id' => $request->location_id, 'location_id' => $request->location_id,
'ram' => $request->ram, 'ram' => $request->ram,
@ -189,9 +189,8 @@ class ServerController extends Controller
public function destroy(Server $server) public function destroy(Server $server)
{ {
$items = Server::find($server->id); $item = Server::find($server->id);
$item->delete();
$items->delete();
$p = new Pricing(); $p = new Pricing();
$p->deletePricing($server->id); $p->deletePricing($server->id);
@ -209,9 +208,15 @@ class ServerController extends Controller
public function chooseCompare() public function chooseCompare()
{//NOTICE: Selecting servers is not cached yet {//NOTICE: Selecting servers is not cached yet
$all_servers = Server::where('has_yabs', 1)->get(); $all_servers = Server::where('has_yabs', 1)->get();
if (isset($all_servers[1])){
return view('servers.choose-compare', compact('all_servers')); return view('servers.choose-compare', compact('all_servers'));
} }
return redirect()->route('servers.index')
->with('error', 'You need atleast 2 servers with a YABS to do a compare');
}
public function compareServers($server1, $server2) public function compareServers($server1, $server2)
{ {
$server1_data = Server::server($server1); $server1_data = Server::server($server1);

View File

@ -4,13 +4,9 @@ namespace App\Http\Controllers;
use App\Models\Server; use App\Models\Server;
use App\Models\Yabs; use App\Models\Yabs;
use App\Process;
use App\Models\DiskSpeed;
use App\Models\NetworkSpeed;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
class YabsController extends Controller class YabsController extends Controller
{ {
@ -66,18 +62,18 @@ class YabsController extends Controller
->with('error', 'You need atleast 2 YABS to do a compare'); ->with('error', 'You need atleast 2 YABS to do a compare');
} }
public function compareYabs($yabs1, $yabs2) public function compareYabs(string $yabs1, string $yabs2)
{ {
$yabs1_data = Yabs::yabs($yabs1); $yabs1_data = Yabs::yabs($yabs1);
if (count($yabs1_data) === 0) { if (count($yabs1_data) === 0) {
return response()->view('errors.404', array("status" => 404, "title" => "Page not found", "message" => "No YABs data was found for id '$yabs1'"), 404); abort(404);
} }
$yabs2_data = Yabs::yabs($yabs2); $yabs2_data = Yabs::yabs($yabs2);
if (count($yabs2_data) === 0) { if (count($yabs2_data) === 0) {
return response()->view('errors.404', array("status" => 404, "title" => "Page not found", "message" => "No YABs data was found for id '$server2'"), 404); abort(404);
} }
return view('yabs.compare', compact('yabs1_data', 'yabs2_data')); return view('yabs.compare', compact('yabs1_data', 'yabs2_data'));

View File

@ -23,7 +23,7 @@ class Domains extends Model
public static function allDomains() public static function allDomains()
{//All domains and relationships (no using joins) {//All domains and relationships (no using joins)
return Cache::remember("all_domains", now()->addMonth(1), function () { return Cache::remember("all_domains", now()->addMonth(1), function () {
return Domains::with(['provider', 'price', 'labels', 'labels.label'])->get(); return Domains::with(['provider', 'price', 'labels'])->get();
}); });
} }
@ -31,7 +31,7 @@ class Domains extends Model
{//Single domains and relationships (no using joins) {//Single domains and relationships (no using joins)
return Cache::remember("domain.$domain_id", now()->addMonth(1), function () use ($domain_id) { return Cache::remember("domain.$domain_id", now()->addMonth(1), function () use ($domain_id) {
return Domains::where('id', $domain_id) return Domains::where('id', $domain_id)
->with(['provider', 'price', 'labels', 'labels.label'])->first(); ->with(['provider', 'price', 'labels'])->first();
}); });
} }

View File

@ -25,7 +25,7 @@ class Home extends Model
public static function servicesCount() public static function servicesCount()
{ {
return Cache::remember('services_count', now()->addHour(6), function () { return Cache::remember('services_count', now()->addHours(6), function () {
return DB::table('pricings') return DB::table('pricings')
->select('service_type', DB::raw('COUNT(*) as amount')) ->select('service_type', DB::raw('COUNT(*) as amount'))
->groupBy('service_type') ->groupBy('service_type')
@ -36,7 +36,7 @@ class Home extends Model
public static function dueSoonData() public static function dueSoonData()
{ {
return Cache::remember('due_soon', now()->addHour(6), function () { return Cache::remember('due_soon', now()->addHours(6), function () {
return DB::table('pricings as p') return DB::table('pricings as p')
->leftJoin('servers as s', 'p.service_id', '=', 's.id') ->leftJoin('servers as s', 'p.service_id', '=', 's.id')
->leftJoin('shared_hosting as sh', 'p.service_id', '=', 'sh.id') ->leftJoin('shared_hosting as sh', 'p.service_id', '=', 'sh.id')
@ -53,7 +53,7 @@ class Home extends Model
public static function serverSummary() public static function serverSummary()
{ {
return Cache::remember('servers_summary', now()->addHour(6), function () { return Cache::remember('servers_summary', now()->addHours(6), function () {
$cpu_sum = DB::table('servers')->get()->where('active', '=', 1)->sum('cpu'); $cpu_sum = DB::table('servers')->get()->where('active', '=', 1)->sum('cpu');
$ram_mb = DB::table('servers')->get()->where('active', '=', 1)->sum('ram_as_mb'); $ram_mb = DB::table('servers')->get()->where('active', '=', 1)->sum('ram_as_mb');
$disk_gb = DB::table('servers')->get()->where('active', '=', 1)->sum('disk_as_gb'); $disk_gb = DB::table('servers')->get()->where('active', '=', 1)->sum('disk_as_gb');
@ -73,7 +73,7 @@ class Home extends Model
public static function recentlyAdded() public static function recentlyAdded()
{ {
return Cache::remember('recently_added', now()->addHour(6), function () { return Cache::remember('recently_added', now()->addHours(6), function () {
return DB::table('pricings as p') return DB::table('pricings as p')
->leftJoin('servers as s', 'p.service_id', '=', 's.id') ->leftJoin('servers as s', 'p.service_id', '=', 's.id')
->leftJoin('shared_hosting as sh', 'p.service_id', '=', 'sh.id') ->leftJoin('shared_hosting as sh', 'p.service_id', '=', 'sh.id')

View File

@ -25,9 +25,9 @@ class IPs extends Model
DB::table('ips')->where('service_id', '=', $service_id)->delete(); DB::table('ips')->where('service_id', '=', $service_id)->delete();
} }
public static function insertIP(string $service_id, string $address) public static function insertIP(string $service_id, string $address): IPs
{ {
self::create( return self::create(
[ [
'id' => Str::random(8), 'id' => Str::random(8),
'service_id' => $service_id, 'service_id' => $service_id,
@ -40,7 +40,7 @@ class IPs extends Model
public static function ipsForServer(string $server_id) public static function ipsForServer(string $server_id)
{ {
return Cache::remember("ip_addresses.$server_id", now()->addHour(1), function () use ($server_id) { return Cache::remember("ip_addresses.$server_id", now()->addHours(1), function () use ($server_id) {
return json_decode(DB::table('ips as i') return json_decode(DB::table('ips as i')
->where('i.service_id', '=', $server_id) ->where('i.service_id', '=', $server_id)
->get(), true); ->get(), true);

View File

@ -109,7 +109,7 @@ class Pricing extends Model
DB::table('pricings')->where('service_id', '=', $id)->delete(); DB::table('pricings')->where('service_id', '=', $id)->delete();
} }
public function insertPricing(int $type, string $service_id, string $currency, float $price, int $term, string $next_due_date, int $is_active = 1) public function insertPricing(int $type, string $service_id, string $currency, float $price, int $term, string $next_due_date, int $is_active = 1): Pricing
{ {
$as_usd = $this->convertToUSD($price, $currency); $as_usd = $this->convertToUSD($price, $currency);
return self::create([ return self::create([
@ -125,7 +125,7 @@ class Pricing extends Model
]); ]);
} }
public function updatePricing(string $service_id, string $currency, float $price, int $term, float $as_usd, string $next_due_date, int $is_active = 1) public function updatePricing(string $service_id, string $currency, float $price, int $term, float $as_usd, string $next_due_date, int $is_active = 1): int
{ {
return DB::table('pricings') return DB::table('pricings')
->where('service_id', $service_id) ->where('service_id', $service_id)

View File

@ -36,7 +36,7 @@ class Reseller extends Model
public static function allResellerHosting() public static function allResellerHosting()
{//All reseller hosting and relationships (no using joins) {//All reseller hosting and relationships (no using joins)
return Cache::remember("all_reseller", now()->addMonth(1), function () { return Cache::remember("all_reseller", now()->addMonth(1), function () {
return Reseller::with(['location', 'provider', 'price', 'ips', 'labels', 'labels.label'])->get(); return Reseller::with(['location', 'provider', 'price', 'ips', 'labels'])->get();
}); });
} }
@ -44,7 +44,7 @@ class Reseller extends Model
{//Single reseller hosting and relationships (no using joins) {//Single reseller hosting and relationships (no using joins)
return Cache::remember("reseller_hosting.$shared_id", now()->addMonth(1), function () use ($shared_id) { return Cache::remember("reseller_hosting.$shared_id", now()->addMonth(1), function () use ($shared_id) {
return Reseller::where('id', $shared_id) return Reseller::where('id', $shared_id)
->with(['location', 'provider', 'price', 'ips', 'labels', 'labels.label'])->first(); ->with(['location', 'provider', 'price', 'ips', 'labels'])->first();
}); });
} }

View File

@ -36,7 +36,7 @@ class SeedBoxes extends Model
public static function allSeedboxes() public static function allSeedboxes()
{//All seedboxes and relationships (no using joins) {//All seedboxes and relationships (no using joins)
return Cache::remember("all_seedboxes", now()->addMonth(1), function () { return Cache::remember("all_seedboxes", now()->addMonth(1), function () {
return SeedBoxes::with(['location', 'provider', 'price', 'labels.label'])->get(); return SeedBoxes::with(['location', 'provider', 'price'])->get();
}); });
} }
@ -44,7 +44,7 @@ class SeedBoxes extends Model
{//Single seedbox and relationships (no using joins) {//Single seedbox and relationships (no using joins)
return Cache::remember("seedbox.$seedbox_id", now()->addMonth(1), function () use ($seedbox_id) { return Cache::remember("seedbox.$seedbox_id", now()->addMonth(1), function () use ($seedbox_id) {
return SeedBoxes::where('id', $seedbox_id) return SeedBoxes::where('id', $seedbox_id)
->with(['location', 'provider', 'price', 'labels.label'])->first(); ->with(['location', 'provider', 'price'])->first();
}); });
} }

View File

@ -43,7 +43,7 @@ class Server extends Model
public static function allServers() public static function allServers()
{//All servers and relationships (no using joins) {//All servers and relationships (no using joins)
return Cache::remember("all_servers", now()->addMonth(1), function () { return Cache::remember("all_servers", now()->addMonth(1), function () {
return Server::with(['location', 'provider', 'os', 'price', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels', 'labels.label'])->get(); return Server::with(['location', 'provider', 'os', 'price', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels'])->get();
}); });
} }
@ -51,7 +51,7 @@ class Server extends Model
{//Single server and relationships (no using joins) {//Single server and relationships (no using joins)
return Cache::remember("server.$server_id", now()->addMonth(1), function () use ($server_id) { return Cache::remember("server.$server_id", now()->addMonth(1), function () use ($server_id) {
return Server::where('id', $server_id) return Server::where('id', $server_id)
->with(['location', 'provider', 'os', 'price', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels', 'labels.label'])->first(); ->with(['location', 'provider', 'os', 'price', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels'])->first();
}); });
} }
@ -59,7 +59,7 @@ class Server extends Model
{//All ACTIVE servers and relationships replaces activeServersDataIndexPage() {//All ACTIVE servers and relationships replaces activeServersDataIndexPage()
return Cache::remember("all_active_servers", now()->addMonth(1), function () { return Cache::remember("all_active_servers", now()->addMonth(1), function () {
return Server::where('active', '=', 1) return Server::where('active', '=', 1)
->with(['location', 'provider', 'os', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels', 'labels.label', 'price'])->get(); ->with(['location', 'provider', 'os', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels', 'price'])->get();
}); });
} }
@ -67,7 +67,7 @@ class Server extends Model
{//All NON ACTIVE servers and relationships replaces nonActiveServersDataIndexPage() {//All NON ACTIVE servers and relationships replaces nonActiveServersDataIndexPage()
return Cache::remember("non_active_servers", now()->addMonth(1), function () { return Cache::remember("non_active_servers", now()->addMonth(1), function () {
return Server::where('active', '=', 0) return Server::where('active', '=', 0)
->with(['location', 'provider', 'os', 'price', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels', 'labels.label']) ->with(['location', 'provider', 'os', 'price', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels'])
->get(); ->get();
}); });
} }
@ -76,29 +76,37 @@ class Server extends Model
{//server data that will be publicly viewable (values in settings) {//server data that will be publicly viewable (values in settings)
return Cache::remember("public_server_data", now()->addMonth(1), function () { return Cache::remember("public_server_data", now()->addMonth(1), function () {
return Server::where('show_public', '=', 1) return Server::where('show_public', '=', 1)
->with(['location', 'provider', 'os', 'price', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels', 'labels.label']) ->with(['location', 'provider', 'os', 'price', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels'])
->get(); ->get();
}); });
} }
public static function serviceServerType($type) public static function serviceServerType(int $type, bool $short = true): string
{ {
if ($type === 1) { if ($type === 1) {
return "KVM"; return "KVM";
} elseif ($type === 2) { } elseif ($type === 2) {
return "OVZ"; return "OVZ";
} elseif ($type === 3) { } elseif ($type === 3) {
if (!$short) {
return "Dedicated";
}
return "DEDI"; return "DEDI";
} elseif ($type === 4) { } elseif ($type === 4) {
return "LXC"; return "LXC";
} elseif ($type === 6) { } elseif ($type === 6) {
return "VMware"; return "VMware";
} elseif ($type === 7) {
return "NAT";
} else { } else {
if (!$short) {
return "Semi-dedicated";
}
return "SEMI-DEDI"; return "SEMI-DEDI";
} }
} }
public static function osIntToIcon(int $os, string $os_name) public static function osIntToIcon(int $os, string $os_name): string
{ {
if ($os === 1) {//None if ($os === 1) {//None
return "<i class='fas fa-expand' title='{$os_name}'></i>"; return "<i class='fas fa-expand' title='{$os_name}'></i>";
@ -121,70 +129,7 @@ class Server extends Model
} }
} }
public static function osIdAsString($os) public static function tableRowCompare(string $val1, string $val2, string $value_type = '', bool $is_int = true): string
{
if ($os === "0") {
return "None";
} elseif ($os === "1") {
return "CentOS 7";
} elseif ($os === "2") {
return "CentOS 8";
} elseif ($os === "3") {
return "CentOS";
} elseif ($os === "4") {
return "Debian 9";
} elseif ($os === "5") {
return "Debian 10";
} elseif ($os === "6") {
return "Debian";
} elseif ($os === "7") {
return "Fedora 32";
} elseif ($os === "8") {
return "Fedora 33";
} elseif ($os === "9") {
return "Fedora";
} elseif ($os === "10") {
return "FreeBSD 11.4";
} elseif ($os === "11") {
return "FreeBSD 12.1";
} elseif ($os === "12") {
return "FreeBSD";
} elseif ($os === "13") {
return "OpenBSD 6.7";
} elseif ($os === "14") {
return "OpenBSD 6.8";
} elseif ($os === "15") {
return "OpenBSD";
} elseif ($os == "16") {
return "Ubuntu 16.04";
} elseif ($os === "17") {
return "Ubuntu 18.04";
} elseif ($os === "18") {
return "Ubuntu 20.04";
} elseif ($os === "19") {
return "Ubuntu 20.10";
} elseif ($os === "20") {
return "Ubuntu";
} elseif ($os === "21") {
return "Windows Server 2008";
} elseif ($os === "22") {
return "Windows Server 2012";
} elseif ($os === "23") {
return "Windows Server 2016";
} elseif ($os === "24") {
return "Windows Server 2019";
} elseif ($os === "25") {
return "Windows 10";
} elseif ($os === "26") {
return "Custom";
} elseif ($os === "27") {
return "Other";
} else {
return "Unknown";
}
}
public static function tableRowCompare(string $val1, string $val2, string $value_type = '', bool $is_int = true)
{ {
//<td class="td-nowrap plus-td">+303<span class="data-type">MBps</span></td> //<td class="td-nowrap plus-td">+303<span class="data-type">MBps</span></td>
$str = '<td class="td-nowrap '; $str = '<td class="td-nowrap ';

View File

@ -36,7 +36,7 @@ class Shared extends Model
public static function allSharedHosting() public static function allSharedHosting()
{//All shared hosting and relationships (no using joins) {//All shared hosting and relationships (no using joins)
return Cache::remember("all_shared", now()->addMonth(1), function () { return Cache::remember("all_shared", now()->addMonth(1), function () {
return Shared::with(['location', 'provider', 'price', 'ips', 'labels', 'labels.label'])->get(); return Shared::with(['location', 'provider', 'price', 'ips', 'labels'])->get();
}); });
} }
@ -44,7 +44,7 @@ class Shared extends Model
{//Single shared hosting and relationships (no using joins) {//Single shared hosting and relationships (no using joins)
return Cache::remember("shared_hosting.$shared_id", now()->addMonth(1), function () use ($shared_id) { return Cache::remember("shared_hosting.$shared_id", now()->addMonth(1), function () use ($shared_id) {
return Shared::where('id', $shared_id) return Shared::where('id', $shared_id)
->with(['location', 'provider', 'price', 'ips', 'labels', 'labels.label'])->first(); ->with(['location', 'provider', 'price', 'ips', 'labels'])->first();
}); });
} }

View File

@ -17,7 +17,7 @@ class RouteServiceProvider extends ServiceProvider
* *
* @var string * @var string
*/ */
public const HOME = '/dashboard'; public const HOME = '/';
/** /**
* The controller namespace for the application. * The controller namespace for the application.

View File

@ -17,7 +17,8 @@
"laravel/tinker": "^2.7", "laravel/tinker": "^2.7",
"laravel/ui": "^3.4", "laravel/ui": "^3.4",
"yajra/laravel-datatables-oracle": "~9.20", "yajra/laravel-datatables-oracle": "~9.20",
"ext-json": "*" "ext-json": "*",
"doctrine/dbal": "v3.4"
}, },
"require-dev": { "require-dev": {
"fakerphp/faker": "^1.19.0", "fakerphp/faker": "^1.19.0",

1625
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
@section('title') {{'Edit account'}} @endsection @section("title", "Edit account")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
Edit account Edit account

View File

@ -1,5 +0,0 @@
@if ($message = Session::get('error'))
<div class="alert alert-danger" role="alert">
<p class="my-1">{{ $message }}</p>
</div>
@endif

View File

@ -2,4 +2,8 @@
<div class="alert alert-success" role="alert"> <div class="alert alert-success" role="alert">
<p class="my-1">{{ $message }}</p> <p class="my-1">{{ $message }}</p>
</div> </div>
@elseif($message = Session::get('error'))
<div class="alert alert-danger" role="alert">
<p class="my-1">{{ $message }}</p>
</div>
@endif @endif

View File

@ -1,17 +0,0 @@
<x-app-layout>
<x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
{{ __('Dashboard') }}
</h2>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white overflow-hidden shadow-sm sm:rounded-lg">
<div class="p-6 bg-white border-b border-gray-200">
You're logged in!
</div>
</div>
</div>
</div>
</x-app-layout>

View File

@ -1,4 +1,4 @@
@section('title') {{'Insert DNS'}} @endsection @section("title", "Insert DNS")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Insert a new DNS') }} {{ __('Insert a new DNS') }}
@ -10,7 +10,7 @@
<x-slot name="href">{{ route('dns.index') }}</x-slot> <x-slot name="href">{{ route('dns.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('dns.store') }}" method="POST"> <form action="{{ route('dns.store') }}" method="POST">
@csrf @csrf
<div class="row"> <div class="row">

View File

@ -1,4 +1,4 @@
@section('title') {{'Edit'}} {{ $dn->hostname }} {{$dn->dns_type}} {{'DNS'}} @endsection @section("title", "Edit {$dn->hostname} {$dn->dns_type} DNS")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
Edit {{ $dn->hostname }} {{$dn->dns_type}} record Edit {{ $dn->hostname }} {{$dn->dns_type}} record
@ -10,7 +10,7 @@
<x-slot name="href">{{ route('dns.index') }}</x-slot> <x-slot name="href">{{ route('dns.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('dns.update', $dn->id) }}" method="POST"> <form action="{{ route('dns.update', $dn->id) }}" method="POST">
@csrf @csrf
@method('PUT') @method('PUT')

View File

@ -1,4 +1,4 @@
@section('title') {{'DNS'}} @endsection @section("title", "DNS")
@section('style') @section('style')
<x-modal-style></x-modal-style> <x-modal-style></x-modal-style>
@endsection @endsection
@ -14,7 +14,7 @@
<x-delete-confirm-modal></x-delete-confirm-modal> <x-delete-confirm-modal></x-delete-confirm-modal>
<x-card class="shadow mt-3"> <x-card class="shadow mt-3">
<a href="{{ route('dns.create') }}" class="btn btn-primary mb-3">Add DNS</a> <a href="{{ route('dns.create') }}" class="btn btn-primary mb-3">Add DNS</a>
<x-success-alert></x-success-alert> <x-response-alerts></x-response-alerts>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered"> <table class="table table-bordered">
<thead class="table-light"> <thead class="table-light">

View File

@ -1,4 +1,4 @@
@section('title') {{ $dns->hostname }} {{$dns->dns_type}} {{'dns'}} @endsection @section("title", "{$dns->hostname} {$dns->dns_type} DNS")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('DNS details') }} {{ __('DNS details') }}

View File

@ -1,4 +1,4 @@
@section('title') {{'Insert domain'}} @endsection @section("title", "Insert Domain")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Insert a new domain') }} {{ __('Insert a new domain') }}
@ -10,7 +10,7 @@
<x-slot name="href">{{ route('domains.index') }}</x-slot> <x-slot name="href">{{ route('domains.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('domains.store') }}" method="POST"> <form action="{{ route('domains.store') }}" method="POST">
@csrf @csrf
<div class="row"> <div class="row">

View File

@ -1,4 +1,4 @@
@section('title') {{'Edit domain'}} @endsection @section("title", "Edit Domain")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
Edit {{ $domain_info->domain }}.{{ $domain_info->extension }} Edit {{ $domain_info->domain }}.{{ $domain_info->extension }}
@ -10,7 +10,7 @@
<x-slot name="href">{{ route('domains.index') }}</x-slot> <x-slot name="href">{{ route('domains.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('domains.update', $domain_info->id) }}" method="POST"> <form action="{{ route('domains.update', $domain_info->id) }}" method="POST">
@csrf @csrf
@method('PUT') @method('PUT')

View File

@ -1,4 +1,4 @@
@section('title') {{'Domains'}} @endsection @section("title", "Domains")
@section('style') @section('style')
<x-modal-style></x-modal-style> <x-modal-style></x-modal-style>
@endsection @endsection
@ -14,7 +14,7 @@
<x-delete-confirm-modal></x-delete-confirm-modal> <x-delete-confirm-modal></x-delete-confirm-modal>
<x-card class="shadow mt-3"> <x-card class="shadow mt-3">
<a href="{{ route('domains.create') }}" class="btn btn-primary mb-3">Add a domain</a> <a href="{{ route('domains.create') }}" class="btn btn-primary mb-3">Add a domain</a>
<x-success-alert></x-success-alert> <x-response-alerts></x-response-alerts>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered"> <table class="table table-bordered">
<thead class="table-light"> <thead class="table-light">

View File

@ -1,6 +1,4 @@
@section('title') @section("title", "{$domain_info->domain }.{$domain_info->extension} domain")
{{ $domain_info->domain }}.{{$domain_info->extension}} {{'domain'}}
@endsection
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Domain details') }} {{ __('Domain details') }}

View File

@ -1,4 +1,4 @@
@section('title') {{'Home'}} @endsection @section("title", "Home")
<x-app-layout> <x-app-layout>
<div class="container"> <div class="container">
@if (Route::has('login')) @if (Route::has('login'))

View File

@ -1,4 +1,4 @@
@section('title') {{'Insert IP address'}} @endsection @section("title", "Insert IP address")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Insert a new IP') }} {{ __('Insert a new IP') }}
@ -10,7 +10,7 @@
<x-slot name="href">{{ route('IPs.index') }}</x-slot> <x-slot name="href">{{ route('IPs.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('IPs.store') }}" method="POST"> <form action="{{ route('IPs.store') }}" method="POST">
@csrf @csrf
<div class="row"> <div class="row">

View File

@ -1,4 +1,4 @@
@section('title') {{'IP Addresses'}} @endsection @section("title", "IP addresses")
@section('css_links') @section('css_links')
<link rel="stylesheet" href="{{ asset('css/datatables.bootstrap.min.css') }}"> <link rel="stylesheet" href="{{ asset('css/datatables.bootstrap.min.css') }}">
@endsection @endsection
@ -17,7 +17,7 @@
<x-delete-confirm-modal></x-delete-confirm-modal> <x-delete-confirm-modal></x-delete-confirm-modal>
<x-card class="shadow mt-3"> <x-card class="shadow mt-3">
<a href="{{ route('IPs.create') }}" class="btn btn-primary mb-3">Add IP</a> <a href="{{ route('IPs.create') }}" class="btn btn-primary mb-3">Add IP</a>
<x-success-alert></x-success-alert> <x-response-alerts></x-response-alerts>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered" id="ips-table"> <table class="table table-bordered" id="ips-table">
<thead class="table-light"> <thead class="table-light">

View File

@ -1,4 +1,4 @@
@section('title') {{'Insert project'}} @endsection @section("title", "Add label")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Insert a new label') }} {{ __('Insert a new label') }}
@ -10,7 +10,7 @@
<x-slot name="href">{{ route('labels.index') }}</x-slot> <x-slot name="href">{{ route('labels.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('labels.store') }}" method="POST"> <form action="{{ route('labels.store') }}" method="POST">
@csrf @csrf
<div class="row"> <div class="row">

View File

@ -1,4 +1,4 @@
@section('title') {{'Labels'}} @endsection @section("title", "Labels")
@section('css_links') @section('css_links')
<link rel="stylesheet" href="{{ asset('css/datatables.bootstrap.min.css') }}"> <link rel="stylesheet" href="{{ asset('css/datatables.bootstrap.min.css') }}">
@endsection @endsection
@ -17,7 +17,7 @@
<x-delete-confirm-modal></x-delete-confirm-modal> <x-delete-confirm-modal></x-delete-confirm-modal>
<x-card class="shadow mt-3"> <x-card class="shadow mt-3">
<a href="{{ route('labels.create') }}" class="btn btn-primary mb-3">Add a label</a> <a href="{{ route('labels.create') }}" class="btn btn-primary mb-3">Add a label</a>
<x-success-alert></x-success-alert> <x-response-alerts></x-response-alerts>
<table class="table table-bordered" id="labels-table"> <table class="table table-bordered" id="labels-table">
<thead class="table-light"> <thead class="table-light">
<tr> <tr>

View File

@ -1,4 +1,4 @@
@section('title') {{ $label->label }} {{'label'}} @endsection @section("title", "{$label->label} label")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Label details') }} {{ __('Label details') }}

View File

@ -1,4 +1,4 @@
@section('title') {{'Insert location'}} @endsection @section("title", "Insert Location")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Insert a new location') }} {{ __('Insert a new location') }}
@ -10,7 +10,7 @@
<x-slot name="href">{{ route('locations.index') }}</x-slot> <x-slot name="href">{{ route('locations.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('locations.store') }}" method="POST"> <form action="{{ route('locations.store') }}" method="POST">
@csrf @csrf
<div class="row"> <div class="row">

View File

@ -1,4 +1,4 @@
@section('title') {{'Locations'}} @endsection @section("title", "Locations")
@section('css_links') @section('css_links')
<link rel="stylesheet" href="{{ asset('css/datatables.bootstrap.min.css') }}"> <link rel="stylesheet" href="{{ asset('css/datatables.bootstrap.min.css') }}">
@endsection @endsection
@ -17,7 +17,7 @@
<x-delete-confirm-modal></x-delete-confirm-modal> <x-delete-confirm-modal></x-delete-confirm-modal>
<x-card class="shadow mt-3"> <x-card class="shadow mt-3">
<a href="{{ route('locations.create') }}" class="btn btn-primary mb-3">Add a location</a> <a href="{{ route('locations.create') }}" class="btn btn-primary mb-3">Add a location</a>
<x-success-alert></x-success-alert> <x-response-alerts></x-response-alerts>
<table class="table table-bordered" id="locations-table"> <table class="table table-bordered" id="locations-table">
<thead class="table-light"> <thead class="table-light">
<tr class="bg-gray-100"> <tr class="bg-gray-100">

View File

@ -1,4 +1,4 @@
@section('title') {{ $location->name }} {{'location'}} @endsection @section("title", "{$location->name} location")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Location details') }} {{ __('Location details') }}

View File

@ -1,4 +1,4 @@
@section('title') {{'Insert misc service'}} @endsection @section("title", "Insert misc service")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Insert a new misc service') }} {{ __('Insert a new misc service') }}
@ -10,7 +10,7 @@
<x-slot name="href">{{ route('misc.index') }}</x-slot> <x-slot name="href">{{ route('misc.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('misc.store') }}" method="POST"> <form action="{{ route('misc.store') }}" method="POST">
@csrf @csrf
<div class="row"> <div class="row">

View File

@ -1,4 +1,4 @@
@section('title') {{$misc_data->name}} {{'edit'}} @endsection @section("title", "{$misc_data->name} edit")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
Edit {{ $misc_data->name }} Edit {{ $misc_data->name }}
@ -10,7 +10,7 @@
<x-slot name="href">{{ route('misc.index') }}</x-slot> <x-slot name="href">{{ route('misc.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('misc.update', $misc_data->id) }}" method="POST"> <form action="{{ route('misc.update', $misc_data->id) }}" method="POST">
@csrf @csrf
@method('PUT') @method('PUT')

View File

@ -1,4 +1,4 @@
@section('title') {{'Misc services'}} @endsection @section("title", "Misc services")
@section('style') @section('style')
<x-modal-style></x-modal-style> <x-modal-style></x-modal-style>
@endsection @endsection
@ -14,7 +14,7 @@
<x-delete-confirm-modal></x-delete-confirm-modal> <x-delete-confirm-modal></x-delete-confirm-modal>
<x-card class="shadow mt-3"> <x-card class="shadow mt-3">
<a href="{{ route('misc.create') }}" class="btn btn-primary mb-3">Add misc service</a> <a href="{{ route('misc.create') }}" class="btn btn-primary mb-3">Add misc service</a>
<x-success-alert></x-success-alert> <x-response-alerts></x-response-alerts>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered"> <table class="table table-bordered">
<thead class="table-light"> <thead class="table-light">

View File

@ -1,4 +1,4 @@
@section('title') {{ $misc_data->name }} {{'service'}} @endsection @section("title", "{$misc_data->name} service")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Misc details') }} {{ __('Misc details') }}

View File

@ -1,4 +1,4 @@
@section('title') {{'Insert operating system'}} @endsection @section("title", "Insert operating system")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Insert a new OS') }} {{ __('Insert a new OS') }}
@ -10,7 +10,7 @@
<x-slot name="href">{{ route('os.index') }}</x-slot> <x-slot name="href">{{ route('os.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('os.store') }}" method="POST"> <form action="{{ route('os.store') }}" method="POST">
@csrf @csrf
<div class="row"> <div class="row">

View File

@ -1,4 +1,4 @@
@section('title') {{'Operating systems'}} @endsection @section("title", "Operating systems")
@section('css_links') @section('css_links')
<link rel="stylesheet" href="{{ asset('css/datatables.bootstrap.min.css') }}"> <link rel="stylesheet" href="{{ asset('css/datatables.bootstrap.min.css') }}">
@endsection @endsection
@ -17,7 +17,7 @@
<x-delete-confirm-modal></x-delete-confirm-modal> <x-delete-confirm-modal></x-delete-confirm-modal>
<x-card class="shadow mt-3"> <x-card class="shadow mt-3">
<a href="{{ route('os.create') }}" class="btn btn-primary mb-3">Add an OS</a> <a href="{{ route('os.create') }}" class="btn btn-primary mb-3">Add an OS</a>
<x-success-alert></x-success-alert> <x-response-alerts></x-response-alerts>
<table class="table table-bordered" id="os-table"> <table class="table table-bordered" id="os-table">
<thead class="table-light"> <thead class="table-light">
<tr class="bg-gray-100"> <tr class="bg-gray-100">

View File

@ -1,4 +1,4 @@
@section('title') {{'Insert provider'}} @endsection @section("title", "Insert provider")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Insert a new provider') }} {{ __('Insert a new provider') }}
@ -10,7 +10,7 @@
<x-slot name="href">{{ route('providers.index') }}</x-slot> <x-slot name="href">{{ route('providers.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('providers.store') }}" method="POST"> <form action="{{ route('providers.store') }}" method="POST">
@csrf @csrf
<div class="row"> <div class="row">

View File

@ -1,4 +1,4 @@
@section('title') {{'Providers'}} @endsection @section("title", "Providers")
@section('css_links') @section('css_links')
<link rel="stylesheet" href="{{ asset('css/datatables.bootstrap.min.css') }}"> <link rel="stylesheet" href="{{ asset('css/datatables.bootstrap.min.css') }}">
@endsection @endsection
@ -17,7 +17,7 @@
<x-delete-confirm-modal></x-delete-confirm-modal> <x-delete-confirm-modal></x-delete-confirm-modal>
<x-card class="shadow mt-3"> <x-card class="shadow mt-3">
<a href="{{ route('providers.create') }}" class="btn btn-primary mb-3">Add a provider</a> <a href="{{ route('providers.create') }}" class="btn btn-primary mb-3">Add a provider</a>
<x-success-alert></x-success-alert> <x-response-alerts></x-response-alerts>
<table class="table table-bordered" id="providers-table"> <table class="table table-bordered" id="providers-table">
<thead class="table-light"> <thead class="table-light">
<tr class="bg-gray-100"> <tr class="bg-gray-100">

View File

@ -1,4 +1,4 @@
@section('title') {{ $provider->name }} {{'provider'}} @endsection @section("title", "{$provider->name } provider")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Provider details') }} {{ __('Provider details') }}

View File

@ -1,4 +1,4 @@
@section('title') {{'Enter new reseller hosting'}} @endsection @section("title", "Enter new reseller hosting")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Insert a new reseller hosting') }} {{ __('Insert a new reseller hosting') }}

View File

@ -1,4 +1,4 @@
@section('title') {{$reseller->main_domain}} {{'edit'}} @endsection @section("title", "{$reseller->main_domain} edit")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
Edit {{ $reseller->main_domain }} Edit {{ $reseller->main_domain }}

View File

@ -1,4 +1,4 @@
@section('title') {{'Resellers'}} @endsection @section("title", "Resellers")
@section('style') @section('style')
<x-modal-style></x-modal-style> <x-modal-style></x-modal-style>
@endsection @endsection
@ -56,8 +56,8 @@
class="text-body mx-1"><i class="fas fa-eye" title="view"></i></a> class="text-body mx-1"><i class="fas fa-eye" title="view"></i></a>
<a href="{{ route('reseller.edit', $row->id) }}" <a href="{{ route('reseller.edit', $row->id) }}"
class="text-body mx-1"><i class="fas fa-pen" title="edit"></i></a> class="text-body mx-1"><i class="fas fa-pen" title="edit"></i></a>
<i class="fas fa-trash text-danger ms-3" @click="modalForm" <i class="fas fa-trash text-danger ms-3" @click="confirmDeleteModal"
id="btn-{{$row->main_domain}}" title="{{$row->id}}"></i> id="{{$row->id}}" title="{{$row->main_domain}}"></i>
</form> </form>
</td> </td>
</tr> </tr>
@ -90,10 +90,10 @@
showModal: false showModal: false
}, },
methods: { methods: {
modalForm(event) { confirmDeleteModal(event) {
this.showModal = true; this.showModal = true;
this.modal_hostname = event.target.id.replace('btn-', ''); this.modal_hostname = event.target.title;
this.modal_id = event.target.title; this.modal_id = event.target.id;
this.delete_form_action = 'reseller/' + this.modal_id; this.delete_form_action = 'reseller/' + this.modal_id;
} }
} }

View File

@ -1,4 +1,4 @@
@section('title') {{$reseller->main_domain}} {{'reseller hosting'}} @endsection @section("title", "{$reseller->main_domain} reseller hosting")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Reseller hosting details') }} {{ __('Reseller hosting details') }}

View File

@ -1,4 +1,4 @@
@section('title') {{'Enter new seed box'}} @endsection @section("title", "Enter new seed box")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Insert a new seed box') }} {{ __('Insert a new seed box') }}

View File

@ -1,4 +1,4 @@
@section('title') {{$seedbox_data->title}} {{'edit'}} @endsection @section("title", "{$seedbox_data->title} edit")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
Edit {{ $seedbox_data->title }} Edit {{ $seedbox_data->title }}

View File

@ -1,4 +1,4 @@
@section('title') {{'Seed boxes'}} @endsection @section("title", "Seed boxes")
@section('style') @section('style')
<x-modal-style></x-modal-style> <x-modal-style></x-modal-style>
@endsection @endsection
@ -80,8 +80,8 @@
class="text-body mx-1"> class="text-body mx-1">
<i class="fas fa-pen" title="edit"></i> <i class="fas fa-pen" title="edit"></i>
</a> </a>
<i class="fas fa-trash text-danger ms-3" @click="modalForm" <i class="fas fa-trash text-danger ms-3" @click="confirmDeleteModal"
id="btn-{{$row->title}}" title="{{$row->id}}"></i> id="{{$row->id}}" title="{{$row->title}}"></i>
</form> </form>
</td> </td>
</tr> </tr>
@ -112,10 +112,10 @@
showModal: false showModal: false
}, },
methods: { methods: {
modalForm(event) { confirmDeleteModal(event) {
this.showModal = true; this.showModal = true;
this.modal_hostname = event.target.id.replace('btn-', ''); this.modal_hostname = event.target.title;
this.modal_id = event.target.title; this.modal_id = event.target.id;
this.delete_form_action = 'seedboxes/' + this.modal_id; this.delete_form_action = 'seedboxes/' + this.modal_id;
} }
} }

View File

@ -1,4 +1,4 @@
@section('title') {{$seedbox_data->title}} {{'Seed box'}} @endsection @section("title", "{$seedbox_data->title} seed box")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Seed box details') }} {{ __('Seed box details') }}

View File

@ -1,4 +1,4 @@
@section('title') {{'Choose servers'}} @endsection @section("title", "Choose servers")
@section('scripts') @section('scripts')
<script src="{{ asset('js/vue.min.js') }}"></script> <script src="{{ asset('js/vue.min.js') }}"></script>
@endsection @endsection

View File

@ -1,6 +1,4 @@
@section('title') @section("title", "Compare servers")
{{'Compare servers'}}
@endsection
@section('style') @section('style')
<style> <style>
.td-nowrap { .td-nowrap {

View File

@ -1,4 +1,4 @@
@section('title') {{'Enter new server'}} @endsection @section("title", "Enter new server")
@section('scripts') @section('scripts')
<script src="{{ asset('js/vue.min.js') }}"></script> <script src="{{ asset('js/vue.min.js') }}"></script>
<script src="{{ asset('js/axios.min.js') }}"></script> <script src="{{ asset('js/axios.min.js') }}"></script>
@ -14,7 +14,7 @@
<x-slot name="href">{{ route('servers.index') }}</x-slot> <x-slot name="href">{{ route('servers.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('servers.store') }}" method="POST"> <form action="{{ route('servers.store') }}" method="POST">
@csrf @csrf
<div class="row"> <div class="row">
@ -35,14 +35,16 @@
</div> </div>
<div class="col-12 col-lg-3 mb-4"> <div class="col-12 col-lg-3 mb-4">
<div class="input-group"> <div class="input-group">
<div class="input-group-prepend"><span class="input-group-text">Type</span></div> <div class="input-group-prepend"><span class="input-group-text">Server type</span></div>
<select class="form-control" name="server_type"> <select class="form-control" name="server_type">
<option value="1" selected>VPS</option> <option value="1" selected>KVM</option>
<option value="2">Dedicated</option> <option value="2">OVZ</option>
<option value="3">Semi Dedicated</option> <option value="3">DEDI</option>
<option value="4">NAT</option> <option value="4">LXC</option>
</select> <option value="5">SEMI-DEDI</option>
</div> <option value="6">VMware</option>
<option value="7">NAT</option>
</select></div>
</div> </div>
<div class="col-12 col-lg-3 mb-4"> <div class="col-12 col-lg-3 mb-4">
<x-os-select> <x-os-select>
@ -84,18 +86,6 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-12 col-lg-3 mb-4">
<div class="input-group">
<div class="input-group-prepend"><span class="input-group-text">Virt</span></div>
<select class="form-control" name="virt">
<option value="1" selected="">KVM</option>
<option value="2">OVZ</option>
<option value="3">DEDI</option>
<option value="4">LXC</option>
<option value="5">SEMI-DEDI</option>
<option value="6">VMware</option>
</select></div>
</div>
<div class="col-12 col-lg-3 mb-4"> <div class="col-12 col-lg-3 mb-4">
<x-number-input> <x-number-input>
<x-slot name="title">SSH</x-slot> <x-slot name="title">SSH</x-slot>

View File

@ -1,6 +1,4 @@
@section('title') @section("title", "{$server_data->hostname} edit")
{{$server_data->hostname}} {{'edit'}}
@endsection
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
Edit {{ $server_data->hostname }} Edit {{ $server_data->hostname }}
@ -12,7 +10,7 @@
<x-slot name="href">{{ route('servers.index') }}</x-slot> <x-slot name="href">{{ route('servers.index') }}</x-slot>
Back to servers Back to servers
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('servers.update', $server_data->id) }}" method="POST"> <form action="{{ route('servers.update', $server_data->id) }}" method="POST">
@csrf @csrf
@method('PUT') @method('PUT')
@ -31,43 +29,7 @@
</div> </div>
<div class="col-12 col-lg-3 mb-4"> <div class="col-12 col-lg-3 mb-4">
<div class="input-group"> <div class="input-group">
<div class="input-group-prepend"><span class="input-group-text">Type</span></div> <div class="input-group-prepend"><span class="input-group-text">Server type</span></div>
<select class="form-control" name="server_type">
<option value="1" selected>VPS</option>
<option value="2">Dedicated</option>
<option value="3">Semi Dedicated</option>
<option value="4">NAT</option>
</select>
</div>
</div>
<div class="col-12 col-lg-3 mb-4">
<x-os-select>
<x-slot name="current">{{$server_data->os_id}}</x-slot>
</x-os-select>
</div>
</div>
<div class="row">
<div class="col-12 col-lg-3 mb-4">
<x-text-input>
<x-slot name="title">NS1</x-slot>
<x-slot name="name">ns1</x-slot>
<x-slot name="max">255</x-slot>
<x-slot name="value">{{ $server_data->ns1 }}</x-slot>
</x-text-input>
</div>
<div class="col-12 col-lg-3 mb-4">
<x-text-input>
<x-slot name="title">NS2</x-slot>
<x-slot name="name">ns2</x-slot>
<x-slot name="max">255</x-slot>
<x-slot name="value">{{ $server_data->ns2 }}</x-slot>
</x-text-input>
</div>
</div>
<div class="row">
<div class="col-12 col-lg-3 mb-4">
<div class="input-group">
<div class="input-group-prepend"><span class="input-group-text">Virt</span></div>
<select class="form-control" name="server_type"> <select class="form-control" name="server_type">
<option value="1" {{ ($server_data->server_type === 1) ? 'selected' : '' }}>KVM <option value="1" {{ ($server_data->server_type === 1) ? 'selected' : '' }}>KVM
</option> </option>
@ -83,9 +45,35 @@
<option value="6" {{ ($server_data->server_type === 6) ? 'selected' : '' }}> <option value="6" {{ ($server_data->server_type === 6) ? 'selected' : '' }}>
VMware VMware
</option> </option>
<option value="7" {{ ($server_data->server_type === 7) ? 'selected' : '' }}>
NAT
</option>
</select></div> </select></div>
</div> </div>
<div class="col-12 col-lg-3 mb-4"> <div class="col-12 col-lg-3 mb-4">
<x-os-select>
<x-slot name="current">{{$server_data->os_id}}</x-slot>
</x-os-select>
</div>
</div>
<div class="row">
<div class="col-12 col-lg-2 mb-4">
<x-text-input>
<x-slot name="title">NS1</x-slot>
<x-slot name="name">ns1</x-slot>
<x-slot name="max">255</x-slot>
<x-slot name="value">{{ $server_data->ns1 }}</x-slot>
</x-text-input>
</div>
<div class="col-12 col-lg-2 mb-4">
<x-text-input>
<x-slot name="title">NS2</x-slot>
<x-slot name="name">ns2</x-slot>
<x-slot name="max">255</x-slot>
<x-slot name="value">{{ $server_data->ns2 }}</x-slot>
</x-text-input>
</div>
<div class="col-12 col-lg-2 mb-4">
<x-number-input> <x-number-input>
<x-slot name="title">SSH</x-slot> <x-slot name="title">SSH</x-slot>
<x-slot name="name">ssh_port</x-slot> <x-slot name="name">ssh_port</x-slot>
@ -105,7 +93,7 @@
<x-slot name="value">{{ $server_data->bandwidth }}</x-slot> <x-slot name="value">{{ $server_data->bandwidth }}</x-slot>
</x-number-input> </x-number-input>
</div> </div>
<div class="col-12 col-lg-3 mb-4"> <div class="col-12 col-lg-2 mb-4">
<x-yes-no-select> <x-yes-no-select>
<x-slot name="title">Promo price</x-slot> <x-slot name="title">Promo price</x-slot>
<x-slot name="name">was_promo</x-slot> <x-slot name="name">was_promo</x-slot>

View File

@ -1,6 +1,4 @@
@section('title') @section("title", "Servers")
{{'Servers'}}
@endsection
@section('style') @section('style')
<x-modal-style></x-modal-style> <x-modal-style></x-modal-style>
@endsection @endsection

View File

@ -1,4 +1,4 @@
@section('title') {{'Servers'}} @endsection @section("title", "Servers")
@section('style') @section('style')
<x-modal-style></x-modal-style> <x-modal-style></x-modal-style>
@endsection @endsection
@ -12,6 +12,7 @@
</x-slot> </x-slot>
<div class="container" id="app"> <div class="container" id="app">
<x-delete-confirm-modal></x-delete-confirm-modal> <x-delete-confirm-modal></x-delete-confirm-modal>
<x-response-alerts></x-response-alerts>
<ul class="nav nav-tabs mt-3" id="myTab" role="tablist"> <ul class="nav nav-tabs mt-3" id="myTab" role="tablist">
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link active" id="home-tab" data-bs-toggle="tab" data-bs-target="#home" type="button" <button class="nav-link active" id="home-tab" data-bs-toggle="tab" data-bs-target="#home" type="button"
@ -32,7 +33,6 @@
<a href="{{ route('servers-compare-choose') }}" class="btn btn-primary mb-3 ms-2">Compare <a href="{{ route('servers-compare-choose') }}" class="btn btn-primary mb-3 ms-2">Compare
servers</a> servers</a>
<a href="{{ route('yabs.create') }}" class="btn btn-primary mb-3 ms-2">Add a YABs</a> <a href="{{ route('yabs.create') }}" class="btn btn-primary mb-3 ms-2">Add a YABs</a>
<x-success-alert></x-success-alert>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered"> <table class="table table-bordered">
<thead class="table-light"> <thead class="table-light">
@ -79,7 +79,7 @@
<td class="text-nowrap">{{ $server->provider->name }}</td> <td class="text-nowrap">{{ $server->provider->name }}</td>
<td class="text-nowrap">{{ $server->price->price }} {{$server->price->currency}} {{\App\Process::paymentTermIntToString($server->price->term)}}</td> <td class="text-nowrap">{{ $server->price->price }} {{$server->price->currency}} {{\App\Process::paymentTermIntToString($server->price->term)}}</td>
<td class="text-nowrap"> <td class="text-nowrap">
{{now()->diffInDays(Carbon\Carbon::parse($server->next_due_date), false)}} {{now()->diffInDays(Carbon\Carbon::parse($server->price->next_due_date), false)}}
<small>days</small></td> <small>days</small></td>
<td class="text-nowrap"> {{ $server->owned_since }}</td> <td class="text-nowrap"> {{ $server->owned_since }}</td>
<td class="text-nowrap"> <td class="text-nowrap">
@ -97,8 +97,8 @@
title="check if up" title="check if up"
@click="onClk"> @click="onClk">
</i> </i>
<i class="fas fa-trash text-danger ms-3" @click="modalForm" <i class="fas fa-trash text-danger ms-3" @click="confirmDeleteModal"
id="btn-{{$server->hostname}}" title="{{$server->id}}"></i> id="{{$server->id}}" title="{{$server->hostname}}"></i>
</form> </form>
</td> </td>
</tr> </tr>
@ -118,7 +118,6 @@
<a href="{{ route('servers.create') }}" class="btn btn-primary mb-3">Add server</a> <a href="{{ route('servers.create') }}" class="btn btn-primary mb-3">Add server</a>
<a href="{{ route('servers-compare-choose') }}" class="btn btn-primary mb-3 ms-2">Compare <a href="{{ route('servers-compare-choose') }}" class="btn btn-primary mb-3 ms-2">Compare
servers</a> servers</a>
<x-success-alert></x-success-alert>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered"> <table class="table table-bordered">
<thead class="table-light"> <thead class="table-light">
@ -179,8 +178,8 @@
title="check if up" title="check if up"
@click="onClk"> @click="onClk">
</i> </i>
<i class="fas fa-trash text-danger ms-3" @click="modalForm" <i class="fas fa-trash text-danger ms-3" @click="confirmDeleteModal"
id="btn-{{$server->hostname}}" title="{{$server->id}}"></i> id="{{$server->id}}" title="{{$server->hostname}}"></i>
</form> </form>
</td> </td>
</tr> </tr>
@ -237,10 +236,10 @@
}); });
} }
}, },
modalForm(event) { confirmDeleteModal(event) {
this.showModal = true; this.showModal = true;
this.modal_hostname = event.target.id.replace('btn-', ''); this.modal_hostname = event.target.title;
this.modal_id = event.target.title; this.modal_id = event.target.id;
this.delete_form_action = 'servers/' + this.modal_id; this.delete_form_action = 'servers/' + this.modal_id;
} }
} }

View File

@ -1,4 +1,4 @@
@section('title') {{'Public viewable servers'}} @endsection @section("title", "Public viewable servers")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Servers') }} {{ __('Servers') }}

View File

@ -1,6 +1,4 @@
@section('title') @section("title", "{$server_data->hostname} server")
{{$server_data->hostname}} {{'server'}}
@endsection
@section('scripts') @section('scripts')
<script> <script>
function showYabsCode() { function showYabsCode() {
@ -37,7 +35,7 @@
<tr> <tr>
<td class="px-2 py-2 font-bold text-muted">Type</td> <td class="px-2 py-2 font-bold text-muted">Type</td>
<td> <td>
{{ $server_data->serviceServerType($server_data->server_type) }} {{ $server_data->serviceServerType($server_data->server_type, false) }}
</td> </td>
</tr> </tr>
<tr> <tr>

View File

@ -1,4 +1,4 @@
@section('title') {{'Edit settings'}} @endsection @section("title", "Edit settings")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
Edit Settings Edit Settings

View File

@ -1,4 +1,4 @@
@section('title') {{'Enter new shared hosting'}} @endsection @section("title", "Enter new shared hosting")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Insert a new shared hosting') }} {{ __('Insert a new shared hosting') }}

View File

@ -1,4 +1,4 @@
@section('title') {{$shared->main_domain}} {{'edit'}} @endsection @section("title", "{$shared->main_domain} edit")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
Edit {{ $shared->main_domain }} Edit {{ $shared->main_domain }}

View File

@ -1,4 +1,4 @@
@section('title') {{'Shared hosting'}} @endsection @section("title", "Shared hosting")
@section('style') @section('style')
<x-modal-style></x-modal-style> <x-modal-style></x-modal-style>
@endsection @endsection
@ -58,8 +58,8 @@
<i class="fas fa-pen" title="edit"></i> <i class="fas fa-pen" title="edit"></i>
</a> </a>
<i class="fas fa-trash text-danger ms-3" @click="modalForm" <i class="fas fa-trash text-danger ms-3" @click="confirmDeleteModal"
id="btn-{{$row->main_domain}}" title="{{$row->id}}"></i> id="{{$row->id}}" title="{{$row->main_domain}}"></i>
</form> </form>
</td> </td>
</tr> </tr>
@ -90,10 +90,10 @@
showModal: false showModal: false
}, },
methods: { methods: {
modalForm(event) { confirmDeleteModal(event) {
this.showModal = true; this.showModal = true;
this.modal_hostname = event.target.id.replace('btn-', ''); this.modal_hostname = event.target.title;
this.modal_id = event.target.title; this.modal_id = event.target.id;
this.delete_form_action = 'shared/' + this.modal_id; this.delete_form_action = 'shared/' + this.modal_id;
} }
} }

View File

@ -1,4 +1,4 @@
@section('title') {{$shared->main_domain}} {{'shared'}} @endsection @section("title", "{$shared->main_domain} shared")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Share hosting details') }} {{ __('Share hosting details') }}

View File

@ -1,132 +0,0 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laravel</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" rel="stylesheet">
<!-- Styles -->
<style>
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-t{border-top-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}}
</style>
<style>
body {
font-family: 'Nunito';
}
</style>
</head>
<body class="antialiased">
<div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0">
@if (Route::has('login'))
<div class="hidden fixed top-0 right-0 px-6 py-4 sm:block">
@auth
<a href="{{ url('/dashboard') }}" class="text-sm text-gray-700 underline">Dashboard</a>
@else
<a href="{{ route('login') }}" class="text-sm text-gray-700 underline">Login</a>
@if (Route::has('register'))
<a href="{{ route('register') }}" class="ml-4 text-sm text-gray-700 underline">Register</a>
@endif
@endauth
</div>
@endif
<div class="max-w-6xl mx-auto sm:px-6 lg:px-8">
<div class="flex justify-center pt-8 sm:justify-start sm:pt-0">
<svg viewBox="0 0 651 192" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-16 w-auto text-gray-700 sm:h-20">
<g clip-path="url(#clip0)" fill="#EF3B2D">
<path d="M248.032 44.676h-16.466v100.23h47.394v-14.748h-30.928V44.676zM337.091 87.202c-2.101-3.341-5.083-5.965-8.949-7.875-3.865-1.909-7.756-2.864-11.669-2.864-5.062 0-9.69.931-13.89 2.792-4.201 1.861-7.804 4.417-10.811 7.661-3.007 3.246-5.347 6.993-7.016 11.239-1.672 4.249-2.506 8.713-2.506 13.389 0 4.774.834 9.26 2.506 13.459 1.669 4.202 4.009 7.925 7.016 11.169 3.007 3.246 6.609 5.799 10.811 7.66 4.199 1.861 8.828 2.792 13.89 2.792 3.913 0 7.804-.955 11.669-2.863 3.866-1.908 6.849-4.533 8.949-7.875v9.021h15.607V78.182h-15.607v9.02zm-1.431 32.503c-.955 2.578-2.291 4.821-4.009 6.73-1.719 1.91-3.795 3.437-6.229 4.582-2.435 1.146-5.133 1.718-8.091 1.718-2.96 0-5.633-.572-8.019-1.718-2.387-1.146-4.438-2.672-6.156-4.582-1.719-1.909-3.032-4.152-3.938-6.73-.909-2.577-1.36-5.298-1.36-8.161 0-2.864.451-5.585 1.36-8.162.905-2.577 2.219-4.819 3.938-6.729 1.718-1.908 3.77-3.437 6.156-4.582 2.386-1.146 5.059-1.718 8.019-1.718 2.958 0 5.656.572 8.091 1.718 2.434 1.146 4.51 2.674 6.229 4.582 1.718 1.91 3.054 4.152 4.009 6.729.953 2.577 1.432 5.298 1.432 8.162-.001 2.863-.479 5.584-1.432 8.161zM463.954 87.202c-2.101-3.341-5.083-5.965-8.949-7.875-3.865-1.909-7.756-2.864-11.669-2.864-5.062 0-9.69.931-13.89 2.792-4.201 1.861-7.804 4.417-10.811 7.661-3.007 3.246-5.347 6.993-7.016 11.239-1.672 4.249-2.506 8.713-2.506 13.389 0 4.774.834 9.26 2.506 13.459 1.669 4.202 4.009 7.925 7.016 11.169 3.007 3.246 6.609 5.799 10.811 7.66 4.199 1.861 8.828 2.792 13.89 2.792 3.913 0 7.804-.955 11.669-2.863 3.866-1.908 6.849-4.533 8.949-7.875v9.021h15.607V78.182h-15.607v9.02zm-1.432 32.503c-.955 2.578-2.291 4.821-4.009 6.73-1.719 1.91-3.795 3.437-6.229 4.582-2.435 1.146-5.133 1.718-8.091 1.718-2.96 0-5.633-.572-8.019-1.718-2.387-1.146-4.438-2.672-6.156-4.582-1.719-1.909-3.032-4.152-3.938-6.73-.909-2.577-1.36-5.298-1.36-8.161 0-2.864.451-5.585 1.36-8.162.905-2.577 2.219-4.819 3.938-6.729 1.718-1.908 3.77-3.437 6.156-4.582 2.386-1.146 5.059-1.718 8.019-1.718 2.958 0 5.656.572 8.091 1.718 2.434 1.146 4.51 2.674 6.229 4.582 1.718 1.91 3.054 4.152 4.009 6.729.953 2.577 1.432 5.298 1.432 8.162 0 2.863-.479 5.584-1.432 8.161zM650.772 44.676h-15.606v100.23h15.606V44.676zM365.013 144.906h15.607V93.538h26.776V78.182h-42.383v66.724zM542.133 78.182l-19.616 51.096-19.616-51.096h-15.808l25.617 66.724h19.614l25.617-66.724h-15.808zM591.98 76.466c-19.112 0-34.239 15.706-34.239 35.079 0 21.416 14.641 35.079 36.239 35.079 12.088 0 19.806-4.622 29.234-14.688l-10.544-8.158c-.006.008-7.958 10.449-19.832 10.449-13.802 0-19.612-11.127-19.612-16.884h51.777c2.72-22.043-11.772-40.877-33.023-40.877zm-18.713 29.28c.12-1.284 1.917-16.884 18.589-16.884 16.671 0 18.697 15.598 18.813 16.884h-37.402zM184.068 43.892c-.024-.088-.073-.165-.104-.25-.058-.157-.108-.316-.191-.46-.056-.097-.137-.176-.203-.265-.087-.117-.161-.242-.265-.345-.085-.086-.194-.148-.29-.223-.109-.085-.206-.182-.327-.252l-.002-.001-.002-.002-35.648-20.524a2.971 2.971 0 00-2.964 0l-35.647 20.522-.002.002-.002.001c-.121.07-.219.167-.327.252-.096.075-.205.138-.29.223-.103.103-.178.228-.265.345-.066.089-.147.169-.203.265-.083.144-.133.304-.191.46-.031.085-.08.162-.104.25-.067.249-.103.51-.103.776v38.979l-29.706 17.103V24.493a3 3 0 00-.103-.776c-.024-.088-.073-.165-.104-.25-.058-.157-.108-.316-.191-.46-.056-.097-.137-.176-.203-.265-.087-.117-.161-.242-.265-.345-.085-.086-.194-.148-.29-.223-.109-.085-.206-.182-.327-.252l-.002-.001-.002-.002L40.098 1.396a2.971 2.971 0 00-2.964 0L1.487 21.919l-.002.002-.002.001c-.121.07-.219.167-.327.252-.096.075-.205.138-.29.223-.103.103-.178.228-.265.345-.066.089-.147.169-.203.265-.083.144-.133.304-.191.46-.031.085-.08.162-.104.25-.067.249-.103.51-.103.776v122.09c0 1.063.568 2.044 1.489 2.575l71.293 41.045c.156.089.324.143.49.202.078.028.15.074.23.095a2.98 2.98 0 001.524 0c.069-.018.132-.059.2-.083.176-.061.354-.119.519-.214l71.293-41.045a2.971 2.971 0 001.489-2.575v-38.979l34.158-19.666a2.971 2.971 0 001.489-2.575V44.666a3.075 3.075 0 00-.106-.774zM74.255 143.167l-29.648-16.779 31.136-17.926.001-.001 34.164-19.669 29.674 17.084-21.772 12.428-43.555 24.863zm68.329-76.259v33.841l-12.475-7.182-17.231-9.92V49.806l12.475 7.182 17.231 9.92zm2.97-39.335l29.693 17.095-29.693 17.095-29.693-17.095 29.693-17.095zM54.06 114.089l-12.475 7.182V46.733l17.231-9.92 12.475-7.182v74.537l-17.231 9.921zM38.614 7.398l29.693 17.095-29.693 17.095L8.921 24.493 38.614 7.398zM5.938 29.632l12.475 7.182 17.231 9.92v79.676l.001.005-.001.006c0 .114.032.221.045.333.017.146.021.294.059.434l.002.007c.032.117.094.222.14.334.051.124.088.255.156.371a.036.036 0 00.004.009c.061.105.149.191.222.288.081.105.149.22.244.314l.008.01c.084.083.19.142.284.215.106.083.202.178.32.247l.013.005.011.008 34.139 19.321v34.175L5.939 144.867V29.632h-.001zm136.646 115.235l-65.352 37.625V148.31l48.399-27.628 16.953-9.677v33.862zm35.646-61.22l-29.706 17.102V66.908l17.231-9.92 12.475-7.182v33.841z"/>
</g>
</svg>
</div>
<div class="mt-8 bg-white dark:bg-gray-800 overflow-hidden shadow sm:rounded-lg">
<div class="grid grid-cols-1 md:grid-cols-2">
<div class="p-6">
<div class="flex items-center">
<svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="w-8 h-8 text-gray-500"><path d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"></path></svg>
<div class="ml-4 text-lg leading-7 font-semibold"><a href="https://laravel.com/docs" class="underline text-gray-900 dark:text-white">Documentation</a></div>
</div>
<div class="ml-12">
<div class="mt-2 text-gray-600 dark:text-gray-400 text-sm">
Laravel has wonderful, thorough documentation covering every aspect of the framework. Whether you are new to the framework or have previous experience with Laravel, we recommend reading all of the documentation from beginning to end.
</div>
</div>
</div>
<div class="p-6 border-t border-gray-200 dark:border-gray-700 md:border-t-0 md:border-l">
<div class="flex items-center">
<svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="w-8 h-8 text-gray-500"><path d="M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z"></path><path d="M15 13a3 3 0 11-6 0 3 3 0 016 0z"></path></svg>
<div class="ml-4 text-lg leading-7 font-semibold"><a href="https://laracasts.com" class="underline text-gray-900 dark:text-white">Laracasts</a></div>
</div>
<div class="ml-12">
<div class="mt-2 text-gray-600 dark:text-gray-400 text-sm">
Laracasts offers thousands of video tutorials on Laravel, PHP, and JavaScript development. Check them out, see for yourself, and massively level up your development skills in the process.
</div>
</div>
</div>
<div class="p-6 border-t border-gray-200 dark:border-gray-700">
<div class="flex items-center">
<svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="w-8 h-8 text-gray-500"><path d="M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"></path></svg>
<div class="ml-4 text-lg leading-7 font-semibold"><a href="https://laravel-news.com/" class="underline text-gray-900 dark:text-white">Laravel News</a></div>
</div>
<div class="ml-12">
<div class="mt-2 text-gray-600 dark:text-gray-400 text-sm">
Laravel News is a community driven portal and newsletter aggregating all of the latest and most important news in the Laravel ecosystem, including new package releases and tutorials.
</div>
</div>
</div>
<div class="p-6 border-t border-gray-200 dark:border-gray-700 md:border-l">
<div class="flex items-center">
<svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="w-8 h-8 text-gray-500"><path d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
<div class="ml-4 text-lg leading-7 font-semibold text-gray-900 dark:text-white">Vibrant Ecosystem</div>
</div>
<div class="ml-12">
<div class="mt-2 text-gray-600 dark:text-gray-400 text-sm">
Laravel's robust library of first-party tools and libraries, such as <a href="https://forge.laravel.com" class="underline">Forge</a>, <a href="https://vapor.laravel.com" class="underline">Vapor</a>, <a href="https://nova.laravel.com" class="underline">Nova</a>, and <a href="https://envoyer.io" class="underline">Envoyer</a> help you take your projects to the next level. Pair them with powerful open source libraries like <a href="https://laravel.com/docs/billing" class="underline">Cashier</a>, <a href="https://laravel.com/docs/dusk" class="underline">Dusk</a>, <a href="https://laravel.com/docs/broadcasting" class="underline">Echo</a>, <a href="https://laravel.com/docs/horizon" class="underline">Horizon</a>, <a href="https://laravel.com/docs/sanctum" class="underline">Sanctum</a>, <a href="https://laravel.com/docs/telescope" class="underline">Telescope</a>, and more.
</div>
</div>
</div>
</div>
</div>
<div class="flex justify-center mt-4 sm:items-center sm:justify-between">
<div class="text-center text-sm text-gray-500 sm:text-left">
<div class="flex items-center">
<svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor" class="-mt-px w-5 h-5 text-gray-400">
<path d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path>
</svg>
<a href="https://laravel.bigcartel.com" class="ml-1 underline">
Shop
</a>
<svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" class="ml-4 -mt-px w-5 h-5 text-gray-400">
<path d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"></path>
</svg>
<a href="https://github.com/sponsors/taylorotwell" class="ml-1 underline">
Sponsor
</a>
</div>
</div>
<div class="ml-4 text-center text-sm text-gray-500 sm:text-right sm:ml-0">
Laravel v{{ Illuminate\Foundation\Application::VERSION }} (PHP v{{ PHP_VERSION }})
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -1,6 +1,4 @@
@section('title') @section("title", "Choose YABs to compare")
{{'Choose YABs to compare'}}
@endsection
@section('scripts') @section('scripts')
<script src="{{ asset('js/vue.min.js') }}"></script> <script src="{{ asset('js/vue.min.js') }}"></script>
@endsection @endsection

View File

@ -1,4 +1,4 @@
@section('title') {{'Compare YABs'}} @endsection @section("title", "Compare YABS")
@section('style') @section('style')
<style> <style>
.td-nowrap { .td-nowrap {

View File

@ -1,4 +1,4 @@
@section('title') {{'Insert YABs'}} @endsection @section("title", "Insert YABS")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('Insert a YABs') }} {{ __('Insert a YABs') }}
@ -10,7 +10,7 @@
<x-slot name="href">{{ route('yabs.index') }}</x-slot> <x-slot name="href">{{ route('yabs.index') }}</x-slot>
Go back Go back
</x-back-button> </x-back-button>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<form action="{{ route('yabs.store') }}" method="POST"> <form action="{{ route('yabs.store') }}" method="POST">
@csrf @csrf
<div class="row"> <div class="row">

View File

@ -1,4 +1,4 @@
@section('title') {{'YABs'}} @endsection @section("title", "YABS")
@section('style') @section('style')
<x-modal-style></x-modal-style> <x-modal-style></x-modal-style>
@endsection @endsection
@ -14,8 +14,7 @@
<x-delete-confirm-modal></x-delete-confirm-modal> <x-delete-confirm-modal></x-delete-confirm-modal>
<x-card class="shadow mt-3"> <x-card class="shadow mt-3">
<a href="{{ route('yabs.compare-choose') }}" class="btn btn-success mb-3">Compare YABs</a> <a href="{{ route('yabs.compare-choose') }}" class="btn btn-success mb-3">Compare YABs</a>
<x-errors-alert></x-errors-alert> <x-response-alerts></x-response-alerts>
<x-success-alert></x-success-alert>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered"> <table class="table table-bordered">
<thead class="table-light"> <thead class="table-light">

View File

@ -1,4 +1,4 @@
@section('title') {{$yab[0]->hostname}} {{$yab[0]->id}} {{'YABs'}} @endsection @section("title", "{$yab[0]->hostname} {$yab[0]->id} YABS")
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
{{ __('YABs details') }} {{ __('YABs details') }}

View File

@ -30,11 +30,6 @@ use Illuminate\Support\Facades\Route;
Route::get('/', 'App\Http\Controllers\HomeController@index')->name('/'); Route::get('/', 'App\Http\Controllers\HomeController@index')->name('/');
Route::get('dashboard', function () {
return redirect('/');
});
require __DIR__ . '/auth.php'; require __DIR__ . '/auth.php';
Route::resource('account', AccountController::class)->middleware(['auth']); Route::resource('account', AccountController::class)->middleware(['auth']);
@ -61,7 +56,6 @@ Route::get('servers/public', 'App\Http\Controllers\ServerController@showServersP
Route::resource('servers', ServerController::class)->middleware(['auth']); Route::resource('servers', ServerController::class)->middleware(['auth']);
Route::resource('settings', SettingsController::class)->middleware(['auth']); Route::resource('settings', SettingsController::class)->middleware(['auth']);
Route::resource('seedboxes', SeedBoxesController::class)->middleware(['auth']); Route::resource('seedboxes', SeedBoxesController::class)->middleware(['auth']);