This commit is contained in:
Saeed Vaziry
2023-07-02 12:47:50 +02:00
commit 5c72f12490
825 changed files with 41659 additions and 0 deletions

View File

@ -0,0 +1,57 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>
@if(isset($pageTitle))
{{ $pageTitle }} -
@endif
{{ config('app.name', 'Laravel') }}
</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
<!-- Scripts -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
@livewireStyles
<script src="{{ asset('static/libs/ace/ace.js') }}"></script>
<script src="{{ asset('static/libs/ace/theme-github.js') }}"></script>
<script src="{{ asset('static/libs/ace/theme-one-dark.js') }}"></script>
<script src="{{ asset('static/libs/ace/mode-sh.js') }}"></script>
</head>
<body class="font-sans antialiased bg-gray-100 dark:bg-gray-900 dark:text-gray-300 min-h-screen">
<div class="min-h-screen bg-gray-100 dark:bg-gray-900">
@include('layouts.navigation')
<!-- Page Heading -->
@if (isset($header))
<header class="bg-white dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700">
<div class="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8">
{{ $header }}
</div>
</header>
@endif
<!-- Page Content -->
<main>
{{ $slot }}
</main>
</div>
<x-toast />
@livewireScripts
<script>
document.addEventListener('livewire:load', () => {
Livewire.onPageExpired((response, message) => {
({href: window.location.href} = window.location);
})
})
</script>
</body>
</html>

View File

@ -0,0 +1,30 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
<!-- Scripts -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
</head>
<body class="font-sans text-gray-900 antialiased">
<div class="min-h-screen flex flex-col sm:justify-center items-center pt-6 sm:pt-0 bg-gray-100 dark:bg-gray-900">
<div>
<a href="/">
<x-application-logo class="w-20 h-20 fill-current text-gray-500 rounded-lg" />
</a>
</div>
<div class="w-full sm:max-w-md mt-6 px-6 py-4 bg-white dark:bg-gray-800 shadow-md overflow-hidden rounded-lg">
{{ $slot }}
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,63 @@
<nav x-data="{ open: false }" class="bg-white dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700">
<!-- Primary Navigation Menu -->
<div class="max-w-7xl mx-auto px-6">
<div class="flex justify-between h-16">
<div class="flex">
<!-- Logo -->
<div class="shrink-0 flex items-center">
<x-application-logo class="block h-9 w-auto fill-current text-gray-800 dark:text-gray-200 rounded-lg" />
</div>
<!-- Navigation Links -->
<div class="hidden space-x-8 sm:-my-px sm:ml-10 sm:flex">
<x-nav-link :href="route('servers')" :active="request()->routeIs('servers') || request()->is('servers/*')">
<x-heroicon-o-server-stack class="w-6 h-6 mr-1" />
{{ __('Servers') }}
</x-nav-link>
</div>
</div>
<!-- Settings Dropdown -->
<livewire:user-dropdown />
<!-- Hamburger -->
<div class="-mr-2 flex items-center sm:hidden">
<button @click="open = ! open" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 dark:text-gray-500 hover:text-gray-500 dark:hover:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-900 focus:outline-none focus:bg-gray-100 dark:focus:bg-gray-900 focus:text-gray-500 dark:focus:text-gray-400 transition duration-150 ease-in-out">
<svg class="h-6 w-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
<path :class="{'hidden': open, 'inline-flex': ! open }" class="inline-flex" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
<path :class="{'hidden': ! open, 'inline-flex': open }" class="hidden" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
</svg>
</button>
</div>
</div>
</div>
<!-- Responsive Navigation Menu -->
<div :class="{'block': open, 'hidden': ! open}" class="hidden sm:hidden">
<!-- Responsive Settings Options -->
<div class="pt-4 pb-1 border-t border-gray-200 dark:border-gray-600">
<div class="px-4">
<div class="font-medium text-base text-gray-800 dark:text-gray-200">{{ Auth::user()->name }}</div>
<div class="font-medium text-sm text-gray-500">{{ Auth::user()->email }}</div>
</div>
<div class="mt-3 space-y-1">
<x-responsive-nav-link :href="route('profile')">
{{ __('Profile') }}
</x-responsive-nav-link>
<x-responsive-nav-link :href="route('profile')">
{{ __('Settings') }}
</x-responsive-nav-link>
<!-- Authentication -->
<form method="POST" action="{{ route('logout') }}">
@csrf
<x-responsive-nav-link :href="route('logout')" onclick="event.preventDefault(); this.closest('form').submit();">
{{ __('Log Out') }}
</x-responsive-nav-link>
</form>
</div>
</div>
</div>
</nav>

View File

@ -0,0 +1,34 @@
<x-app-layout>
@if(isset($pageTitle))
<x-slot name="pageTitle">{{ $pageTitle }}</x-slot>
@endif
<x-container class="flex">
<div class="hidden lg:block lg:flex-none w-64">
<x-sidebar-link :href="route('profile')" :active="request()->routeIs('profile')">
<x-heroicon-o-user class="w-6 h-6 mr-1" />
{{ __('Profile') }}
</x-sidebar-link>
<x-sidebar-link :href="route('server-providers')" :active="request()->routeIs('server-providers')">
<x-heroicon-o-server-stack class="w-6 h-6 mr-1" />
{{ __('Server Providers') }}
</x-sidebar-link>
<x-sidebar-link :href="route('source-controls')" :active="request()->routeIs('source-controls')">
<x-heroicon-o-code-bracket class="w-6 h-6 mr-1" />
{{ __('Source Controls') }}
</x-sidebar-link>
<x-sidebar-link :href="route('notification-channels')" :active="request()->routeIs('notification-channels')">
<x-heroicon-o-bell class="w-6 h-6 mr-1" />
{{ __('Notification Channels') }}
</x-sidebar-link>
<x-sidebar-link :href="route('ssh-keys')" :active="request()->routeIs('ssh-keys')">
<x-heroicon-o-key class="w-6 h-6 mr-1" />
{{ __('SSH Keys') }}
</x-sidebar-link>
</div>
<div class="w-full">
{{ $slot }}
</div>
</x-container>
</x-app-layout>

