<!-- $o = System::class -->
@php
	use App\Models\Setup;
@endphp

<div class="row">
	<!-- Name -->
	<div class="col-4">
		<label for="name" class="form-label">BBS Name</label>
		<div class="input-group has-validation">
			<span class="input-group-text"><i class="bi bi-pc"></i></span>
			<input type="text" class="form-control @error('name') is-invalid @enderror" id="name" placeholder="Name" name="name" value="{{ old('name',$o->name) }}" required @cannot('update',$o)readonly @endcannot autofocus>
			<span id="search-icon" style="width: 0;"><i style="border-radius: 50%;" class="spinner-border spinner-border-sm text-dark d-none"></i></span>
			<div id="system_search_results"></div>
			<span class="invalid-feedback" role="alert">
				@error('name')
					{{ $message }}
				@else
					A name is required.
				@enderror
			</span>
		</div>
	</div>

	<!-- ZeroTier ID -->
	<div class="col-3">
		<label for="zt_id" class="form-label">ZeroTier ID</label>
		<div class="input-group has-validation">
			<span class="input-group-text"><i class="bi bi-shield-lock-fill"></i></span>
			<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($action,$o)readonly @endcannot>
			<span class="invalid-feedback" role="alert">
				@error('zt_id')
					{{ $message }}
				@enderror
			</span>
		</div>
	</div>

	<!-- Active -->
	<div class="offset-2 col-2">
		@can('update',$o)
			<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 @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 @if(! old('active',$o->active))checked @endif>
					<label class="btn btn-outline-danger" for="active_no">No</label>
				</div>
			</div>
		@endcan
	</div>
</div>

<div class="row">
	<!-- Sysop -->
	<div class="col-4">
		<label for="sysop" class="form-label">Sysop</label>
		<div class="input-group has-validation">
			<span class="input-group-text"><i class="bi bi-person-fill"></i></span>
			<input type="text" class="form-control @error('sysop') is-invalid @enderror" id="sysop" placeholder="Sysop" name="sysop" value="{{ old('sysop',$o->sysop) }}" required @cannot('admin',$o)readonly @endcannot autocomplete="name">
			<span class="invalid-feedback" role="alert">
				@error('sysop')
					{{ $message }}
				@else
					A Sysop's name is required.
				@enderror
			</span>
		</div>
	</div>

	<!-- Location -->
	<div class="col-4">
		<label for="location" class="form-label">Location</label>
		<div class="input-group has-validation">
			<span class="input-group-text"><i class="bi bi-globe"></i></span>
			<input type="text" class="form-control @error('location') is-invalid @enderror" id="location" placeholder="Location" name="location" value="{{ old('location',$o->location) }}" required @cannot($action,$o)readonly @endcannot>
			<span class="invalid-feedback" role="alert">
				@error('location')
					{{ $message }}
				@else
					System location is required.
				@enderror
			</span>
		</div>
	</div>

	<!-- Hold -->
	<div class="offset-1 col-2">
		@can('update',$o)
			<label for="hold" class="form-label">Hold Mail <i class="bi bi-info-circle" title="Dont give the node any mail regardless of poll mode"></i></label>
			<div class="input-group">
				<div class="btn-group" role="group">
					<input type="radio" class="btn-check" name="hold" id="hold_yes" value="1" required @if(old('hold',$o->hold))checked @endif>
					<label class="btn btn-outline-warning" for="hold_yes">Yes</label>

					<input type="radio" class="btn-check btn-danger" name="hold" id="hold_no" value="0" required @if(! old('hold',$o->hold))checked @endif>
					<label class="btn btn-outline-success" for="hold_no">No</label>
				</div>
			</div>
		@endcan
	</div>
</div>

