Migrate to HTMX (#114)

Dropped Livewire
Added HTMX
Added Blade code lint
Drop Mysql and Redis
Migrate to SQLite
This commit is contained in:
Saeed Vaziry
2024-03-06 17:02:59 +01:00
committed by GitHub
parent 5b2c419e91
commit b2083fc6b2
486 changed files with 8609 additions and 8707 deletions

View File

@ -0,0 +1,34 @@
<?php
namespace App\Helpers;
use Illuminate\Http\Response;
class HtmxResponse extends Response
{
public function redirect(string $redirect): self
{
$this->header('HX-Redirect', $redirect);
return $this;
}
public function back(): self
{
return $this->redirect(back()->getTargetUrl());
}
public function refresh(): self
{
$this->header('HX-Refresh', true);
return $this;
}
public function location(string $location): self
{
$this->header('HX-Location', $location);
return $this;
}
}

View File

@ -4,6 +4,8 @@
use App\Contracts\SSHCommand;
use App\Exceptions\SSHAuthenticationError;
use App\Exceptions\SSHCommandError;
use App\Exceptions\SSHConnectionError;
use App\Models\Server;
use App\Models\ServerLog;
use Exception;
@ -99,20 +101,28 @@ public function exec(string|array|SSHCommand $commands, string $log = '', ?int $
$this->log = null;
}
if (! $this->connection) {
$this->connect();
try {
if (! $this->connection) {
$this->connect();
}
} catch (Throwable $e) {
throw new SSHConnectionError($e->getMessage());
}
if (! is_array($commands)) {
$commands = [$commands];
}
$result = '';
foreach ($commands as $command) {
$result .= $this->executeCommand($command);
}
try {
$result = '';
foreach ($commands as $command) {
$result .= $this->executeCommand($command);
}
return $result;
return $result;
} catch (Throwable $e) {
throw new SSHCommandError($e->getMessage());
}
}
/**

View File

@ -2,14 +2,8 @@
namespace App\Helpers;
use Livewire\Component;
class Toast
{
public function __construct(public Component $component)
{
}
public function success(string $message): void
{
$this->toast('success', $message);
@ -32,6 +26,7 @@ public function info(string $message): void
private function toast(string $type, string $message): void
{
$this->component->dispatch('toast', type: $type, message: $message);
session()->flash('toast.type', $type);
session()->flash('toast.message', $message);
}
}