mirror of
https://github.com/vitodeploy/vito.git
synced 2025-04-20 02:11:36 +00:00
67 lines
1.7 KiB
PHP
67 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Facades\Toast;
|
|
use App\Helpers\HtmxResponse;
|
|
use App\Models\Server;
|
|
use App\Models\Site;
|
|
use Illuminate\Contracts\View\View;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Validation\Rule;
|
|
use Throwable;
|
|
|
|
class SiteSettingController extends Controller
|
|
{
|
|
public function index(Server $server, Site $site): View
|
|
{
|
|
return view('site-settings.index', [
|
|
'server' => $server,
|
|
'site' => $site,
|
|
]);
|
|
}
|
|
|
|
public function getVhost(Server $server, Site $site): RedirectResponse
|
|
{
|
|
return back()->with('vhost', $server->webserver()->handler()->getVHost($site));
|
|
}
|
|
|
|
public function updateVhost(Server $server, Site $site, Request $request): RedirectResponse
|
|
{
|
|
$this->validate($request, [
|
|
'vhost' => 'required|string',
|
|
]);
|
|
|
|
try {
|
|
$server->webserver()->handler()->updateVHost($site, false, $request->input('vhost'));
|
|
|
|
Toast::success('VHost updated successfully!');
|
|
} catch (Throwable $e) {
|
|
Toast::error($e->getMessage());
|
|
}
|
|
|
|
return back();
|
|
}
|
|
|
|
public function updatePHPVersion(Server $server, Site $site, Request $request): HtmxResponse
|
|
{
|
|
$this->validate($request, [
|
|
'version' => [
|
|
'required',
|
|
Rule::exists('services', 'version')->where('type', 'php'),
|
|
],
|
|
]);
|
|
|
|
try {
|
|
$site->changePHPVersion($request->input('version'));
|
|
|
|
Toast::success('PHP version updated successfully!');
|
|
} catch (Throwable $e) {
|
|
Toast::error($e->getMessage());
|
|
}
|
|
|
|
return htmx()->back();
|
|
}
|
|
}
|