Compare commits
2 Commits
cd2efbd1d4
...
3ad20f969b
Author | SHA1 | Date | |
---|---|---|---|
3ad20f969b | |||
4d13199848 |
@ -59,7 +59,7 @@ class SystemController extends Controller
|
|||||||
return redirect()->to('system');
|
return redirect()->to('system');
|
||||||
}
|
}
|
||||||
|
|
||||||
$o->load(['addresses.zone.domain','addresses.system','sessions.domain','sessions.systems']);
|
$o->load(['addresses.zone.domain','addresses.nodes_hub','addresses.system','sessions.domain','sessions.systems']);
|
||||||
|
|
||||||
return view('system.addedit')
|
return view('system.addedit')
|
||||||
->with('action',$o->exists ? 'update' : 'create')
|
->with('action',$o->exists ? 'update' : 'create')
|
||||||
|
@ -13,7 +13,7 @@ use Illuminate\Support\Facades\Log;
|
|||||||
|
|
||||||
use App\Classes\FTN\{Message,Packet};
|
use App\Classes\FTN\{Message,Packet};
|
||||||
use App\Exceptions\InvalidFTNException;
|
use App\Exceptions\InvalidFTNException;
|
||||||
use App\Traits\ScopeActive;
|
use App\Traits\{QueryCacheableConfig,ScopeActive};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This represents an FTN AKA.
|
* This represents an FTN AKA.
|
||||||
@ -38,7 +38,8 @@ use App\Traits\ScopeActive;
|
|||||||
|
|
||||||
class Address extends Model
|
class Address extends Model
|
||||||
{
|
{
|
||||||
use ScopeActive,SoftDeletes;
|
use QueryCacheableConfig,ScopeActive,SoftDeletes;
|
||||||
|
const CACHE_KEY = 0;
|
||||||
|
|
||||||
private const LOGKEY = 'MA-';
|
private const LOGKEY = 'MA-';
|
||||||
|
|
||||||
@ -851,6 +852,7 @@ class Address extends Model
|
|||||||
->join('zones',['zones.id'=>'addresses.zone_id'])
|
->join('zones',['zones.id'=>'addresses.zone_id'])
|
||||||
->where('addresses.id','<>',$this->id)
|
->where('addresses.id','<>',$this->id)
|
||||||
->where('domain_id',$this->zone->domain_id)
|
->where('domain_id',$this->zone->domain_id)
|
||||||
|
->with(['zone.domain'])
|
||||||
->active()
|
->active()
|
||||||
->FTNorder()
|
->FTNorder()
|
||||||
->get();
|
->get();
|
||||||
|
@ -12,11 +12,11 @@ use Illuminate\Support\Facades\Cache;
|
|||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
use App\Casts\CompressedString;
|
use App\Casts\CompressedString;
|
||||||
use App\Traits\ScopeActive;
|
use App\Traits\{QueryCacheableConfig,ScopeActive};
|
||||||
|
|
||||||
class Domain extends Model
|
class Domain extends Model
|
||||||
{
|
{
|
||||||
use HasFactory,ScopeActive;
|
use HasFactory,QueryCacheableConfig,ScopeActive;
|
||||||
|
|
||||||
private const CACHE_TIME = 3600;
|
private const CACHE_TIME = 3600;
|
||||||
private const STATS_MONTHS = 6;
|
private const STATS_MONTHS = 6;
|
||||||
|
@ -12,11 +12,11 @@ use Illuminate\Support\Facades\Log;
|
|||||||
use App\Casts\{CollectionOrNull,CompressedString};
|
use App\Casts\{CollectionOrNull,CompressedString};
|
||||||
use App\Classes\FTN\Message;
|
use App\Classes\FTN\Message;
|
||||||
use App\Interfaces\Packet;
|
use App\Interfaces\Packet;
|
||||||
use App\Traits\{EncodeUTF8,MsgID,ParseAddresses};
|
use App\Traits\{EncodeUTF8,MsgID,ParseAddresses,QueryCacheableConfig};
|
||||||
|
|
||||||
final class Echomail extends Model implements Packet
|
final class Echomail extends Model implements Packet
|
||||||
{
|
{
|
||||||
use SoftDeletes,EncodeUTF8,MsgID,ParseAddresses;
|
use SoftDeletes,EncodeUTF8,MsgID,ParseAddresses,QueryCacheableConfig;
|
||||||
|
|
||||||
private const LOGKEY = 'ME-';
|
private const LOGKEY = 'ME-';
|
||||||
private Collection $set_seenby;
|
private Collection $set_seenby;
|
||||||
|
@ -73,6 +73,7 @@ class System extends Model
|
|||||||
->where('zones.active',TRUE)
|
->where('zones.active',TRUE)
|
||||||
->where('domains.active',TRUE)
|
->where('domains.active',TRUE)
|
||||||
->orderBy('domains.name')
|
->orderBy('domains.name')
|
||||||
|
->with(['zone.domain'])
|
||||||
->FTNorder()
|
->FTNorder()
|
||||||
->orderBy('role','ASC');
|
->orderBy('role','ASC');
|
||||||
}
|
}
|
||||||
|
@ -4,11 +4,11 @@ namespace App\Models;
|
|||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
use App\Traits\ScopeActive;
|
use App\Traits\{QueryCacheableConfig,ScopeActive};
|
||||||
|
|
||||||
class Zone extends Model
|
class Zone extends Model
|
||||||
{
|
{
|
||||||
use ScopeActive;
|
use QueryCacheableConfig,ScopeActive;
|
||||||
|
|
||||||
/* SCOPES */
|
/* SCOPES */
|
||||||
|
|
||||||
|
17
app/Traits/QueryCacheableConfig.php
Normal file
17
app/Traits/QueryCacheableConfig.php
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set defaults of QueryCacheable
|
||||||
|
*/
|
||||||
|
namespace App\Traits;
|
||||||
|
|
||||||
|
use Rennokki\QueryCache\Traits\QueryCacheable;
|
||||||
|
|
||||||
|
trait QueryCacheableConfig
|
||||||
|
{
|
||||||
|
use QueryCacheable;
|
||||||
|
|
||||||
|
public $cacheFor = 900; // cache time, in seconds
|
||||||
|
protected static $flushCacheOnUpdate = TRUE;
|
||||||
|
public $cacheDriver = 'memcached';
|
||||||
|
}
|
@ -14,6 +14,7 @@
|
|||||||
"ext-zstd": "*",
|
"ext-zstd": "*",
|
||||||
"aglipanci/laravel-eloquent-case": "^3.0",
|
"aglipanci/laravel-eloquent-case": "^3.0",
|
||||||
"eduardokum/laravel-mail-auto-embed": "^2.11",
|
"eduardokum/laravel-mail-auto-embed": "^2.11",
|
||||||
|
"jemmy/laravel-eloquent-query-cache": "dev-master",
|
||||||
"laravel/framework": "^11.0",
|
"laravel/framework": "^11.0",
|
||||||
"laravel/sanctum": "^4.0",
|
"laravel/sanctum": "^4.0",
|
||||||
"laravel/ui": "^4.5",
|
"laravel/ui": "^4.5",
|
||||||
@ -50,6 +51,10 @@
|
|||||||
"passkey": {
|
"passkey": {
|
||||||
"type": "vcs",
|
"type": "vcs",
|
||||||
"url": "https://gitea.dege.au/laravel/passkey.git"
|
"url": "https://gitea.dege.au/laravel/passkey.git"
|
||||||
|
},
|
||||||
|
"laravel-eloquent-query-cache": {
|
||||||
|
"type": "vcs",
|
||||||
|
"url": "https://github.com/jemmy/laravel-eloquent-query-cache"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -74,6 +79,6 @@
|
|||||||
"preferred-install": "dist",
|
"preferred-install": "dist",
|
||||||
"sort-packages": true
|
"sort-packages": true
|
||||||
},
|
},
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "dev",
|
||||||
"prefer-stable": true
|
"prefer-stable": true
|
||||||
}
|
}
|
||||||
|
79
composer.lock
generated
79
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": "f6cba338ad6c538fe04d4e4726c92156",
|
"content-hash": "6f98899a8bd36ac4cc4275d770ebefb5",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "aglipanci/laravel-eloquent-case",
|
"name": "aglipanci/laravel-eloquent-case",
|
||||||
@ -1329,6 +1329,81 @@
|
|||||||
],
|
],
|
||||||
"time": "2023-12-03T19:50:20+00:00"
|
"time": "2023-12-03T19:50:20+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "jemmy/laravel-eloquent-query-cache",
|
||||||
|
"version": "dev-master",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/jemmy/laravel-eloquent-query-cache.git",
|
||||||
|
"reference": "b28777dfefeb7b7d79e08229f845f4c094fc73c1"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/jemmy/laravel-eloquent-query-cache/zipball/b28777dfefeb7b7d79e08229f845f4c094fc73c1",
|
||||||
|
"reference": "b28777dfefeb7b7d79e08229f845f4c094fc73c1",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"illuminate/database": "^9.35|^10.5|^11.0",
|
||||||
|
"illuminate/support": "^9.35|^10.5|^11.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"chelout/laravel-relationship-events": "^1.5|^2.0",
|
||||||
|
"laravel/legacy-factories": "^1.3",
|
||||||
|
"livewire/livewire": "dev-master",
|
||||||
|
"mockery/mockery": "^1.5",
|
||||||
|
"orchestra/testbench": "^7.23|^8.1.1",
|
||||||
|
"phpunit/phpunit": "^9.5.25"
|
||||||
|
},
|
||||||
|
"default-branch": true,
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Rennokki\\QueryCache\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload-dev": {
|
||||||
|
"psr-4": {
|
||||||
|
"Rennokki\\QueryCache\\Test\\": "tests"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": [
|
||||||
|
"vendor/bin/phpunit"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"license": [
|
||||||
|
"Apache-2.0"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Alex Renoki",
|
||||||
|
"email": "alex@renoki.org",
|
||||||
|
"homepage": "https://github.com/rennokki",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Adding cache on your Laravel Eloquent queries' results is now a breeze.",
|
||||||
|
"homepage": "https://github.com/jemmy/laravel-eloquent-query-cache",
|
||||||
|
"keywords": [
|
||||||
|
"caching",
|
||||||
|
"eloquent",
|
||||||
|
"laravel",
|
||||||
|
"query",
|
||||||
|
"remember",
|
||||||
|
"sql"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/jemmy/laravel-eloquent-query-cache/tree/master"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/rennokki"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2024-05-09T15:02:09+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/framework",
|
"name": "laravel/framework",
|
||||||
"version": "v11.5.0",
|
"version": "v11.5.0",
|
||||||
@ -8811,7 +8886,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "dev",
|
||||||
"stability-flags": [],
|
"stability-flags": [],
|
||||||
"prefer-stable": true,
|
"prefer-stable": true,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
@foreach (\App\Models\SystemZone::select('*')->with(['system','zone.domain'])->get() as $oo)
|
@foreach (\App\Models\SystemZone::select('*')->with(['system.addresses.zone.domain','zone.domain'])->get() as $oo)
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ $oo->zone->domain->name }}</td>
|
<td>{{ $oo->zone->domain->name }}</td>
|
||||||
<td><a href="{{ url('system/addedit',[$oo->system_id]) }}">{{ $oo->system_id }}</a>@if($oo->system->hold)<span class="float-end"><i class="text-danger bi bi-stop-circle"></i></span>@endif</td>
|
<td><a href="{{ url('system/addedit',[$oo->system_id]) }}">{{ $oo->system_id }}</a>@if($oo->system->hold)<span class="float-end"><i class="text-danger bi bi-stop-circle"></i></span>@endif</td>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
@if(($x=\App\Models\Zone::active()
|
@if(($x=\App\Models\Zone::active()
|
||||||
->whereIn('id',$o->sessions->pluck('pivot.zone_id'))
|
->whereIn('id',$o->sessions->pluck('pivot.zone_id'))
|
||||||
->orderBy('zone_id')
|
->orderBy('zone_id')
|
||||||
|
->with(['domain'])
|
||||||
->get())->count())
|
->get())->count())
|
||||||
|
|
||||||
<form class="needs-validation" method="post" action="{{ url('system/echoarea',$o->id) }}" novalidate>
|
<form class="needs-validation" method="post" action="{{ url('system/echoarea',$o->id) }}" novalidate>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
@if(($x=\App\Models\Zone::active()
|
@if(($x=\App\Models\Zone::active()
|
||||||
->whereIn('id',$o->sessions->pluck('pivot.zone_id'))
|
->whereIn('id',$o->sessions->pluck('pivot.zone_id'))
|
||||||
->orderBy('zone_id')
|
->orderBy('zone_id')
|
||||||
|
->with(['domain'])
|
||||||
->get())->count())
|
->get())->count())
|
||||||
|
|
||||||
<form class="needs-validation" method="post" action="{{ url('system/filearea',$o->id) }}" novalidate>
|
<form class="needs-validation" method="post" action="{{ url('system/filearea',$o->id) }}" novalidate>
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
@if(($x=\App\Models\Zone::active()
|
@if(($x=\App\Models\Zone::active()
|
||||||
->whereIn('id',$o->zones->pluck('id'))
|
->whereIn('id',$o->zones->pluck('id'))
|
||||||
->whereNotIn('id',$o->sessions->pluck('id'))
|
->whereNotIn('id',$o->sessions->pluck('id'))
|
||||||
|
->with(['domain'])
|
||||||
->get())->count())
|
->get())->count())
|
||||||
|
|
||||||
<form class="needs-validation" method="post" action="{{ url('system/session/add',$o->id) }}" novalidate>
|
<form class="needs-validation" method="post" action="{{ url('system/session/add',$o->id) }}" novalidate>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
@php
|
@php
|
||||||
|
use App\Classes\FTN\Packet;
|
||||||
use App\Models\{Mailer,User};
|
use App\Models\{Mailer,User};
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@ -177,7 +178,7 @@
|
|||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<span class="input-group-text"><i class="bi bi-ui-radios"></i></span>
|
<span class="input-group-text"><i class="bi bi-ui-radios"></i></span>
|
||||||
<select class="form-select @error('pkt_type') is-invalid @enderror" id="pkt_type" name="pkt_type" @cannot($action,$o)readonly @endcannot>
|
<select class="form-select @error('pkt_type') is-invalid @enderror" id="pkt_type" name="pkt_type" @cannot($action,$o)readonly @endcannot>
|
||||||
@foreach (\App\Classes\FTN\Packet::PACKET_TYPES as $type => $class)
|
@foreach (Packet::PACKET_TYPES as $type => $class)
|
||||||
<option value="{{ $type }}" @if(old('pkt_type',$o->pkt_type ?: config('fido.packet_default')) === $type)selected @endif>{{ $type }}</option>
|
<option value="{{ $type }}" @if(old('pkt_type',$o->pkt_type ?: config('fido.packet_default')) === $type)selected @endif>{{ $type }}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
</select>
|
</select>
|
||||||
@ -349,7 +350,7 @@
|
|||||||
Last Poll:
|
Last Poll:
|
||||||
</div>
|
</div>
|
||||||
<div class="col-8">
|
<div class="col-8">
|
||||||
<strong class="highlight">{{ ($x=$o->logs->where('originate',TRUE)->last())?->created_at ?: 'Never' }}</strong>
|
<strong class="highlight">{{ ($x=$o->logs()->where('originate',TRUE)->orderBy('created_at','DESC')->limit(1)->single())?->created_at ?: 'Never' }}</strong>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user