tasks.blade.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <div class="row header px-5 py-4 fw-bold d-none d-md-flex">
  2. <div class="col-xl-4">Задача</div>
  3. <div class="col-xl-2">Проект</div>
  4. <div class="col-xl-2">Дедлайн</div>
  5. <div class="col-xl-2">Исполнитель</div>
  6. <div class="col-xl-2 text-end">Действия</div>
  7. </div>
  8. @foreach($tasks as $task)
  9. <div class="row px-2 px-md-5 py-4 align-items-center task-{{ $task->status }}">
  10. <div class="col-xl-4">
  11. <a class="p-0 m-0" title="Развернуть описание" data-bs-toggle="collapse" href="#description-{{ $task->id }}" role="button" aria-expanded="false" aria-controls="description-{{ $task->id }}">
  12. <span class="d-md-none fw-bold">Задача: </span>{{ $task->name }}
  13. </a>
  14. <div class="p-0 m-0 text-secondary small">Статус: {{ getStatuses($task->status) }}</div>
  15. </div>
  16. <div class="col-xl-2">
  17. <a class="m-0 p-0 d-md-block" href="{{ route('projects.view', $task->project->id) }}">
  18. <span class="d-md-none fw-bold">Проект: </span>{{ $task->project->name }}
  19. </a>
  20. <a class="m-0 p-0 d-block text-secondary small" target="_blank" href="{{ ($task->project->domains->first()) ? $task->project->domains->first()->name : '' }}">{{ ($task->project->domains->first()) ? $task->project->domains->first()->name : '' }}</a>
  21. </div>
  22. <div class="col-xl-2 @if(strtotime($task->deadline) < strtotime('now +2 day')) text-danger @endif">
  23. <div class="m-0 p-0">
  24. <span class="d-md-none fw-bold">Дедлайн: </span>{{ humanDate($task->deadline) }}
  25. @if(strtotime($task->deadline) < strtotime('now +2 day'))
  26. <img src="{{ asset('ico/flash.svg') }}" alt="ALERT" class="ms-1">
  27. @endif
  28. </div>
  29. </div>
  30. <div class="col-xl-2">
  31. <div class="m-0 p-0">
  32. @include('partials.user', ['user' => $task->executor, 'role' => 'Исполнитель'])
  33. </div>
  34. </div>
  35. <div class="col-xl-2 justify-content-end mt-3 mt-md-1 d-flex">
  36. @hasrole('manager')
  37. @if(auth()->user()->id == $task->project->manager_id)
  38. @if(in_array($task->status, ['check', 'work']))
  39. <a href="{{ route('tasks.status-change', 'done/' . $task->id) }}" class="small" title="Завершить">
  40. <div class="check"></div>
  41. </a>
  42. @if($task->status != 'work')
  43. <a href="{{ route('tasks.status-change', 'work/' . $task->id) }}" class="small" title="В работу">
  44. <span class="refresh"></span>
  45. </a>
  46. @endif
  47. @elseif(!in_array($task->status, ['done', 'cancel']))
  48. <a href="{{ route('tasks.status-change', 'cancel/' . $task->id) }}" class="small" title="Отменить">
  49. <span class="cancel"></span>
  50. </a>
  51. @endif
  52. @endif
  53. @endhasrole
  54. @hasrole('executor')
  55. @if(in_array($task->status, ['work']) && ($task->executor_id == auth()->user()->id) && ($task->project->manager_id != $task->executor_id))
  56. <a href="{{ route('tasks.status-change', 'check/' . $task->id) }}" class="small" title="На проверку">
  57. <div class="check"></div>
  58. </a>
  59. @endif
  60. @endhasrole
  61. @hasrole('admin,manager')
  62. <a href="{{ route('tasks.edit', $task->id) }}">
  63. <div class="edit"></div>
  64. </a>
  65. <a href="#" onclick="if(confirm('Удалить задачу {{ $task->name }}?')) { document.getElementById('delete-task-{{ $task->id }}').submit(); } ">
  66. <div class="trash"></div></a>
  67. <form action="{{ route('tasks.delete', $task->id) }}" method="post" class="visually-hidden d-none" id="delete-task-{{ $task->id }}">
  68. @csrf
  69. @method('DELETE')
  70. </form>
  71. @endhasrole
  72. </div>
  73. <div class="col-12 collapse mt-4" id="description-{{ $task->id }}">
  74. <pre class="p-3 rounded">{{ $task->description }}</pre>
  75. </div>
  76. </div>
  77. @endforeach