<div class="row">
	<!-- Address -->
	<div class="col-5">
		<label for="address" class="form-label">Internet Address</label>
		<div class="input-group has-validation">
			<span class="input-group-text"><i class="bi bi-globe"></i></span>
			<input type="text" class="w-75 form-control @error('address') is-invalid @enderror" id="address" placeholder="FQDN" name="address" value="{{ old('address',$o->address) }}" @cannot($action,$o)readonly @endcannot>
			<span class="invalid-feedback" role="alert">
				@error('address')
					{{ $message }}
				@enderror
			</span>
		</div>
	</div>

	<!-- Phone -->
	<div class="col-3">
		<label for="phone" class="form-label">Phone</label>
		<div class="input-group has-validation">
			<span class="input-group-text"><i class="bi bi-telephone-fill"></i></span>
			<input type="text" class="form-control @error('phone') is-invalid @enderror" id="phone" placeholder="Phone" name="phone" value="{{ old('phone',$o->phone) }}" @cannot($action,$o)readonly @endcannot>
			<span class="invalid-feedback" role="alert">
				@error('phone')
					{{ $message }}
				@enderror
			</span>
		</div>
	</div>

	<!-- Poll Mode -->
	<div class="offset-1 col-3">
		@can('update',$o)
			<label for="pollmode" class="form-label">Poll Mode <i class="bi bi-info-circle" title="Poll node when mail available, poll on a schedule or hold mail for collection"></i></label>
			<div class="input-group has-validation">
				<div class="btn-group @error('pollmode') is-invalid @enderror" role="group">
					<input type="radio" class="btn-check" name="pollmode" id="poll_crash" value="2" @if((int)old('pollmode',($o->pollmode === TRUE) ? 2 : 0) === 2)checked @endif>
					<label class="btn btn-outline-success" for="poll_crash">Crash</label>

					<input type="radio" class="btn-check btn-danger" name="pollmode" id="poll_normal" value="1" @if((int)old('pollmode',($o->pollmode === FALSE) ? 1 : 0) === 1)checked @endif>
					<label class="btn btn-outline-secondary" for="poll_normal">Normal</label>

					<input type="radio" class="btn-check btn-danger" name="pollmode" id="poll_hold" value="0" @if((int)old('pollmode',is_null($o->pollmode) ? 0 : 1) === 0)checked @endif>
					<label class="btn btn-outline-warning" for="poll_hold">Hold</label>
				</div>
				<span class="invalid-feedback" role="alert">
					@error('pollmode')
						{{ $message }}
					@enderror
				</span>
			</div>
		@endcan
	</div>
</div>

<div class="row">
	<!-- Mailer Details -->
	<div class="col-12">
		<h4 class="pt-4 mb-0 pb-2">Mailer Details</h4>

		<!-- Mailer Ports -->
		<div class="pt-0 row">
			<div class="col-3">
				@foreach (\App\Models\Mailer::all() as $mo)
					@php($x=$o->mailers->find($mo))
					<div class="pt-0 row">
						<div class="col-12">
							<label for="mailer_port_{{ $mo->id }}" class="form-label w-100">{{ $mo->name }} <span class="float-end text-warning">{{ $x?->pivot->last_poll }}</span></label>
							<div class="input-group has-validation">
								<span class="input-group-text"><i class="bi bi-modem-fill"></i></span>
								<input type="text" class="form-control text-end @error('mailer_details.'.$mo->id.'.port') is-invalid @enderror" id="mailer_port_{{ $mo->id }}" placeholder="Port" name="mailer_details[{{ $mo->id }}][port]" value="{{ old('mailer_details.'.$mo->id.'.port',$x?->pivot->port) }}" @cannot($action,$o)readonly @endcannot>
								<div class="input-group-text">
									<input type="checkbox" class="form-control-input" name="mailer_details[{{ $mo->id }}][active]" value="1" title="Active" @if(old('mailer_details.'.$mo->id.'.active',$x?->pivot->active))checked @endif>
								</div>
								<span class="invalid-feedback" role="alert">
									@error('mailer_details.'.$mo->id.'.port')
										{{ $message }}
									@enderror
								</span>
							</div>
						</div>
					</div>
				@endforeach
			</div>

			<!-- Mail Packet -->
			<div class="col-2">
				<label for="pkt_type" class="form-label">Mail Packet</label>
				<div class="input-group">
					<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>
						@foreach (\App\Classes\FTN\Packet::PACKET_TYPES as $type => $class)
							<option value="{{ $type }}" @if(old('pkt_type',$o->pkt_type ?: config('app.default_pkt')) === $type)selected @endif>{{ $type }}</option>
						@endforeach
					</select>
					<span class="invalid-feedback" role="alert">
						@error('pkt_type')
							{{ $message }}
						@enderror
					</span>
				</div>
			</div>

			@if (! is_null($o->pollmode))
				<div class="offset-3 col-4">
					<table class="table monotable m-0 p-0 small noborder">
						<tbody style="border-style:dotted;">
						@if($job = $o->poll())
							<tr>
								<td class="cap text-end">@if($job->attempts)Last Attempt @else Scheduled @endif:</td>
								<td>{{ $job->created_at }} </td>
							</tr>
							<tr>
								<td class="cap text-end">Attempts :</td>
								<td>{{ $job->attempts ?: 0 }}</td>
							</tr>
							@if ($job->attempts)
								<tr>
									<td class="cap text-end">Next Attempt :</td>
									<td>{{ $job->available_at->diffForHumans(now(),$job->available_at->isFuture() ? \Carbon\CarbonInterface::DIFF_ABSOLUTE : \Carbon\CarbonInterface::DIFF_RELATIVE_TO_NOW) }}</td>
								</tr>
							@endif

						@else
							<tr>
								<td class="cap text-end">Last Poll :</td>
								<td>{{ ($x=$o->logs->where('originate',TRUE)->last())?->created_at ?: 'Never' }}</td>
							</tr>
							<tr>
								<td class="cap text-end">Method :</td>
								<td>{{ $x?->sessiontype ?: '-' }}</td>
							</tr>
						@endif

						<tr>
							<td class="cap text-end">Status :</td>
							<td>
								@if ($job) Queued
								@elseif ($o->autohold)Auto Hold
								@else
									@switch($o->pollmode)
										@case(TRUE) Crash @break;
										@case(FALSE) Normal @break;
										@default Hold
									@endswitch
								@endif
							</td>
						</tr>
						</tbody>
					</table>
				</div>
			@endif
		</div>
	</div>
