Enabled address undelete and purge, now showing systems deleted messages

This commit is contained in:
Deon George 2022-11-19 12:02:13 +11:00
parent 739955d374
commit 5957a25044
6 changed files with 69 additions and 14 deletions

View File

@ -517,6 +517,46 @@ class SystemController extends Controller
return redirect()->to(sprintf('ftn/system/addedit/%d',$o->system_id)); return redirect()->to(sprintf('ftn/system/addedit/%d',$o->system_id));
} }
/**
* Recover a deleted address
*
* @param int $id
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function rec_address(int $id)
{
$o = Address::onlyTrashed()->findOrFail($id);
// @todo This should be admin of the zone
$this->authorize('admin',$o);
session()->flash('accordion','address');
$o->restore();
return redirect()->to(sprintf('ftn/system/addedit/%d',$o->system_id));
}
/**
* Recover a deleted address
*
* @param int $id
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function pur_address(int $id)
{
$o = Address::onlyTrashed()->findOrFail($id);
// @todo This should be admin of the zone
$this->authorize('admin',$o);
session()->flash('accordion','address');
$o->forceDelete();
return redirect()->to(sprintf('ftn/system/addedit/%d',$o->system_id));
}
/** /**
* register system * register system
*/ */

View File

@ -35,6 +35,7 @@ class System extends Model
public function addresses() public function addresses()
{ {
return $this->hasMany(Address::class) return $this->hasMany(Address::class)
->withTrashed()
->FTNorder(); ->FTNorder();
} }

View File

@ -58,3 +58,8 @@ ol {
#content ul:not(.pagination) li p { #content ul:not(.pagination) li p {
margin-left: -1ch; margin-left: -1ch;
} }
.trashed {
text-decoration: line-through;
color: #3f6982;
}

View File

@ -107,19 +107,24 @@
<tbody> <tbody>
@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) @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)
<tr> <tr>
<td>{{ $oo->ftn }}</td> <td @if($oo->trashed()) class="trashed" @endif>{{ $oo->ftn }}</td>
<td>{{ $oo->active ? 'YES' : 'NO' }}</td> <td>{{ $oo->active ? 'YES' : 'NO' }}</td>
<td>{{ $oo->role_name }}</td> <td>{{ $oo->role_name }}</td>
<td class="nowrap actions"> <td class="nowrap actions">
@can('admin',$oo) @can('admin',$oo)
<a href="{{ url('ftn/system/susaddress',[$oo->id]) }}" title="@if($oo->active)Pause @else Activate @endif Address"><i class="bi @if($oo->active)bi-pause-circle-fill @else bi-play-circle-fill @endif"></i></a>
{{-- {{--
@if (! $oo->role & (Address::NODE_ZC|Address::NODE_RC|Address::NODE_NC)) @if (! $oo->role & (Address::NODE_ZC|Address::NODE_RC|Address::NODE_NC))
<a href="{{ url('ftn/system/modaddress',[$oo->id]) }}" title="Modify Address" class="modify"><i class="bi bi-pen-fill"></i></a> <a href="{{ url('ftn/system/modaddress',[$oo->id]) }}" title="Modify Address" class="modify"><i class="bi bi-pen-fill"></i></a>
@endif @endif
--}} --}}
<a href="{{ url('ftn/system/movaddress',[$o->id,$oo->id]) }}" title="Move Address to another System"><i class="bi bi-arrow-right-square-fill"></i></a> @if($oo->trashed())
<a href="{{ url('ftn/system/deladdress',[$oo->id]) }}" title="Delete Address" class="delete"><i class="bi bi-trash-fill"></i></a> <a href="{{ url('ftn/system/recaddress',[$oo->id]) }}" title="Restore Address"><i class="bi bi-bandaid-fill"></i></a>
<a href="{{ url('ftn/system/puraddress',[$oo->id]) }}" title="Purge Address" class="purge"><i class="bi bi-scissors"></i></a>
@else
<a href="{{ url('ftn/system/susaddress',[$oo->id]) }}" title="@if($oo->active)Pause @else Activate @endif Address"><i class="bi @if($oo->active)bi-pause-circle-fill @else bi-play-circle-fill @endif"></i></a>
<a href="{{ url('ftn/system/movaddress',[$o->id,$oo->id]) }}" title="Move Address to another System"><i class="bi bi-arrow-right-square-fill"></i></a>
<a href="{{ url('ftn/system/deladdress',[$oo->id]) }}" title="Delete Address"><i class="bi bi-trash-fill"></i></a>
@endif
@endcan @endcan
</td> </td>
</tr> </tr>
@ -183,7 +188,7 @@
{{-- {{--
<a href="{{ url('ftn/system/modsession',[$oo->id]) }}" title="Modify Details" class="modify"><i class="bi bi-pen-fill"></i></a> <a href="{{ url('ftn/system/modsession',[$oo->id]) }}" title="Modify Details" class="modify"><i class="bi bi-pen-fill"></i></a>
--}} --}}
<a href="{{ url('ftn/system/delsession',[$o->id,$oo->id]) }}" title="Delete Details" class="delete"><i class="bi bi-trash-fill"></i></a> <a href="{{ url('ftn/system/delsession',[$o->id,$oo->id]) }}" title="Delete Details" class="purge"><i class="bi bi-trash-fill"></i></a>
</td> </td>
</tr> </tr>
@endforeach @endforeach
@ -380,7 +385,7 @@
@endif @endif
</div> </div>
@include('widgets.modal_delete') @include('widgets.modal_purge')
@endsection @endsection
@section('page-scripts') @section('page-scripts')

