add features

* feat: autojoin toggle
* feat: auto add devices
* feat: proxy feature
* feat: support puppeteer in docker
* feat: toggle to activate cloud proxy
* feat: relay device information
* feat: relay logs to cloud
* feat: migrate on start
* feat: calculate battery state, wifi signal
* feat: eye candy for configure view
* feat: update via api
This commit is contained in:
Benjamin Nussbaum 2025-02-26 09:33:54 +01:00
parent d4eb832186
commit 715e6a2562
53 changed files with 1459 additions and 460 deletions

View file

@ -20,15 +20,17 @@
:current="request()->routeIs('devices')">
Devices
</flux:navbar.item>
<flux:navbar.item icon="puzzle-piece" href="{{ route('plugins.index') }}" wire:navigate
:current="request()->routeIs(['plugins.index', 'plugins.markup'])">
Plugins
</flux:navbar.item>
</flux:navbar>
<flux:spacer/>
{{-- <flux:navbar class="mr-1.5 space-x-0.5 py-0!">--}}
{{-- <flux:tooltip content="Add devices automatically that try to connect to this server" position="bottom">--}}
{{-- <flux:switch --}}{{-- wire:model.live="device-autojoin" --}}{{-- label="Permit Auto-Join"/>--}}
{{-- </flux:tooltip>--}}
{{-- </flux:navbar>--}}
<flux:navbar class="mr-1.5 space-x-0.5 py-0! max-lg:hidden">
<livewire:actions.device-auto-join/>
</flux:navbar>
<!-- Desktop User Menu -->
<flux:dropdown position="top" align="end">
@ -87,22 +89,24 @@
<flux:navlist variant="outline">
<flux:navlist.group heading="Platform">
<flux:navlist.item icon="layout-grid" href="{{ route('dashboard') }}" wire:navigate
:current="request()->routeIs('dashboard')">
:current="request()->routeIs('dashboard')" class="m-2">
Dashboard
</flux:navlist.item>
<flux:navbar.item icon="square-chart-gantt" href="{{ route('devices') }}" wire:navigate
:current="request()->routeIs('devices')">
:current="request()->routeIs('devices')" class="m-2">
Devices
</flux:navbar.item>
<flux:navbar.item icon="puzzle-piece" href="{{ route('plugins.index') }}" wire:navigate
:current="request()->routeIs('plugins.index')" class="m-2">
Plugins
</flux:navbar.item>
</flux:navlist.group>
</flux:navlist>
<flux:spacer/>
<flux:navlist variant="outline">
{{-- <flux:navlist.item icon="folder-git-2" href="https://github.com/laravel/livewire-starter-kit" target="_blank">--}}
{{-- Repository--}}
{{-- </flux:navlist.item>--}}
<livewire:actions.device-auto-join/>
</flux:navlist>
</flux:sidebar>

View file

@ -0,0 +1,10 @@
@props(['percent'])
<flux:tooltip content="Battery Percent: {{ $percent }}%" position="bottom">
@if ($percent > 60)
<flux:icon.battery-full class="dark:text-zinc-200"/>
@elseif ($percent < 20)
<flux:icon.battery-low class="dark:text-zinc-200"/>
@else
<flux:icon.battery-medium class="dark:text-zinc-200"/>
@endif
</flux:tooltip>

View file

@ -0,0 +1,12 @@
@props(['strength', 'rssi'])
<flux:tooltip content="Wi-Fi RSSI Level: {{ $rssi }} db" position="bottom">
@if ($strength === 3)
<flux:icon.wifi class="dark:text-zinc-200"/>
@elseif ($strength === 2)
<flux:icon.wifi-high class="dark:text-zinc-200"/>
@elseif ($strength === 1)
<flux:icon.wifi-low class="dark:text-zinc-200"/>
@else
<flux:icon.wifi-zero class="dark:text-zinc-200"/>
@endif
</flux:tooltip>