</div>

<div class="row">
	<!-- BBS Details -->
	<div class="col-12">
		<h4 class="pt-4 mb-0 pb-2">BBS Details</h4>

		<div class="pt-0 row">
			<div class="col-2">
				<label for="method" class="form-label">Connection Method</label>
				<div class="input-group">
					<span class="input-group-text"><i class="bi bi-wifi"></i></span>
					<select class="form-select @error('method') is-invalid @enderror" id="method" name="method" @cannot($action,$o)readonly @endcannot>
						<option></option>
						<option value="23" @if(old('method',$o->method) == 23)selected @endif>Telnet</option>
						<option value="22" @if(old('method',$o->method) == 22)selected @endif>SSH</option>
						<option value="519" @if(old('method',$o->method) == 519)selected @endif>Rlogin</option>
					</select>
				</div>
			</div>
			<div class="col-2">
				<label for="method" class="form-label">Port</label>
				<div class="input-group">
					<span class="input-group-text"><i class="bi bi-wifi"></i></span>
					<input type="text" class="form-control text-end @error('port') is-invalid @enderror" id="port" placeholder="Port" name="port" value="{{ old('port',$o->port) }}" @cannot($action,$o)readonly @endcannot>
				</div>
			</div>

		</div>
	</div>
</div>

@can('admin',$o)
	<div class="row">
		<!-- Notes -->
		<div class="col-12">
			<label for="notes" class="form-label">Notes</label>
			<textarea class="form-control" rows=3 name="notes" placeholder="Notes...">{{ old('notes',$o->notes) }}</textarea>
		</div>
	</div>
@endcan

<div class="row">
	<div class="col-12">
		@if($o->exists)
			@can($action,$o)
				<a href="{{ url('ftn/system') }}" class="btn btn-danger">Cancel</a>
				<button type="submit" name="submit" class="btn btn-success float-end">@if ($o->exists)Save @else Add @endif</button>
			@else
				<input type="hidden" name="system_id" value="{{ $o->id }}">
				<span><small><strong>NOTE:</strong> You'll be able to update these details after registration is completed.</small></span>
				<button type="submit" class="btn btn-success float-end" name="submit" value="register">Register</button>
			@endcan
		@else
			<button type="submit" class="btn btn-success float-end" name="submit" value="create">Register</button>
		@endif
	</div>
</div>