More changes to use form.select component. Re-engineered user BBS registration
This commit is contained in:
@@ -617,39 +617,47 @@
|
||||
@section('page-scripts')
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
@can('admin')
|
||||
$('.default').click(function () {
|
||||
var item = this;
|
||||
icon = $(item).find('i');
|
||||
if (window.location.hash) {
|
||||
$('#collapse_'+window.location.hash.substring(1)).show();
|
||||
$('#collapse_system').collapse()
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
data: {sid: {{$o->id}}, _token: '{{csrf_token()}}', set: (icon.hasClass('bi-square') ? 1 : 0)},
|
||||
beforeSend: function () {
|
||||
$(item).find('i').addClass('spinner-grow spinner-grow-sm');
|
||||
},
|
||||
success: function () {
|
||||
if (icon.hasClass('bi-square')) {
|
||||
icon.removeClass('bi-square');
|
||||
icon.addClass('bi-check-square');
|
||||
} else {
|
||||
icon.removeClass('bi-check-square');
|
||||
icon.addClass('bi-square');
|
||||
}
|
||||
@if($o->exists)
|
||||
@can('admin')
|
||||
$('.default').click(function () {
|
||||
var item = this;
|
||||
icon = $(item).find('i');
|
||||
|
||||
$(item).find('i').removeClass('spinner-grow spinner-grow-sm');
|
||||
},
|
||||
error: function (e) {
|
||||
$(item).find('i').removeClass('spinner-grow spinner-grow-sm');
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
data: {sid: {{$o->id}}, _token: '{{csrf_token()}}', set: (icon.hasClass('bi-square') ? 1 : 0)},
|
||||
beforeSend: function () {
|
||||
$(item).find('i').addClass('spinner-grow spinner-grow-sm');
|
||||
},
|
||||
success: function () {
|
||||
if (icon.hasClass('bi-square')) {
|
||||
icon.removeClass('bi-square');
|
||||
icon.addClass('bi-check-square');
|
||||
} else {
|
||||
icon.removeClass('bi-check-square');
|
||||
icon.addClass('bi-square');
|
||||
}
|
||||
|
||||
$(item).find('i').removeClass('spinner-grow spinner-grow-sm');
|
||||
},
|
||||
error: function (e) {
|
||||
$(item).find('i').removeClass('spinner-grow spinner-grow-sm');
|
||||
|
||||
if (e.status != 412)
|
||||
alert('That didnt work? Please try again....');
|
||||
},
|
||||
url: '{{ url('zone/api/default') }}/' + item.attributes.itemid.nodeValue,
|
||||
cache: false
|
||||
})
|
||||
});
|
||||
@endcan
|
||||
@endif
|
||||
|
||||
if (e.status != 412)
|
||||
alert('That didnt work? Please try again....');
|
||||
},
|
||||
url: '{{ url('zone/api/default') }}/' + item.attributes.itemid.nodeValue,
|
||||
cache: false
|
||||
})
|
||||
});
|
||||
@endcan
|
||||
$('data.validated').on('click',function(item) {
|
||||
that = $(this);
|
||||
var values = item.delegateTarget.value.split(':');
|
||||
|
@@ -1,3 +1,5 @@
|
||||
@use(App\Models\Zone)
|
||||
|
||||
<form class="needs-validation" method="post" action="{{ url('system/address/add',$o->id) }}" novalidate>
|
||||
@csrf
|
||||
<input type="hidden" id="action" name="action" value="">
|
||||
@@ -8,70 +10,22 @@
|
||||
<div class="row">
|
||||
<!-- Select Zone -->
|
||||
<div class="col-3">
|
||||
<label for="zone_id" class="form-label">Zone</label>
|
||||
<div class="input-group has-validation">
|
||||
<span class="input-group-text"><i class="bi bi-hash"></i></span>
|
||||
<select class="form-select @error('zone_id') is-invalid @enderror" id="zone_id" name="zone_id" required>
|
||||
<option></option>
|
||||
@foreach(\App\Models\Zone::active()->domainZoneOrder()->with(['domain'])->get() as $zo)
|
||||
<option value="{{ $zo->id }}">{{ $zo->zone_id }} <small>({{ $zo->domain->name }})</small></option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span class="invalid-feedback" role="alert">
|
||||
@error('zone_id')
|
||||
{{ $message }}
|
||||
@else
|
||||
Please select the Zone for the node's address.
|
||||
@enderror
|
||||
</span>
|
||||
</div>
|
||||
<x-form.select name="zone_id" icon="bi-hash" label="Zone" :options="Zone::select(['id','zone_id','domain_id'])->active()->domainZoneOrder()->with(['domain'])->get()->map(fn($item,$key)=>['id'=>$item->id,'value'=>sprintf('%d [%s]',$item->zone_id,$item->domain->name)])" required="true" />
|
||||
</div>
|
||||
|
||||
<!-- Select Region -->
|
||||
<div class="col-3 d-none" id="region-select">
|
||||
<label for="region_id" class="form-label">Region</label>
|
||||
<div class="input-group has-validation">
|
||||
<span class="input-group-text"><i class="bi bi-geo"></i></span>
|
||||
<select class="form-select @error('region_id') is-invalid @enderror" id="region_id" name="region_id" required>
|
||||
</select>
|
||||
<span class="invalid-feedback" role="alert">
|
||||
@error('region_id')
|
||||
{{ $message }}
|
||||
@else
|
||||
Please make a choice.
|
||||
@enderror
|
||||
</span>
|
||||
</div>
|
||||
<x-form.select name="region_id" icon="bi-geo" label="Region" :required="true" />
|
||||
</div>
|
||||
|
||||
<!-- Select Host -->
|
||||
<div class="col-3 d-none" id="host-select">
|
||||
<label for="host_id" class="form-label">Host</label>
|
||||
<div class="input-group has-validation">
|
||||
<span class="input-group-text"><i class="bi bi-diagram-3-fill"></i></span>
|
||||
<select class="form-select @error('host_id') is-invalid @enderror" id="host_id" name="host_id">
|
||||
</select>
|
||||
<span class="invalid-feedback" role="alert">
|
||||
@error('host_id')
|
||||
{{ $message }}
|
||||
@enderror
|
||||
</span>
|
||||
</div>
|
||||
<x-form.select name="host_id" icon="bi-diagram-3-fill" label="Host" />
|
||||
</div>
|
||||
|
||||
<!-- Select Hub -->
|
||||
<div class="col-3 d-none" id="hub-select">
|
||||
<label for="hub_id" class="form-label">Hub</label>
|
||||
<div class="input-group has-validation">
|
||||
<span class="input-group-text"><i class="bi bi-diagram-2-fill"></i></span>
|
||||
<select class="form-select @error('hub_id') is-invalid @enderror" id="hub_id" name="hub_id">
|
||||
</select>
|
||||
<span class="invalid-feedback" role="alert">
|
||||
@error('hub_id')
|
||||
{{ $message }}
|
||||
@enderror
|
||||
</span>
|
||||
</div>
|
||||
<x-form.select name="hub_id" icon="bi-diagram-2-fill" label="Hub" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -81,9 +35,9 @@
|
||||
<label for="node_id" class="form-label">Node/Point Address</label>
|
||||
<div class="input-group has-validation">
|
||||
<span class="input-group-text"><i class="bi bi-hash"></i></span>
|
||||
<input type="text" style="width: 35%;" class="form-control text-end @error('node_id') is-invalid @enderror" id="node_id" placeholder="Node" name="node_id" value="{{ old('node_id',$o->node_id) }}" @cannot('admin',$o)disabled @endcannot>
|
||||
<input type="text" style="width: 35%;" class="form-control text-end @error('node_id') is-invalid @enderror" id="node_id" placeholder="Node" name="node_id" value="{{ old('node_id',$o->node_id) }}" @cannot('admin',$o)disabled @endcannot data-1p-ignore>
|
||||
<span class="input-group-text p-0">.</span>
|
||||
<input type="text" class="form-control @error('point_id') is-invalid @enderror" id="point_id" placeholder="0" name="point_id" value="{{ old('point_id',$o->point_id) ?: 0 }}" @cannot('admin',$o)disabled @endcannot style="padding-left: 0;">
|
||||
<input type="text" class="form-control pl-0 @error('point_id') is-invalid @enderror" id="point_id" placeholder="0" name="point_id" value="{{ old('point_id',$o->point_id) ?: 0 }}" @cannot('admin',$o)disabled @endcannot>
|
||||
<span class="invalid-feedback" role="alert">
|
||||
@error('node_id')
|
||||
{{ $message }}
|
||||
@@ -100,7 +54,7 @@
|
||||
<label for="region_id_new" class="form-label">Region Address</label>
|
||||
<div class="input-group has-validation">
|
||||
<span class="input-group-text"><i class="bi bi-hash"></i></span>
|
||||
<input type="text" style="width: 35%;" class="form-control @error('region_id_new') is-invalid @enderror" id="region_id_new" placeholder="Region #" name="region_id_new" value="{{ old('region_id_new') }}" @cannot('admin',$o)disabled @endcannot>
|
||||
<input type="text" style="width: 35%;" class="form-control @error('region_id_new') is-invalid @enderror" id="region_id_new" placeholder="Region #" name="region_id_new" value="{{ old('region_id_new') }}" @cannot('admin',$o)disabled @endcannot data-1p-ignore>
|
||||
<span class="input-group-text">/0.0</span>
|
||||
<span class="invalid-feedback" role="alert">
|
||||
@error('region_id_new')
|
||||
@@ -117,7 +71,7 @@
|
||||
<label for="host_id_new" class="form-label">Host Address</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 text-end @error('host_id_new') is-invalid @enderror" id="host_id_new" placeholder="Host #" name="host_id_new" value="{{ old('host_id_new') }}" @cannot('admin',$o)disabled @endcannot>
|
||||
<input type="text" class="form-control text-end @error('host_id_new') is-invalid @enderror" id="host_id_new" placeholder="Host #" name="host_id_new" value="{{ old('host_id_new') }}" @cannot('admin',$o)disabled @endcannot data-1p-ignore>
|
||||
<span class="input-group-text">/0.0</span>
|
||||
<span class="invalid-feedback" role="alert">
|
||||
@error('host_id_new')
|
||||
@@ -246,6 +200,9 @@
|
||||
if (! $('#sec-level').hasClass('d-none'))
|
||||
$('#sec-level').addClass('d-none')
|
||||
|
||||
if (! this.value)
|
||||
return false;
|
||||
|
||||
var icon = $(this).parent().find('i');
|
||||
icon.addClass('spinner-grow spinner-grow-sm');
|
||||
|
||||
|
@@ -1,13 +1,15 @@
|
||||
<!-- $o=System::class -->
|
||||
@use(Carbon\Carbon)
|
||||
@use(Carbon\CarbonInterface)
|
||||
@use(Illuminate\Support\Facades\Gate)
|
||||
@use(App\Classes\FTN\Packet)
|
||||
@use(App\Models\Mailer)
|
||||
@use(App\Models\User)
|
||||
<!-- $o=System::class -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xl-9 col-12">
|
||||
@can('admin',$o)
|
||||
<div class="row pt-0">
|
||||
<div class="row pt-0">
|
||||
@can('admin')
|
||||
<div class="col-12">
|
||||
<h4 class="mb-0 pb-2">System Users</h4>
|
||||
|
||||
@@ -19,7 +21,7 @@
|
||||
<span class="input-group-text"><i class="bi bi-people-fill"></i></span>
|
||||
<select style="width: 80%;" class="form-select @error('users') is-invalid @enderror" id="users" name="users[]">
|
||||
<option value=""> </option>
|
||||
@foreach (User::orderBy('name')->active()->get() as $uo)
|
||||
@foreach (User::select(['id','name','email'])->orderBy('name')->active()->get() as $uo)
|
||||
<option value="{{ $uo->id }}" @selected(in_array($uo->id,old('users',$o->users->pluck('id')->toArray())))>{{ $uo->name }} <small>({{ $uo->email }})</small></option>
|
||||
@endforeach
|
||||
</select>
|
||||
@@ -33,10 +35,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endcan
|
||||
@endcan
|
||||
</div>
|
||||
|
||||
<div class="row pt-4">
|
||||
<div class="row @can('admin')pt-4 @else pt-0 @endcannot">
|
||||
<div class="col-12">
|
||||
<h4 class="mb-0 pb-2">System Details</h4>
|
||||
|
||||
@@ -46,9 +48,7 @@
|
||||
<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($action,$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>
|
||||
<input type="text" class="form-control @error('name') is-invalid @enderror" id="name" placeholder="Name" name="name" value="{{ old('name',$o->name) }}" required @cannot($action,$o)readonly @endcannot autofocus autocomplete="off" data-1p-ignore>
|
||||
<span class="invalid-feedback" role="alert">
|
||||
@error('name')
|
||||
{{ $message }}
|
||||
@@ -116,7 +116,7 @@
|
||||
<label for="address" class="form-label">Mailer Internet Hostname</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>
|
||||
<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 data-1p-ignore>
|
||||
<span class="invalid-feedback" role="alert">
|
||||
@error('address')
|
||||
{{ $message }}
|
||||
@@ -174,20 +174,7 @@
|
||||
|
||||
<!-- Mail Packet -->
|
||||
<div class="col-4">
|
||||
<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)disabled @endcannot>
|
||||
@foreach (Packet::PACKET_TYPES as $type => $class)
|
||||
<option value="{{ $type }}" @if(old('pkt_type',$o->pkt_type ?: config('fido.packet_default')) === $type)selected @endif>{{ $type }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span class="invalid-feedback" role="alert">
|
||||
@error('pkt_type')
|
||||
{{ $message }}
|
||||
@enderror
|
||||
</span>
|
||||
</div>
|
||||
<x-form.select name="pkt_type" icon="bi-ui-radios" label="Mail Packet" feedback="Set a packet type" :value="$o->pkt_type ?: config('fido.packet_default')" :options="collect(Packet::PACKET_TYPES)->map(fn($item,$key)=>['id'=>$key,'value'=>$key])" required="true" :disabled="Gate::denies('update_nn',$o)"/>
|
||||
</div>
|
||||
|
||||
<!-- Packet Msgs -->
|
||||
@@ -214,17 +201,9 @@
|
||||
|
||||
<div class="row pt-0">
|
||||
<div class="col-4">
|
||||
<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)disabled @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>
|
||||
<x-form.select name="method" icon="bi-wifi" label="Connection Method" :value="$o->method" :options="collect([['id'=>23,'value'=>'Telnet'],['id'=>22,'value'=>'SSH'],['id'=>519,'value'=>'Rlogin']])" :disabled="Gate::denies('update_nn',$o)"/>
|
||||
</div>
|
||||
|
||||
<div class="col-3">
|
||||
<label for="method" class="form-label">Port</label>
|
||||
<div class="input-group">
|
||||
@@ -303,28 +282,30 @@
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="row p-0">
|
||||
@can('update_nn',$o)
|
||||
<div class="col-6">
|
||||
<label for="autohold" class="form-label">Auto Hold</label>
|
||||
<div class="input-group">
|
||||
<button id="autohold" @class(['btn','btn-warning'=>$o->autohold,'btn-outline-success'=>(! $o->autohold)])><i @class(['bi-toggle-on'=>$o->autohold,'bi-toggle-off'=>(! $o->autohold)])></i></button>
|
||||
@if($o->exists)
|
||||
@can('update_nn',$o)
|
||||
<div class="col-6">
|
||||
<label for="autohold" class="form-label">Auto Hold</label>
|
||||
<div class="input-group">
|
||||
<button id="autohold" @class(['btn','btn-warning'=>$o->autohold,'btn-outline-success'=>(! $o->autohold)])><i @class(['bi-toggle-on'=>$o->autohold,'bi-toggle-off'=>(! $o->autohold)])></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- @todo This is only relevant for uplinks, so hide it if this system isnt an uplink -->
|
||||
<div class="col-6 @if((old('pollmode') === "0") || is_null($o->pollmode))d-none @endif" id="heartbeat_option">
|
||||
<label for="heartbeat" class="form-label">Heartbeat <i class="bi bi-info-circle" title="Attempt contact after last seen"></i></label>
|
||||
<div class="input-group has-validation">
|
||||
<span class="input-group-text"><i class="bi bi-hourglass-bottom"></i></span>
|
||||
<input type="text" class="form-control text-end @error('heartbeat') is-invalid @enderror" id="heartbeat" placeholder="Hrs" name="heartbeat" value="{{ old('heartbeat',$o->heartbeat) }}">
|
||||
<span class="invalid-feedback" role="alert">
|
||||
@error('heartbeat')
|
||||
{{ $message }}
|
||||
@enderror
|
||||
</span>
|
||||
<!-- @todo This is only relevant for uplinks, so hide it if this system isnt an uplink -->
|
||||
<div class="col-6 @if((old('pollmode') === "0") || is_null($o->pollmode))d-none @endif" id="heartbeat_option">
|
||||
<label for="heartbeat" class="form-label">Heartbeat <i class="bi bi-info-circle" title="Attempt contact after last seen"></i></label>
|
||||
<div class="input-group has-validation">
|
||||
<span class="input-group-text"><i class="bi bi-hourglass-bottom"></i></span>
|
||||
<input type="text" class="form-control text-end @error('heartbeat') is-invalid @enderror" id="heartbeat" placeholder="Hrs" name="heartbeat" value="{{ old('heartbeat',$o->heartbeat) }}">
|
||||
<span class="invalid-feedback" role="alert">
|
||||
@error('heartbeat')
|
||||
{{ $message }}
|
||||
@enderror
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endcan
|
||||
@endcan
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@if(! is_null($o->pollmode))
|
||||
@@ -418,7 +399,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@can('admin',$o)
|
||||
@can('admin')
|
||||
<div class="row">
|
||||
<!-- Notes -->
|
||||
<div class="col-12">
|
||||
@@ -444,15 +425,15 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@section('page-css')
|
||||
@css('select2')
|
||||
@append
|
||||
@section('page-scripts')
|
||||
@js('select2')
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#users').select2({
|
||||
theme: 'bootstrap-5',
|
||||
dropdownAutoWidth: true,
|
||||
width: 'style',
|
||||
allowClear: true,
|
||||
placeholder: '',
|
||||
@cannot('admin')disabled: true @endcannot
|
||||
/*multiple: true*/
|
||||
});
|
||||
@@ -466,57 +447,59 @@
|
||||
$('#poll_hold').on('click',function() {
|
||||
$('#heartbeat_option').addClass('d-none');
|
||||
})
|
||||
$("#autohold").on('click',function(item) {
|
||||
var that = $(this)
|
||||
var icon = that.find('i');
|
||||
@if($o->exists)
|
||||
$("#autohold").on('click',function(item) {
|
||||
var that = $(this)
|
||||
var icon = that.find('i');
|
||||
|
||||
if (icon.hasClass('bi-toggle-on')) {
|
||||
$.ajax({
|
||||
url: '/system/api/autohold/off',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data : {id: {{ $o->id }}},
|
||||
beforeSend: function() {
|
||||
icon.addClass('spinner-grow spinner-grow-sm')
|
||||
},
|
||||
complete: function() {
|
||||
icon.removeClass('spinner-grow spinner-grow-sm')
|
||||
},
|
||||
success: function(data) {
|
||||
icon.removeClass('bi-toggle-on')
|
||||
.addClass('bi-toggle-off')
|
||||
if (icon.hasClass('bi-toggle-on')) {
|
||||
$.ajax({
|
||||
url: '/system/api/autohold/off',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data : {id: {{ $o->id }}},
|
||||
beforeSend: function() {
|
||||
icon.addClass('spinner-grow spinner-grow-sm')
|
||||
},
|
||||
complete: function() {
|
||||
icon.removeClass('spinner-grow spinner-grow-sm')
|
||||
},
|
||||
success: function(data) {
|
||||
icon.removeClass('bi-toggle-on')
|
||||
.addClass('bi-toggle-off')
|
||||
|
||||
that.removeClass('btn-warning')
|
||||
.addClass('btn-outline-success')
|
||||
},
|
||||
cache: false
|
||||
});
|
||||
that.removeClass('btn-warning')
|
||||
.addClass('btn-outline-success')
|
||||
},
|
||||
cache: false
|
||||
});
|
||||
|
||||
} else {
|
||||
$.ajax({
|
||||
url: '/system/api/autohold/on',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data : {id: {{ $o->id }}},
|
||||
beforeSend: function() {
|
||||
icon.addClass('spinner-grow spinner-grow-sm')
|
||||
},
|
||||
complete: function() {
|
||||
icon.removeClass('spinner-grow spinner-grow-sm')
|
||||
},
|
||||
success: function(data) {
|
||||
icon.removeClass('bi-toggle-off')
|
||||
.addClass('bi-toggle-on');
|
||||
} else {
|
||||
$.ajax({
|
||||
url: '/system/api/autohold/on',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data : {id: {{ $o->id }}},
|
||||
beforeSend: function() {
|
||||
icon.addClass('spinner-grow spinner-grow-sm')
|
||||
},
|
||||
complete: function() {
|
||||
icon.removeClass('spinner-grow spinner-grow-sm')
|
||||
},
|
||||
success: function(data) {
|
||||
icon.removeClass('bi-toggle-off')
|
||||
.addClass('bi-toggle-on');
|
||||
|
||||
that.removeClass('btn-outline-success')
|
||||
.addClass('btn-warning')
|
||||
},
|
||||
cache: false
|
||||
});
|
||||
}
|
||||
that.removeClass('btn-outline-success')
|
||||
.addClass('btn-warning')
|
||||
},
|
||||
cache: false
|
||||
});
|
||||
}
|
||||
|
||||
return false;
|
||||
})
|
||||
return false;
|
||||
})
|
||||
@endif
|
||||
})
|
||||
</script>
|
||||
@append
|
Reference in New Issue
Block a user