ultimatepos/Modules/ManagementTools/Resources/views/task_report/index.blade.php

210 lines
11 KiB
PHP

@extends('layouts.app')
@section('title', __('managementtools::lang.task_report_menu'))
@section('content')
@include('managementtools::layouts.nav')
<section class="content no-print mt-page mt-task-report-page">
<div class="mt-page-header">
<h1><i class="fas fa-calendar-alt" style="color:#2563eb;margin-left:8px;"></i> @lang('managementtools::lang.task_report_menu')</h1>
</div>
<div class="mt-card">
<div class="mt-card-body">
<div class="row">
<div class="col-md-12">
{!! Form::open(['url' => action([\Modules\ManagementTools\Http\Controllers\TaskReportController::class, 'index']), 'method' => 'get', 'id' => 'mt_task_report_filter', 'class' => 'form-inline pull-right', 'style' => 'direction:rtl;']) !!}
<div class="form-group" style="margin-left:8px;">
{!! Form::label('start_date', __('managementtools::lang.start_date')) !!}
{!! Form::text('start_date', $start_date, ['class' => 'form-control mt-datepicker', 'readonly', 'required', 'autocomplete' => 'off', 'placeholder' => __('managementtools::lang.start_date')]) !!}
</div>
<div class="form-group" style="margin-left:8px;">
{!! Form::label('end_date', __('managementtools::lang.end_date')) !!}
{!! Form::text('end_date', $end_date, ['class' => 'form-control mt-datepicker', 'readonly', 'required', 'autocomplete' => 'off', 'placeholder' => __('managementtools::lang.end_date')]) !!}
</div>
<div class="form-group" style="margin-left:8px;">
{!! Form::label('user_id', __('managementtools::lang.user')) !!}
{!! Form::select('user_id', $users, $user_id, ['class' => 'form-control select2', 'required', 'style' => 'width:260px;']) !!}
</div>
<button type="submit" class="btn btn-primary" style="margin-right:8px;">
<i class="fa fa-filter"></i> @lang('managementtools::lang.filter')
</button>
{!! Form::close() !!}
@if($user_id && $start_date && $end_date && $next_user && $previous_user)
@php
$navQuery = http_build_query([
'start_date' => $start_date,
'end_date' => $end_date,
]);
@endphp
<a href="{{ action([\Modules\ManagementTools\Http\Controllers\TaskReportController::class, 'index']) }}?{{ $navQuery }}&user_id={{ $next_user->id }}"
class="btn btn-success" style="margin-bottom:8px;">
@lang('managementtools::lang.next_user') ({{ trim($next_user->first_name.' '.($next_user->last_name ?? '')) }})
</a>
<a href="{{ action([\Modules\ManagementTools\Http\Controllers\TaskReportController::class, 'index']) }}?{{ $navQuery }}&user_id={{ $previous_user->id }}"
class="btn btn-danger" style="margin-bottom:8px;">
@lang('managementtools::lang.previous_user') ({{ trim($previous_user->first_name.' '.($previous_user->last_name ?? '')) }})
</a>
@endif
<button type="button" class="btn btn-danger btn-modal" style="margin-bottom:8px;"
data-href="{{ action([\Modules\ManagementTools\Http\Controllers\TaskReportController::class, 'userList']) }}"
data-container=".mt_task_report_modal">
@lang('managementtools::lang.user_list')
</button>
</div>
</div>
</div>
</div>
@if($user_id && $start_date && $end_date)
<div class="mt-card mt-tr-summary-card">
<div class="mt-card-body" style="padding:0;">
@include('managementtools::task_report.partials.summary_bar', [
'task_count' => $user_tasks->count(),
'total_minutes' => $total_minutes,
'start_date' => $start_date,
'end_date' => $end_date,
'current_user_name' => $current_user_name,
])
</div>
</div>
<div class="mt-card">
<div class="mt-card-body" style="padding-top:0;">
<ul class="nav nav-tabs mt-tr-tabs" role="tablist">
@foreach($last_dates as $date)
<li role="presentation">
<a href="#mt-tab-past-{{ $loop->iteration }}" aria-controls="mt-tab-past-{{ $loop->iteration }}" role="tab" data-toggle="tab">
{{ $mtUtil->formatDate($date) }}
</a>
</li>
@endforeach
<li role="presentation" class="active">
<a href="#mt-tab-overall" aria-controls="mt-tab-overall" role="tab" data-toggle="tab">
@lang('managementtools::lang.overall_report')
</a>
</li>
@foreach($dates as $date)
<li role="presentation">
<a href="#mt-tab-future-{{ $loop->iteration }}" aria-controls="mt-tab-future-{{ $loop->iteration }}" role="tab" data-toggle="tab">
{{ $mtUtil->formatDate($date) }}
</a>
</li>
@endforeach
</ul>
<div class="tab-content mt-tr-tab-content">
@foreach($last_week as $tasks)
@php $tab_date = $last_dates[$loop->index]; @endphp
<div role="tabpanel" class="tab-pane fade" id="mt-tab-past-{{ $loop->iteration }}">
@include('managementtools::task_report.partials.tasks_table', [
'tasks' => $tasks,
'user_id' => $user_id,
'day_date' => $tab_date,
'can_manage_scores' => $can_manage_scores,
'can_manage_tasks' => $can_manage_tasks,
])
</div>
@endforeach
<div role="tabpanel" class="tab-pane fade in active" id="mt-tab-overall">
@include('managementtools::task_report.partials.tasks_table', [
'tasks' => $user_tasks,
'user_id' => $user_id,
'can_manage_scores' => $can_manage_scores,
'can_manage_tasks' => $can_manage_tasks,
])
<div id="mt_task_report_calendar" style="margin-top:20px;"></div>
</div>
@foreach($week as $tasks)
@php $tab_date = $dates[$loop->index]; @endphp
<div role="tabpanel" class="tab-pane fade" id="mt-tab-future-{{ $loop->iteration }}">
@include('managementtools::task_report.partials.tasks_table', [
'tasks' => $tasks,
'user_id' => $user_id,
'day_date' => $tab_date,
'can_manage_scores' => $can_manage_scores,
'can_manage_tasks' => $can_manage_tasks,
])
</div>
@endforeach
</div>
</div>
</div>
@foreach($grouped_tasks as $date => $day_tasks)
<div class="mt-card mt-tr-summary-card">
<div class="mt-card-body" style="padding:0;">
@include('managementtools::task_report.partials.summary_bar', [
'task_count' => $day_tasks->count(),
'total_minutes' => app(\Modules\ManagementTools\Utils\TaskReportUtil::class)->sumTasksWorkMinutes($day_tasks, (int) $user_id, $date),
'day_label' => $mtUtil->formatDate($date),
])
</div>
</div>
@include('managementtools::task_report.partials.tasks_table', [
'tasks' => $day_tasks,
'user_id' => $user_id,
'day_date' => $date,
'can_manage_scores' => $can_manage_scores,
'can_manage_tasks' => $can_manage_tasks,
])
<hr>
@endforeach
@else
<div class="mt-card">
<div class="mt-card-body">
<p class="text-muted text-center">@lang('managementtools::lang.select_filters_hint')</p>
</div>
</div>
@endif
</section>
<div class="modal fade mt_task_report_modal" tabindex="-1" role="dialog"></div>
<div class="modal fade mt_task_modal" tabindex="-1" role="dialog"></div>
@endsection
@section('javascript')
<script type="text/javascript">
$(document).ready(function() {
$('.select2').select2();
if (typeof MtDate !== 'undefined') {
MtDate.initDatepicker('.mt-datepicker');
}
@if($user_id && $calendar_events->isNotEmpty())
if ($('#mt_task_report_calendar').length && typeof $.fn.fullCalendar !== 'undefined') {
var events = @json($calendar_events);
$('#mt_task_report_calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
locale: (typeof app_locale !== 'undefined' ? app_locale : 'fa'),
eventLimit: true,
editable: false,
events: events
});
}
@endif
});
</script>
<style>
.mt-task-report-page .mt-tr-summary-card { border-color:#fecaca; }
.mt-task-report-page .mt-tr-summary-card .mt-card-body { background:#fef2f2; }
.mt-task-report-page .mt-tr-summary-table td { font-size:15px; font-weight:600; vertical-align:middle; }
.mt-task-report-page .mt-tr-tabs { margin-bottom:0; border-bottom:1px solid #e5e7eb; }
.mt-task-report-page .mt-tr-tabs > li > a { border-radius:8px 8px 0 0; font-weight:600; }
.mt-task-report-page .mt-tr-tab-content { padding-top:16px; }
.mt-task-report-page .mt-tr-tasks-table td,
.mt-task-report-page .mt-tr-tasks-table th { font-size:14px; vertical-align:middle !important; }
.mt-task-report-page .thead-dark th { background:#1f2937; color:#fff; border-color:#374151; }
</style>
@endsection