Added echoareas and fileareas

This commit is contained in:
Deon George
2021-08-11 23:45:30 +10:00
parent c7388c2db6
commit eb0405f019
19 changed files with 773 additions and 48 deletions

View File

@@ -0,0 +1,115 @@
@extends('layouts.app')
@section('htmlheader_title')
@if($o->exists) Update @else Add @endif Echoarea
@endsection
@section('content')
<form class="row g-0 needs-validation" method="post" novalidate>
@csrf
<div class="row">
<div class="col-12">
<div class="greyframe titledbox shadow0xb0">
<h2 class="cap">@if($o->exists) Update @else Add @endif Echoarea</h2>
<div class="row">
<div class="col-3">
<label for="domain" class="form-label">Domain</label>
<div class="input-group has-validation">
<span class="input-group-text"><i class="bi bi-tag-fill"></i></span>
<select class="form-select @error('domain_id') is-invalid @enderror" id="domain" name="domain_id" required @cannot('admin',$o)disabled @endcannot>
<option value="">&nbsp;</option>
@foreach (\App\Models\Domain::active()->cursor() as $oo)
<option value="{{ $oo->id }}" @if(old('domain_id',$o->domain_id)==$oo->id)selected @endif>{{ $oo->name }}</option>
@endforeach
</select>
<span class="invalid-feedback" role="alert">
@error('domain_id')
{{ $message }}
@else
A domain is required.
@enderror
</span>
<span class="input-helper">Add a <a href="{{ url('ftn/domain/addedit') }}">NEW Domain</a></span>
</div>
</div>
<div class="col-4">
<label for="name" class="form-label">Name</label>
<div class="input-group has-validation">
<span class="input-group-text"><i class="bi bi-tag-fill"></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('admin',$o)disabled @endcannot autofocus>
<span class="invalid-feedback" role="alert">
@error('name')
{{ $message }}
@else
A name is required.
@enderror
</span>
</div>
</div>
<div class="col-2">
<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 ?? TRUE))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 ?? TRUE))checked @endif>
<label class="btn btn-outline-danger" for="active_no">No</label>
</div>
</div>
</div>
<div class="col-2">
<label for="public" class="form-label">Public</label>
<div class="input-group">
<div class="btn-group" role="group">
<input type="radio" class="btn-check" name="public" id="public_yes" value="1" required @cannot('admin',$o)disabled @endcannot @if(old('public',$o->public ?? TRUE))checked @endif>
<label class="btn btn-outline-success" for="public_yes">Yes</label>
<input type="radio" class="btn-check btn-danger" name="public" id="public_no" value="0" required @cannot('admin',$o)disabled @endcannot @if(! old('public',$o->public ?? TRUE))checked @endif>
<label class="btn btn-outline-danger" for="public_no">No</label>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-8">
<label for="description" class="form-label">Description</label>
<div class="input-group has-validation">
<span class="input-group-text"><i class="bi bi-file-text-fill"></i></span>
<input type="text" class="form-control @error('description') is-invalid @enderror" id="description" placeholder="Description" name="description" value="{{ old('description',$o->description) }}" @cannot('admin',$o)disabled @endcannot>
<span class="invalid-feedback" role="alert">
@error('description')
{{ $message }}
@enderror
</span>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<label for="notes" class="form-label">Notes</label>
<textarea class="form-control" rows=3 name="notes" placeholder="Notes..." @cannot('admin',$o)disabled @endcannot>{{ old('notes',$o->notes) }}</textarea>
</div>
</div>
<div class="row">
<div class="col-12">
<a href="{{ url('ftn/echoarea') }}" class="btn btn-danger">Cancel</a>
@can('admin',$o)
<button type="submit" name="submit" class="btn btn-success float-end">@if ($o->exists)Save @else Add @endif</button>
@endcan
</div>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@@ -0,0 +1,68 @@
@extends('layouts.app')
@section('htmlheader_title')
Echoareas
@endsection
@section('content')
<div class="row">
<div class="col-12">
<h2>About Echoareas</h2>
<p>BBS Systems exchange public messages called <strong class="highlight">echomail</strong>. Echomail is grouped into <strong class="highlight">echoareas</strong> normally around a theme or a topic.</p>
<p>Each echoarea has a unique <strong class="highlight">areatag</strong> which helps a receiving BBS to know where to file the message when it is received.</p>
</div>
</div>
<div class="row">
<div class="col-6">
<p>This system is aware of the following echoareas:</p>
@if (\App\Models\Echoarea::count() == 0)
@can('admin',(new \App\Models\Echoarea))
<p>There are no echoareas setup, to <a href="{{ url('ftn/echoarea/addedit') }}">set up your first</a>.</p>
@else
<p class="pad">There are no echoareas - you need to ask an admin to create one for you.</p>
@endcan
@else
<table class="table monotable">
<thead>
<tr>
<th>ID</th>
<th>Areatag</th>
<th>Description</th>
<th>Active</th>
<th>Domain</th>
</tr>
</thead>
<tbody>
@can('admin',(new \App\Models\Echoarea))
<tr>
<td colspan="5"><a href="{{ url('ftn/echoarea/addedit') }}">Add New Echoarea</a></td>
</tr>
@endcan
@foreach (\App\Models\Echoarea::orderBy('name')->with(['domain'])->get() as $oo)
<tr>
<td><a href="{{ url('ftn/echoarea/addedit',[$oo->id]) }}">{{ $oo->id }}</a></td>
<td>{{ $oo->name }}</td>
<td>{{ $oo->description }}</td>
<td>{{ $oo->active ? 'YES' : 'NO' }}</td>
<td>{{ $oo->domain->name }}</td>
</tr>
@endforeach
</tbody>
</table>
@endif
</div>
</div>
@endsection
@section('page-scripts')
<script type="text/javascript">
$('table tr').click(function() {
var href = $(this).find('a').attr('href');
if (href)
window.location = href;
});
</script>
@append