@extends('settings.template')
@section('section')
< div class = "title" >
< h3 class = "font-weight-bold" > Blocked Instances< / h3 >
< / div >
< hr >
< div class = "form-group pb-1" >
< p >
< a class = "btn btn-outline-secondary py-0 font-weight-bold" href = "{{route('settings.privacy.muted-users')}}" > Muted Users< / a >
< a class = "btn btn-outline-secondary py-0 font-weight-bold" href = "{{route('settings.privacy.blocked-users')}}" > Blocked Users< / a >
< a class = "btn btn-outline-secondary py-0 font-weight-bold" href = "{{route('settings.privacy.blocked-keywords')}}" > Blocked keywords< / a >
< a class = "btn btn-outline-primary py-0 font-weight-bold" href = "{{route('settings.privacy.blocked-instances')}}" > Blocked instances< / a >
< / p >
< / div >
@if($filters->count() > 0)
< ul class = "list-group list-group-flush" >
@foreach($filters as $filter)
< li class = "list-group-item" >
< div class = "d-flex justify-content-between align-items-center font-weight-bold" >
< span >
< span class = "pr-5" > {{$filter->id}}< / span >
< span > {{$filter->instance->domain}}< / span >
< / span >
< span class = "btn-group" >
< form action = "{{route('settings.privacy.blocked-instances.unblock')}}" method = "POST" >
@csrf
< input type = "hidden" name = "id" value = "{{$filter->id}}" >
< button type = "submit" class = "btn btn-outline-secondary btn-sm px-3 font-weight-bold" > Unblock< / button >
< / form >
< / span >
< / div >
< / li >
@endforeach
< / ul >
< div class = "d-flex justify-content-center mt-3 font-weight-bold" >
{{$filters->links()}}
< / div >
< p >
< button type = "button" class = "btn btn-primary font-weight-bold px-3 blockInstance" > Block Instance< / button >
< / p >
@else
< p > You can block entire instances, this prevents users on that instance from interacting with your content. To understand how blocking works, < a href = "#" > read more< / a > in the Help Center.< / p >
< p class = "lead mb-4" > You are not blocking any instances. For a list of instances banned by the admin, click < a href = "#" > here< / a > .< / p >
< p >
< button type = "button" class = "btn btn-primary font-weight-bold px-3 blockInstance" > Block Instance< / button >
< / p >
@endif
@endsection
@push('scripts')
< script type = "text/javascript" >
$(document).ready(function() {
$('.blockInstance').on('click', function() {
swal({
text: 'Add domain to block.',
content: "input",
button: {
text: "Block",
closeModal: false,
},
})
.then(val => {
if (!val) {
swal.stopLoading();
swal.close();
return;
};
let msg = 'The URL you have entered is not valid, please try again.'
try {
let validator = new URL(val);
if(!validator.hostname || validator.protocol != 'https:') {
swal.stopLoading();
swal.close();
swal('Invalid URL', msg, 'error');
return;
};
axios.post(window.location.href, {
domain: validator.href
}).then(res => {
window.location.href = window.location.href;
}).catch(err => {
swal.stopLoading();
swal.close();
swal('Invalid URL', msg, 'error');
return;
});
} catch(e) {
swal.stopLoading();
swal.close();
swal('Invalid URL', msg, 'error');
}
})
});
});
< / script >
@endpush