show_appeal.blade.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. @extends('admin.partial.template-full')
  2. @section('section')
  3. <div class="d-flex justify-content-between title mb-3">
  4. <div>
  5. <p class="font-weight-bold h3">Moderation Appeal</p>
  6. <p class="text-muted mb-0 lead">From <a href="{{$appeal->user->url()}}" class="text-muted font-weight-bold">&commat;{{$appeal->user->username}}</a> about {{$appeal->appeal_requested_at->diffForHumans()}}.</p>
  7. </div>
  8. <div>
  9. </div>
  10. </div>
  11. <div class="row">
  12. <div class="col-12 col-md-8 mt-3">
  13. @if($appeal->type == 'post.cw')
  14. <div class="card shadow-none border">
  15. <div class="card-header bg-light h5 font-weight-bold py-4">Content Warning applied to {{$appeal->has_media ? 'Post' : 'Comment'}}</div>
  16. @if($appeal->has_media)
  17. <img class="card-img-top border-bottom" src="{{$appeal->status->thumb(true)}}">
  18. @endif
  19. <div class="card-body">
  20. <div class="mt-2 p-3">
  21. @if($meta->caption)
  22. <p class="text-break">
  23. {{$appeal->has_media ? 'Caption' : 'Comment'}}: <span class="font-weight-bold">{{$meta->caption}}</span>
  24. </p>
  25. @endif
  26. <p class="mb-0">
  27. Like Count: <span class="font-weight-bold">{{$meta->likes_count}}</span>
  28. </p>
  29. <p class="mb-0">
  30. Share Count: <span class="font-weight-bold">{{$meta->reblogs_count}}</span>
  31. </p>
  32. <p class="mb-0">
  33. Timestamp: <span class="font-weight-bold">{{now()->parse($meta->created_at)->format('r')}}</span>
  34. </p>
  35. <p class="" style="word-break: break-all !important;">
  36. URL: <span class="font-weight-bold text-primary"><a href="{{$meta->url}}">{{$meta->url}}</a></span>
  37. </p>
  38. <p class="mb-0">
  39. Message: <span class="font-weight-bold">{{$appeal->appeal_message}}</span>
  40. </p>
  41. </div>
  42. </div>
  43. </div>
  44. @elseif($appeal->type == 'post.unlist')
  45. <div class="card shadow-none border">
  46. <div class="card-header bg-light h5 font-weight-bold py-4">{{$appeal->has_media ? 'Post' : 'Comment'}} was unlisted from timelines</div>
  47. @if($appeal->has_media)
  48. <img class="card-img-top border-bottom" src="{{$appeal->status->thumb(true)}}">
  49. @endif
  50. <div class="card-body">
  51. <div class="mt-2 p-3">
  52. @if($meta->caption)
  53. <p class="text-break">
  54. {{$appeal->has_media ? 'Caption' : 'Comment'}}: <span class="font-weight-bold">{{$meta->caption}}</span>
  55. </p>
  56. @endif
  57. <p class="mb-0">
  58. Like Count: <span class="font-weight-bold">{{$meta->likes_count}}</span>
  59. </p>
  60. <p class="mb-0">
  61. Share Count: <span class="font-weight-bold">{{$meta->reblogs_count}}</span>
  62. </p>
  63. <p class="mb-0">
  64. Timestamp: <span class="font-weight-bold">{{now()->parse($meta->created_at)->format('r')}}</span>
  65. </p>
  66. <p class="" style="word-break: break-all !important;">
  67. URL: <span class="font-weight-bold text-primary"><a href="{{$meta->url}}">{{$meta->url}}</a></span>
  68. </p>
  69. <p class="mb-0">
  70. Message: <span class="font-weight-bold">{{$appeal->appeal_message}}</span>
  71. </p>
  72. </div>
  73. </div>
  74. </div>
  75. @endif
  76. </div>
  77. <div class="col-12 col-md-4 mt-3">
  78. <form method="post">
  79. @csrf
  80. <input type="hidden" name="action" value="dismiss">
  81. <button type="submit" class="btn btn-primary btn-block font-weight-bold mb-3">Dismiss Appeal Request</button>
  82. </form>
  83. <button type="button" class="btn btn-light border btn-block font-weight-bold mb-3" onclick="approveWarning()">Approve Appeal</button>
  84. <div class="card shadow-none border mt-5">
  85. <div class="card-header text-center font-weight-bold bg-light">
  86. &commat;{{$appeal->user->username}} stats
  87. </div>
  88. <div class="card-body">
  89. <p class="">
  90. Open Appeals: <span class="font-weight-bold">{{App\AccountInterstitial::whereUserId($appeal->user_id)->whereNotNull('appeal_requested_at')->whereNull('appeal_handled_at')->count()}}</span>
  91. </p>
  92. <p class="">
  93. Total Appeals: <span class="font-weight-bold">{{App\AccountInterstitial::whereUserId($appeal->user_id)->whereNotNull('appeal_requested_at')->count()}}</span>
  94. </p>
  95. <p class="">
  96. Total Warnings: <span class="font-weight-bold">{{App\AccountInterstitial::whereUserId($appeal->user_id)->count()}}</span>
  97. </p>
  98. <p class="">
  99. Status Count: <span class="font-weight-bold">{{$appeal->user->statuses()->count()}}</span>
  100. </p>
  101. <p class="mb-0">
  102. Joined: <span class="font-weight-bold">{{$appeal->user->created_at->diffForHumans(null, null, false)}}</span>
  103. </p>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. @endsection
  109. @push('scripts')
  110. <script type="text/javascript">
  111. function approveWarning() {
  112. if(window.confirm('Are you sure you want to approve this appeal?') == true) {
  113. axios.post(window.location.href, {
  114. action: 'approve'
  115. }).then(res => {
  116. window.location.href = '/i/admin/reports/appeals';
  117. }).catch(err => {
  118. swal('Oops!', 'An error occured, please try again later.', 'error');
  119. });
  120. }
  121. }
  122. </script>
  123. @endpush