index.blade.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. @extends('backend.layouts.app')
  2. @section('content')
  3. <div class="aiz-titlebar text-left mt-2 mb-3">
  4. <div class="row align-items-center">
  5. <!--<div class="col-md-6">-->
  6. <!-- <h1 class="h3">{{translate('All uploaded files')}}</h1>-->
  7. <!--</div>-->
  8. <div class="col-md-6 text-md-left">
  9. <a href="{{ route('uploaded-files.create') }}" class="btn btn-primary">
  10. <span>{{translate('Upload New File')}}</span>
  11. </a>
  12. </div>
  13. </div>
  14. </div>
  15. <div class="card">
  16. <form id="sort_uploads" action="">
  17. <div class="card-header row gutters-5">
  18. <div class="col-md-3">
  19. <h5 class="mb-0 h6">{{translate('All files')}}</h5>
  20. </div>
  21. <div class="col-md-3 ml-auto mr-0">
  22. <select class="form-control form-control-xs aiz-selectpicker" name="sort" onchange="sort_uploads()">
  23. <option value="newest" @if($sort_by == 'newest') selected="" @endif>{{ translate('Sort by newest') }}</option>
  24. <option value="oldest" @if($sort_by == 'oldest') selected="" @endif>{{ translate('Sort by oldest') }}</option>
  25. <option value="smallest" @if($sort_by == 'smallest') selected="" @endif>{{ translate('Sort by smallest') }}</option>
  26. <option value="largest" @if($sort_by == 'largest') selected="" @endif>{{ translate('Sort by largest') }}</option>
  27. </select>
  28. </div>
  29. <div class="col-md-3">
  30. <input type="text" class="form-control form-control-xs" name="search" placeholder="{{ translate('Search your files') }}" value="{{ $search }}">
  31. </div>
  32. <div class="col-auto">
  33. <button type="submit" class="btn btn-primary">{{ translate('Search') }}</button>
  34. </div>
  35. </div>
  36. </form>
  37. <div class="card-body">
  38. <div class="row gutters-5">
  39. @foreach($all_uploads as $key => $file)
  40. @php
  41. if($file->file_original_name == null){
  42. $file_name = translate('Unknown');
  43. }else{
  44. $file_name = $file->file_original_name;
  45. }
  46. $file_path = my_asset($file->file_name);
  47. if($file->external_link) {
  48. $file_path = $file->external_link;
  49. }
  50. @endphp
  51. <div class="col-auto w-140px w-lg-220px">
  52. <div class="aiz-file-box">
  53. <div class="dropdown-file" >
  54. <a class="dropdown-link" data-toggle="dropdown">
  55. <i class="la la-ellipsis-v"></i>
  56. </a>
  57. <div class="dropdown-menu dropdown-menu-right">
  58. <a href="javascript:void(0)" class="dropdown-item" onclick="detailsInfo(this)" data-id="{{ $file->id }}">
  59. <i class="las la-info-circle mr-2"></i>
  60. <span>{{ translate('Details Info') }}</span>
  61. </a>
  62. <a href="{{ my_asset($file->file_name) }}" target="_blank" download="{{ $file_name }}.{{ $file->extension }}" class="dropdown-item">
  63. <i class="la la-download mr-2"></i>
  64. <span>{{ translate('Download') }}</span>
  65. </a>
  66. <a href="javascript:void(0)" class="dropdown-item" onclick="copyUrl(this)" data-url="{{ my_asset($file->file_name) }}">
  67. <i class="las la-clipboard mr-2"></i>
  68. <span>{{ translate('Copy Link') }}</span>
  69. </a>
  70. <a href="javascript:void(0)" class="dropdown-item confirm-alert" data-href="{{ route('uploaded-files.destroy', $file->id ) }}" data-target="#delete-modal">
  71. <i class="las la-trash mr-2"></i>
  72. <span>{{ translate('Delete') }}</span>
  73. </a>
  74. </div>
  75. </div>
  76. <div class="card card-file aiz-uploader-select c-default" title="{{ $file_name }}.{{ $file->extension }}">
  77. <div class="card-file-thumb">
  78. @if($file->type == 'image')
  79. <img src="{{ $file_path }}" class="img-fit">
  80. @elseif($file->type == 'video')
  81. <i class="las la-file-video"></i>
  82. @else
  83. <i class="las la-file"></i>
  84. @endif
  85. </div>
  86. <div class="card-body">
  87. <h6 class="d-flex">
  88. <span class="text-truncate title">{{ $file_name }}</span>
  89. <span class="ext">.{{ $file->extension }}</span>
  90. </h6>
  91. <p>{{ formatBytes($file->file_size) }}</p>
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. @endforeach
  97. </div>
  98. <div class="aiz-pagination mt-3">
  99. {{ $all_uploads->appends(request()->input())->links() }}
  100. </div>
  101. </div>
  102. </div>
  103. @endsection
  104. @section('modal')
  105. <div id="delete-modal" class="modal fade">
  106. <div class="modal-dialog modal-sm modal-dialog-centered">
  107. <div class="modal-content">
  108. <div class="modal-header">
  109. <h4 class="modal-title h6">{{ translate('Delete Confirmation') }}</h4>
  110. <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
  111. </div>
  112. <div class="modal-body text-center">
  113. <p class="mt-1">{{ translate('Are you sure to delete this file?') }}</p>
  114. <button type="button" class="btn btn-link mt-2" data-dismiss="modal">{{ translate('Cancel') }}</button>
  115. <a href="" class="btn btn-primary mt-2 comfirm-link">{{ translate('Delete') }}</a>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <div id="info-modal" class="modal fade">
  121. <div class="modal-dialog modal-dialog-right">
  122. <div class="modal-content">
  123. <div class="modal-header">
  124. <h5 class="modal-title h6">{{ translate('File Info') }}</h5>
  125. <button type="button" class="close" data-dismiss="modal">
  126. </button>
  127. </div>
  128. <div class="modal-body c-scrollbar-light position-relative" id="info-modal-content">
  129. <div class="c-preloader text-center absolute-center">
  130. <i class="las la-spinner la-spin la-3x opacity-70"></i>
  131. </div>
  132. </div>
  133. </div>
  134. </div>
  135. </div>
  136. @endsection
  137. @section('script')
  138. <script type="text/javascript">
  139. function detailsInfo(e){
  140. $('#info-modal-content').html('<div class="c-preloader text-center absolute-center"><i class="las la-spinner la-spin la-3x opacity-70"></i></div>');
  141. var id = $(e).data('id')
  142. $('#info-modal').modal('show');
  143. $.post('{{ route('uploaded-files.info') }}', {_token: AIZ.data.csrf, id:id}, function(data){
  144. $('#info-modal-content').html(data);
  145. // console.log(data);
  146. });
  147. }
  148. function copyUrl(e) {
  149. var url = $(e).data('url');
  150. var $temp = $("<input>");
  151. $("body").append($temp);
  152. $temp.val(url).select();
  153. try {
  154. document.execCommand("copy");
  155. AIZ.plugins.notify('success', '{{ translate('Link copied to clipboard') }}');
  156. } catch (err) {
  157. AIZ.plugins.notify('danger', '{{ translate('Oops, unable to copy') }}');
  158. }
  159. $temp.remove();
  160. }
  161. function sort_uploads(el){
  162. $('#sort_uploads').submit();
  163. }
  164. </script>
  165. @endsection