onlineIPMonitor.blade.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. @extends('admin.table_layouts')
  2. @section('content')
  3. <div class="page-content container-fluid">
  4. <div class="panel">
  5. <div class="panel-heading">
  6. <h2 class="panel-title">
  7. {!! trans('admin.logs.ip_monitor') !!}
  8. </h2>
  9. </div>
  10. <div class="panel-body">
  11. <form class="form-row">
  12. <div class="form-group col-lg-2 col-sm-2">
  13. <input class="form-control" name="id" type="number" value="{{ Request::query('id') }}" placeholder="{{ trans('model.user.id') }}" />
  14. </div>
  15. <div class="form-group col-lg-2 col-sm-5">
  16. <input class="form-control" name="username" type="text" value="{{ Request::query('username') }}"
  17. placeholder="{{ trans('common.account') }}" />
  18. </div>
  19. <div class="form-group col-lg-2 col-sm-5">
  20. <input class="form-control" name="ip" type="text" value="{{ Request::query('ip') }}" placeholder="IP" />
  21. </div>
  22. <div class="form-group col-lg-2 col-sm-3">
  23. <input class="form-control" name="port" type="number" value="{{ Request::query('port') }}"
  24. placeholder="{{ trans('model.user.port') }}" />
  25. </div>
  26. <div class="form-group col-lg-2 col-sm-5">
  27. <select class="form-control" id="node_id" name="node_id" data-plugin="selectpicker" data-style="btn-outline btn-primary"
  28. title="{{ trans('model.node.attribute') }}">
  29. @foreach ($nodes as $node)
  30. <option value="{{ $node->id }}">{{ $node->name }}</option>
  31. @endforeach
  32. </select>
  33. </div>
  34. <div class="form-group col-lg-2 col-sm-4 btn-group">
  35. <button class="btn btn-primary" type="submit">{{ trans('common.search') }}</button>
  36. <button class="btn btn-danger" type="button" onclick="resetSearchForm()">{{ trans('common.reset') }}</button>
  37. </div>
  38. </form>
  39. <table class="text-md-center" data-toggle="table" data-mobile-responsive="true">
  40. <thead class="thead-default">
  41. <tr>
  42. <th> #</th>
  43. <th> {{ trans('model.ip.network_type') }}</th>
  44. <th> {{ trans('model.node.attribute') }}</th>
  45. <th> {{ trans('common.account') }}</th>
  46. <th> IP</th>
  47. <th> {{ trans('model.ip.info') }}</th>
  48. <th> {{ trans('validation.attributes.time') }}</th>
  49. </tr>
  50. </thead>
  51. <tbody>
  52. @foreach ($onlineIPLogs as $log)
  53. <tr>
  54. <td>{{ $log->id }}</td>
  55. <td>{{ $log->type }}</td>
  56. <td>{{ $log->node->name ?? '【' . trans('common.deleted_item', ['attribute' => trans('model.node.attribute')]) . '】' }}</td>
  57. <td>{{ $log->user->username ?? '【' . trans('common.deleted_item', ['attribute' => trans('model.user.attribute')]) . '】' . '$log->user_id' }}
  58. </td>
  59. <td>
  60. @if (str_contains($log->ip, ','))
  61. @foreach (explode(',', $log->ip) as $ip)
  62. <a href="https://db-ip.com/{{ $ip }}" target="_blank">{{ $ip }}</a>
  63. @endforeach
  64. @else
  65. <a href="https://db-ip.com/{{ $log->ip }}" target="_blank">{{ $log->ip }}</a>
  66. @endif
  67. </td>
  68. <td>{{ $log->ipInfo ?? '' }}</td>
  69. <td>{{ date('Y-m-d H:i:s', $log->created_at) }}</td>
  70. </tr>
  71. @endforeach
  72. </tbody>
  73. </table>
  74. </div>
  75. <div class="panel-footer">
  76. <div class="row">
  77. <div class="col-sm-4">
  78. {!! trans('admin.logs.counts', ['num' => $onlineIPLogs->total()]) !!}
  79. </div>
  80. <div class="col-sm-8">
  81. <nav class="Page navigation float-right">
  82. {{ $onlineIPLogs->links() }}
  83. </nav>
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. @endsection
  90. @push('javascript')
  91. <script>
  92. $(document).ready(function() {
  93. $('#node_id').selectpicker('val', @json(Request::query('node_id')));
  94. });
  95. </script>
  96. @endpush