diff --git a/resources/views/system/addedit.blade.php b/resources/views/system/addedit.blade.php index 67b41e5..2cac2d8 100644 --- a/resources/views/system/addedit.blade.php +++ b/resources/views/system/addedit.blade.php @@ -6,654 +6,650 @@ @endsection @section('content') -
-
- @if($o->exists) -

- {{ $o->name }}@if($o->setup)*@endif - @if($o->setup)* This Host@endif -

- @endif + @if($o->exists) +

+ {{ $o->name }}@if($o->setup)*@endif + @if($o->setup)* This Host@endif +

+ @endif - @if($o->zcs->count()) -

This system is the ZC for the following zones: {!! $o->zcs->sortBy('zone_id')->map(function($item) { return sprintf('%d@%s',$item->zone_id,$item->domain->name); })->join(', ') !!}

- @endif + @if($o->zcs->count()) +

This system is the ZC for the following zones: {!! $o->zcs->sortBy('zone_id')->map(function($item) { return sprintf('%d@%s',$item->zone_id,$item->domain->name); })->join(', ') !!}

+ @endif -
- @if ($o->exists) - -
-

- System -

+
+ @if ($o->exists) + +
+

+ System +

-
-
- @include('system.widget.form-system') -
-
+
+
+ @include('system.widget.form-system')
+
+
- -
-

- -

+ +
+

+ +

-
-
-
-
-

FidoNet addresses are constructed in the format zone:net/node.point@domain.

+
+
+
+
+

FidoNet addresses are constructed in the format zone:net/node.point@domain.

-
-

- -

- -
-
-

FidoNet system are also assigned some roles, and in some cases, those roles have a particular address format:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RoleAddress Format
Zone (optional) - ZONE:0/0.0, where the net, node and point values are zero. Zones normally have 1 or more Regions and/or Hosts.

- (Systems that do not configure other systems with a zone, assume that that other system is in the same zone as the system being configured.) -
Region (optional) - zone:REGION/0.0, where the zone indicates which zone the region is in. The node and point values are zero. Regions normally have 1 or more Hosts.

- Fidonet software normally doesnt configure the region address per-se. It is used by the mailer to receive packets destined to it by routing, in transition to the final destination. The region number must be unique with a zone. -
Host (mandatory) - zone:HOST/0.0, where the zone indicates which zone the host is in. The node and point values are zero. The Host system is normally configured with an additional address, where the NET address is the same and the NODE number that is greater than zero. Hosts may may zero or more Hubs and 1 or more Nodes.

- The host number must be unique within a zone, which implies that it cannot be the same as a region, if regions are used. -
Hub (optional) - zone:net/NODE.0, where the zone/net indicates which zone/net the hub is in. The system(s) in the nodelist below a Hub are fed from that hub from a routing perspective.

- The node is unique within the net and point is zero. -
Node (required) - zone:net/NODE.0, where the zone/net indicates which zone/net the node is in.

- The node is unique within the net and point is zero. -
-
-
-
- - @if($o->addresses->count()) -

This system has the following addresses assigned to it:

+
+

+ +

+
+
+

FidoNet system are also assigned some roles, and in some cases, those roles have a particular address format:

- - - - + + - @foreach ($o->addresses->sortBy(function($item) { return sprintf('%04x%04x%04x%04x%04x',$item->zone->zone_id,$item->region_id,$item->host_id,$item->node_id,$item->point_id); }) as $oo) - - - - - - - - @endforeach + + + + + + + + + + + + + + + + + + + +
AddressActiveSecurityRoleRoleAddress Format
trashed()) class="trashed" @elseif (! $oo->active) class="inactive" @endif>{{ $oo->ftn }}{{ $oo->active ? 'YES' : 'NO' }}{{ $oo->security }}{{ $oo->role_name }} - @can('admin',$oo) - @if(! $oo->active_domain) - - - @elseif($oo->trashed()) - - - @else - - - - - @if ((\App\Models\Address::NODE_HC|\App\Models\Address::NODE_ACTIVE) & $oo->role) - - @endif - @if ((\App\Models\Address::NODE_NC|\App\Models\Address::NODE_HC) & $oo->role) - - @endif - @endif - @endcan -
Zone (optional) + ZONE:0/0.0, where the net, node and point values are zero. Zones normally have 1 or more Regions and/or Hosts.

