'required', 'api_key' => 'required', 'default_refresh_interval' => 'required|integer', 'mirror_device_id' => 'required_if:is_mirror,true', ]; public function mount() { $this->devices = auth()->user()->devices; return view('livewire.devices.manage'); } public function createDevice(): void { $this->validate(); if ($this->is_mirror) { // Verify the mirror device belongs to the user and is not a mirror device itself $mirrorDevice = auth()->user()->devices()->find($this->mirror_device_id); abort_unless($mirrorDevice, 403, 'Invalid mirror device selected'); abort_if($mirrorDevice->mirror_device_id !== null, 403, 'Cannot mirror a device that is already a mirror device'); } Device::create([ 'name' => $this->name, 'mac_address' => $this->mac_address, 'api_key' => $this->api_key, 'default_refresh_interval' => $this->default_refresh_interval, 'friendly_id' => $this->friendly_id, 'user_id' => auth()->id(), 'mirror_device_id' => $this->is_mirror ? $this->mirror_device_id : null, ]); $this->reset(); \Flux::modal('create-device')->close(); $this->devices = auth()->user()->devices; session()->flash('message', 'Device created successfully.'); } public function toggleProxyCloud(Device $device): void { abort_unless(auth()->user()->devices->contains($device), 403); $device->update([ 'proxy_cloud' => !$device->proxy_cloud, ]); // if ($device->proxy_cloud) { // \App\Jobs\FetchProxyCloudResponses::dispatch(); // } } } ?>
{{--@dump($devices)--}}

Devices

Add Device
@if (session()->has('message'))
@endif
Add Device
@if($is_mirror)
Select a device @foreach(auth()->user()->devices->where('mirror_device_id', null) as $device) {{ $device->name }} ({{ $device->friendly_id }}) @endforeach
@endif
Create Device
@foreach ($devices as $device) @endforeach
Name
Friendly ID
Mac Address
Refresh
Actions
{{ $device->name }} {{ $device->friendly_id }}
{{ $device->mac_address }}
{{ $device->default_refresh_interval }}