123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- @extends('layouts.main')
- @section('content')
- <!-- CONTENT HEADER -->
- <section class="content-header">
- <div class="container-fluid">
- <div class="mb-2 row">
- <div class="col-sm-6">
- <h1>{{ __('Ticket Blacklist') }}</h1>
- </div>
- <div class="col-sm-6">
- <ol class="breadcrumb float-sm-right">
- <li class="breadcrumb-item"><a href="{{ route('home') }}">{{ __('Dashboard') }}</a></li>
- <li class="breadcrumb-item"><a class="text-muted"
- href="{{ route('admin.ticket.blacklist') }}">{{ __('Ticket Blacklist') }}</a>
- </li>
- </ol>
- </div>
- </div>
- </div>
- </section>
- <!-- END CONTENT HEADER -->
- <!-- MAIN CONTENT -->
- <section class="content">
- <div class="container-fluid">
- <div class="row">
- <div class="col-lg-8">
- <div class="card">
- <div class="card-header">
- <div class="d-flex justify-content-between">
- <h5 class="card-title"><i class="mr-2 fas fa-users"></i>{{__('Blacklist List')}}</h5>
- </div>
- </div>
- <div class="card-body table-responsive">
- <table id="datatable" class="table table-striped">
- <thead>
- <tr>
- <th>{{__('User')}}</th>
- <th>{{__('Status')}}</th>
- <th>{{__('Reason')}}</th>
- <th>{{__('Created At')}}</th>
- <th>{{__('Actions')}}</th>
- </tr>
- </thead>
- <tbody>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="col-lg-4">
- <div class="card">
- <div class="card-header">
- <h5 class="card-title">{{__('Add To Blacklist')}}
- <i data-toggle="popover"
- data-trigger="hover"
- data-content="{{__('please make the best of it')}}"
- class="fas fa-info-circle"></i></h5>
- </div>
- <div class="card-body">
- <form action="{{route('admin.ticket.blacklist.add')}}" method="POST" class="ticket-form">
- @csrf
- <div class="p-0 mb-3 custom-control">
- <label for="user_id">{{ __('User') }}:
- <i data-toggle="popover" data-trigger="hover"
- data-content="{{ __('Please note, the blacklist will make the user unable to make a ticket/reply again') }}" class="fas fa-info-circle"></i>
- </label>
- <select id="user_id" style="width:100%" class="custom-select" name="user_id" required
- autocomplete="off" @error('user_id') is-invalid @enderror>
- </select>
- </div>
- <div class="form-group ">
- <label for="reason" class="control-label">{{__("Reason")}}</label>
- <input id="reason" type="text" class="form-control" name="reason" placeholder="Input Some Reason" required>
- </div>
- <button type="submit" class="btn btn-primary ticket-once">
- {{__('Submit')}}
- </button>
- </form>
- </div>
- </div>
- </div>
- </div>
- </div>
- </section>
- <!-- END CONTENT -->
- <script>
- document.addEventListener("DOMContentLoaded", function () {
- $('#datatable').DataTable({
- language: {
- url: '//cdn.datatables.net/plug-ins/1.11.3/i18n/{{ $locale_datatables }}.json'
- },
- processing: true,
- serverSide: true,
- stateSave: true,
- ajax: "{{route('admin.ticket.blacklist.datatable')}}",
- columns: [
- {data: 'user' , name : 'user.name'},
- {data: 'status'},
- {data: 'reason'},
- {data: 'created_at'},
- {data: 'actions', sortable: false},
- ],
- fnDrawCallback: function( oSettings ) {
- $('[data-toggle="popover"]').popover();
- }
- });
- });
- </script>
- <script type="application/javascript">
- function initUserIdSelect(data) {
- function escapeHtml(str) {
- var div = document.createElement('div');
- div.appendChild(document.createTextNode(str));
- return div.innerHTML;
- }
- $('#user_id').select2({
- ajax: {
- url: '/admin/users.json',
- dataType: 'json',
- delay: 250,
- data: function (params) {
- return {
- filter: { email: params.term },
- page: params.page,
- };
- },
- processResults: function (data, params) {
- return { results: data };
- },
- cache: true,
- },
- data: data,
- escapeMarkup: function (markup) { return markup; },
- minimumInputLength: 2,
- templateResult: function (data) {
- if (data.loading) return escapeHtml(data.text);
- return '<div class="user-block"> \
- <img class="img-circle img-bordered-xs" src="' + escapeHtml(data.avatarUrl) + '?s=120" alt="User Image"> \
- <span class="username"> \
- <a href="#">' + escapeHtml(data.name) +'</a> \
- </span> \
- <span class="description"><strong>' + escapeHtml(data.email) + '</strong>' + '</span> \
- </div>';
- },
- templateSelection: function (data) {
- return '<div> \
- <span> \
- <img class="img-rounded img-bordered-xs" src="' + escapeHtml(data.avatarUrl) + '?s=120" style="height:28px;margin-top:-4px;" alt="User Image"> \
- </span> \
- <span style="padding-left:5px;"> \
- ' + escapeHtml(data.name) + ' (<strong>' + escapeHtml(data.email) + '</strong>) \
- </span> \
- </div>';
- }
- });
- }
- $(document).ready(function() {
- @if (old('user_id'))
- $.ajax({
- url: '/admin/users.json?user_id={{ old('user_id') }}',
- dataType: 'json',
- }).then(function (data) {
- initUserIdSelect([ data ]);
- });
- @else
- initUserIdSelect();
- @endif
- });
- </script>
- @endsection
|