+ (Systems that do not configure other systems with a zone, assume that that other system is in the same zone as the system being configured.) +
Region (optional) + zone:REGION/0.0, where the zone indicates which zone the region is in. The node and point values are zero. Regions normally have 1 or more Hosts.

+ Fidonet software normally doesnt configure the region address per-se. It is used by the mailer to receive packets destined to it by routing, in transition to the final destination. The region number must be unique with a zone. +
Host (mandatory) + zone:HOST/0.0, where the zone indicates which zone the host is in. The node and point values are zero. The Host system is normally configured with an additional address, where the NET address is the same and the NODE number that is greater than zero. Hosts may may zero or more Hubs and 1 or more Nodes.

+ The host number must be unique within a zone, which implies that it cannot be the same as a region, if regions are used. +
Hub (optional) + zone:net/NODE.0, where the zone/net indicates which zone/net the hub is in. The system(s) in the nodelist below a Hub are fed from that hub from a routing perspective.

+ The node is unique within the net and point is zero. +
Node (required) + zone:net/NODE.0, where the zone/net indicates which zone/net the node is in.

+ The node is unique within the net and point is zero. +
- @endif - -
-
- - @error('address') -
-
- - {!! $message !!} - -
-
- @enderror - - @can('admin',$o) -
-
- @include('system.widget.form-address')
+
+ + @if($o->addresses->count()) +

This system has the following addresses assigned to it:

+ + + + + + + + + + + + + @foreach ($o->addresses->sortBy(function($item) { return sprintf('%04x%04x%04x%04x%04x',$item->zone->zone_id,$item->region_id,$item->host_id,$item->node_id,$item->point_id); }) as $oo) + + + + + + + + @endforeach + +
AddressActiveSecurityRole
trashed()) class="trashed" @elseif (! $oo->active) class="inactive" @endif>{{ $oo->ftn }}{{ $oo->active ? 'YES' : 'NO' }}{{ $oo->security }}{{ $oo->role_name }} + @can('admin',$oo) + @if(! $oo->active_domain) + + + @elseif($oo->trashed()) + + + @else + + + + + @if ((\App\Models\Address::NODE_HC|\App\Models\Address::NODE_ACTIVE) & $oo->role) + + @endif + @if ((\App\Models\Address::NODE_NC|\App\Models\Address::NODE_HC) & $oo->role) + + @endif + @endif + @endcan +
+ @endif - @else - You'll need to ask an admin to assign addresses. - @endcan
+ + @error('address') +
+
+ + {!! $message !!} + +
+
+ @enderror + + @can('admin',$o) +
+
+ @include('system.widget.form-address') +
+
+ + @else + You'll need to ask an admin to assign addresses. + @endcan
+
+
- @if(! $o->setup) - -
-

- -

+ @if(! $o->setup) + +
+

+ +

-
-
- @if ($o->sessions->count()) +
+
+ @if ($o->sessions->count()) + + + + + + + + + + + + + + + + + + + + @foreach ($o->sessions->sortBy('zone_id') as $oo) + + + + + + + + + + @endforeach + +
 Passwords 
ZoneDefaultSessionPacketTICAreafix 
{{ $oo->zone_id }}@{{ $oo->domain->name }} + @if(($x=$oo->systems->where('pivot.default',TRUE))->count() && ($x->first()->id !== $o->id)) + + @else + + @endif + {{ $oo->pivot->sespass }}{{ $oo->pivot->pktpass }}{{ $oo->pivot->ticpass }}{{ $oo->pivot->fixpass }} + {{-- + + --}} + + +
+ @else +

No session details exist

+ @endif + + @include('system.widget.form-session') +
+
+
+ + +
+

+ +

+ +
+
+

This system can subscribe to the following echoareas:

+ @include('system.widget.form-echoarea') +
+
+
+ + +
+

+ +

+ +
+
+

This system can subscribe to the following fileareas:

+ @include('system.widget.form-filearea') +
+
+
+ + +
+

+ +

+ +
+
+
+ +
+ @if(! $o->setup && ($x=\App\Models\Zone::active() + ->whereIn('id',$o->zones->pluck('id')) + ->whereNotIn('id',$o->sessions->pluck('id')) + ->get())->count()) + +

This host's mail is sent to:

