Internal enhancements to system registration and editing
This commit is contained in:
@@ -13,17 +13,17 @@
|
||||
<div class="greyframe titledbox shadow0xb0">
|
||||
<h2 class="cap">Register System</h2>
|
||||
|
||||
<div id="register">
|
||||
<div id="create">
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<label for="system" 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" style="z-index: 0" class="form-control col-11 @error('zone_id') is-invalid @enderror" id="system" placeholder="BBS Name" name="system" value="{{ old('system') }}" required autofocus>
|
||||
<input type="text" style="z-index: 0" class="form-control col-11 @error('name') is-invalid @enderror" id="name" placeholder="BBS Name" name="name" value="{{ old('name') }}" required 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('zone_id')
|
||||
@error('name')
|
||||
{{ $message }}
|
||||
@else
|
||||
BBS Name is required.
|
||||
@@ -33,21 +33,40 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12 pb-2">
|
||||
<button type="button" name="submit" class="btn btn-success">Next</button><span id="next" class="m-2"><i class="spinner-border spinner-border-sm text-light d-none"></i></span>
|
||||
@if (old('submit') != 'create')
|
||||
<div class="row">
|
||||
<div class="col-12 pb-2">
|
||||
<button type="button" name="submit" class="btn btn-success">Next</button><span id="next" class="m-2"><i class="spinner-border spinner-border-sm text-light d-none"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="modal fade" id="no-auth" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header bg-danger">
|
||||
<h5 class="modal-title">ERROR: No authorisation</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>It appears that you are not allowed to create this entry.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('page-css')
|
||||
<style>
|
||||
input#system + span {
|
||||
input#name + span {
|
||||
left: -1.5em;
|
||||
top: 0.5em;
|
||||
position:relative
|
||||
@@ -87,14 +106,76 @@
|
||||
@section('page-scripts')
|
||||
<script>
|
||||
var system_id;
|
||||
var noauth = new bootstrap.Modal(document.getElementById('no-auth'), {});
|
||||
|
||||
function validation(item,message) {
|
||||
var attr = $('input[id='+item+']');
|
||||
attr.addClass('is-invalid')
|
||||
attr.parent().find('.invalid-feedback').empty().append(message);
|
||||
}
|
||||
|
||||
function getform(icon) {
|
||||
$.ajax({
|
||||
url : '{{ url('user/system/register') }}',
|
||||
type : 'POST',
|
||||
data : { system_id: system_id,name: $('#name').val(),action: 'create',old: {!! json_encode(old()) !!} },
|
||||
dataType : 'json',
|
||||
async : true,
|
||||
cache : false,
|
||||
beforeSend : function() {
|
||||
if (icon)
|
||||
icon.toggleClass('d-none');
|
||||
},
|
||||
complete : function(data) {
|
||||
switch (data.status) {
|
||||
case 200:
|
||||
// if json is null, means no match, won't do again.
|
||||
if(data.responseText==null || (data.responseText.length===0)) return;
|
||||
$('#create').empty().append(data.responseText);
|
||||
|
||||
@if($errors->count())
|
||||
@foreach($errors->keys() as $key)
|
||||
validation('{{ $key }}','{{ $errors->first($key) }}');
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
break;
|
||||
|
||||
case 403:
|
||||
if (icon)
|
||||
icon.toggleClass('d-none');
|
||||
noauth.show();
|
||||
break;
|
||||
|
||||
case 419:
|
||||
location.reload();
|
||||
break;
|
||||
|
||||
case 422:
|
||||
validation('name',data.responseJSON.errors.name[0]);
|
||||
|
||||
if (icon)
|
||||
icon.toggleClass('d-none');
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if ({{ old('submit') == 'create' ? 'true' : 'false' }}) {
|
||||
getform();
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$('input[id=system]').typeahead({
|
||||
$('input[id=name]').typeahead({
|
||||
autoSelect: false,
|
||||
scrollHeight: 10,
|
||||
theme: 'bootstrap5',
|
||||
delay: 500,
|
||||
minLength: 2,
|
||||
minLength: 3,
|
||||
items: {{ $search_limit ?? 5 }},
|
||||
fitToElement: false,
|
||||
selectOnBlur: false,
|
||||
@@ -126,29 +207,10 @@
|
||||
$('button[name=submit]').on('click',function() {
|
||||
icon = $(this).parent().find('i');
|
||||
|
||||
if (! $('#system').val())
|
||||
if (! $('#name').val())
|
||||
return;
|
||||
|
||||
$.ajax({
|
||||
url : '{{ url('user/system/register') }}',
|
||||
type : 'POST',
|
||||
data : { system_id: system_id,system_name: $('#system').val() },
|
||||
dataType : 'html',
|
||||
async : true,
|
||||
cache : false,
|
||||
beforeSend : function() {
|
||||
icon.removeClass('d-none');
|
||||
},
|
||||
success : function(data) {
|
||||
// if json is null, means no match, won't do again.
|
||||
if(data==null || (data.length===0)) return;
|
||||
|
||||
$('#register').empty().append(data);
|
||||
},
|
||||
complete : function() {
|
||||
//icon.addClass('d-none');
|
||||
}
|
||||
})
|
||||
getform(icon);
|
||||
})
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user