2024-12-06 00:11:50 +00:00
<!-- $o = Zone :: class -->
@ use ( App\Models\Domain )
@ use ( App\Models\System )
2021-05-13 12:40:21 +00:00
@ extends ( 'layouts.app' )
@ section ( 'htmlheader_title' )
@ if ( $o -> exists ) Update @ else Add @ endif Zone
@ endsection
2021-06-18 13:01:41 +00:00
@ section ( 'content' )
2024-12-06 00:16:38 +00:00
< form class = " needs-validation " method = " post " autocomplete = " off " novalidate >
2021-06-18 13:01:41 +00:00
@ csrf
2021-05-13 12:40:21 +00:00
2021-06-18 13:01:41 +00:00
< div class = " row " >
< div class = " col-12 " >
< div class = " greyframe titledbox shadow0xb0 " >
< h2 class = " cap " >@ if ( $o -> exists ) Update @ else Add @ endif Zone </ h2 >
2021-05-13 12:40:21 +00:00
2021-06-18 13:01:41 +00:00
< div class = " row " >
< div class = " col-2 " >
< label for = " zone " class = " form-label " > Zone </ label >
< div class = " input-group has-validation " >
< span class = " input-group-text " >< i class = " bi bi-hash " ></ i ></ span >
< input type = " text " class = " form-control @error('zone_id') is-invalid @enderror " id = " zone " placeholder = " Zone " name = " zone_id " value = " { { old('zone_id', $o->zone_id ) }} " required @ cannot ( 'admin' , $o ) disabled @ endcannot autofocus >
2021-06-18 15:09:34 +00:00
< span class = " invalid-feedback " role = " alert " >
@ error ( 'zone_id' )
2021-06-18 13:01:41 +00:00
{{ $message }}
2021-06-18 15:09:34 +00:00
@ else
2021-06-18 13:01:41 +00:00
A zone number is required .
2021-06-18 15:09:34 +00:00
@ enderror
</ span >
2021-06-18 13:01:41 +00:00
</ div >
2021-05-13 12:40:21 +00:00
</ div >
2021-06-18 13:01:41 +00:00
< div class = " col-3 " >
2024-12-06 00:11:50 +00:00
@ php
$helper = ( ! $o -> domain_id )
? sprintf ( 'Add a <a href="%s">NEW Domain</a>' , url ( 'domain/addedit' ))
: sprintf ( '<a href="%s">Edit</a> Domain' , url ( 'domain/addedit' ,[ $o -> domain_id ]));
@ endphp
< x - form . select name = " domain_id " icon = " bi-tag-fill " label = " Domain " : helper = " $helper " feedback = " A domain is required " : value = " $o->domain_id " : options = " Domain::select(['id','name'])->active()->orderBy('name')->cursor()->map(fn( $item )=>['id'=> $item->id ,'value'=> $item->name ]) " required />
2021-05-13 12:40:21 +00:00
</ div >
2021-08-16 12:26:33 +00:00
< div class = " offset-1 col-2 " >
2021-08-19 13:35:48 +00:00
< label for = " active " class = " form-label " > Active </ label >
< div class = " input-group " >
< div class = " btn-group " role = " group " >
< input type = " radio " class = " btn-check " name = " active " id = " active_yes " value = " 1 " required @ cannot ( 'admin' , $o ) disabled @ endcannot @ if ( old ( 'active' , $o -> active )) checked @ endif >
< label class = " btn btn-outline-success " for = " active_yes " > Yes </ label >
< input type = " radio " class = " btn-check btn-danger " name = " active " id = " active_no " value = " 0 " required @ cannot ( 'admin' , $o ) disabled @ endcannot @ if ( ! old ( 'active' , $o -> active )) checked @ endif >
< label class = " btn btn-outline-danger " for = " active_no " > No </ label >
</ div >
</ div >
</ div >
< div class = " col-2 " >
2021-08-16 12:26:33 +00:00
< label for = " default " class = " form-label " > Default </ label >
2021-06-18 13:01:41 +00:00
< div class = " input-group has-validation " >
2021-08-16 12:26:33 +00:00
< div class = " btn-group @error('default') is-invalid @enderror " role = " group " >
< input type = " radio " class = " btn-check " name = " default " id = " default_yes " value = " 1 " required @ cannot ( 'admin' , $o ) disabled @ endcannot @ if ( old ( 'default' , $o -> default )) checked @ endif >
< label class = " btn btn-outline-success " for = " default_yes " > Yes </ label >
< input type = " radio " class = " btn-check btn-danger " name = " default " id = " default_no " value = " 0 " required @ cannot ( 'admin' , $o ) disabled @ endcannot @ if ( ! old ( 'default' , $o -> default )) checked @ endif >
< label class = " btn btn-outline-danger " for = " default_no " > No </ label >
</ div >
2021-06-18 15:09:34 +00:00
< span class = " invalid-feedback " role = " alert " >
2021-08-16 12:26:33 +00:00
@ error ( 'default' )
2021-06-18 13:01:41 +00:00
{{ $message }}
2021-06-18 15:09:34 +00:00
@ enderror
</ span >
2021-06-18 13:01:41 +00:00
</ div >
2021-05-13 12:40:21 +00:00
</ div >
2021-06-18 13:01:41 +00:00
</ div >
2021-05-13 12:40:21 +00:00
2021-08-16 12:26:33 +00:00
< div class = " row " >
< div class = " col-4 " >
2024-12-06 00:11:50 +00:00
@ php
$helper = ( ! $o -> system_id )
2024-12-06 03:44:19 +00:00
? sprintf ( 'Add a <a href="%s">NEW System</a>' , url ( 'system/addedit' ))
: sprintf ( '<a href="%s">Edit</a> System' , url ( 'system/addedit' ,[ $o -> system_id ]));
2024-12-06 00:11:50 +00:00
@ endphp
< x - form . select name = " system_id " icon = " bi-laptop-fill " label = " System " feedback = " A system is required " : helper = " sprintf('%s. This system is the primary mailer/tosser responsible for the zone.', $helper ) " : value = " $o->system_id " : options = " System::select(['id','name'])->active()->orderBy('name')->cursor()->map(fn( $item )=>['id'=> $item->id ,'value'=> $item->name ]) " required />
2021-08-16 12:26:33 +00:00
</ div >
</ div >
2021-06-18 13:01:41 +00:00
< div class = " row " >
2021-06-26 15:15:19 +00:00
< div class = " col-3 " >
2021-06-24 12:28:06 +00:00
< label for = " zt_id " class = " form-label " > ZeroTier Network ID </ label >
2021-06-18 13:01:41 +00:00
< div class = " input-group has-validation " >
< span class = " input-group-text " >< i class = " bi bi-shield-lock-fill " ></ i ></ span >
2021-06-24 12:28:06 +00:00
< input type = " text " class = " form-control @error('zt_id') is-invalid @enderror " id = " zt_id " placeholder = " ZeroTier " name = " zt_id " value = " { { old('zt_id', $o->zt_id ) }} " @ cannot ( 'admin' , $o ) disabled @ endcannot >
2021-06-18 13:01:41 +00:00
< span class = " invalid-feedback " role = " alert " >
2021-06-24 12:28:06 +00:00
@ error ( 'zt_id' )
2021-06-18 13:01:41 +00:00
{{ $message }}
@ enderror
</ span >
2021-05-13 12:40:21 +00:00
</ div >
</ div >
2021-06-24 12:28:06 +00:00
< div class = " col-4 " >
< label for = " zt_ipv4 " class = " form-label " > ZeroTier IPv4 Network </ label >
< div class = " input-group has-validation " >
< span class = " input-group-text " >< i class = " bi bi-share-fill " ></ i ></ span >
< input type = " text " style = " width: 55%; " class = " form-control @error('zt_ipv4') is-invalid @enderror " id = " zt_ipv4 " placeholder = " 10.0.0.0 " name = " zt_ipv4 " value = " { { old('zt_ipv4', $o->zt_ipv4 ) }} " @ cannot ( 'admin' , $o ) disabled @ endcannot >
< span class = " input-group-text " >/</ span >
< input type = " text " class = " form-control @error('zt_ipv4_mask') is-invalid @enderror " id = " zt_ipv4_mask " placeholder = " 24 " name = " zt_ipv4_mask " value = " { { old('zt_ipv4_mask', $o->zt_ipv4_mask ) }} " @ cannot ( 'admin' , $o ) disabled @ endcannot >
< span class = " invalid-feedback " role = " alert " >
@ error ( 'zt_ipv4' )
{{ $message }}
@ enderror
@ error ( 'zt_ipv4_mask' )
{{ $message }}
@ enderror
</ span >
</ div >
</ div >
2021-06-26 15:15:19 +00:00
< div class = " col-5 " >
2021-06-24 12:28:06 +00:00
< label for = " zt_ipv6 " class = " form-label " > ZeroTier IPv6 Network </ label >
< div class = " input-group has-validation " >
< span class = " input-group-text " >< i class = " bi bi-broadcast-pin " ></ i ></ span >
2021-06-26 15:15:19 +00:00
< input type = " text " style = " width: 60%; " class = " form-control @error('zt_ipv6') is-invalid @enderror " id = " zt_ipv6 " placeholder = " fd00:f1d0:0000:0000:0000:0000:0000:0000 " name = " zt_ipv6 " value = " { { old('zt_ipv6', $o->zt_ipv6 ) }} " @ cannot ( 'admin' , $o ) disabled @ endcannot >
2021-06-24 12:28:06 +00:00
< span class = " input-group-text " >/</ span >
< input type = " text " class = " form-control @error('zt_ipv6_mask') is-invalid @enderror " id = " zt_ipv6_mask " placeholder = " 112 " name = " zt_ipv6_mask " value = " { { old('zt_ipv6_mask', $o->zt_ipv6_mask ) }} " @ cannot ( 'admin' , $o ) disabled @ endcannot >
< span class = " invalid-feedback " role = " alert " >
@ error ( 'zt_ipv6' )
2021-11-11 11:57:13 +00:00
{{ $message }}
2021-06-24 12:28:06 +00:00
@ enderror
@ error ( 'zt_ipv6_mask' )
2021-11-11 11:57:13 +00:00
{{ $message }}
2021-06-24 12:28:06 +00:00
@ enderror
</ span >
</ div >
</ div >
2021-06-18 13:01:41 +00:00
</ div >
2021-05-13 12:40:21 +00:00
2021-06-18 13:01:41 +00:00
< div class = " row " >
< div class = " col-12 " >
2024-12-06 10:30:44 +00:00
< x - form . notes name = " notes " label = " Notes " rows = 3 placeholder = " Notes... " : value = " $o->notes " : disabled = " Gate::denies('admin', $o ) " />
2021-05-13 12:40:21 +00:00
</ div >
2021-06-18 13:01:41 +00:00
</ div >
2021-05-13 12:40:21 +00:00
2021-06-18 13:01:41 +00:00
< div class = " row " >
< div class = " col-12 " >
2023-10-05 11:27:25 +00:00
< a href = " { { url('zone') }} " class = " btn btn-danger " > Cancel </ a >
2021-06-18 13:01:41 +00:00
@ can ( 'admin' , $o )
2021-07-24 04:12:10 +00:00
< button type = " submit " name = " submit " class = " btn btn-success float-end " >@ if ( $o -> exists ) Save @ else Add @ endif </ button >
2021-06-18 13:01:41 +00:00
@ endcan
2021-05-13 12:40:21 +00:00
</ div >
</ div >
</ div >
</ div >
2021-06-18 13:01:41 +00:00
</ div >
</ form >
2024-12-06 00:11:50 +00:00
@ endsection