- - - - - - - - - - - - + + - @foreach ($o->sessions->sortBy('zone_id') as $oo) + @foreach($x as $zo) + @foreach ($o->match($zo,\App\Models\Address::NODE_ALL) as $oo) + + + + + @endforeach + @endforeach + +
 Passwords 
ZoneDefaultSessionPacketTICAreafix AKAUplink
{{ $oo->ftn }} + @if ($x=$oo->parent()) + {{ $x->ftn4d }} + @else + None + @endif +
+ @endif +
+ + +
+ @if($o->sessions->count()) +

This host collects mail for the following systems:

+ + + + + + + + + + + @foreach ($o->sessions->sortBy('zone_id') as $zo) + @foreach ($o->match($zo,\App\Models\Address::NODE_ALL) as $oo) + + + + + @endforeach + @endforeach + +
AKADownlink(s)
{{ $oo->ftn }}{!! (($x=$oo->children()) && $x->count()) ? $x->pluck('ftn4d')->join('
') : 'None' !!}
+ @endif +
+
+
+
+
+ + +
+

+ +

+ +
+
+
+ +
+ Netmails are waiting for these addresses: + + + + + + + + + + @foreach ($o->addresses->sortBy('zone.zone_id') as $ao) + + + + + @endforeach + +
AddressNetmail
{{ $ao->ftn }}{{ $ao->netmailWaiting()->count() }}
+
+ + +
+ Echomail waiting for these addresses: + + + + + + + + + + @foreach ($o->addresses->sortBy('zone.zone_id') as $ao) + + + + + @endforeach + +
AddressEchomail
{{ $ao->ftn }}{{ $ao->echomailWaiting()->count() }}
+
+ + +
+ Files waiting for these addresses: + + + + + + + + + + @foreach ($o->addresses->sortBy('zone.zone_id') as $ao) + + + + + @endforeach + +
AddressFiles
{{ $ao->ftn }}{{ $ao->filesWaiting()->count() }}
+
+
+
+
+
+ + +
+

+ +

+ +
+
+
+
+ The last Netmails sent (to you): + + @if(($x=\App\Models\Netmail::select(['sent_pkt','sent_at',DB::raw('count(*) AS count')]) + ->whereIn('sent_id',$o->addresses->pluck('id')) + ->whereNotNull('sent_at') + ->groupBy(['sent_pkt','sent_at']) + ->orderBy('sent_at','DESC') + ->limit(10) + ->get())->count()) + + + + + + + + + + + + @foreach ($x as $oo) - - - - - - - + + + @endforeach
PacketSentCount
{{ $oo->zone_id }}@{{ $oo->domain->name }} - @if(($x=$oo->systems->where('pivot.default',TRUE))->count() && ($x->first()->id !== $o->id)) - - @else - - @endif - {{ $oo->pivot->sespass }}{{ $oo->pivot->pktpass }}{{ $oo->pivot->ticpass }}{{ $oo->pivot->fixpass }} - {{-- - - --}} - - - {{ $oo->sent_pkt }}{{ $oo->sent_at }}{{ $oo->count }}
@else -

No session details exist

+ None @endif - - @include('system.widget.form-session')
-
-
- -
-

- -

+
+ The last Echomails sent (to you): -
-
-

This system can subscribe to the following echoareas:

- @include('system.widget.form-echoarea') -
-
-
+ @if(($x=\App\Models\Echomail::select(['sent_pkt','sent_at',DB::raw('count(*) AS count')]) + ->join('echomail_seenby',['echomail_seenby.echomail_id'=>'echomails.id']) + ->whereNotNull('sent_at') + ->whereIn('address_id',$o->addresses->pluck('id')) + ->groupBy(['sent_pkt','sent_at']) + ->orderBy('sent_at','DESC') + ->limit(10) + ->get())->count()) + + + + + + + + - -
-

- -

- -
-
-

This system can subscribe to the following fileareas:

- @include('system.widget.form-filearea') -
-
-
- - -
-

- -

- -
-
-
- -
- @if(! $o->setup && ($x=\App\Models\Zone::active() - ->whereIn('id',$o->zones->pluck('id')) - ->whereNotIn('id',$o->sessions->pluck('id')) - ->get())->count()) - -

This host's mail is sent to:

-
PacketSentCount
- - - - - - - - - @foreach($x as $zo) - @foreach ($o->match($zo,\App\Models\Address::NODE_ALL) as $oo) - - - - - @endforeach - @endforeach - -
AKAUplink
{{ $oo->ftn }} - @if ($x=$oo->parent()) - {{ $x->ftn4d }} - @else - None - @endif -
- @endif -
- - -
- @if($o->sessions->count()) -

This host collects mail for the following systems:

- - - - - - - - - - - @foreach ($o->sessions->sortBy('zone_id') as $zo) - @foreach ($o->match($zo,\App\Models\Address::NODE_ALL) as $oo) - - - - - @endforeach - @endforeach - -
AKADownlink(s)
{{ $oo->ftn }}{!! (($x=$oo->children()) && $x->count()) ? $x->pluck('ftn4d')->join('
') : 'None' !!}
- @endif -
-
-
-
-
- - -
-

- -

- -
-
-
- -
- Netmails are waiting for these addresses: - - + + @foreach ($x as $oo) - - + + + - + @endforeach + +
AddressNetmail{{ $oo->sent_pkt }}{{ $oo->sent_at }}{{ $oo->count }}
+ @else + None + @endif +
- - @foreach ($o->addresses->sortBy('zone.zone_id') as $ao) - - {{ $ao->ftn }} - {{ $ao->netmailWaiting()->count() }} - - @endforeach - - -
+
+ The last Files sent (to you): - -
- Echomail waiting for these addresses: - - + @if(($x=\App\Models\File::select(['sent_at',DB::raw('count(*) AS count')]) + ->join('file_seenby',['file_seenby.file_id'=>'files.id']) + ->whereNotNull('sent_at') + ->whereIn('address_id',$o->addresses->pluck('id')) + ->groupBy(['sent_at']) + ->orderBy('sent_at','DESC') + ->limit(10) + ->get())->count()) +
+ + + + + + + + + @foreach ($x as $oo) - - + + - + @endforeach + +
SessionCount
AddressEchomail{{ $oo->sent_at }}{{ $oo->count }}
+ @else + None + @endif +
+
- - @foreach ($o->addresses->sortBy('zone.zone_id') as $ao) - - {{ $ao->ftn }} - {{ $ao->echomailWaiting()->count() }} - - @endforeach - - -
+
+
+ The last Netmails received (you sent): - -
- Files waiting for these addresses: - - + @if(($x=\App\Models\Netmail::select(['recv_pkt','recv_at',DB::raw('count(*) AS count')]) + ->join('netmail_path',['netmail_path.netmail_id'=>'netmails.id']) + ->whereIn('address_id',$o->addresses->pluck('id')) + ->groupBy(['recv_pkt','recv_at']) + ->orderBy('recv_at','DESC') + ->limit(10) + ->get())->count()) +
+ + + + + + + + + + @foreach ($x as $oo) - - + + + - + @endforeach + +
PacketReceivedCount
AddressFiles{{ $oo->recv_pkt }}{{ $oo->recv_at }}{{ $oo->count }}
+ @else + None + @endif +
- - @foreach ($o->addresses->sortBy('zone.zone_id') as $ao) - - {{ $ao->ftn }} - {{ $ao->filesWaiting()->count() }} - - @endforeach - - -
-
+
+ The last Echomails received (you sent): + + @if(($x=\App\Models\Echomail::select(['recv_pkt','recv_at',DB::raw('count(*) AS count')]) + ->join('echomail_path',['echomail_path.echomail_id'=>'echomails.id']) + ->whereNotNull('recv_pkt') + ->whereIn('address_id',$o->addresses->pluck('id')) + ->groupBy(['recv_pkt','recv_at']) + ->orderBy('recv_at','DESC') + ->limit(10) + ->get())->count()) + + + + + + + + + + + @foreach ($x as $oo) + + + + + + @endforeach + +
PacketReceivedCount
{{ $oo->recv_pkt }}{{ $oo->recv_at }}{{ $oo->count }}
+ @else + None + @endif +
+ +
+ The last Files received (from you): + + @if(($x=\App\Models\File::select(['created_at',DB::raw('count(*) AS count')]) + ->whereIn('fftn_id',$o->addresses->pluck('id')) + ->groupBy(['created_at']) + ->orderBy('created_at','DESC') + ->limit(10) + ->get())->count()) + + + + + + + + + + @foreach ($x as $oo) + + + + + @endforeach + +
SessionCount
{{ $oo->created_at }}{{ $oo->count }}
+ @else + None + @endif
+
+
+ @endif - -
-

- -

- -
-
-
-
- The last Netmails sent (to you): - - @if(($x=\App\Models\Netmail::select(['sent_pkt','sent_at',DB::raw('count(*) AS count')]) - ->whereIn('sent_id',$o->addresses->pluck('id')) - ->whereNotNull('sent_at') - ->groupBy(['sent_pkt','sent_at']) - ->orderBy('sent_at','DESC') - ->limit(10) - ->get())->count()) - - - - - - - - - - - - @foreach ($x as $oo) - - - - - - @endforeach - -
PacketSentCount
{{ $oo->sent_pkt }}{{ $oo->sent_at }}{{ $oo->count }}
- @else - None - @endif -
- -
- The last Echomails sent (to you): - - @if(($x=\App\Models\Echomail::select(['sent_pkt','sent_at',DB::raw('count(*) AS count')]) - ->join('echomail_seenby',['echomail_seenby.echomail_id'=>'echomails.id']) - ->whereNotNull('sent_at') - ->whereIn('address_id',$o->addresses->pluck('id')) - ->groupBy(['sent_pkt','sent_at']) - ->orderBy('sent_at','DESC') - ->limit(10) - ->get())->count()) - - - - - - - - - - - @foreach ($x as $oo) - - - - - - @endforeach - -
PacketSentCount
{{ $oo->sent_pkt }}{{ $oo->sent_at }}{{ $oo->count }}
- @else - None - @endif -
- -
- The last Files sent (to you): - - @if(($x=\App\Models\File::select(['sent_at',DB::raw('count(*) AS count')]) - ->join('file_seenby',['file_seenby.file_id'=>'files.id']) - ->whereNotNull('sent_at') - ->whereIn('address_id',$o->addresses->pluck('id')) - ->groupBy(['sent_at']) - ->orderBy('sent_at','DESC') - ->limit(10) - ->get())->count()) - - - - - - - - - - @foreach ($x as $oo) - - - - - @endforeach - -
SessionCount
{{ $oo->sent_at }}{{ $oo->count }}
- @else - None - @endif -
-
- -
-
- The last Netmails received (you sent): - - @if(($x=\App\Models\Netmail::select(['recv_pkt','recv_at',DB::raw('count(*) AS count')]) - ->join('netmail_path',['netmail_path.netmail_id'=>'netmails.id']) - ->whereIn('address_id',$o->addresses->pluck('id')) - ->groupBy(['recv_pkt','recv_at']) - ->orderBy('recv_at','DESC') - ->limit(10) - ->get())->count()) - - - - - - - - - - - @foreach ($x as $oo) - - - - - - @endforeach - -
PacketReceivedCount
{{ $oo->recv_pkt }}{{ $oo->recv_at }}{{ $oo->count }}
- @else - None - @endif -
- -
- The last Echomails received (you sent): - - @if(($x=\App\Models\Echomail::select(['recv_pkt','recv_at',DB::raw('count(*) AS count')]) - ->join('echomail_path',['echomail_path.echomail_id'=>'echomails.id']) - ->whereNotNull('recv_pkt') - ->whereIn('address_id',$o->addresses->pluck('id')) - ->groupBy(['recv_pkt','recv_at']) - ->orderBy('recv_at','DESC') - ->limit(10) - ->get())->count()) - - - - - - - - - - - @foreach ($x as $oo) - - - - - - @endforeach - -
PacketReceivedCount
{{ $oo->recv_pkt }}{{ $oo->recv_at }}{{ $oo->count }}
- @else - None - @endif -
- -
- The last Files received (from you): - - @if(($x=\App\Models\File::select(['created_at',DB::raw('count(*) AS count')]) - ->whereIn('fftn_id',$o->addresses->pluck('id')) - ->groupBy(['created_at']) - ->orderBy('created_at','DESC') - ->limit(10) - ->get())->count()) - - - - - - - - - - @foreach ($x as $oo) - - - - - @endforeach - -
SessionCount
{{ $oo->created_at }}{{ $oo->count }}
- @else - None - @endif -
-
-
-
-
- @endif - - @else - @include('system.widget.form-system') - @endif -
- - @include('widgets.modal_packet') - @include('widgets.modal_files') - @include('widgets.modal_purge') -
+ @else + @include('system.widget.form-system') + @endif
+ + @include('widgets.modal_packet') + @include('widgets.modal_files') + @include('widgets.modal_purge') @endsection @section('page-css') diff --git a/resources/views/system/widget/system.blade.php b/resources/views/system/widget/system.blade.php index 777ffde..8add8cc 100644 --- a/resources/views/system/widget/system.blade.php +++ b/resources/views/system/widget/system.blade.php @@ -1,71 +1,223 @@ -
-
-

System Users

- +
+
- -
- -
- - +
+

System Users

- - @error('users') - {{ $message }} - @enderror - +
+ +
+ +
+ + + + + @error('users') + {{ $message }} + @enderror + +
+
+
+
+
+ +
+
+

System Details

+ +
+ +
+ +
+ + + +
+ + @error('name') + {{ $message }} + @else + A name is required. + @enderror + +
+
+ + +
+ +
+ + + + @error('zt_id') + {{ $message }} + @enderror + +
+
+
+ +
+ +
+ +
+ + + + @error('sysop') + {{ $message }} + @else + A Sysop's name is required. + @enderror + +
+
+ + +
+ +
+ + + + @error('location') + {{ $message }} + @else + System location is required. + @enderror + +
+
+
+ +
+ +
+ +
+ + + + @error('address') + {{ $message }} + @enderror + +
+
+ + +
+ +
+ + + + @error('phone') + {{ $message }} + @enderror + +
+
+
+
+
+ +
+ +
+

Mailer Details

+ + +
+
+ @foreach (\App\Models\Mailer::all() as $mo) + @php($x=$o->mailers->find($mo)) +
+
+ +
+ + +
+ id.'.active',$x?->pivot->active))checked @endif> +
+ + @error('mailer_details.'.$mo->id.'.port') + {{ $message }} + @enderror + +
+
+
+ @endforeach +
+ + +
+ +
+ + + + @error('pkt_type') + {{ $message }} + @enderror + +
+
+
+
+
+ +
+ +
+

BBS Details

+ +
+
+ +
+ + +
+
+
+ +
+ + +
+
-
- -
-
-

System Details

- -
- -
- -
- - - -
- - @error('name') - {{ $message }} - @else - A name is required. - @enderror - -
-
- - -
- -
- - - - @error('zt_id') - {{ $message }} - @enderror - -
-
+
+
-
+
@can('update',$o)
@@ -82,40 +234,8 @@
- -
- -
- - - - @error('sysop') - {{ $message }} - @else - A Sysop's name is required. - @enderror - -
-
- - -
- -
- - - - @error('location') - {{ $message }} - @else - System location is required. - @enderror - -
-
- -
+
@can('update',$o)
@@ -132,36 +252,8 @@
- -
- -
- - - - @error('address') - {{ $message }} - @enderror - -
-
- - -
- -
- - - - @error('phone') - {{ $message }} - @enderror - -
-
- -
+
@can('update',$o)
@@ -184,65 +276,16 @@ @endcan
-
-
-
- -
-

Mailer Details

- - -
-
- @foreach (\App\Models\Mailer::all() as $mo) - @php($x=$o->mailers->find($mo)) -
-
- -
- - -
- id.'.active',$x?->pivot->active))checked @endif> -
- - @error('mailer_details.'.$mo->id.'.port') - {{ $message }} - @enderror - -
-
-
- @endforeach -
- - -
- -
- - - - @error('pkt_type') - {{ $message }} - @enderror - -
-
- -
pollmode))d-none @endif" id="heartbeat_option"> +
+
pollmode))d-none @endif" id="heartbeat_option"> @can('admin',$o)
-
- +
+
- + @error('heartbeat') {{ $message }} @@ -255,7 +298,7 @@ @if (! is_null($o->pollmode))
-
+
@if($job = $o->poll())
@@ -337,66 +380,12 @@
- - - {{-- -
- - - - - - - - -
Status : - @if ($job) Queued - @elseif ($o->autohold)Auto Hold - @else - @switch($o->pollmode) - @case(TRUE) Crash @break; - @case(FALSE) Normal @break; - @default Hold - @endswitch - @endif -
-
- --}} @endif
-
- -
-

BBS Details

- -
-
- -
- - -
-
-
- -
- - -
-
-
-
-
- @can('admin',$o)