coolify/resources/views/layouts/base.blade.php

226 lines
8.6 KiB
PHP
Raw Normal View History

2023-08-29 16:31:46 +02:00
<!DOCTYPE html>
2024-03-24 16:00:25 +01:00
<html data-theme="dark" lang="{{ str_replace('_', '-', app()->getLocale()) }}">
2023-11-21 12:07:06 +01:00
2023-08-29 16:31:46 +02:00
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
2023-10-17 13:28:33 +02:00
<meta name="robots" content="noindex">
@use('App\Models\InstanceSettings')
@php
2024-07-12 15:45:36 +02:00
$instanceSettings = \App\Models\InstanceSettings::get();
2024-06-25 13:35:58 +02:00
$name = null;
2024-06-22 10:30:40 +02:00
2024-06-25 13:35:58 +02:00
if ($instanceSettings) {
$displayName = $instanceSettings->getTitleDisplayName();
2024-06-25 13:35:58 +02:00
if (strlen($displayName) > 0) {
$name = $displayName . ' ';
}
2024-06-22 10:30:40 +02:00
}
@endphp
2024-06-25 13:35:58 +02:00
<title>{{ $name }}{{ $title ?? 'Coolify' }}</title>
2023-08-29 16:31:46 +02:00
@env('local')
<link rel="icon" href="{{ asset('favicon-dev.png') }}" type="image/x-icon" />
@else
<link rel="icon" href="{{ asset('coolify-transparent.png') }}" type="image/x-icon" />
@endenv
<meta name="csrf-token" content="{{ csrf_token() }}">
@vite(['resources/js/app.js', 'resources/css/app.css'])
<style>
[x-cloak] {
display: none !important;
}
</style>
2023-09-11 16:41:43 +02:00
@if (config('app.name') == 'Coolify Cloud')
<script defer data-domain="app.coolify.io" src="https://analytics.coollabs.io/js/plausible.js"></script>
@endif
2023-12-06 10:32:49 +01:00
@auth
2024-06-25 13:54:44 +02:00
<script type="text/javascript" src="{{ URL::asset('js/echo.js') }}"></script>
<script type="text/javascript" src="{{ URL::asset('js/pusher.js') }}"></script>
<script type="text/javascript" src="{{ URL::asset('js/apexcharts.js') }}"></script>
2023-12-06 10:32:49 +01:00
@endauth
2023-08-29 16:31:46 +02:00
</head>
@section('body')
2023-11-21 12:07:06 +01:00
2023-08-29 16:31:46 +02:00
<body>
<x-toast />
2023-12-07 19:06:32 +01:00
<script data-navigate-once>
2024-05-31 11:20:31 +02:00
if (!('theme' in localStorage)) {
localStorage.theme = 'dark';
document.documentElement.classList.add('dark')
} else if (localStorage.theme === 'dark') {
2024-03-19 15:37:16 +01:00
document.documentElement.classList.add('dark')
2024-03-26 10:24:53 +01:00
} else if (localStorage.theme === 'light') {
2024-03-19 15:37:16 +01:00
document.documentElement.classList.remove('dark')
2024-03-26 10:24:53 +01:00
} else {
2024-05-06 14:01:07 +02:00
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.documentElement.classList.add('dark')
} else {
document.documentElement.classList.remove('dark')
}
2024-03-19 15:37:16 +01:00
}
2024-06-20 13:17:06 +02:00
let theme = localStorage.theme
let baseColor = '#FCD452'
let textColor = '#ffffff'
2024-06-24 11:21:39 +02:00
let editorBackground = '#181818'
let editorTheme = 'blackboard'
2024-06-20 13:17:06 +02:00
function checkTheme() {
theme = localStorage.theme
if (theme == 'dark') {
baseColor = '#FCD452'
textColor = '#ffffff'
2024-06-24 11:21:39 +02:00
editorBackground = '#181818'
editorTheme = 'blackboard'
2024-06-20 13:17:06 +02:00
} else {
baseColor = 'black'
textColor = '#000000'
2024-06-24 11:21:39 +02:00
editorBackground = '#ffffff'
editorTheme = null
2024-06-20 13:17:06 +02:00
}
}
2023-12-10 15:57:46 +01:00
@auth
window.Pusher = Pusher;
window.Echo = new Echo({
broadcaster: 'pusher',
2023-12-11 18:06:29 +01:00
cluster: "{{ env('PUSHER_HOST') }}" || window.location.hostname,
2023-12-10 15:57:46 +01:00
key: "{{ env('PUSHER_APP_KEY') }}" || 'coolify',
2023-12-11 18:06:29 +01:00
wsHost: "{{ env('PUSHER_HOST') }}" || window.location.hostname,
2023-12-11 20:01:54 +01:00
wsPort: "{{ getRealtime() }}",
wssPort: "{{ getRealtime() }}",
2023-12-10 15:57:46 +01:00
forceTLS: false,
encrypted: true,
enableStats: false,
enableLogging: true,
enabledTransports: ['ws', 'wss'],
});
@endauth
2023-08-31 21:56:53 +02:00
let checkHealthInterval = null;
let checkIfIamDeadInterval = null;
2023-08-29 16:31:46 +02:00
2023-08-31 21:56:53 +02:00
function changePasswordFieldType(event) {
let element = event.target
for (let i = 0; i < 10; i++) {
if (element.className === "relative") {
break;
2023-08-29 16:31:46 +02:00
}
2023-08-31 21:56:53 +02:00
element = element.parentElement;
}
element = element.children[1];
2024-03-15 22:02:37 +01:00
if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
2023-08-31 21:56:53 +02:00
if (element.type === 'password') {
element.type = 'text';
2024-03-27 14:51:20 +01:00
if (element.disabled) return;
2024-03-22 11:34:15 +01:00
element.classList.add('truncate');
2024-03-15 22:02:37 +01:00
this.type = 'text';
2023-08-31 21:56:53 +02:00
} else {
element.type = 'password';
2024-03-27 14:51:20 +01:00
if (element.disabled) return;
2024-03-22 11:34:15 +01:00
element.classList.remove('truncate');
2024-03-15 22:02:37 +01:00
this.type = 'password';
2023-08-29 16:31:46 +02:00
}
}
2023-08-31 21:56:53 +02:00
}
2023-08-29 16:31:46 +02:00
2023-08-31 21:56:53 +02:00
function copyToClipboard(text) {
navigator?.clipboard?.writeText(text) && window.Livewire.dispatch('success', 'Copied to clipboard.');
2023-08-31 21:56:53 +02:00
}
2023-12-07 19:06:32 +01:00
document.addEventListener('livewire:init', () => {
window.Livewire.on('reloadWindow', (timeout) => {
if (timeout) {
setTimeout(() => {
window.location.reload();
}, timeout);
return;
} else {
2023-08-29 16:31:46 +02:00
window.location.reload();
2023-12-07 19:06:32 +01:00
}
})
window.Livewire.on('info', (message) => {
2024-03-21 12:44:32 +01:00
if (typeof message === 'string') {
window.toast('Info', {
type: 'info',
description: message,
})
return;
}
if (message.length == 1) {
window.toast('Info', {
type: 'info',
description: message[0],
})
} else if (message.length == 2) {
window.toast(message[0], {
type: 'info',
description: message[1],
})
}
2023-12-07 19:06:32 +01:00
})
window.Livewire.on('error', (message) => {
2024-03-21 12:44:32 +01:00
if (typeof message === 'string') {
window.toast('Error', {
type: 'danger',
description: message,
})
return;
}
2024-02-22 14:53:42 +01:00
if (message.length == 1) {
window.toast('Error', {
type: 'danger',
description: message[0],
})
} else if (message.length == 2) {
window.toast(message[0], {
type: 'danger',
description: message[1],
})
}
2023-12-07 19:06:32 +01:00
})
window.Livewire.on('warning', (message) => {
2024-03-21 12:44:32 +01:00
if (typeof message === 'string') {
window.toast('Warning', {
type: 'warning',
description: message,
})
return;
}
if (message.length == 1) {
window.toast('Warning', {
type: 'warning',
description: message[0],
})
} else if (message.length == 2) {
window.toast(message[0], {
type: 'warning',
description: message[1],
})
}
2023-12-07 19:06:32 +01:00
})
window.Livewire.on('success', (message) => {
2024-03-21 12:44:32 +01:00
if (typeof message === 'string') {
window.toast('Success', {
type: 'success',
description: message,
})
return;
}
2024-02-22 14:53:42 +01:00
if (message.length == 1) {
window.toast('Success', {
type: 'success',
description: message[0],
})
} else if (message.length == 2) {
window.toast(message[0], {
type: 'success',
description: message[1],
})
}
2023-12-07 19:06:32 +01:00
})
});
2023-08-31 21:56:53 +02:00
</script>
2023-08-29 16:31:46 +02:00
</body>
@show
</html>