Minor css fixes, delete/pause addresses, validation fixes for nodes with 0 in address
This commit is contained in:
parent
88d189110d
commit
54bcdf4b13
@ -5,7 +5,7 @@ namespace App\Http\Controllers;
|
|||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
use App\Models\{Address,System};
|
use App\Models\{Address,System};
|
||||||
use App\Rules\TwoByteInteger;
|
use App\Rules\{FidoInteger,TwoByteInteger};
|
||||||
|
|
||||||
class SystemController extends Controller
|
class SystemController extends Controller
|
||||||
{
|
{
|
||||||
@ -74,7 +74,7 @@ class SystemController extends Controller
|
|||||||
|
|
||||||
case 'host':
|
case 'host':
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'region_id' => ['required',new TwoByteInteger],
|
'region_id' => ['required',new FidoInteger],
|
||||||
'host_id_new' => [
|
'host_id_new' => [
|
||||||
'required',
|
'required',
|
||||||
new TwoByteInteger,
|
new TwoByteInteger,
|
||||||
@ -133,8 +133,8 @@ class SystemController extends Controller
|
|||||||
|
|
||||||
case 'node':
|
case 'node':
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'region_id' => ['required',new TwoByteInteger],
|
'region_id' => ['required',new FidoInteger],
|
||||||
'host_id' => ['required',new TwoByteInteger],
|
'host_id' => ['required',new FidoInteger],
|
||||||
'node_id' => [
|
'node_id' => [
|
||||||
'required',
|
'required',
|
||||||
new TwoByteInteger,
|
new TwoByteInteger,
|
||||||
@ -215,6 +215,42 @@ class SystemController extends Controller
|
|||||||
->with('o',$o);
|
->with('o',$o);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete address assigned to a host
|
||||||
|
*
|
||||||
|
* @param Address $o
|
||||||
|
* @return \Illuminate\Http\RedirectResponse
|
||||||
|
* @throws \Illuminate\Auth\Access\AuthorizationException
|
||||||
|
*/
|
||||||
|
public function del_address(Address $o)
|
||||||
|
{
|
||||||
|
$this->authorize('admin',$o);
|
||||||
|
session()->flash('add_address',TRUE);
|
||||||
|
|
||||||
|
$sid = $o->system_id;
|
||||||
|
$o->delete();
|
||||||
|
|
||||||
|
return redirect()->to(sprintf('ftn/system/addedit/%d',$sid));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Suspend address assigned to a host
|
||||||
|
*
|
||||||
|
* @param Address $o
|
||||||
|
* @return \Illuminate\Http\RedirectResponse
|
||||||
|
* @throws \Illuminate\Auth\Access\AuthorizationException
|
||||||
|
*/
|
||||||
|
public function sus_address(Address $o)
|
||||||
|
{
|
||||||
|
$this->authorize('admin',$o);
|
||||||
|
session()->flash('add_address',TRUE);
|
||||||
|
|
||||||
|
$o->active = (! $o->active);
|
||||||
|
$o->save();
|
||||||
|
|
||||||
|
return redirect()->to(sprintf('ftn/system/addedit/%d',$o->system_id));
|
||||||
|
}
|
||||||
|
|
||||||
public function home()
|
public function home()
|
||||||
{
|
{
|
||||||
return view('system.home');
|
return view('system.home');
|
||||||
|
33
app/Rules/FidoInteger.php
Normal file
33
app/Rules/FidoInteger.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Rules;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Validation\Rule;
|
||||||
|
|
||||||
|
use App\Http\Controllers\DomainController;
|
||||||
|
|
||||||
|
class FidoInteger implements Rule
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the validation rule passes.
|
||||||
|
* This will check that a number used for zone, net, host is between 1 and DomainController::NUMBER_MAX.
|
||||||
|
*
|
||||||
|
* @param string $attribute
|
||||||
|
* @param mixed $value
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function passes($attribute,$value)
|
||||||
|
{
|
||||||
|
return (is_numeric($value) && ($value >= 0) && ($value < DomainController::NUMBER_MAX));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation error message.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function message()
|
||||||
|
{
|
||||||
|
return sprintf('The number must be between 0 and %d.',DomainController::NUMBER_MAX);
|
||||||
|
}
|
||||||
|
}
|
@ -18,7 +18,7 @@ class TwoByteInteger implements Rule
|
|||||||
*/
|
*/
|
||||||
public function passes($attribute,$value)
|
public function passes($attribute,$value)
|
||||||
{
|
{
|
||||||
return (is_numeric($value) && ($value > 0) && ($value < DomainController::NUMBER_MAX)) || ($value === 'no');
|
return (is_numeric($value) && ($value > 0) && ($value < DomainController::NUMBER_MAX));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
11
public/oldschool/css/main.css
vendored
11
public/oldschool/css/main.css
vendored
@ -257,8 +257,8 @@ ul#searchbar li i {
|
|||||||
#sidebar {
|
#sidebar {
|
||||||
position:absolute;
|
position:absolute;
|
||||||
left:0;
|
left:0;
|
||||||
top:calc(3em + 8px);
|
top:calc(3em + 5px);
|
||||||
height:calc(100vh - 3em + 8px);
|
height:calc(100vh - 3em + 5px);
|
||||||
width:22ch;
|
width:22ch;
|
||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
padding-top:1.5em;
|
padding-top:1.5em;
|
||||||
@ -709,3 +709,10 @@ a.goback:focus:before {
|
|||||||
.gohome:hover:after {
|
.gohome:hover:after {
|
||||||
color:#a50!important
|
color:#a50!important
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.modal-header.bg-danger .modal-title {
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
.modal-body {
|
||||||
|
color: #0c0c0c;
|
||||||
|
}
|
@ -290,7 +290,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>Address</th>
|
<th>Address</th>
|
||||||
<th>Active</th>
|
<th>Active</th>
|
||||||
<th>Role</th>
|
<th colspan="2">Role</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
@ -300,6 +300,16 @@
|
|||||||
<td>{{ $oo->ftn }}</td>
|
<td>{{ $oo->ftn }}</td>
|
||||||
<td>{{ $oo->active ? 'YES' : 'NO' }}</td>
|
<td>{{ $oo->active ? 'YES' : 'NO' }}</td>
|
||||||
<td>{{ $oo->role }}</td>
|
<td>{{ $oo->role }}</td>
|
||||||
|
<td style="width: 70px;">
|
||||||
|
@can('admin',$oo)
|
||||||
|
<a href="{{ url('ftn/system/susaddress',[$oo->id]) }}" title="@if($oo->active)Pause @else Activate @endif Address" class="suspend"><i class="bi @if($oo->active)bi-pause-circle-fill @else bi-play-circle-fill @endif"></i></a>
|
||||||
|
{{--
|
||||||
|
<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/movaddress',[$oo->id]) }}" title="Move Address to another System" class="move"><i class="bi bi-arrow-right-square-fill"></i></a>
|
||||||
|
--}}
|
||||||
|
<a href="{{ url('ftn/system/deladdress',[$oo->id]) }}" title="Delete Address" class="delete"><i class="bi bi-trash-fill"></i></a>
|
||||||
|
@endcan
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -494,6 +504,8 @@
|
|||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@include('widgets.modal_delete')
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('page-scripts')
|
@section('page-scripts')
|
||||||
|
31
resources/views/widgets/modal_delete.blade.php
Normal file
31
resources/views/widgets/modal_delete.blade.php
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<div class="modal fade" id="confirm-delete" tabindex="-1">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header bg-danger">
|
||||||
|
<h5 class="modal-title">WARNING: Deleting record</h5>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<p>This action is irreversible. Are you sure, your sure, that you want to delete it?</p>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
||||||
|
<a type="button" class="btn btn-danger btn-ok">Delete</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@section('page-scripts')
|
||||||
|
<script>
|
||||||
|
var confirmdelete = new bootstrap.Modal(document.getElementById('confirm-delete'), {});
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('.delete').click(function(e) {
|
||||||
|
confirmdelete.show();
|
||||||
|
$('#confirm-delete').find('.btn-ok').attr('href',e.currentTarget.href);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@append
|
@ -44,6 +44,10 @@ Route::middleware(['verified','activeuser'])->group(function () {
|
|||||||
->where('o','[0-9]+');
|
->where('o','[0-9]+');
|
||||||
Route::post('ftn/system/addaddress/{o?}',[SystemController::class,'add_address'])
|
Route::post('ftn/system/addaddress/{o?}',[SystemController::class,'add_address'])
|
||||||
->where('o','[0-9]+');
|
->where('o','[0-9]+');
|
||||||
|
Route::get('ftn/system/deladdress/{o?}',[SystemController::class,'del_address'])
|
||||||
|
->where('o','[0-9]+');
|
||||||
|
Route::get('ftn/system/susaddress/{o?}',[SystemController::class,'sus_address'])
|
||||||
|
->where('o','[0-9]+');
|
||||||
|
|
||||||
Route::get('ftn/zone',[ZoneController::class,'home']);
|
Route::get('ftn/zone',[ZoneController::class,'home']);
|
||||||
Route::match(['get','post'],'ftn/zone/addedit/{o?}',[ZoneController::class,'add_edit'])
|
Route::match(['get','post'],'ftn/zone/addedit/{o?}',[ZoneController::class,'add_edit'])
|
||||||
|
Loading…
Reference in New Issue
Block a user