154 lines
6.7 KiB
PHP
154 lines
6.7 KiB
PHP
@extends('layouts.app')
|
|
|
|
@section('title', __('managementtools::lang.daily_report'))
|
|
|
|
@section('content')
|
|
@include('managementtools::layouts.nav')
|
|
|
|
<section class="content no-print mt-page mt-daily-report-page">
|
|
<div class="mt-page-header">
|
|
<h1><i class="fas fa-clipboard-check" style="color:#2563eb;margin-left:8px;"></i> @lang('managementtools::lang.daily_report')</h1>
|
|
<div style="font-size:13px;color:#64748b;">
|
|
{{ $mtUtil->formatDate($selected_day) }}
|
|
@if($is_past)
|
|
<span class="label label-default"><i class="fa fa-lock"></i> @lang('managementtools::lang.read_only')</span>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mt-card">
|
|
<div class="mt-card-body" style="padding-top:0;">
|
|
<ul class="list-inline text-center mt-dr-day-picker" style="margin:12px 0 0;padding:0 12px;">
|
|
@foreach($days as $day)
|
|
<li class="list-inline-item" style="margin-bottom:6px;">
|
|
<a href="{{ action([\Modules\ManagementTools\Http\Controllers\DailyReportController::class, 'index'], ['day' => $day]) }}"
|
|
class="btn btn-sm {{ $selected_day == $day ? 'btn-info' : (\Carbon\Carbon::parse($day)->lt(\Carbon\Carbon::today()) ? 'btn-default' : 'btn-success') }}">
|
|
{{ $mtUtil->formatDate($day) }}
|
|
@if(in_array($day, $submitted_days, true))
|
|
<i class="fa fa-check" style="margin-right:4px;"></i>
|
|
@endif
|
|
</a>
|
|
</li>
|
|
@endforeach
|
|
</ul>
|
|
|
|
<ul class="nav nav-tabs mt-dr-tabs" role="tablist">
|
|
<li role="presentation" class="active">
|
|
<a href="#mt-dr-tab-overall" role="tab" data-toggle="tab">@lang('managementtools::lang.overall_report')</a>
|
|
</li>
|
|
<li role="presentation">
|
|
<a href="#mt-dr-tab-my-tasks" role="tab" data-toggle="tab">@lang('managementtools::lang.my_assigned_tasks')</a>
|
|
</li>
|
|
<li role="presentation">
|
|
<a href="#mt-dr-tab-today" role="tab" data-toggle="tab">@lang('managementtools::lang.today_tasks')</a>
|
|
</li>
|
|
<li role="presentation">
|
|
<a href="#mt-dr-tab-submit-task" role="tab" data-toggle="tab">@lang('managementtools::lang.submit_own_task')</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<div class="tab-content mt-dr-tab-content">
|
|
<div role="tabpanel" class="tab-pane fade in active" id="mt-dr-tab-overall">
|
|
@include('managementtools::daily_reports.partials.tabs.slot_report')
|
|
</div>
|
|
<div role="tabpanel" class="tab-pane fade" id="mt-dr-tab-my-tasks">
|
|
@include('managementtools::daily_reports.partials.tabs.my_tasks')
|
|
</div>
|
|
<div role="tabpanel" class="tab-pane fade" id="mt-dr-tab-today">
|
|
@include('managementtools::daily_reports.partials.tabs.today_tasks')
|
|
</div>
|
|
<div role="tabpanel" class="tab-pane fade" id="mt-dr-tab-submit-task">
|
|
@if($is_editable)
|
|
@include('managementtools::daily_reports.partials.tabs.submit_task')
|
|
@else
|
|
<div class="alert alert-info">@lang('managementtools::lang.past_day_locked_hint')</div>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="modal fade mt_comment_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() {
|
|
function submitSlots(finalize) {
|
|
var data = $('#mt_slot_report_form').serializeArray();
|
|
data.push({ name: 'finalize', value: finalize ? 1 : 0 });
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: '{{ action([\Modules\ManagementTools\Http\Controllers\DailyReportController::class, "store"]) }}',
|
|
dataType: 'json',
|
|
data: $.param(data),
|
|
success: function(r) {
|
|
if (r.success) {
|
|
toastr.success(r.msg);
|
|
if (r.submitted) setTimeout(function() { window.location.reload(); }, 800);
|
|
} else {
|
|
toastr.error(r.msg);
|
|
}
|
|
},
|
|
error: function(xhr) {
|
|
var msg = (xhr.responseJSON && xhr.responseJSON.msg) ? xhr.responseJSON.msg : LANG.something_went_wrong;
|
|
toastr.error(msg);
|
|
}
|
|
});
|
|
}
|
|
|
|
@if($is_editable)
|
|
$('#mt_submit_all_slots').on('click', function() {
|
|
swal({
|
|
title: '@lang("managementtools::lang.confirm_submit_report")',
|
|
text: '@lang("managementtools::lang.confirm_submit_report_hint")',
|
|
icon: 'info',
|
|
buttons: ['@lang("managementtools::lang.cancel")', '@lang("managementtools::lang.yes")']
|
|
}).then(function(ok) { if (ok) submitSlots(true); });
|
|
});
|
|
|
|
$(document).on('click', '.mt-save-slot-row', function() {
|
|
submitSlots(false);
|
|
});
|
|
@endif
|
|
|
|
$(document).on('click', '.mt-copy-slot-row', function() {
|
|
var row = parseInt($(this).data('row'), 10);
|
|
$('#description' + (row + 1)).val($('#description' + row).val());
|
|
$('#task' + (row + 1)).val($('#task' + row).val());
|
|
$('#user_status' + (row + 1)).val($('#user_status' + row).val());
|
|
});
|
|
|
|
$(document).on('submit', 'form#mt_comment_form', function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: form.attr('action'),
|
|
dataType: 'json',
|
|
data: form.serialize(),
|
|
success: function(r) {
|
|
if (r.success) {
|
|
toastr.success(r.msg);
|
|
$('.mt_comment_modal').modal('hide');
|
|
setTimeout(function() { window.location.reload(); }, 600);
|
|
} else {
|
|
toastr.error(r.msg);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
</script>
|
|
<style>
|
|
.mt-daily-report-page .mt-dr-tabs { margin-bottom:0; border-bottom:1px solid #e5e7eb; }
|
|
.mt-daily-report-page .mt-dr-tabs > li > a { font-weight:600; border-radius:8px 8px 0 0; }
|
|
.mt-daily-report-page .mt-dr-tab-content { padding-top:16px; }
|
|
.mt-daily-report-page .mt-dr-slot-table td,
|
|
.mt-daily-report-page .mt-dr-slot-table th { vertical-align:middle !important; font-size:13px; }
|
|
.mt-daily-report-page .thead-dark th { background:#1f2937; color:#fff; border-color:#374151; }
|
|
</style>
|
|
@endsection
|