mirror of
https://github.com/vitodeploy/vito.git
synced 2025-04-20 02:11:36 +00:00
Upgrade to Livewire 3 (#103)
* upgrade to livewire 3 * fix updater * fix modal events * fix modal events
This commit is contained in:
parent
3da1f4fe4c
commit
8bffefabef
@ -32,9 +32,6 @@ public function info(string $message): void
|
|||||||
|
|
||||||
private function toast(string $type, string $message): void
|
private function toast(string $type, string $message): void
|
||||||
{
|
{
|
||||||
$this->component->dispatchBrowserEvent('toast', [
|
$this->component->dispatch('toast', type: $type, message: $message);
|
||||||
'type' => $type,
|
|
||||||
'message' => $message,
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,9 +23,9 @@ public function deploy(): void
|
|||||||
|
|
||||||
$this->toast()->success(__('Deployment started!'));
|
$this->toast()->success(__('Deployment started!'));
|
||||||
|
|
||||||
$this->emitTo(DeploymentsList::class, '$refresh');
|
$this->dispatch('$refresh')->to(DeploymentsList::class);
|
||||||
|
|
||||||
$this->emitTo(DeploymentScript::class, '$refresh');
|
$this->dispatch('$refresh')->to(DeploymentScript::class);
|
||||||
} catch (SourceControlIsNotConnected $e) {
|
} catch (SourceControlIsNotConnected $e) {
|
||||||
session()->flash('toast.type', 'error');
|
session()->flash('toast.type', 'error');
|
||||||
session()->flash('toast.message', $e->getMessage());
|
session()->flash('toast.message', $e->getMessage());
|
||||||
|
@ -27,8 +27,8 @@ public function save(): void
|
|||||||
|
|
||||||
session()->flash('status', 'script-updated');
|
session()->flash('status', 'script-updated');
|
||||||
|
|
||||||
$this->emitTo(Deploy::class, '$refresh');
|
$this->dispatch('$refresh')->to(Deploy::class);
|
||||||
$this->emitTo(AutoDeployment::class, '$refresh');
|
$this->dispatch('$refresh')->to(AutoDeployment::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -22,7 +22,7 @@ public function showLog(int $id): void
|
|||||||
$deployment = $this->site->deployments()->findOrFail($id);
|
$deployment = $this->site->deployments()->findOrFail($id);
|
||||||
$this->logContent = $deployment->log->content;
|
$this->logContent = $deployment->log->content;
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('open-modal', 'show-log');
|
$this->dispatch('open-modal', 'show-log');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -27,7 +27,7 @@ public function save(): void
|
|||||||
|
|
||||||
session()->flash('status', 'updating-env');
|
session()->flash('status', 'updating-env');
|
||||||
|
|
||||||
$this->emit(Deploy::class, '$refresh');
|
$this->dispatch('$refresh')->to(Deploy::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -13,7 +13,7 @@ public function render(): View
|
|||||||
$event = Cache::get('broadcast');
|
$event = Cache::get('broadcast');
|
||||||
if ($event) {
|
if ($event) {
|
||||||
Cache::forget('broadcast');
|
Cache::forget('broadcast');
|
||||||
$this->emit('broadcast', $event);
|
$this->dispatch('broadcast', $event);
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('livewire.broadcast');
|
return view('livewire.broadcast');
|
||||||
|
@ -22,9 +22,9 @@ public function create(): void
|
|||||||
{
|
{
|
||||||
app(\App\Actions\CronJob\CreateCronJob::class)->create($this->server, $this->all());
|
app(\App\Actions\CronJob\CreateCronJob::class)->create($this->server, $this->all());
|
||||||
|
|
||||||
$this->emitTo(CronjobsList::class, '$refresh');
|
$this->dispatch('$refresh')->to(CronjobsList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('created', true);
|
$this->dispatch('created');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -23,7 +23,7 @@ public function delete(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -45,7 +45,7 @@ public function restore(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('restored', true);
|
$this->dispatch('restored');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delete(): void
|
public function delete(): void
|
||||||
@ -55,7 +55,7 @@ public function delete(): void
|
|||||||
|
|
||||||
$file->delete();
|
$file->delete();
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -40,7 +40,7 @@ public function create(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('backup-created', true);
|
$this->dispatch('backup-created');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function files(int $id): void
|
public function files(int $id): void
|
||||||
@ -48,7 +48,7 @@ public function files(int $id): void
|
|||||||
$backup = Backup::query()->findOrFail($id);
|
$backup = Backup::query()->findOrFail($id);
|
||||||
$this->backup = $backup;
|
$this->backup = $backup;
|
||||||
$this->files = $backup->files()->orderByDesc('id')->simplePaginate(1);
|
$this->files = $backup->files()->orderByDesc('id')->simplePaginate(1);
|
||||||
$this->dispatchBrowserEvent('show-files', true);
|
$this->dispatch('show-files');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function backup(): void
|
public function backup(): void
|
||||||
@ -57,7 +57,7 @@ public function backup(): void
|
|||||||
|
|
||||||
$this->files = $this->backup?->files()->orderByDesc('id')->simplePaginate();
|
$this->files = $this->backup?->files()->orderByDesc('id')->simplePaginate();
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('backup-running', true);
|
$this->dispatch('backup-running');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delete(): void
|
public function delete(): void
|
||||||
@ -67,7 +67,7 @@ public function delete(): void
|
|||||||
|
|
||||||
$backup->delete();
|
$backup->delete();
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -40,7 +40,7 @@ public function create(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('database-created', true);
|
$this->dispatch('database-created');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delete(): void
|
public function delete(): void
|
||||||
@ -52,9 +52,9 @@ public function delete(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->emitTo(DatabaseUserList::class, '$refresh');
|
$this->dispatch('$refresh')->to(DatabaseUserList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -38,7 +38,7 @@ public function create(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('database-user-created', true);
|
$this->dispatch('database-user-created');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delete(): void
|
public function delete(): void
|
||||||
@ -50,9 +50,9 @@ public function delete(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->emitTo(DatabaseList::class, '$refresh');
|
$this->dispatch('$refresh')->to(DatabaseList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function viewPassword(int $id): void
|
public function viewPassword(int $id): void
|
||||||
@ -62,7 +62,7 @@ public function viewPassword(int $id): void
|
|||||||
|
|
||||||
$this->viewPassword = $databaseUser->password;
|
$this->viewPassword = $databaseUser->password;
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('open-modal', 'database-user-password');
|
$this->dispatch('open-modal', 'database-user-password');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function showLink(int $id): void
|
public function showLink(int $id): void
|
||||||
@ -73,7 +73,7 @@ public function showLink(int $id): void
|
|||||||
$this->linkId = $id;
|
$this->linkId = $id;
|
||||||
$this->link = $databaseUser->databases ?? [];
|
$this->link = $databaseUser->databases ?? [];
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('open-modal', 'link-database-user');
|
$this->dispatch('open-modal', 'link-database-user');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function link(): void
|
public function link(): void
|
||||||
@ -85,7 +85,7 @@ public function link(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('linked', true);
|
$this->dispatch('linked');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -28,9 +28,9 @@ public function create(): void
|
|||||||
{
|
{
|
||||||
app(CreateRule::class)->create($this->server, $this->all());
|
app(CreateRule::class)->create($this->server, $this->all());
|
||||||
|
|
||||||
$this->emitTo(FirewallRulesList::class, '$refresh');
|
$this->dispatch('$refresh')->to(FirewallRulesList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('created', true);
|
$this->dispatch('created');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -25,7 +25,7 @@ public function delete(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -26,9 +26,9 @@ public function add(): void
|
|||||||
$this->all()
|
$this->all()
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->emitTo(ChannelsList::class, '$refresh');
|
$this->dispatch('$refresh')->to(ChannelsList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('added', true);
|
$this->dispatch('added');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -25,7 +25,7 @@ public function delete(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -56,7 +56,7 @@ public function uninstall(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function loadIni(int $id): void
|
public function loadIni(int $id): void
|
||||||
|
@ -33,7 +33,7 @@ public function submit(): void
|
|||||||
|
|
||||||
session()->flash('status', 'profile-updated');
|
session()->flash('status', 'profile-updated');
|
||||||
|
|
||||||
$this->emitTo(UserDropdown::class, '$refresh');
|
$this->dispatch('$refresh')->to(UserDropdown::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sendVerificationEmail(): void
|
public function sendVerificationEmail(): void
|
||||||
|
@ -21,9 +21,9 @@ public function create(): void
|
|||||||
app(\App\Actions\Projects\CreateProject::class)
|
app(\App\Actions\Projects\CreateProject::class)
|
||||||
->create(auth()->user(), $this->inputs);
|
->create(auth()->user(), $this->inputs);
|
||||||
|
|
||||||
$this->emitTo(ProjectsList::class, '$refresh');
|
$this->dispatch('$refresh')->to(ProjectsList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('created', true);
|
$this->dispatch('created');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -24,9 +24,9 @@ public function create(): void
|
|||||||
{
|
{
|
||||||
app(\App\Actions\Queue\CreateQueue::class)->create($this->site, $this->all());
|
app(\App\Actions\Queue\CreateQueue::class)->create($this->site, $this->all());
|
||||||
|
|
||||||
$this->emitTo(QueuesList::class, '$refresh');
|
$this->dispatch('$refresh')->to(QueuesList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('created', true);
|
$this->dispatch('created');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -24,7 +24,7 @@ public function delete(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function start(Queue $queue): void
|
public function start(Queue $queue): void
|
||||||
|
@ -27,7 +27,7 @@ public function showLog(int $id): void
|
|||||||
$log = $this->server->logs()->findOrFail($id);
|
$log = $this->server->logs()->findOrFail($id);
|
||||||
$this->logContent = $log->content;
|
$this->logContent = $log->content;
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('open-modal', 'show-log');
|
$this->dispatch('open-modal', 'show-log');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -22,9 +22,9 @@ public function connect(): void
|
|||||||
{
|
{
|
||||||
app(CreateServerProvider::class)->create(auth()->user(), $this->all());
|
app(CreateServerProvider::class)->create(auth()->user(), $this->all());
|
||||||
|
|
||||||
$this->emitTo(ProvidersList::class, '$refresh');
|
$this->dispatch('$refresh')->to(ProvidersList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('connected', true);
|
$this->dispatch('connected');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -25,7 +25,7 @@ public function delete(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -19,9 +19,9 @@ public function add(): void
|
|||||||
|
|
||||||
$key->deployTo($this->server);
|
$key->deployTo($this->server);
|
||||||
|
|
||||||
$this->emitTo(ServerKeysList::class, '$refresh');
|
$this->dispatch('$refresh')->to(ServerKeysList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('added', true);
|
$this->dispatch('added');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -24,9 +24,9 @@ public function add(): void
|
|||||||
|
|
||||||
$key->deployTo($this->server);
|
$key->deployTo($this->server);
|
||||||
|
|
||||||
$this->emitTo(ServerKeysList::class, '$refresh');
|
$this->dispatch('$refresh')->to(ServerKeysList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('added', true);
|
$this->dispatch('added');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -28,7 +28,7 @@ public function delete(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -21,7 +21,7 @@ public function refreshComponent(array $data): void
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->emit('refreshComponent');
|
$this->dispatch('refreshComponent');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -19,9 +19,9 @@ public function install(): void
|
|||||||
{
|
{
|
||||||
app(InstallPHPMyAdminAction::class)->install($this->server, $this->all());
|
app(InstallPHPMyAdminAction::class)->install($this->server, $this->all());
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('started', true);
|
$this->dispatch('started');
|
||||||
|
|
||||||
$this->emitTo(ServicesList::class, '$refresh');
|
$this->dispatch('$refresh')->to(ServicesList::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -26,7 +26,7 @@ public function refreshComponent(array $data): void
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->emit('refreshComponent');
|
$this->dispatch('refreshComponent');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -20,9 +20,9 @@ public function connect(): void
|
|||||||
{
|
{
|
||||||
app(ConnectSourceControl::class)->connect($this->all());
|
app(ConnectSourceControl::class)->connect($this->all());
|
||||||
|
|
||||||
$this->emitTo(SourceControlsList::class, '$refresh');
|
$this->dispatch('$refresh')->to(SourceControlsList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('connected', true);
|
$this->dispatch('connected');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -25,7 +25,7 @@ public function delete(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -19,9 +19,9 @@ public function add(): void
|
|||||||
$this->all()
|
$this->all()
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->emitTo(KeysList::class, '$refresh');
|
$this->dispatch('$refresh')->to(KeysList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('added', true);
|
$this->dispatch('added');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -25,7 +25,7 @@ public function delete(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -23,9 +23,9 @@ public function create(): void
|
|||||||
{
|
{
|
||||||
app(\App\Actions\SSL\CreateSSL::class)->create($this->site, $this->all());
|
app(\App\Actions\SSL\CreateSSL::class)->create($this->site, $this->all());
|
||||||
|
|
||||||
$this->emitTo(SslsList::class, '$refresh');
|
$this->dispatch('$refresh')->to(SslsList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('created', true);
|
$this->dispatch('created');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -25,7 +25,7 @@ public function delete(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function refreshComponent(array $data): void
|
public function refreshComponent(array $data): void
|
||||||
@ -34,7 +34,7 @@ public function refreshComponent(array $data): void
|
|||||||
$this->toast()->error(__('SSL creation failed!'));
|
$this->toast()->error(__('SSL creation failed!'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->emit('refreshComponent');
|
$this->dispatch('refreshComponent');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -32,9 +32,9 @@ public function connect(): void
|
|||||||
{
|
{
|
||||||
app(CreateStorageProvider::class)->create(auth()->user(), $this->all());
|
app(CreateStorageProvider::class)->create(auth()->user(), $this->all());
|
||||||
|
|
||||||
$this->emitTo(ProvidersList::class, '$refresh');
|
$this->dispatch('$refresh')->to(ProvidersList::class);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('connected', true);
|
$this->dispatch('connected');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -25,7 +25,7 @@ public function delete(): void
|
|||||||
|
|
||||||
$this->refreshComponent([]);
|
$this->refreshComponent([]);
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('confirmed', true);
|
$this->dispatch('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(): View
|
public function render(): View
|
||||||
|
@ -15,6 +15,6 @@ public function getListeners(): array
|
|||||||
|
|
||||||
public function refreshComponent(array $data): void
|
public function refreshComponent(array $data): void
|
||||||
{
|
{
|
||||||
$this->emit('refreshComponent');
|
$this->dispatch('refreshComponent');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
"laravel/sanctum": "^3.2",
|
"laravel/sanctum": "^3.2",
|
||||||
"laravel/socialite": "^5.2",
|
"laravel/socialite": "^5.2",
|
||||||
"laravel/tinker": "^2.8",
|
"laravel/tinker": "^2.8",
|
||||||
"livewire/livewire": "^2.12",
|
"livewire/livewire": "^3.0",
|
||||||
"opcodesio/log-viewer": "^2.5",
|
"opcodesio/log-viewer": "^2.5",
|
||||||
"owenvoke/blade-fontawesome": "^2.5",
|
"owenvoke/blade-fontawesome": "^2.5",
|
||||||
"phpseclib/phpseclib": "~3.0"
|
"phpseclib/phpseclib": "~3.0"
|
||||||
|
36
composer.lock
generated
36
composer.lock
generated
@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "b3f98cafe7fcc5d3ce67ad09a8f66661",
|
"content-hash": "2c898cb3ae37c6267db77c5c95d0f926",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "aws/aws-crt-php",
|
"name": "aws/aws-crt-php",
|
||||||
@ -2931,34 +2931,36 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "livewire/livewire",
|
"name": "livewire/livewire",
|
||||||
"version": "v2.12.6",
|
"version": "v3.4.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/livewire/livewire.git",
|
"url": "https://github.com/livewire/livewire.git",
|
||||||
"reference": "7d3a57b3193299cf1a0639a3935c696f4da2cf92"
|
"reference": "c0489d4a76382f6dcf6e2702112f86aa089d0c8d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/livewire/livewire/zipball/7d3a57b3193299cf1a0639a3935c696f4da2cf92",
|
"url": "https://api.github.com/repos/livewire/livewire/zipball/c0489d4a76382f6dcf6e2702112f86aa089d0c8d",
|
||||||
"reference": "7d3a57b3193299cf1a0639a3935c696f4da2cf92",
|
"reference": "c0489d4a76382f6dcf6e2702112f86aa089d0c8d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"illuminate/database": "^7.0|^8.0|^9.0|^10.0",
|
"illuminate/database": "^10.0|^11.0",
|
||||||
"illuminate/support": "^7.0|^8.0|^9.0|^10.0",
|
"illuminate/routing": "^10.0|^11.0",
|
||||||
"illuminate/validation": "^7.0|^8.0|^9.0|^10.0",
|
"illuminate/support": "^10.0|^11.0",
|
||||||
|
"illuminate/validation": "^10.0|^11.0",
|
||||||
"league/mime-type-detection": "^1.9",
|
"league/mime-type-detection": "^1.9",
|
||||||
"php": "^7.2.5|^8.0",
|
"php": "^8.1",
|
||||||
"symfony/http-kernel": "^5.0|^6.0"
|
"symfony/http-kernel": "^6.2|^7.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"calebporzio/sushi": "^2.1",
|
"calebporzio/sushi": "^2.1",
|
||||||
"laravel/framework": "^7.0|^8.0|^9.0|^10.0",
|
"laravel/framework": "^10.0|^11.0",
|
||||||
|
"laravel/prompts": "^0.1.6",
|
||||||
"mockery/mockery": "^1.3.1",
|
"mockery/mockery": "^1.3.1",
|
||||||
"orchestra/testbench": "^5.0|^6.0|^7.0|^8.0",
|
"orchestra/testbench": "8.20.0|^9.0",
|
||||||
"orchestra/testbench-dusk": "^5.2|^6.0|^7.0|^8.0",
|
"orchestra/testbench-dusk": "8.20.0|^9.0",
|
||||||
"phpunit/phpunit": "^8.4|^9.0",
|
"phpunit/phpunit": "^10.4",
|
||||||
"psy/psysh": "@stable"
|
"psy/psysh": "^0.11.22|^0.12"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
@ -2992,7 +2994,7 @@
|
|||||||
"description": "A front-end framework for Laravel.",
|
"description": "A front-end framework for Laravel.",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/livewire/livewire/issues",
|
"issues": "https://github.com/livewire/livewire/issues",
|
||||||
"source": "https://github.com/livewire/livewire/tree/v2.12.6"
|
"source": "https://github.com/livewire/livewire/tree/v3.4.4"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -3000,7 +3002,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-08-11T04:02:34+00:00"
|
"time": "2024-01-28T19:07:11+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "monolog/monolog",
|
"name": "monolog/monolog",
|
||||||
|
159
config/livewire.php
Normal file
159
config/livewire.php
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| Class Namespace
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This value sets the root class namespace for Livewire component classes in
|
||||||
|
| your application. This value will change where component auto-discovery
|
||||||
|
| finds components. It's also referenced by the file creation commands.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'class_namespace' => 'App\\Http\\Livewire',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| View Path
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This value is used to specify where Livewire component Blade templates are
|
||||||
|
| stored when running file creation commands like `artisan make:livewire`.
|
||||||
|
| It is also used if you choose to omit a component's render() method.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'view_path' => resource_path('views/livewire'),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| Layout
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| The view that will be used as the layout when rendering a single component
|
||||||
|
| as an entire page via `Route::get('/post/create', CreatePost::class);`.
|
||||||
|
| In this case, the view returned by CreatePost will render into $slot.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'layout' => 'layouts.app',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| Lazy Loading Placeholder
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| Livewire allows you to lazy load components that would otherwise slow down
|
||||||
|
| the initial page load. Every component can have a custom placeholder or
|
||||||
|
| you can define the default placeholder view for all components below.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'lazy_placeholder' => null,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| Temporary File Uploads
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Livewire handles file uploads by storing uploads in a temporary directory
|
||||||
|
| before the file is stored permanently. All file uploads are directed to
|
||||||
|
| a global endpoint for temporary storage. You may configure this below:
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'temporary_file_upload' => [
|
||||||
|
'disk' => null, // Example: 'local', 's3' | Default: 'default'
|
||||||
|
'rules' => null, // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB)
|
||||||
|
'directory' => null, // Example: 'tmp' | Default: 'livewire-tmp'
|
||||||
|
'middleware' => null, // Example: 'throttle:5,1' | Default: 'throttle:60,1'
|
||||||
|
'preview_mimes' => [ // Supported file types for temporary pre-signed file URLs...
|
||||||
|
'png', 'gif', 'bmp', 'svg', 'wav', 'mp4',
|
||||||
|
'mov', 'avi', 'wmv', 'mp3', 'm4a',
|
||||||
|
'jpg', 'jpeg', 'mpga', 'webp', 'wma',
|
||||||
|
],
|
||||||
|
'max_upload_time' => 5, // Max duration (in minutes) before an upload is invalidated...
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| Render On Redirect
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This value determines if Livewire will run a component's `render()` method
|
||||||
|
| after a redirect has been triggered using something like `redirect(...)`
|
||||||
|
| Setting this to true will render the view once more before redirecting
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'render_on_redirect' => false,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| Eloquent Model Binding
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Previous versions of Livewire supported binding directly to eloquent model
|
||||||
|
| properties using wire:model by default. However, this behavior has been
|
||||||
|
| deemed too "magical" and has therefore been put under a feature flag.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'legacy_model_binding' => false,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| Auto-inject Frontend Assets
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| By default, Livewire automatically injects its JavaScript and CSS into the
|
||||||
|
| <head> and <body> of pages containing Livewire components. By disabling
|
||||||
|
| this behavior, you need to use @livewireStyles and @livewireScripts.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'inject_assets' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| Navigate (SPA mode)
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| By adding `wire:navigate` to links in your Livewire application, Livewire
|
||||||
|
| will prevent the default link handling and instead request those pages
|
||||||
|
| via AJAX, creating an SPA-like effect. Configure this behavior here.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'navigate' => [
|
||||||
|
'show_progress_bar' => true,
|
||||||
|
'progress_bar_color' => '#2299dd',
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| HTML Morph Markers
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Livewire intelligently "morphs" existing HTML into the newly rendered HTML
|
||||||
|
| after each update. To make this process more reliable, Livewire injects
|
||||||
|
| "markers" into the rendered Blade surrounding @if, @class & @foreach.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'inject_morph_markers' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
| Pagination Theme
|
||||||
|
|---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| When enabling Livewire's pagination feature by using the `WithPagination`
|
||||||
|
| trait, Livewire will use Tailwind templates to render pagination views
|
||||||
|
| on the page. If you want Bootstrap CSS, you can specify: "bootstrap"
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'pagination_theme' => 'tailwind',
|
||||||
|
];
|
1
public/build/assets/app-887de6f7.css
Normal file
1
public/build/assets/app-887de6f7.css
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
101
public/build/assets/app-e6b0cd9c.js
Normal file
101
public/build/assets/app-e6b0cd9c.js
Normal file
File diff suppressed because one or more lines are too long
@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"resources/css/app.css": {
|
"resources/css/app.css": {
|
||||||
"file": "assets/app-ae945733.css",
|
"file": "assets/app-887de6f7.css",
|
||||||
"isEntry": true,
|
"isEntry": true,
|
||||||
"src": "resources/css/app.css"
|
"src": "resources/css/app.css"
|
||||||
},
|
},
|
||||||
"resources/js/app.js": {
|
"resources/js/app.js": {
|
||||||
"file": "assets/app-9aa488bb.js",
|
"file": "assets/app-e6b0cd9c.js",
|
||||||
"isEntry": true,
|
"isEntry": true,
|
||||||
"src": "resources/js/app.js"
|
"src": "resources/js/app.js"
|
||||||
}
|
}
|
||||||
|
@ -1,24 +1,11 @@
|
|||||||
import './bootstrap';
|
import { Livewire, Alpine } from '../../vendor/livewire/livewire/dist/livewire.esm';
|
||||||
// import Echo from "laravel-echo"
|
|
||||||
// import Pusher from "pusher-js"
|
|
||||||
import Alpine from 'alpinejs';
|
|
||||||
import Clipboard from "@ryangjchandler/alpine-clipboard";
|
|
||||||
|
|
||||||
Alpine.plugin(Clipboard)
|
Alpine.directive('clipboard', (el) => {
|
||||||
|
let text = el.textContent
|
||||||
|
|
||||||
// window.Echo = new Echo({
|
el.addEventListener('click', () => {
|
||||||
// broadcaster: 'pusher',
|
navigator.clipboard.writeText(text)
|
||||||
// key: 'app-key',
|
})
|
||||||
// wsHost: 'localhost',
|
})
|
||||||
// wsPort: 6001,
|
|
||||||
// cluster: '',
|
|
||||||
// forceTLS: false,
|
|
||||||
// disableStats: true,
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// window.Pusher = Pusher;
|
|
||||||
|
|
||||||
window.Alpine = Alpine;
|
|
||||||
|
|
||||||
Alpine.start();
|
|
||||||
|
|
||||||
|
Livewire.start()
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
@props(['name', 'input', 'title', 'description', 'method'])
|
@props(['name', 'input', 'title', 'description', 'method'])
|
||||||
|
|
||||||
<x-modal :name="$name">
|
<x-modal :name="$name">
|
||||||
<form wire:submit.prevent="{{ $method }}" class="p-6">
|
<form wire:submit="{{ $method }}" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Confirm') }}
|
{{ __('Confirm') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
@ -189,15 +189,15 @@ class="min-h-screen w-64 flex-none border-r border-gray-200 bg-white dark:border
|
|||||||
</div>
|
</div>
|
||||||
<x-toast />
|
<x-toast />
|
||||||
<livewire:broadcast />
|
<livewire:broadcast />
|
||||||
@livewireScripts
|
@livewireScriptConfig
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener('livewire:load', () => {
|
// document.addEventListener('livewire:init', () => {
|
||||||
Livewire.onPageExpired((response, message) => {
|
// Livewire.onPageExpired((response, message) => {
|
||||||
({
|
// ({
|
||||||
href: window.location.href
|
// href: window.location.href
|
||||||
} = window.location);
|
// } = window.location);
|
||||||
})
|
// })
|
||||||
})
|
// })
|
||||||
|
|
||||||
// On page load or when changing themes, best to add inline in `head` to avoid FOUC
|
// On page load or when changing themes, best to add inline in `head` to avoid FOUC
|
||||||
if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia(
|
if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia(
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
if (this.theme === 'dark') {
|
if (this.theme === 'dark') {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
console.log(window.matchMedia('(prefers-color-scheme: dark)'))
|
|
||||||
return this.theme === 'system' && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
return this.theme === 'system' && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||||
},
|
},
|
||||||
changeTheme(theme) {
|
changeTheme(theme) {
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
<div x-data="">
|
<div x-data="">
|
||||||
<x-modal name="change-branch">
|
<x-modal name="change-branch">
|
||||||
<form wire:submit.prevent="change" class="p-6">
|
<form wire:submit="change" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Change Branch') }}
|
{{ __('Change Branch') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="branch" :value="__('Branch')" />
|
<x-input-label for="branch" :value="__('Branch')" />
|
||||||
<x-text-input wire:model.defer="branch" id="branch" name="branch" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="branch" id="branch" name="branch" type="text" class="mt-1 w-full" />
|
||||||
@error('branch')
|
@error('branch')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
<div x-data="">
|
<div x-data="">
|
||||||
<x-modal name="deployment-script">
|
<x-modal name="deployment-script">
|
||||||
<form wire:submit.prevent="save" class="p-6">
|
<form wire:submit="save" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Deployment Script') }}
|
{{ __('Deployment Script') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="script" :value="__('Script')" />
|
<x-input-label for="script" :value="__('Script')" />
|
||||||
<x-textarea wire:model.defer="script" rows="10" id="script" name="script" class="mt-1 w-full" />
|
<x-textarea wire:model="script" rows="10" id="script" name="script" class="mt-1 w-full" />
|
||||||
@error('script')
|
@error('script')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
<div x-data="">
|
<div x-data="">
|
||||||
<x-modal name="update-env">
|
<x-modal name="update-env">
|
||||||
<form wire:submit.prevent="save" class="p-6">
|
<form wire:submit="save" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Update .env File') }}
|
{{ __('Update .env File') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="env" :value="__('.env')" />
|
<x-input-label for="env" :value="__('.env')" />
|
||||||
<x-textarea wire:model.defer="env" rows="10" id="env" name="env" class="mt-1 w-full" />
|
<x-textarea wire:model="env" rows="10" id="env" name="env" class="mt-1 w-full" />
|
||||||
@error('env')
|
@error('env')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-primary-button>
|
</x-primary-button>
|
||||||
|
|
||||||
<x-modal name="create-cronjob">
|
<x-modal name="create-cronjob">
|
||||||
<form wire:submit.prevent="create" class="p-6">
|
<form wire:submit="create" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Create Cronjob') }}
|
{{ __('Create Cronjob') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="command" :value="__('Command')" />
|
<x-input-label for="command" :value="__('Command')" />
|
||||||
<x-text-input wire:model.defer="command" id="command" name="command" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="command" id="command" name="command" type="text" class="mt-1 w-full" />
|
||||||
@error('command')
|
@error('command')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="user" :value="__('User')" />
|
<x-input-label for="user" :value="__('User')" />
|
||||||
<x-select-input wire:model.defer="user" id="user" name="user" class="mt-1 w-full">
|
<x-select-input wire:model="user" id="user" name="user" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
<option value="root" @if($user === 'root') selected @endif>root</option>
|
<option value="root" @if($user === 'root') selected @endif>root</option>
|
||||||
<option value="{{ $server->ssh_user }}" @if($user === $server->ssh_user) selected @endif>{{ $server->ssh_user }}</option>
|
<option value="{{ $server->ssh_user }}" @if($user === $server->ssh_user) selected @endif>{{ $server->ssh_user }}</option>
|
||||||
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="frequency" :value="__('Frequency')" />
|
<x-input-label for="frequency" :value="__('Frequency')" />
|
||||||
<x-select-input wire:model="frequency" id="frequency" name="frequency" class="mt-1 w-full">
|
<x-select-input wire:model.live="frequency" id="frequency" name="frequency" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
<option value="* * * * *" @if($frequency === '* * * * *') selected @endif>{{ __("Every minute") }}</option>
|
<option value="* * * * *" @if($frequency === '* * * * *') selected @endif>{{ __("Every minute") }}</option>
|
||||||
<option value="0 * * * *" @if($frequency === '0 * * * *') selected @endif>{{ __("Hourly") }}</option>
|
<option value="0 * * * *" @if($frequency === '0 * * * *') selected @endif>{{ __("Hourly") }}</option>
|
||||||
@ -48,7 +48,7 @@
|
|||||||
@if($frequency === 'custom')
|
@if($frequency === 'custom')
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="custom" :value="__('Custom Frequency')" />
|
<x-input-label for="custom" :value="__('Custom Frequency')" />
|
||||||
<x-text-input wire:model.defer="custom" id="custom" name="custom" type="text" class="mt-1 w-full" placeholder="* * * * *" />
|
<x-text-input wire:model="custom" id="custom" name="custom" type="text" class="mt-1 w-full" placeholder="* * * * *" />
|
||||||
@error('custom')
|
@error('custom')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<x-modal name="create-backup">
|
<x-modal name="create-backup">
|
||||||
<form wire:submit.prevent="create" class="p-6" x-data="{user: false, remote: false}">
|
<form wire:submit="create" class="p-6" x-data="{user: false, remote: false}">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Create Backup') }}
|
{{ __('Create Backup') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="database" :value="__('Database')" />
|
<x-input-label for="database" :value="__('Database')" />
|
||||||
<x-select-input wire:model="database" id="database" name="database" class="mt-1 w-full">
|
<x-select-input wire:model.live="database" id="database" name="database" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
@foreach($databases as $db)
|
@foreach($databases as $db)
|
||||||
<option value="{{ $db->id }}" @if($database == $db->id) selected @endif>{{ $db->name }}</option>
|
<option value="{{ $db->id }}" @if($database == $db->id) selected @endif>{{ $db->name }}</option>
|
||||||
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="storage" :value="__('Storage')" />
|
<x-input-label for="storage" :value="__('Storage')" />
|
||||||
<x-select-input wire:model="storage" id="storage" name="storage" class="mt-1 w-full">
|
<x-select-input wire:model.live="storage" id="storage" name="storage" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
@foreach(auth()->user()->storageProviders as $st)
|
@foreach(auth()->user()->storageProviders as $st)
|
||||||
<option value="{{ $st->id }}" @if($storage == $st->id) selected @endif>{{ $st->profile }} - {{ $st->provider }}</option>
|
<option value="{{ $st->id }}" @if($storage == $st->id) selected @endif>{{ $st->profile }} - {{ $st->provider }}</option>
|
||||||
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="interval" :value="__('Interval')" />
|
<x-input-label for="interval" :value="__('Interval')" />
|
||||||
<x-select-input wire:model="interval" id="interval" name="interval" class="mt-1 w-full">
|
<x-select-input wire:model.live="interval" id="interval" name="interval" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
<option value="0 * * * *" @if($interval === '0 * * * *') selected @endif>{{ __("Hourly") }}</option>
|
<option value="0 * * * *" @if($interval === '0 * * * *') selected @endif>{{ __("Hourly") }}</option>
|
||||||
<option value="0 0 * * *" @if($interval === '0 0 * * *') selected @endif>{{ __("Daily") }}</option>
|
<option value="0 0 * * *" @if($interval === '0 0 * * *') selected @endif>{{ __("Daily") }}</option>
|
||||||
@ -50,7 +50,7 @@
|
|||||||
@if($interval === 'custom')
|
@if($interval === 'custom')
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="custom" :value="__('Custom interval (Cron)')" />
|
<x-input-label for="custom" :value="__('Custom interval (Cron)')" />
|
||||||
<x-text-input wire:model.defer="custom" id="custom" name="custom" type="text" class="mt-1 w-full" placeholder="* * * * *" />
|
<x-text-input wire:model="custom" id="custom" name="custom" type="text" class="mt-1 w-full" placeholder="* * * * *" />
|
||||||
@error('custom')
|
@error('custom')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -59,7 +59,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="keep" :value="__('Backups to Keep')" />
|
<x-input-label for="keep" :value="__('Backups to Keep')" />
|
||||||
<x-text-input wire:model.defer="keep" id="keep" name="keep" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="keep" id="keep" name="keep" type="text" class="mt-1 w-full" />
|
||||||
@error('keep')
|
@error('keep')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<x-modal name="create-database">
|
<x-modal name="create-database">
|
||||||
<form wire:submit.prevent="create" class="p-6" x-data="{user: false, remote: false}">
|
<form wire:submit="create" class="p-6" x-data="{user: false, remote: false}">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Create Database') }}
|
{{ __('Create Database') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="name" :value="__('Name')" />
|
<x-input-label for="name" :value="__('Name')" />
|
||||||
<x-text-input wire:model.defer="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
||||||
@error('name')
|
@error('name')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<label for="create_user" class="inline-flex items-center">
|
<label for="create_user" class="inline-flex items-center">
|
||||||
<input id="create_user" wire:model.defer="user" type="checkbox" x-model="user" class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-sm focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800" name="create_user">
|
<input id="create_user" wire:model="user" type="checkbox" x-model="user" class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-sm focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800" name="create_user">
|
||||||
<span class="ml-2 text-sm text-gray-600 dark:text-gray-400">{{ __('Create a user for this database') }}</span>
|
<span class="ml-2 text-sm text-gray-600 dark:text-gray-400">{{ __('Create a user for this database') }}</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
@ -22,7 +22,7 @@
|
|||||||
<div x-show="user">
|
<div x-show="user">
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="db-username" :value="__('Username')" />
|
<x-input-label for="db-username" :value="__('Username')" />
|
||||||
<x-text-input wire:model.defer="username" id="db-username" name="username" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="username" id="db-username" name="username" type="text" class="mt-1 w-full" />
|
||||||
@error('username')
|
@error('username')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="db-password" :value="__('Password')" />
|
<x-input-label for="db-password" :value="__('Password')" />
|
||||||
<x-text-input wire:model.defer="password" id="db-password" name="password" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="password" id="db-password" name="password" type="text" class="mt-1 w-full" />
|
||||||
@error('password')
|
@error('password')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<label for="db-remote" class="inline-flex items-center">
|
<label for="db-remote" class="inline-flex items-center">
|
||||||
<input id="db-remote" wire:model="remote" type="checkbox" x-model="remote" class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-sm focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800" name="remote">
|
<input id="db-remote" wire:model.live="remote" type="checkbox" x-model="remote" class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-sm focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800" name="remote">
|
||||||
<span class="ml-2 text-sm text-gray-600 dark:text-gray-400">{{ __('Enable remote access') }}</span>
|
<span class="ml-2 text-sm text-gray-600 dark:text-gray-400">{{ __('Enable remote access') }}</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
@ -46,7 +46,7 @@
|
|||||||
<div x-show="remote">
|
<div x-show="remote">
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="db-host" :value="__('Host')" />
|
<x-input-label for="db-host" :value="__('Host')" />
|
||||||
<x-text-input wire:model.defer="host" id="db-host" name="host" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="host" id="db-host" name="host" type="text" class="mt-1 w-full" />
|
||||||
<x-input-label for="db-host" :value="__('You might also need to open the database port in Firewall')" class="mt-1"/>
|
<x-input-label for="db-host" :value="__('You might also need to open the database port in Firewall')" class="mt-1"/>
|
||||||
@error('host')
|
@error('host')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<x-modal name="create-database-user">
|
<x-modal name="create-database-user">
|
||||||
<form wire:submit.prevent="create" class="p-6" x-data="{remote: false}">
|
<form wire:submit="create" class="p-6" x-data="{remote: false}">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Create Database User') }}
|
{{ __('Create Database User') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="user-username" :value="__('Username')" />
|
<x-input-label for="user-username" :value="__('Username')" />
|
||||||
<x-text-input wire:model.defer="username" id="user-username" name="username" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="username" id="user-username" name="username" type="text" class="mt-1 w-full" />
|
||||||
@error('username')
|
@error('username')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="user-password" :value="__('Password')" />
|
<x-input-label for="user-password" :value="__('Password')" />
|
||||||
<x-text-input wire:model.defer="password" id="user-password" name="password" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="password" id="user-password" name="password" type="text" class="mt-1 w-full" />
|
||||||
@error('password')
|
@error('password')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<label for="user-remote" class="inline-flex items-center">
|
<label for="user-remote" class="inline-flex items-center">
|
||||||
<input id="user-remote" wire:model="remote" type="checkbox" x-model="remote" class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-sm focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800" name="remote">
|
<input id="user-remote" wire:model.live="remote" type="checkbox" x-model="remote" class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-sm focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800" name="remote">
|
||||||
<span class="ml-2 text-sm text-gray-600 dark:text-gray-400">{{ __('Enable remote access') }}</span>
|
<span class="ml-2 text-sm text-gray-600 dark:text-gray-400">{{ __('Enable remote access') }}</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
@ -30,7 +30,7 @@
|
|||||||
<div x-show="remote">
|
<div x-show="remote">
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="user-host" :value="__('Host')" />
|
<x-input-label for="user-host" :value="__('Host')" />
|
||||||
<x-text-input wire:model.defer="host" id="user-host" name="host" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="host" id="user-host" name="host" type="text" class="mt-1 w-full" />
|
||||||
<x-input-label for="user-host" :value="__('You might also need to open the database port in Firewall')" class="mt-1"/>
|
<x-input-label for="user-host" :value="__('You might also need to open the database port in Firewall')" class="mt-1"/>
|
||||||
@error('host')
|
@error('host')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<x-modal name="database-user-password">
|
<x-modal name="database-user-password">
|
||||||
<form wire:submit.prevent="create" class="p-6" x-data="{remote: false}">
|
<form wire:submit="create" class="p-6" x-data="{remote: false}">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('View Password') }}
|
{{ __('View Password') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label :value="__('Password')" />
|
<x-input-label :value="__('Password')" />
|
||||||
<x-text-input wire:model.defer="viewPassword" type="text" class="mt-1 w-full" disabled />
|
<x-text-input wire:model="viewPassword" type="text" class="mt-1 w-full" disabled />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-6 flex justify-end">
|
<div class="mt-6 flex justify-end">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<x-modal name="link-database-user">
|
<x-modal name="link-database-user">
|
||||||
<form wire:submit.prevent="link" class="p-6">
|
<form wire:submit="link" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Link User to Databases') }}
|
{{ __('Link User to Databases') }}
|
||||||
</h2>
|
</h2>
|
||||||
@ -8,7 +8,7 @@
|
|||||||
@foreach($databases as $database)
|
@foreach($databases as $database)
|
||||||
<div class="mb-2">
|
<div class="mb-2">
|
||||||
<label for="db-{{ $database->id }}" class="inline-flex items-center">
|
<label for="db-{{ $database->id }}" class="inline-flex items-center">
|
||||||
<input id="db-{{ $database->id }}" wire:model.defer="link" value="{{ $database->name }}" type="checkbox" class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-sm focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800" name="link">
|
<input id="db-{{ $database->id }}" wire:model="link" value="{{ $database->name }}" type="checkbox" class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-sm focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800" name="link">
|
||||||
<span class="ml-2 text-sm text-gray-600 dark:text-gray-400">{{ $database->name }}</span>
|
<span class="ml-2 text-sm text-gray-600 dark:text-gray-400">{{ $database->name }}</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<x-modal name="restore-backup">
|
<x-modal name="restore-backup">
|
||||||
<form wire:submit.prevent="restore" class="p-6" x-data="{}">
|
<form wire:submit="restore" class="p-6" x-data="{}">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Restore Backup') }}
|
{{ __('Restore Backup') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="database" :value="__('Database')" />
|
<x-input-label for="database" :value="__('Database')" />
|
||||||
<x-select-input wire:model="restoreDatabaseId" id="restoreDatabaseId" name="restoreDatabaseId" class="mt-1 w-full">
|
<x-select-input wire:model.live="restoreDatabaseId" id="restoreDatabaseId" name="restoreDatabaseId" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
@foreach($databases as $db)
|
@foreach($databases as $db)
|
||||||
<option value="{{ $db->id }}" @if($restoreDatabaseId == $db->id) selected @endif>{{ $db->name }}</option>
|
<option value="{{ $db->id }}" @if($restoreDatabaseId == $db->id) selected @endif>{{ $db->name }}</option>
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-primary-button>
|
</x-primary-button>
|
||||||
|
|
||||||
<x-modal name="create-rule">
|
<x-modal name="create-rule">
|
||||||
<form wire:submit.prevent="create" class="p-6">
|
<form wire:submit="create" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Create new Rule') }}
|
{{ __('Create new Rule') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="type" :value="__('Rule Type')" />
|
<x-input-label for="type" :value="__('Rule Type')" />
|
||||||
<x-select-input wire:model.defer="type" id="type" name="type" class="mt-1 w-full">
|
<x-select-input wire:model="type" id="type" name="type" class="mt-1 w-full">
|
||||||
<option value="allow" @if($type === 'allow') selected @endif>{{ __("Allow") }}</option>
|
<option value="allow" @if($type === 'allow') selected @endif>{{ __("Allow") }}</option>
|
||||||
<option value="deny" @if($type === 'deny') selected @endif>{{ __("Deny") }}</option>
|
<option value="deny" @if($type === 'deny') selected @endif>{{ __("Deny") }}</option>
|
||||||
</x-select-input>
|
</x-select-input>
|
||||||
@ -23,7 +23,7 @@
|
|||||||
<div class="mt-6 grid grid-cols-1 lg:grid-cols-2 gap-3">
|
<div class="mt-6 grid grid-cols-1 lg:grid-cols-2 gap-3">
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="protocol" :value="__('Protocol')" />
|
<x-input-label for="protocol" :value="__('Protocol')" />
|
||||||
<x-select-input wire:model="protocol" id="protocol" name="protocol" class="mt-1 w-full">
|
<x-select-input wire:model.live="protocol" id="protocol" name="protocol" class="mt-1 w-full">
|
||||||
@foreach(config('core.firewall_protocols_port') as $key => $value)
|
@foreach(config('core.firewall_protocols_port') as $key => $value)
|
||||||
<option value="{{ $key }}" @if($key === $protocol) selected @endif>{{ $key }}</option>
|
<option value="{{ $key }}" @if($key === $protocol) selected @endif>{{ $key }}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="port" :value="__('Port')" />
|
<x-input-label for="port" :value="__('Port')" />
|
||||||
<x-text-input wire:model.defer="port" id="port" name="port" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="port" id="port" name="port" type="text" class="mt-1 w-full" />
|
||||||
@error('port')
|
@error('port')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="source" :value="__('Source')" />
|
<x-input-label for="source" :value="__('Source')" />
|
||||||
<x-text-input wire:model.defer="source" id="source" name="source" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="source" id="source" name="source" type="text" class="mt-1 w-full" />
|
||||||
@error('source')
|
@error('source')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -51,7 +51,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="mask" :value="__('Mask')" />
|
<x-input-label for="mask" :value="__('Mask')" />
|
||||||
<x-text-input wire:model.defer="mask" id="mask" name="mask" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="mask" id="mask" name="mask" type="text" class="mt-1 w-full" />
|
||||||
@error('mask')
|
@error('mask')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-primary-button>
|
</x-primary-button>
|
||||||
|
|
||||||
<x-modal name="add-channel">
|
<x-modal name="add-channel">
|
||||||
<form wire:submit.prevent="add" class="p-6">
|
<form wire:submit="add" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Add new Channel') }}
|
{{ __('Add new Channel') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="provider" value="Provider" />
|
<x-input-label for="provider" value="Provider" />
|
||||||
<x-select-input wire:model="provider" id="provider" name="provider" class="mt-1 w-full">
|
<x-select-input wire:model.live="provider" id="provider" name="provider" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
@foreach(config('core.notification_channels_providers') as $p)
|
@foreach(config('core.notification_channels_providers') as $p)
|
||||||
@if($p !== 'custom')
|
@if($p !== 'custom')
|
||||||
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="label" :value="__('Label')" />
|
<x-input-label for="label" :value="__('Label')" />
|
||||||
<x-text-input wire:model.defer="label" id="label" name="label" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="label" id="label" name="label" type="text" class="mt-1 w-full" />
|
||||||
@error('label')
|
@error('label')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -35,7 +35,7 @@
|
|||||||
@if($provider == \App\Enums\NotificationChannel::EMAIL)
|
@if($provider == \App\Enums\NotificationChannel::EMAIL)
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="email" :value="__('Email')" />
|
<x-input-label for="email" :value="__('Email')" />
|
||||||
<x-text-input wire:model.defer="email" id="email" name="email" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="email" id="email" name="email" type="text" class="mt-1 w-full" />
|
||||||
@error('email')
|
@error('email')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -45,7 +45,7 @@
|
|||||||
@if(in_array($provider, [\App\Enums\NotificationChannel::SLACK, \App\Enums\NotificationChannel::DISCORD]))
|
@if(in_array($provider, [\App\Enums\NotificationChannel::SLACK, \App\Enums\NotificationChannel::DISCORD]))
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="webhook_url" :value="__('Webhook URL')" />
|
<x-input-label for="webhook_url" :value="__('Webhook URL')" />
|
||||||
<x-text-input wire:model.defer="webhook_url" id="webhook_url" name="webhook_url" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="webhook_url" id="webhook_url" name="webhook_url" type="text" class="mt-1 w-full" />
|
||||||
@error('webhook_url')
|
@error('webhook_url')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -55,7 +55,7 @@
|
|||||||
@if($provider == \App\Enums\NotificationChannel::TELEGRAM)
|
@if($provider == \App\Enums\NotificationChannel::TELEGRAM)
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="bot_token" :value="__('Bot Token')" />
|
<x-input-label for="bot_token" :value="__('Bot Token')" />
|
||||||
<x-text-input wire:model.defer="bot_token" id="bot_token" name="bot_token" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="bot_token" id="bot_token" name="bot_token" type="text" class="mt-1 w-full" />
|
||||||
@error('bot_token')
|
@error('bot_token')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -63,7 +63,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="chat_id" :value="__('Chat ID')" />
|
<x-input-label for="chat_id" :value="__('Chat ID')" />
|
||||||
<x-text-input wire:model.defer="chat_id" id="chat_id" name="chat_id" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="chat_id" id="chat_id" name="chat_id" type="text" class="mt-1 w-full" />
|
||||||
@error('chat_id')
|
@error('chat_id')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<x-modal name="install-extension">
|
<x-modal name="install-extension">
|
||||||
<form wire:submit.prevent="installExtension" class="p-6">
|
<form wire:submit="installExtension" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Install Extension') }}
|
{{ __('Install Extension') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="extension" value="Name" />
|
<x-input-label for="extension" value="Name" />
|
||||||
<x-select-input wire:model.defer="extension" name="extension" class="mt-1 w-full">
|
<x-select-input wire:model="extension" name="extension" class="mt-1 w-full">
|
||||||
<option value="" selected>{{ __("Select") }}</option>
|
<option value="" selected>{{ __("Select") }}</option>
|
||||||
@foreach(config('core.php_extensions') as $extension)
|
@foreach(config('core.php_extensions') as $extension)
|
||||||
<option value="{{ $extension }}" @if(in_array($extension, $installedExtensions)) disabled @endif>
|
<option value="{{ $extension }}" @if(in_array($extension, $installedExtensions)) disabled @endif>
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<x-modal name="update-php-ini">
|
<x-modal name="update-php-ini">
|
||||||
<form wire:submit.prevent="saveIni" class="p-6">
|
<form wire:submit="saveIni" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Update php.ini') }}
|
{{ __('Update php.ini') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="ini" value="php.ini" />
|
<x-input-label for="ini" value="php.ini" />
|
||||||
<x-textarea wire:model.defer="ini" id="ini" name="ini" class="mt-1 w-full" rows="15" />
|
<x-textarea wire:model="ini" id="ini" name="ini" class="mt-1 w-full" rows="15" />
|
||||||
@error('ini')
|
@error('ini')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -7,13 +7,13 @@
|
|||||||
{{ __('Ensure your account is using a long, random password to stay secure.') }}
|
{{ __('Ensure your account is using a long, random password to stay secure.') }}
|
||||||
</x-slot>
|
</x-slot>
|
||||||
|
|
||||||
<form id="update-password" wire:submit.prevent="update" class="mt-6 space-y-6">
|
<form id="update-password" wire:submit="update" class="mt-6 space-y-6">
|
||||||
@csrf
|
@csrf
|
||||||
@method('put')
|
@method('put')
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="current_password" :value="__('Current Password')" />
|
<x-input-label for="current_password" :value="__('Current Password')" />
|
||||||
<x-text-input wire:model.defer="current_password" id="current_password" name="current_password" type="password" class="mt-1 block w-full" autocomplete="current-password" />
|
<x-text-input wire:model="current_password" id="current_password" name="current_password" type="password" class="mt-1 block w-full" autocomplete="current-password" />
|
||||||
@error('current_password')
|
@error('current_password')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="password" :value="__('New Password')" />
|
<x-input-label for="password" :value="__('New Password')" />
|
||||||
<x-text-input wire:model.defer="password" id="password" name="password" type="password" class="mt-1 block w-full" autocomplete="new-password" />
|
<x-text-input wire:model="password" id="password" name="password" type="password" class="mt-1 block w-full" autocomplete="new-password" />
|
||||||
@error('password')
|
@error('password')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="password_confirmation" :value="__('Confirm Password')" />
|
<x-input-label for="password_confirmation" :value="__('Confirm Password')" />
|
||||||
<x-text-input wire:model.defer="password_confirmation" id="password_confirmation" name="password_confirmation" type="password" class="mt-1 block w-full" autocomplete="new-password" />
|
<x-text-input wire:model="password_confirmation" id="password_confirmation" name="password_confirmation" type="password" class="mt-1 block w-full" autocomplete="new-password" />
|
||||||
@error('password_confirmation')
|
@error('password_confirmation')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -10,13 +10,13 @@
|
|||||||
{{ __("Update your account's profile information and email address.") }}
|
{{ __("Update your account's profile information and email address.") }}
|
||||||
</x-slot>
|
</x-slot>
|
||||||
|
|
||||||
<form id="send-verification" wire:submit.prevent="sendVerificationEmail">
|
<form id="send-verification" wire:submit="sendVerificationEmail">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<form id="update-profile-information" wire:submit.prevent="submit" class="mt-6 space-y-6">
|
<form id="update-profile-information" wire:submit="submit" class="mt-6 space-y-6">
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="name" :value="__('Name')" />
|
<x-input-label for="name" :value="__('Name')" />
|
||||||
<x-text-input wire:model.defer="name" id="name" name="name" type="text" class="mt-1 block w-full" required autocomplete="name" />
|
<x-text-input wire:model="name" id="name" name="name" type="text" class="mt-1 block w-full" required autocomplete="name" />
|
||||||
@error('name')
|
@error('name')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="email" :value="__('Email')" />
|
<x-input-label for="email" :value="__('Email')" />
|
||||||
<x-text-input wire:model.defer="email" id="email" name="email" type="email" class="mt-1 block w-full" required autocomplete="username" />
|
<x-text-input wire:model="email" id="email" name="email" type="email" class="mt-1 block w-full" required autocomplete="username" />
|
||||||
@error('email')
|
@error('email')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="timezone" :value="__('Timezone')" />
|
<x-input-label for="timezone" :value="__('Timezone')" />
|
||||||
<x-select-input wire:model.defer="timezone" id="timezone" name="timezone" class="mt-1 block w-full" required>
|
<x-select-input wire:model="timezone" id="timezone" name="timezone" class="mt-1 block w-full" required>
|
||||||
@foreach(timezone_identifiers_list() as $timezone)
|
@foreach(timezone_identifiers_list() as $timezone)
|
||||||
<option value="{{ $timezone }}">{{ $timezone }}</option>
|
<option value="{{ $timezone }}">{{ $timezone }}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-primary-button>
|
</x-primary-button>
|
||||||
|
|
||||||
<x-modal name="create-project" :show="$open">
|
<x-modal name="create-project" :show="$open">
|
||||||
<form wire:submit.prevent="create" class="p-6">
|
<form wire:submit="create" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Create Project') }}
|
{{ __('Create Project') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="name" value="Name" />
|
<x-input-label for="name" value="Name" />
|
||||||
<x-text-input wire:model.defer="inputs.name" id="name" name="name" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="inputs.name" id="name" name="name" type="text" class="mt-1 w-full" />
|
||||||
@error('name')
|
@error('name')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-icon-button>
|
</x-icon-button>
|
||||||
|
|
||||||
<x-modal name="edit-project-{{ $project->id }}">
|
<x-modal name="edit-project-{{ $project->id }}">
|
||||||
<form wire:submit.prevent="save" class="p-6 text-left">
|
<form wire:submit="save" class="p-6 text-left">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Edit Project') }}
|
{{ __('Edit Project') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="edit-name-{{ $project->id }}" value="Name" />
|
<x-input-label for="edit-name-{{ $project->id }}" value="Name" />
|
||||||
<x-text-input wire:model.defer="inputs.name" id="edit-name-{{ $project->id }}" name="name" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="inputs.name" id="edit-name-{{ $project->id }}" name="name" type="text" class="mt-1 w-full" />
|
||||||
@error('name')
|
@error('name')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-primary-button>
|
</x-primary-button>
|
||||||
|
|
||||||
<x-modal name="create-queue">
|
<x-modal name="create-queue">
|
||||||
<form wire:submit.prevent="create" class="p-6">
|
<form wire:submit="create" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Create Queue') }}
|
{{ __('Create Queue') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="command" :value="__('Command')" />
|
<x-input-label for="command" :value="__('Command')" />
|
||||||
<x-text-input wire:model.defer="command" id="command" name="command" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="command" id="command" name="command" type="text" class="mt-1 w-full" />
|
||||||
@error('command')
|
@error('command')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="user" :value="__('User')" />
|
<x-input-label for="user" :value="__('User')" />
|
||||||
<x-select-input wire:model.defer="user" id="user" name="user" class="mt-1 w-full">
|
<x-select-input wire:model="user" id="user" name="user" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
<option value="root" @if($user === 'root') selected @endif>root</option>
|
<option value="root" @if($user === 'root') selected @endif>root</option>
|
||||||
<option value="{{ $site->server->ssh_user }}" @if($user === $site->server->ssh_user) selected @endif>{{ $site->server->ssh_user }}</option>
|
<option value="{{ $site->server->ssh_user }}" @if($user === $site->server->ssh_user) selected @endif>{{ $site->server->ssh_user }}</option>
|
||||||
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="auto_start" :value="__('Auto Start')" />
|
<x-input-label for="auto_start" :value="__('Auto Start')" />
|
||||||
<x-select-input wire:model="auto_start" id="auto_start" name="auto_start" class="mt-1 w-full">
|
<x-select-input wire:model.live="auto_start" id="auto_start" name="auto_start" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
<option value="1" @if($auto_start) selected @endif>{{ __("Yes") }}</option>
|
<option value="1" @if($auto_start) selected @endif>{{ __("Yes") }}</option>
|
||||||
<option value="0" @if(!$auto_start) selected @endif>{{ __("No") }}</option>
|
<option value="0" @if(!$auto_start) selected @endif>{{ __("No") }}</option>
|
||||||
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="auto_restart" :value="__('Auto Restart')" />
|
<x-input-label for="auto_restart" :value="__('Auto Restart')" />
|
||||||
<x-select-input wire:model="auto_restart" id="auto_restart" name="auto_restart" class="mt-1 w-full">
|
<x-select-input wire:model.live="auto_restart" id="auto_restart" name="auto_restart" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
<option value="1" @if($auto_restart) selected @endif>{{ __("Yes") }}</option>
|
<option value="1" @if($auto_restart) selected @endif>{{ __("Yes") }}</option>
|
||||||
<option value="0" @if(!$auto_restart) selected @endif>{{ __("No") }}</option>
|
<option value="0" @if(!$auto_restart) selected @endif>{{ __("No") }}</option>
|
||||||
@ -55,7 +55,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="numprocs" :value="__('Numprocs')" />
|
<x-input-label for="numprocs" :value="__('Numprocs')" />
|
||||||
<x-text-input wire:model.defer="numprocs" id="numprocs" name="numprocs" type="text" class="mt-1 w-full" placeholder="2" />
|
<x-text-input wire:model="numprocs" id="numprocs" name="numprocs" type="text" class="mt-1 w-full" placeholder="2" />
|
||||||
@error('numprocs')
|
@error('numprocs')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-primary-button>
|
</x-primary-button>
|
||||||
|
|
||||||
<x-modal name="connect-provider" :show="$open">
|
<x-modal name="connect-provider" :show="$open">
|
||||||
<form wire:submit.prevent="connect" class="p-6">
|
<form wire:submit="connect" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Connect to a Server Provider') }}
|
{{ __('Connect to a Server Provider') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="provider" value="Provider" />
|
<x-input-label for="provider" value="Provider" />
|
||||||
<x-select-input wire:model="provider" id="provider" name="provider" class="mt-1 w-full">
|
<x-select-input wire:model.live="provider" id="provider" name="provider" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
@foreach(config('core.server_providers') as $p)
|
@foreach(config('core.server_providers') as $p)
|
||||||
@if($p !== 'custom')
|
@if($p !== 'custom')
|
||||||
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="name" value="Name" />
|
<x-input-label for="name" value="Name" />
|
||||||
<x-text-input wire:model.defer="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
||||||
@error('name')
|
@error('name')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -35,7 +35,7 @@
|
|||||||
@if($provider === 'aws')
|
@if($provider === 'aws')
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="key" value="Access Key" />
|
<x-input-label for="key" value="Access Key" />
|
||||||
<x-text-input wire:model.defer="key" id="key" name="key" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="key" id="key" name="key" type="text" class="mt-1 w-full" />
|
||||||
@error('key')
|
@error('key')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="secret" value="Secret" />
|
<x-input-label for="secret" value="Secret" />
|
||||||
<x-text-input wire:model.defer="secret" id="secret" name="secret" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="secret" id="secret" name="secret" type="text" class="mt-1 w-full" />
|
||||||
@error('secret')
|
@error('secret')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -53,7 +53,7 @@
|
|||||||
@if(in_array($provider, ['hetzner', 'digitalocean', 'vultr', 'linode']))
|
@if(in_array($provider, ['hetzner', 'digitalocean', 'vultr', 'linode']))
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="token" value="API Key" />
|
<x-input-label for="token" value="API Key" />
|
||||||
<x-text-input wire:model.defer="token" id="token" name="token" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="token" id="token" name="token" type="text" class="mt-1 w-full" />
|
||||||
@error('token')
|
@error('token')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -1 +1,3 @@
|
|||||||
<x-primary-button wire:click="check">{{ __("Check Connection") }}</x-primary-button>
|
<div>
|
||||||
|
<x-primary-button wire:click="check">{{ __("Check Connection") }}</x-primary-button>
|
||||||
|
</div>
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
|
|
||||||
<x-slot name="description">{{ __("You can edit your server's some of fields") }}</x-slot>
|
<x-slot name="description">{{ __("You can edit your server's some of fields") }}</x-slot>
|
||||||
|
|
||||||
<form id="update-server" wire:submit.prevent="update" class="mt-6 space-y-6">
|
<form id="update-server" wire:submit="update" class="mt-6 space-y-6">
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="name" :value="__('Name')" />
|
<x-input-label for="name" :value="__('Name')" />
|
||||||
<x-text-input wire:model.defer="name" id="name" name="name" type="text" class="mt-1 block w-full" required autocomplete="name" />
|
<x-text-input wire:model="name" id="name" name="name" type="text" class="mt-1 block w-full" required autocomplete="name" />
|
||||||
@error('name')
|
@error('name')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="ip" :value="__('IP Address')" />
|
<x-input-label for="ip" :value="__('IP Address')" />
|
||||||
<x-text-input wire:model.defer="ip" id="ip" name="ip" type="text" class="mt-1 block w-full" required autocomplete="ip" />
|
<x-text-input wire:model="ip" id="ip" name="ip" type="text" class="mt-1 block w-full" required autocomplete="ip" />
|
||||||
@error('ip')
|
@error('ip')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="port" :value="__('SSH Port')" />
|
<x-input-label for="port" :value="__('SSH Port')" />
|
||||||
<x-text-input wire:model.defer="port" id="port" name="port" type="text" class="mt-1 block w-full" required autocomplete="port" />
|
<x-text-input wire:model="port" id="port" name="port" type="text" class="mt-1 block w-full" required autocomplete="port" />
|
||||||
@error('port')
|
@error('port')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -1 +1,3 @@
|
|||||||
<x-secondary-button wire:click="reboot" wire:loading.attr="disabled">{{ __("Reboot") }}</x-secondary-button>
|
<div>
|
||||||
|
<x-secondary-button wire:click="reboot" wire:loading.attr="disabled">{{ __("Reboot") }}</x-secondary-button>
|
||||||
|
</div>
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-secondary-button>
|
</x-secondary-button>
|
||||||
|
|
||||||
<x-modal name="add-existing-key">
|
<x-modal name="add-existing-key">
|
||||||
<form wire:submit.prevent="add" class="p-6">
|
<form wire:submit="add" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Add existing Key') }}
|
{{ __('Add existing Key') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="key_id" :value="__('SSH Key')" />
|
<x-input-label for="key_id" :value="__('SSH Key')" />
|
||||||
<x-select-input wire:model.defer="key_id" id="key_id" name="key_id" class="mt-1 w-full">
|
<x-select-input wire:model="key_id" id="key_id" name="key_id" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
@foreach($keys as $key)
|
@foreach($keys as $key)
|
||||||
<option value="{{ $key->id }}" @if($key->id === $key_id) selected @endif>{{ $key->name }}</option>
|
<option value="{{ $key->id }}" @if($key->id === $key_id) selected @endif>{{ $key->name }}</option>
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-primary-button>
|
</x-primary-button>
|
||||||
|
|
||||||
<x-modal name="add-key">
|
<x-modal name="add-key">
|
||||||
<form wire:submit.prevent="add" class="p-6">
|
<form wire:submit="add" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Add new Key') }}
|
{{ __('Add new Key') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="name" :value="__('Name')" />
|
<x-input-label for="name" :value="__('Name')" />
|
||||||
<x-text-input wire:model.defer="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
||||||
@error('name')
|
@error('name')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="public_key" :value="__('Public Key')" />
|
<x-input-label for="public_key" :value="__('Public Key')" />
|
||||||
<x-textarea wire:model.defer="public_key" id="public_key" name="public_key" class="mt-1 w-full" rows="5" />
|
<x-textarea wire:model="public_key" id="public_key" name="public_key" class="mt-1 w-full" rows="5" />
|
||||||
@error('public_key')
|
@error('public_key')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<x-card>
|
<x-card>
|
||||||
<x-slot name="title">{{ __("Create new Server") }}</x-slot>
|
<x-slot name="title">{{ __("Create new Server") }}</x-slot>
|
||||||
<x-slot name="description">{{ __("Use this form to create a new server") }}</x-slot>
|
<x-slot name="description">{{ __("Use this form to create a new server") }}</x-slot>
|
||||||
<form id="create-server" wire:submit.prevent="submit" class="mt-6 space-y-6">
|
<form id="create-server" wire:submit="submit" class="mt-6 space-y-6">
|
||||||
<div>
|
<div>
|
||||||
<x-input-label>{{ __("Select a server provider") }}</x-input-label>
|
<x-input-label>{{ __("Select a server provider") }}</x-input-label>
|
||||||
<div class="grid grid-cols-6 gap-2 mt-1">
|
<div class="grid grid-cols-6 gap-2 mt-1">
|
||||||
@ -26,7 +26,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<x-input-label for="server_provider" value="Provider Profile" />
|
<x-input-label for="server_provider" value="Provider Profile" />
|
||||||
<div class="flex items-center mt-1">
|
<div class="flex items-center mt-1">
|
||||||
<x-select-input wire:model="server_provider" id="server_provider" name="server_provider" class="w-full">
|
<x-select-input wire:model.live="server_provider" id="server_provider" name="server_provider" class="w-full">
|
||||||
<option value="" disabled selected>{{ __("Select") }}</option>
|
<option value="" disabled selected>{{ __("Select") }}</option>
|
||||||
@foreach($serverProviders as $sp)
|
@foreach($serverProviders as $sp)
|
||||||
<option value="{{ $sp->id }}" @if($sp->id === $server_provider) selected @endif>
|
<option value="{{ $sp->id }}" @if($sp->id === $server_provider) selected @endif>
|
||||||
@ -47,7 +47,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="name" :value="__('Name')" />
|
<x-input-label for="name" :value="__('Name')" />
|
||||||
<x-text-input wire:model.defer="name" id="name" name="name" type="text" class="mt-1 block w-full" autocomplete="name" />
|
<x-text-input wire:model="name" id="name" name="name" type="text" class="mt-1 block w-full" autocomplete="name" />
|
||||||
@error('name')
|
@error('name')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -57,7 +57,7 @@
|
|||||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-3">
|
<div class="grid grid-cols-1 lg:grid-cols-2 gap-3">
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="plan" value="Plan" />
|
<x-input-label for="plan" value="Plan" />
|
||||||
<x-select-input wire:model.defer="plan" id="plan" name="plan" class="mt-1 w-full">
|
<x-select-input wire:model="plan" id="plan" name="plan" class="mt-1 w-full">
|
||||||
<option value="" disabled selected>{{ __("Select") }}</option>
|
<option value="" disabled selected>{{ __("Select") }}</option>
|
||||||
@foreach(config('serverproviders')[$provider]['plans'] as $value)
|
@foreach(config('serverproviders')[$provider]['plans'] as $value)
|
||||||
<option value="{{ $value['value'] }}" @if($value['value'] === $plan) selected @endif>{{ $value['title'] }}</option>
|
<option value="{{ $value['value'] }}" @if($value['value'] === $plan) selected @endif>{{ $value['title'] }}</option>
|
||||||
@ -69,7 +69,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="region" value="Region" />
|
<x-input-label for="region" value="Region" />
|
||||||
<x-select-input wire:model.defer="region" id="region" name="region" class="mt-1 w-full">
|
<x-select-input wire:model="region" id="region" name="region" class="mt-1 w-full">
|
||||||
<option value="" disabled selected>{{ __("Select") }}</option>
|
<option value="" disabled selected>{{ __("Select") }}</option>
|
||||||
@foreach(config('serverproviders')[$provider]['regions'] as $key => $value)
|
@foreach(config('serverproviders')[$provider]['regions'] as $key => $value)
|
||||||
<option value="{{ $value['value'] }}" @if($value['value'] === $plan) selected @endif>{{ $value['title'] }}</option>
|
<option value="{{ $value['value'] }}" @if($value['value'] === $plan) selected @endif>{{ $value['title'] }}</option>
|
||||||
@ -86,14 +86,14 @@
|
|||||||
<div class="grid grid-cols-2 gap-3">
|
<div class="grid grid-cols-2 gap-3">
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="ip" :value="__('SSH IP Address')" />
|
<x-input-label for="ip" :value="__('SSH IP Address')" />
|
||||||
<x-text-input wire:model.defer="ip" id="ip" name="ip" type="text" class="mt-1 block w-full" autocomplete="ip" />
|
<x-text-input wire:model="ip" id="ip" name="ip" type="text" class="mt-1 block w-full" autocomplete="ip" />
|
||||||
@error('ip')
|
@error('ip')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="port" :value="__('SSH Port')" />
|
<x-input-label for="port" :value="__('SSH Port')" />
|
||||||
<x-text-input wire:model.defer="port" id="port" name="port" type="text" class="mt-1 block w-full" autocomplete="port" />
|
<x-text-input wire:model="port" id="port" name="port" type="text" class="mt-1 block w-full" autocomplete="port" />
|
||||||
@error('port')
|
@error('port')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -103,7 +103,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="os" value="Operating System" />
|
<x-input-label for="os" value="Operating System" />
|
||||||
<x-select-input wire:model.defer="os" id="os" name="os" class="mt-1 w-full">
|
<x-select-input wire:model="os" id="os" name="os" class="mt-1 w-full">
|
||||||
@foreach(config('core.operating_systems') as $operatingSystem)
|
@foreach(config('core.operating_systems') as $operatingSystem)
|
||||||
<option value="{{ $operatingSystem }}" @if($operatingSystem === $os) selected @endif>
|
<option value="{{ $operatingSystem }}" @if($operatingSystem === $os) selected @endif>
|
||||||
{{ str($operatingSystem)->replace('_', ' ')->ucfirst() }} LTS
|
{{ str($operatingSystem)->replace('_', ' ')->ucfirst() }} LTS
|
||||||
@ -117,7 +117,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="type" value="Server Type" />
|
<x-input-label for="type" value="Server Type" />
|
||||||
<x-select-input wire:model.defer="type" id="type" name="type" class="mt-1 w-full">
|
<x-select-input wire:model="type" id="type" name="type" class="mt-1 w-full">
|
||||||
@foreach(config('core.server_types') as $serverType)
|
@foreach(config('core.server_types') as $serverType)
|
||||||
<option value="{{ $serverType }}" @if($type === $serverType) selected @endif>
|
<option value="{{ $serverType }}" @if($type === $serverType) selected @endif>
|
||||||
{{ $serverType }}
|
{{ $serverType }}
|
||||||
@ -132,7 +132,7 @@
|
|||||||
<div class="grid grid-cols-1 lg:grid-cols-3 gap-3">
|
<div class="grid grid-cols-1 lg:grid-cols-3 gap-3">
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="webserver" value="Webserver" />
|
<x-input-label for="webserver" value="Webserver" />
|
||||||
<x-select-input wire:model.defer="webserver" id="webserver" name="webserver" class="mt-1 w-full">
|
<x-select-input wire:model="webserver" id="webserver" name="webserver" class="mt-1 w-full">
|
||||||
@foreach(config('core.webservers') as $ws)
|
@foreach(config('core.webservers') as $ws)
|
||||||
<option value="{{ $ws }}" @if($ws === $webserver) selected @endif>{{ $ws }}</option>
|
<option value="{{ $ws }}" @if($ws === $webserver) selected @endif>{{ $ws }}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
@ -143,7 +143,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="database" value="Database" />
|
<x-input-label for="database" value="Database" />
|
||||||
<x-select-input wire:model.defer="database" id="database" name="database" class="mt-1 w-full">
|
<x-select-input wire:model="database" id="database" name="database" class="mt-1 w-full">
|
||||||
@foreach(config('core.databases') as $db)
|
@foreach(config('core.databases') as $db)
|
||||||
<option value="{{ $db }}" @if($db === $database) selected @endif>{{ $db }}</option>
|
<option value="{{ $db }}" @if($db === $database) selected @endif>{{ $db }}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
@ -154,7 +154,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="php" value="PHP" />
|
<x-input-label for="php" value="PHP" />
|
||||||
<x-select-input wire:model.defer="php" id="php" name="php" class="mt-1 w-full">
|
<x-select-input wire:model="php" id="php" name="php" class="mt-1 w-full">
|
||||||
@foreach(config('core.php_versions') as $p)
|
@foreach(config('core.php_versions') as $p)
|
||||||
<option value="{{ $p }}" @if($p === $php) selected @endif>{{ $p }}</option>
|
<option value="{{ $p }}" @if($p === $php) selected @endif>{{ $p }}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<x-modal name="install-phpmyadmin">
|
<x-modal name="install-phpmyadmin">
|
||||||
<form wire:submit.prevent="install" class="p-6">
|
<form wire:submit="install" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Install PHPMyAdmin') }}
|
{{ __('Install PHPMyAdmin') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="allowed_ip" :value="__('Allowed IP')" />
|
<x-input-label for="allowed_ip" :value="__('Allowed IP')" />
|
||||||
<x-text-input wire:model.defer="allowed_ip" id="allowed_ip" name="allowed_ip" class="mt-1 w-full" />
|
<x-text-input wire:model="allowed_ip" id="allowed_ip" name="allowed_ip" class="mt-1 w-full" />
|
||||||
@error('allowed_ip')
|
@error('allowed_ip')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="port" :value="__('Port')" />
|
<x-input-label for="port" :value="__('Port')" />
|
||||||
<x-text-input wire:model.defer="port" id="port" name="port" class="mt-1 w-full" />
|
<x-text-input wire:model="port" id="port" name="port" class="mt-1 w-full" />
|
||||||
@error('port')
|
@error('port')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
|
|
||||||
<x-slot name="description">{{ __("You can change your site's PHP version here") }}</x-slot>
|
<x-slot name="description">{{ __("You can change your site's PHP version here") }}</x-slot>
|
||||||
|
|
||||||
<form id="change-php-version" wire:submit.prevent="change" class="space-y-6">
|
<form id="change-php-version" wire:submit="change" class="space-y-6">
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="version" :value="__('PHP Version')" />
|
<x-input-label for="version" :value="__('PHP Version')" />
|
||||||
<x-select-input wire:model.defer="version" id="version" name="version" class="mt-1 w-full">
|
<x-select-input wire:model="version" id="version" name="version" class="mt-1 w-full">
|
||||||
<option value="" disabled selected>{{ __("Select") }}</option>
|
<option value="" disabled selected>{{ __("Select") }}</option>
|
||||||
@foreach($site->server->installedPHPVersions() as $php)
|
@foreach($site->server->installedPHPVersions() as $php)
|
||||||
<option value="{{ $php }}" @if($php === $version) selected @endif>{{ $php }}</option>
|
<option value="{{ $php }}" @if($php === $version) selected @endif>{{ $php }}</option>
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
<x-card>
|
<x-card>
|
||||||
<x-slot name="title">{{ __("Create new site") }}</x-slot>
|
<x-slot name="title">{{ __("Create new site") }}</x-slot>
|
||||||
<x-slot name="description">{{ __("Use this form to create a new site") }}</x-slot>
|
<x-slot name="description">{{ __("Use this form to create a new site") }}</x-slot>
|
||||||
<form id="create-site" wire:submit.prevent="create" class="space-y-6">
|
<form id="create-site" wire:submit="create" class="space-y-6">
|
||||||
<div>
|
<div>
|
||||||
<x-input-label>{{ __("Select site type") }}</x-input-label>
|
<x-input-label>{{ __("Select site type") }}</x-input-label>
|
||||||
<x-select-input wire:model="inputs.type" id="type" name="type" class="mt-1 w-full">
|
<x-select-input wire:model.live="inputs.type" id="type" name="type" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
@foreach(config('core.site_types') as $t)
|
@foreach(config('core.site_types') as $t)
|
||||||
<option value="{{ $t }}" @if($t === $inputs['type']) selected @endif>
|
<option value="{{ $t }}" @if($t === $inputs['type']) selected @endif>
|
||||||
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="domain" :value="__('Domain')" />
|
<x-input-label for="domain" :value="__('Domain')" />
|
||||||
<x-text-input wire:model.defer="inputs.domain" id="domain" name="domain" type="text" class="mt-1 block w-full" autocomplete="domain" placeholder="example.com" />
|
<x-text-input wire:model="inputs.domain" id="domain" name="domain" type="text" class="mt-1 block w-full" autocomplete="domain" placeholder="example.com" />
|
||||||
@error('domain')
|
@error('domain')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="alias" :value="__('Alias')" />
|
<x-input-label for="alias" :value="__('Alias')" />
|
||||||
<x-text-input wire:model.defer="inputs.alias" id="alias" name="alias" type="text" class="mt-1 block w-full" autocomplete="alias" placeholder="www.example.com" />
|
<x-text-input wire:model="inputs.alias" id="alias" name="alias" type="text" class="mt-1 block w-full" autocomplete="alias" placeholder="www.example.com" />
|
||||||
@error('alias')
|
@error('alias')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<div>
|
<div>
|
||||||
<x-input-label for="branch" :value="__('Branch')" />
|
<x-input-label for="branch" :value="__('Branch')" />
|
||||||
<x-text-input wire:model.defer="inputs.branch" id="branch" name="branch" type="text" class="mt-1 block w-full" autocomplete="branch" placeholder="main" />
|
<x-text-input wire:model="inputs.branch" id="branch" name="branch" type="text" class="mt-1 block w-full" autocomplete="branch" placeholder="main" />
|
||||||
@error('branch')
|
@error('branch')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<label for="composer" class="inline-flex items-center">
|
<label for="composer" class="inline-flex items-center">
|
||||||
<input id="composer" wire:model.defer="inputs.composer" type="checkbox" class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-sm focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800" name="composer">
|
<input id="composer" wire:model="inputs.composer" type="checkbox" class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-sm focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800" name="composer">
|
||||||
<span class="ml-2 text-sm text-gray-600 dark:text-gray-400">{{ __('Run `composer install --no-dev`') }}</span>
|
<span class="ml-2 text-sm text-gray-600 dark:text-gray-400">{{ __('Run `composer install --no-dev`') }}</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
@endphp
|
@endphp
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="php_version" :value="__('PHP Version')" />
|
<x-input-label for="php_version" :value="__('PHP Version')" />
|
||||||
<x-select-input wire:model.defer="inputs.php_version" id="php_version" name="php_version" class="mt-1 w-full">
|
<x-select-input wire:model="inputs.php_version" id="php_version" name="php_version" class="mt-1 w-full">
|
||||||
<option value="" selected>{{ __("Select") }}</option>
|
<option value="" selected>{{ __("Select") }}</option>
|
||||||
@foreach($server->installedPHPVersions() as $version)
|
@foreach($server->installedPHPVersions() as $version)
|
||||||
<option value="{{ $version }}" @if($version === $inputs['php_version']) selected @endif>
|
<option value="{{ $version }}" @if($version === $inputs['php_version']) selected @endif>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<div>
|
<div>
|
||||||
<x-input-label for="repository" :value="__('Repository')" />
|
<x-input-label for="repository" :value="__('Repository')" />
|
||||||
<x-text-input wire:model.defer="inputs.repository" id="repository" name="repository" type="text" class="mt-1 block w-full" autocomplete="repository" placeholder="organization/repository" />
|
<x-text-input wire:model="inputs.repository" id="repository" name="repository" type="text" class="mt-1 block w-full" autocomplete="repository" placeholder="organization/repository" />
|
||||||
@error('repository')
|
@error('repository')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<x-input-label for="source_control" :value="__('Source Control')" />
|
<x-input-label for="source_control" :value="__('Source Control')" />
|
||||||
<div class="flex items-center mt-1">
|
<div class="flex items-center mt-1">
|
||||||
<x-select-input wire:model="inputs.source_control" id="source_control" name="source_control" class="mt-1 w-full">
|
<x-select-input wire:model.live="inputs.source_control" id="source_control" name="source_control" class="mt-1 w-full">
|
||||||
<option value="" selected>{{ __("Select") }}</option>
|
<option value="" selected>{{ __("Select") }}</option>
|
||||||
@foreach($sourceControls as $sourceControl)
|
@foreach($sourceControls as $sourceControl)
|
||||||
<option value="{{ $sourceControl->id }}" @if($sourceControl->id === $inputs['source_control']) selected @endif>
|
<option value="{{ $sourceControl->id }}" @if($sourceControl->id === $inputs['source_control']) selected @endif>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<div>
|
<div>
|
||||||
<x-input-label for="web_directory" :value="__('Web Directory')" />
|
<x-input-label for="web_directory" :value="__('Web Directory')" />
|
||||||
<x-text-input wire:model.defer="inputs.web_directory" id="web_directory" name="web_directory" type="text" class="mt-1 block w-full" autocomplete="web_directory" />
|
<x-text-input wire:model="inputs.web_directory" id="web_directory" name="web_directory" type="text" class="mt-1 block w-full" autocomplete="web_directory" />
|
||||||
<x-input-help>
|
<x-input-help>
|
||||||
{{ __("For root, leave this blank") }}
|
{{ __("For root, leave this blank") }}
|
||||||
</x-input-help>
|
</x-input-help>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="title" :value="__('Title')" />
|
<x-input-label for="title" :value="__('Title')" />
|
||||||
<x-text-input wire:model.defer="inputs.title" id="title" name="title" type="text" class="mt-1 block w-full" autocomplete="branch" />
|
<x-text-input wire:model="inputs.title" id="title" name="title" type="text" class="mt-1 block w-full" autocomplete="branch" />
|
||||||
@error('title')
|
@error('title')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -11,7 +11,7 @@
|
|||||||
<div class="grid grid-cols-1 lg:grid-cols-3 gap-5">
|
<div class="grid grid-cols-1 lg:grid-cols-3 gap-5">
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="email" :value="__('WP Admin Email')" />
|
<x-input-label for="email" :value="__('WP Admin Email')" />
|
||||||
<x-text-input wire:model.defer="inputs.email" id="email" name="email" type="email" class="mt-1 block w-full" autocomplete="email" />
|
<x-text-input wire:model="inputs.email" id="email" name="email" type="email" class="mt-1 block w-full" autocomplete="email" />
|
||||||
@error('email')
|
@error('email')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="username" :value="__('WP Admin Username')" />
|
<x-input-label for="username" :value="__('WP Admin Username')" />
|
||||||
<x-text-input wire:model.defer="inputs.username" id="username" name="username" type="text" class="mt-1 block w-full" autocomplete="username" />
|
<x-text-input wire:model="inputs.username" id="username" name="username" type="text" class="mt-1 block w-full" autocomplete="username" />
|
||||||
@error('username')
|
@error('username')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="password" :value="__('WP Admin Password')" />
|
<x-input-label for="password" :value="__('WP Admin Password')" />
|
||||||
<x-text-input wire:model.defer="inputs.password" id="password" name="password" type="text" class="mt-1 block w-full" />
|
<x-text-input wire:model="inputs.password" id="password" name="password" type="text" class="mt-1 block w-full" />
|
||||||
@error('title')
|
@error('title')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -37,7 +37,7 @@
|
|||||||
<div class="grid grid-cols-1 lg:grid-cols-3 gap-5">
|
<div class="grid grid-cols-1 lg:grid-cols-3 gap-5">
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="database" :value="__('Database Name')" />
|
<x-input-label for="database" :value="__('Database Name')" />
|
||||||
<x-text-input wire:model.defer="inputs.database" id="database" name="database" type="text" class="mt-1 block w-full" autocomplete="database" />
|
<x-text-input wire:model="inputs.database" id="database" name="database" type="text" class="mt-1 block w-full" autocomplete="database" />
|
||||||
<x-input-help>{{ __("It will create a database with this name") }}</x-input-help>
|
<x-input-help>{{ __("It will create a database with this name") }}</x-input-help>
|
||||||
@error('database')
|
@error('database')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="database" :value="__('Database User')" />
|
<x-input-label for="database" :value="__('Database User')" />
|
||||||
<x-text-input wire:model.defer="inputs.database_user" id="database_user" name="database_user" type="text" class="mt-1 block w-full" autocomplete="database_user" />
|
<x-text-input wire:model="inputs.database_user" id="database_user" name="database_user" type="text" class="mt-1 block w-full" autocomplete="database_user" />
|
||||||
<x-input-help>{{ __("It will create a database user with this username") }}</x-input-help>
|
<x-input-help>{{ __("It will create a database user with this username") }}</x-input-help>
|
||||||
@error('database_user')
|
@error('database_user')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@ -55,7 +55,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="password" :value="__('Database Password')" />
|
<x-input-label for="password" :value="__('Database Password')" />
|
||||||
<x-text-input wire:model.defer="inputs.database_password" id="database_password" name="database_password" type="text" class="mt-1 block w-full" />
|
<x-text-input wire:model="inputs.database_password" id="database_password" name="database_password" type="text" class="mt-1 block w-full" />
|
||||||
@error('database_password')
|
@error('database_password')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
|
|
||||||
<x-slot name="description">{{ __("You can change the source control provider for this site") }}</x-slot>
|
<x-slot name="description">{{ __("You can change the source control provider for this site") }}</x-slot>
|
||||||
|
|
||||||
<form id="update-source-control" wire:submit.prevent="update" class="space-y-6">
|
<form id="update-source-control" wire:submit="update" class="space-y-6">
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="provider" :value="__('Source Control')" />
|
<x-input-label for="provider" :value="__('Source Control')" />
|
||||||
<x-select-input wire:model.defer="source_control" id="source_control" name="source_control" class="mt-1 w-full">
|
<x-select-input wire:model="source_control" id="source_control" name="source_control" class="mt-1 w-full">
|
||||||
<option value="" selected>{{ __("Select") }}</option>
|
<option value="" selected>{{ __("Select") }}</option>
|
||||||
@foreach(\App\Models\SourceControl::all() as $sourceControl)
|
@foreach(\App\Models\SourceControl::all() as $sourceControl)
|
||||||
<option value="{{ $sourceControl->id }}" @if($sourceControl->id === $source_control) selected @endif>{{ $sourceControl->profile }} ({{ $sourceControl->provider }})</option>
|
<option value="{{ $sourceControl->id }}" @if($sourceControl->id === $source_control) selected @endif>{{ $sourceControl->profile }} ({{ $sourceControl->provider }})</option>
|
||||||
|
@ -5,14 +5,14 @@
|
|||||||
|
|
||||||
<form
|
<form
|
||||||
id="update-vhost"
|
id="update-vhost"
|
||||||
wire:submit.prevent="update"
|
wire:submit="update"
|
||||||
class="space-y-6"
|
class="space-y-6"
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
<x-textarea
|
<x-textarea
|
||||||
id="vHost"
|
id="vHost"
|
||||||
wire:init="loadVHost"
|
wire:init="loadVHost"
|
||||||
wire:model.defer="vHost"
|
wire:model="vHost"
|
||||||
rows="10"
|
rows="10"
|
||||||
class="mt-1 block w-full"
|
class="mt-1 block w-full"
|
||||||
></x-textarea>
|
></x-textarea>
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-primary-button>
|
</x-primary-button>
|
||||||
|
|
||||||
<x-modal name="connect-source-control" :show="$open">
|
<x-modal name="connect-source-control" :show="$open">
|
||||||
<form wire:submit.prevent="connect" class="p-6">
|
<form wire:submit="connect" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Connect to a Source Control') }}
|
{{ __('Connect to a Source Control') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="provider" value="Provider" />
|
<x-input-label for="provider" value="Provider" />
|
||||||
<x-select-input wire:model="provider" id="provider" name="provider" class="mt-1 w-full">
|
<x-select-input wire:model.live="provider" id="provider" name="provider" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
@foreach(config('core.source_control_providers') as $p)
|
@foreach(config('core.source_control_providers') as $p)
|
||||||
@if($p !== 'custom')
|
@if($p !== 'custom')
|
||||||
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="name" value="Name" />
|
<x-input-label for="name" value="Name" />
|
||||||
<x-text-input wire:model.defer="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
||||||
@error('name')
|
@error('name')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -35,7 +35,7 @@
|
|||||||
@if($provider === App\Enums\SourceControl::GITLAB)
|
@if($provider === App\Enums\SourceControl::GITLAB)
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="url" value="Url (optional)" />
|
<x-input-label for="url" value="Url (optional)" />
|
||||||
<x-text-input wire:model.defer="url" id="url" name="url" type="text" class="mt-1 w-full" placeholder="e.g. https://gitlab.example.com/" />
|
<x-text-input wire:model="url" id="url" name="url" type="text" class="mt-1 w-full" placeholder="e.g. https://gitlab.example.com/" />
|
||||||
<x-input-help>If you run a self-managed gitlab enter the url here, leave empty to use gitlab.com</x-input-help>
|
<x-input-help>If you run a self-managed gitlab enter the url here, leave empty to use gitlab.com</x-input-help>
|
||||||
@error('url')
|
@error('url')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="token" value="API Key" />
|
<x-input-label for="token" value="API Key" />
|
||||||
<x-text-input wire:model.defer="token" id="token" name="token" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="token" id="token" name="token" type="text" class="mt-1 w-full" />
|
||||||
@error('token')
|
@error('token')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-primary-button>
|
</x-primary-button>
|
||||||
|
|
||||||
<x-modal name="add-key">
|
<x-modal name="add-key">
|
||||||
<form wire:submit.prevent="add" class="p-6">
|
<form wire:submit="add" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Add new Key') }}
|
{{ __('Add new Key') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="name" :value="__('Name')" />
|
<x-input-label for="name" :value="__('Name')" />
|
||||||
<x-text-input wire:model.defer="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
||||||
@error('name')
|
@error('name')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="public_key" :value="__('Public Key')" />
|
<x-input-label for="public_key" :value="__('Public Key')" />
|
||||||
<x-textarea wire:model.defer="public_key" id="public_key" name="public_key" class="mt-1 w-full" rows="5" />
|
<x-textarea wire:model="public_key" id="public_key" name="public_key" class="mt-1 w-full" rows="5" />
|
||||||
@error('public_key')
|
@error('public_key')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-primary-button>
|
</x-primary-button>
|
||||||
|
|
||||||
<x-modal name="create-ssl">
|
<x-modal name="create-ssl">
|
||||||
<form wire:submit.prevent="create" class="p-6">
|
<form wire:submit="create" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Create SSL') }}
|
{{ __('Create SSL') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="type" :value="__('SSL Type')" />
|
<x-input-label for="type" :value="__('SSL Type')" />
|
||||||
<x-select-input wire:model="type" id="type" name="type" class="mt-1 w-full">
|
<x-select-input wire:model.live="type" id="type" name="type" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
@foreach(\App\Enums\SslType::getValues() as $t)
|
@foreach(\App\Enums\SslType::getValues() as $t)
|
||||||
<option value="{{ $t }}" @if($t === $type) selected @endif>{{ $t }}</option>
|
<option value="{{ $t }}" @if($t === $type) selected @endif>{{ $t }}</option>
|
||||||
@ -25,7 +25,7 @@
|
|||||||
@if($type === \App\Enums\SslType::CUSTOM)
|
@if($type === \App\Enums\SslType::CUSTOM)
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="certificate" :value="__('Certificate')" />
|
<x-input-label for="certificate" :value="__('Certificate')" />
|
||||||
<x-textarea wire:model.defer="certificate" id="certificate" name="certificate" type="text" class="mt-1 w-full" rows="5" />
|
<x-textarea wire:model="certificate" id="certificate" name="certificate" type="text" class="mt-1 w-full" rows="5" />
|
||||||
@error('certificate')
|
@error('certificate')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="private" :value="__('Private Key')" />
|
<x-input-label for="private" :value="__('Private Key')" />
|
||||||
<x-textarea wire:model.defer="private" id="private" name="private" type="text" class="mt-1 w-full" rows="5" />
|
<x-textarea wire:model="private" id="private" name="private" type="text" class="mt-1 w-full" rows="5" />
|
||||||
@error('private')
|
@error('private')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
</x-primary-button>
|
</x-primary-button>
|
||||||
|
|
||||||
<x-modal name="connect-provider">
|
<x-modal name="connect-provider">
|
||||||
<form wire:submit.prevent="connect" class="p-6">
|
<form wire:submit="connect" class="p-6">
|
||||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||||
{{ __('Connect to a Storage Provider') }}
|
{{ __('Connect to a Storage Provider') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="provider" value="Provider" />
|
<x-input-label for="provider" value="Provider" />
|
||||||
<x-select-input wire:model="provider" id="provider" name="provider" class="mt-1 w-full">
|
<x-select-input wire:model.live="provider" id="provider" name="provider" class="mt-1 w-full">
|
||||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||||
@foreach(config('core.storage_providers') as $p)
|
@foreach(config('core.storage_providers') as $p)
|
||||||
@if($p !== 'custom')
|
@if($p !== 'custom')
|
||||||
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="name" value="Name" />
|
<x-input-label for="name" value="Name" />
|
||||||
<x-text-input wire:model.defer="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
||||||
@error('name')
|
@error('name')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -35,7 +35,7 @@
|
|||||||
@if($provider == \App\Enums\StorageProvider::DROPBOX)
|
@if($provider == \App\Enums\StorageProvider::DROPBOX)
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="token" value="API Key" />
|
<x-input-label for="token" value="API Key" />
|
||||||
<x-text-input wire:model.defer="token" id="token" name="token" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="token" id="token" name="token" type="text" class="mt-1 w-full" />
|
||||||
@error('token')
|
@error('token')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -46,14 +46,14 @@
|
|||||||
<div class="grid grid-cols-2 gap-2">
|
<div class="grid grid-cols-2 gap-2">
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="host" value="Host" />
|
<x-input-label for="host" value="Host" />
|
||||||
<x-text-input wire:model.defer="host" id="host" name="host" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="host" id="host" name="host" type="text" class="mt-1 w-full" />
|
||||||
@error('host')
|
@error('host')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="port" value="Port" />
|
<x-input-label for="port" value="Port" />
|
||||||
<x-text-input wire:model.defer="port" id="port" name="port" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="port" id="port" name="port" type="text" class="mt-1 w-full" />
|
||||||
@error('port')
|
@error('port')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -61,7 +61,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="path" value="Path" />
|
<x-input-label for="path" value="Path" />
|
||||||
<x-text-input wire:model.defer="path" id="path" name="path" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="path" id="path" name="path" type="text" class="mt-1 w-full" />
|
||||||
@error('path')
|
@error('path')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -69,14 +69,14 @@
|
|||||||
<div class="grid grid-cols-2 gap-2">
|
<div class="grid grid-cols-2 gap-2">
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="username" value="Username" />
|
<x-input-label for="username" value="Username" />
|
||||||
<x-text-input wire:model.defer="username" id="username" name="username" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="username" id="username" name="username" type="text" class="mt-1 w-full" />
|
||||||
@error('username')
|
@error('username')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="password" value="Password" />
|
<x-input-label for="password" value="Password" />
|
||||||
<x-text-input wire:model.defer="password" id="password" name="password" type="text" class="mt-1 w-full" />
|
<x-text-input wire:model="password" id="password" name="password" type="text" class="mt-1 w-full" />
|
||||||
@error('password')
|
@error('password')
|
||||||
<x-input-error class="mt-2" :messages="$message" />
|
<x-input-error class="mt-2" :messages="$message" />
|
||||||
@enderror
|
@enderror
|
||||||
@ -85,7 +85,7 @@
|
|||||||
<div class="grid grid-cols-2 gap-2">
|
<div class="grid grid-cols-2 gap-2">
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="ssl" :value="__('SSL')" />
|
<x-input-label for="ssl" :value="__('SSL')" />
|
||||||
<x-select-input wire:model="ssl" id="ssl" name="ssl" class="mt-1 w-full">
|
<x-select-input wire:model.live="ssl" id="ssl" name="ssl" class="mt-1 w-full">
|
||||||
<option value="1" @if($ssl) selected @endif>{{ __("Yes") }}</option>
|
<option value="1" @if($ssl) selected @endif>{{ __("Yes") }}</option>
|
||||||
<option value="0" @if(!$ssl) selected @endif>{{ __("No") }}</option>
|
<option value="0" @if(!$ssl) selected @endif>{{ __("No") }}</option>
|
||||||
</x-select-input>
|
</x-select-input>
|
||||||
@ -95,7 +95,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<x-input-label for="passive" :value="__('Passive')" />
|
<x-input-label for="passive" :value="__('Passive')" />
|
||||||
<x-select-input wire:model="passive" id="passive" name="passive" class="mt-1 w-full">
|
<x-select-input wire:model.live="passive" id="passive" name="passive" class="mt-1 w-full">
|
||||||
<option value="1" @if($passive) selected @endif>{{ __("Yes") }}</option>
|
<option value="1" @if($passive) selected @endif>{{ __("Yes") }}</option>
|
||||||
<option value="0" @if(!$passive) selected @endif>{{ __("No") }}</option>
|
<option value="0" @if(!$passive) selected @endif>{{ __("No") }}</option>
|
||||||
</x-select-input>
|
</x-select-input>
|
||||||
|
@ -39,7 +39,7 @@ public function test_delete_cronjob()
|
|||||||
Livewire::test(CronjobsList::class, ['server' => $this->server])
|
Livewire::test(CronjobsList::class, ['server' => $this->server])
|
||||||
->set('deleteId', $cronjob->id)
|
->set('deleteId', $cronjob->id)
|
||||||
->call('delete')
|
->call('delete')
|
||||||
->assertDispatchedBrowserEvent('confirmed', true);
|
->assertDispatched('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_create_cronjob()
|
public function test_create_cronjob()
|
||||||
@ -51,7 +51,7 @@ public function test_create_cronjob()
|
|||||||
->set('user', 'vito')
|
->set('user', 'vito')
|
||||||
->set('frequency', '* * * * *')
|
->set('frequency', '* * * * *')
|
||||||
->call('create')
|
->call('create')
|
||||||
->assertDispatchedBrowserEvent('created', true);
|
->assertDispatched('created');
|
||||||
|
|
||||||
$this->assertDatabaseHas('cron_jobs', [
|
$this->assertDatabaseHas('cron_jobs', [
|
||||||
'server_id' => $this->server->id,
|
'server_id' => $this->server->id,
|
||||||
|
@ -39,7 +39,7 @@ public function test_delete_queue()
|
|||||||
Livewire::test(QueuesList::class, ['site' => $this->site])
|
Livewire::test(QueuesList::class, ['site' => $this->site])
|
||||||
->set('deleteId', $queue->id)
|
->set('deleteId', $queue->id)
|
||||||
->call('delete')
|
->call('delete')
|
||||||
->assertDispatchedBrowserEvent('confirmed', true);
|
->assertDispatched('confirmed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_create_queue()
|
public function test_create_queue()
|
||||||
@ -53,7 +53,7 @@ public function test_create_queue()
|
|||||||
->set('auto_restart', 1)
|
->set('auto_restart', 1)
|
||||||
->set('numprocs', 1)
|
->set('numprocs', 1)
|
||||||
->call('create')
|
->call('create')
|
||||||
->assertDispatchedBrowserEvent('created', true);
|
->assertDispatched('created');
|
||||||
|
|
||||||
$this->assertDatabaseHas('queues', [
|
$this->assertDatabaseHas('queues', [
|
||||||
'server_id' => $this->server->id,
|
'server_id' => $this->server->id,
|
||||||
|
@ -51,7 +51,7 @@ public function test_delete_ssh_key()
|
|||||||
Livewire::test(ServerKeysList::class, ['server' => $this->server])
|
Livewire::test(ServerKeysList::class, ['server' => $this->server])
|
||||||
->set('deleteId', $sshKey->id)
|
->set('deleteId', $sshKey->id)
|
||||||
->call('delete')
|
->call('delete')
|
||||||
->assertDispatchedBrowserEvent('confirmed');
|
->assertDispatched('confirmed');
|
||||||
|
|
||||||
$this->assertDatabaseHas('server_ssh_keys', [
|
$this->assertDatabaseHas('server_ssh_keys', [
|
||||||
'server_id' => $this->server->id,
|
'server_id' => $this->server->id,
|
||||||
@ -73,7 +73,7 @@ public function test_add_new_ssh_key()
|
|||||||
->set('public_key', 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3CCnyBbpCgOJ0AWUSfBZ+mYAsYzcQDegPkBx1kyE0bXT1yX4+6uYx1Jh6NxWgLyaU0BaP4nsClrK1u5FojQHd8J7ycc0N3H8B+v2NPzj1Q6bFnl40saastONVm+d4edbCg9BowGAafLcf9ALsognqqOWQbK/QOpAhg25IAe47eiY3IjDGMHlsvaZkMtkDhT4t1mK8ZLjxw5vjyVYgINJefR981bIxMFrXy+0xBCsYOZxMIoAJsgCkrAGlI4kQHKv0SQVccSyTE1eziIZa5b3QUlXj8ogxMfK/EOD7Aoqinw652k4S5CwFs/LLmjWcFqCKDM6CSggWpB78DZ729O6zFvQS9V99/9SsSV7Qc5ML7B0DKzJ/tbHkaAE8xdZnQnZFVUegUMtUmjvngMaGlYsxkAZrUKsFRoh7xfXVkDyRBaBSslRNe8LFsXw9f7Q+3jdZ5vhGhmp+TBXTlgxApwR023411+ABE9y0doCx8illya3m2olEiiMZkRclgqsWFSk=')
|
->set('public_key', 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3CCnyBbpCgOJ0AWUSfBZ+mYAsYzcQDegPkBx1kyE0bXT1yX4+6uYx1Jh6NxWgLyaU0BaP4nsClrK1u5FojQHd8J7ycc0N3H8B+v2NPzj1Q6bFnl40saastONVm+d4edbCg9BowGAafLcf9ALsognqqOWQbK/QOpAhg25IAe47eiY3IjDGMHlsvaZkMtkDhT4t1mK8ZLjxw5vjyVYgINJefR981bIxMFrXy+0xBCsYOZxMIoAJsgCkrAGlI4kQHKv0SQVccSyTE1eziIZa5b3QUlXj8ogxMfK/EOD7Aoqinw652k4S5CwFs/LLmjWcFqCKDM6CSggWpB78DZ729O6zFvQS9V99/9SsSV7Qc5ML7B0DKzJ/tbHkaAE8xdZnQnZFVUegUMtUmjvngMaGlYsxkAZrUKsFRoh7xfXVkDyRBaBSslRNe8LFsXw9f7Q+3jdZ5vhGhmp+TBXTlgxApwR023411+ABE9y0doCx8illya3m2olEiiMZkRclgqsWFSk=')
|
||||||
->call('add')
|
->call('add')
|
||||||
->assertSuccessful()
|
->assertSuccessful()
|
||||||
->assertDispatchedBrowserEvent('added');
|
->assertDispatched('added');
|
||||||
|
|
||||||
$this->assertDatabaseHas('server_ssh_keys', [
|
$this->assertDatabaseHas('server_ssh_keys', [
|
||||||
'server_id' => $this->server->id,
|
'server_id' => $this->server->id,
|
||||||
@ -99,7 +99,7 @@ public function test_add_existing_key()
|
|||||||
->set('key_id', $sshKey->id)
|
->set('key_id', $sshKey->id)
|
||||||
->call('add')
|
->call('add')
|
||||||
->assertSuccessful()
|
->assertSuccessful()
|
||||||
->assertDispatchedBrowserEvent('added');
|
->assertDispatched('added');
|
||||||
|
|
||||||
$this->assertDatabaseHas('server_ssh_keys', [
|
$this->assertDatabaseHas('server_ssh_keys', [
|
||||||
'server_id' => $this->server->id,
|
'server_id' => $this->server->id,
|
||||||
|
@ -47,7 +47,7 @@ public function test_create_ssl()
|
|||||||
Livewire::test(CreateSsl::class, ['site' => $this->site])
|
Livewire::test(CreateSsl::class, ['site' => $this->site])
|
||||||
->set('type', SslType::LETSENCRYPT)
|
->set('type', SslType::LETSENCRYPT)
|
||||||
->call('create')
|
->call('create')
|
||||||
->assertDispatchedBrowserEvent('created');
|
->assertDispatched('created');
|
||||||
|
|
||||||
$this->assertDatabaseHas('ssls', [
|
$this->assertDatabaseHas('ssls', [
|
||||||
'site_id' => $this->site->id,
|
'site_id' => $this->site->id,
|
||||||
@ -71,7 +71,7 @@ public function test_delete_ssl()
|
|||||||
Livewire::test(SslsList::class, ['site' => $this->site])
|
Livewire::test(SslsList::class, ['site' => $this->site])
|
||||||
->set('deleteId', $ssl->id)
|
->set('deleteId', $ssl->id)
|
||||||
->call('delete')
|
->call('delete')
|
||||||
->assertDispatchedBrowserEvent('confirmed');
|
->assertDispatched('confirmed');
|
||||||
|
|
||||||
$this->assertDatabaseHas('ssls', [
|
$this->assertDatabaseHas('ssls', [
|
||||||
'id' => $ssl->id,
|
'id' => $ssl->id,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user