View File

@ -1,16 +1,16 @@
<div class="modal fade" id="confirm-delete" tabindex="-1"> <div class="modal fade" id="confirm-purge" tabindex="-1">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header bg-danger"> <div class="modal-header bg-danger">
<h5 class="modal-title">WARNING: Deleting record</h5> <h5 class="modal-title">WARNING: Purging record</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<p>This action is irreversible. Are you sure, your sure, that you want to delete it?</p> <p>This action is irreversible. Are you sure, your sure, that you want to purge it?</p>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<a type="button" class="btn btn-danger btn-ok">Delete</a> <a type="button" class="btn btn-danger btn-ok">Purge</a>
</div> </div>
</div> </div>
</div> </div>
@ -18,12 +18,12 @@
@section('page-scripts') @section('page-scripts')
<script> <script>
var confirmdelete = new bootstrap.Modal(document.getElementById('confirm-delete'), {}); var confirmpurge = new bootstrap.Modal(document.getElementById('confirm-purge'), {});
$(document).ready(function() { $(document).ready(function() {
$('.delete').click(function(e) { $('.purge').click(function(e) {
confirmdelete.show(); confirmpurge.show();
$('#confirm-delete').find('.btn-ok').attr('href',e.currentTarget.href); $('#confirm-purge').find('.btn-ok').attr('href',e.currentTarget.href);
return false; return false;
}); });
}); });

View File

@ -78,6 +78,10 @@ Route::middleware(['auth','verified','activeuser'])->group(function () {
Route::match(['get','post'],'ftn/system/movaddress/{so}/{o}',[SystemController::class,'mov_address']) Route::match(['get','post'],'ftn/system/movaddress/{so}/{o}',[SystemController::class,'mov_address'])
->where('so','[0-9]+') ->where('so','[0-9]+')
->where('o','[0-9]+'); ->where('o','[0-9]+');
Route::get('ftn/system/recaddress/{id}',[SystemController::class,'rec_address'])
->where('o','[0-9]+');
Route::get('ftn/system/puraddress/{id}',[SystemController::class,'pur_address'])
->where('o','[0-9]+');
Route::get('ftn/system/susaddress/{o}',[SystemController::class,'sus_address']) Route::get('ftn/system/susaddress/{o}',[SystemController::class,'sus_address'])
->where('o','[0-9]+'); ->where('o','[0-9]+');