View File

@ -0,0 +1,60 @@
<x-app-layout>
@if(isset($pageTitle))
<x-slot name="pageTitle">{{ $pageTitle }} - {{ $server->name }}</x-slot>
@endif
<x-container class="flex">
@if(in_array($server->status, [\App\Enums\ServerStatus::READY, \App\Enums\ServerStatus::DISCONNECTED]))
<div class="hidden lg:block lg:flex-none w-64">
<x-sidebar-link :href="route('servers.show', ['server' => $server])" :active="request()->routeIs('servers.show')">
<x-heroicon-o-home class="w-6 h-6 mr-1" />
{{ __('Overview') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.sites', ['server' => $server])" :active="request()->routeIs('servers.sites') || request()->is('servers/*/sites/*')">
<x-heroicon-o-globe-alt class="w-6 h-6 mr-1" />
{{ __('Sites') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.databases', ['server' => $server])" :active="request()->routeIs('servers.databases')">
<x-heroicon-o-circle-stack class="w-6 h-6 mr-1" />
{{ __('Databases') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.php', ['server' => $server])" :active="request()->routeIs('servers.php')">
<x-heroicon-o-code-bracket class="w-6 h-6 mr-1" />
{{ __('PHP') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.firewall', ['server' => $server])" :active="request()->routeIs('servers.firewall')">
<x-heroicon-o-fire class="w-6 h-6 mr-1" />
{{ __('Firewall') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.cronjobs', ['server' => $server])" :active="request()->routeIs('servers.cronjobs')">
<x-heroicon-o-clock class="w-6 h-6 mr-1" />
{{ __('Cronjobs') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.ssh-keys', ['server' => $server])" :active="request()->routeIs('servers.ssh-keys')">
<x-heroicon-o-key class="w-6 h-6 mr-1" />
{{ __('SSH Keys') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.services', ['server' => $server])" :active="request()->routeIs('servers.services')">
<x-heroicon-o-cog class="w-6 h-6 mr-1" />
{{ __('Services') }}
</x-sidebar-link>
{{--<x-sidebar-link :href="route('servers.daemons', ['server' => $server])" :active="request()->routeIs('servers.daemons')">--}}
{{-- <x-heroicon-o-queue-list class="w-6 h-6 mr-1" />--}}
{{-- {{ __('Daemons') }}--}}
{{--</x-sidebar-link>--}}
<x-sidebar-link :href="route('servers.settings', ['server' => $server])" :active="request()->routeIs('servers.settings')">
<x-heroicon-o-cog-6-tooth class="w-6 h-6 mr-1" />
{{ __('Settings') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.logs', ['server' => $server])" :active="request()->routeIs('servers.logs')">
<x-heroicon-o-square-3-stack-3d class="w-6 h-6 mr-1" />
{{ __('Logs') }}
</x-sidebar-link>
</div>
@endif
<div class="w-full space-y-10">
{{ $slot }}
</div>
</x-container>
</x-app-layout>

View File

@ -0,0 +1,44 @@
<x-app-layout>
@if(isset($pageTitle))
<x-slot name="pageTitle">{{ $site->domain }} - {{ $pageTitle }}</x-slot>
@endif
<x-container class="flex">
@if($site->status == \App\Enums\SiteStatus::READY)
<div class="hidden lg:block lg:flex-none w-64">
<x-sidebar-link :href="route('servers.sites.show', ['server' => $site->server, 'site' => $site])" :active="request()->routeIs('servers.sites.show')">
<x-heroicon-o-home class="w-6 h-6 mr-1" />
{{ __('Overview') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.sites.application', ['server' => $site->server, 'site' => $site])" :active="request()->routeIs('servers.sites.application')">
<x-heroicon-o-window class="w-6 h-6 mr-1" />
{{ __('Application') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.sites.ssl', ['server' => $site->server, 'site' => $site])" :active="request()->routeIs('servers.sites.ssl')">
<x-heroicon-o-lock-closed class="w-6 h-6 mr-1" />
{{ __('SSL') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.sites.queues', ['server' => $site->server, 'site' => $site])" :active="request()->routeIs('servers.sites.queues')">
<x-heroicon-o-queue-list class="w-6 h-6 mr-1" />
{{ __('Queues') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.sites.settings', ['server' => $site->server, 'site' => $site])" :active="request()->routeIs('servers.sites.settings')">
<x-heroicon-o-cog-6-tooth class="w-6 h-6 mr-1" />
{{ __('Settings') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.sites.logs', ['server' => $site->server, 'site' => $site])" :active="request()->routeIs('servers.sites.logs')">
<x-heroicon-o-square-3-stack-3d class="w-6 h-6 mr-1" />
{{ __('Logs') }}
</x-sidebar-link>
<x-sidebar-link :href="route('servers.sites', ['server' => $site->server])">
<x-heroicon-o-arrow-left class="w-6 h-6 mr-1" />
{{ __('Go Back') }}
</x-sidebar-link>
</div>
@endif
<div class="w-full space-y-10">
{{ $slot }}
</div>
</x-container>
</x-app-layout>