<!DOCTYPE html>
<html lang="{{app()->getLocale()}}">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
	<meta name="robots" content="noindex, nofollow">
	<title>系统运行日志</title>
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
	<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.16/css/dataTables.bootstrap4.min.css">
	<style type="text/css">
		body {
			padding: 25px;
		}

		h1 {
			font-size: 1.5em;
			margin-top: 0;
		}

		#table-log {
			font-size: 0.85rem;
		}

		.sidebar {
			font-size: 0.85rem;
			line-height: 1;
		}

		.btn {
			font-size: 0.7rem;
		}

		.stack {
			font-size: 0.85em;
		}

		.date {
			min-width: 75px;
		}

		.text {
			word-break: break-all;
		}

		a.llv-active {
			z-index: 2;
			background-color: #f5f5f5;
			border-color: #777;
		}

		.list-group-item {
			word-wrap: break-word;
		}

		.folder {
			padding-top: 15px;
		}

		.div-scroll {
			height: 80vh;
			overflow: hidden auto;
		}

		.nowrap {
			white-space: nowrap;
		}

	</style>
</head>
<body>
<div class="container-fluid">
	<div class="row">
		<div class="col sidebar mb-3">
			<h1><i class="fa fa-calendar" aria-hidden="true"></i> 系统运行日志 </h1>
			<div class="list-group div-scroll">
				@foreach($folders as $folder)
					<div class="list-group-item">
						<a href="?f={{ \Illuminate\Support\Facades\Crypt::encrypt($folder) }}">
							<span class="fa fa-folder"></span> {{$folder}}
						</a>
						@if ($current_folder == $folder)
							<div class="list-group folder">
								@foreach($folder_files as $file)
									<a href="?l={{ \Illuminate\Support\Facades\Crypt::encrypt($file) }}&f={{ \Illuminate\Support\Facades\Crypt::encrypt($folder) }}"
											class="list-group-item @if ($current_file == $file) llv-active @endif">
										{{$file}}
									</a>
								@endforeach
							</div>
						@endif
					</div>
				@endforeach
				@foreach($files as $file)
					<a href="?l={{ \Illuminate\Support\Facades\Crypt::encrypt($file) }}"
							class="list-group-item @if ($current_file == $file) llv-active @endif">
						{{$file}}
					</a>
				@endforeach
			</div>
		</div>
		<div class="col-10 table-container">
			@if ($logs === NULL)
				<div>
					Log file >50M, please download it.
				</div>
			@else
				<table id="table-log" class="table table-striped" data-ordering-index="{{ $standardFormat ? 2 : 0 }}">
					<thead>
					<tr>
						@if ($standardFormat)
							<th>Level</th>
							<th>Context</th>
							<th>Date</th>
						@else
							<th>Line number</th>
						@endif
						<th>Content</th>
					</tr>
					</thead>
					<tbody>

					@foreach($logs as $key => $log)
						<tr data-display="stack{{{$key}}}">
							@if ($standardFormat)
								<td class="nowrap text-{{{$log['level_class']}}}">
									<span class="fa fa-{{{$log['level_img']}}}"
											aria-hidden="true"></span>&nbsp;&nbsp;{{$log['level']}}
								</td>
								<td class="text">{{$log['context']}}</td>
							@endif
							<td class="date">{{{$log['date']}}}</td>
							<td class="text">
								@if ($log['stack'])
									<button type="button"
											class="float-right expand btn btn-outline-dark btn-sm mb-2 ml-2"
											data-display="stack{{{$key}}}">
										<span class="fa fa-search"></span>
									</button>
								@endif
								{{{$log['text']}}}
								@if (isset($log['in_file']))
									<br/>{{{$log['in_file']}}}
								@endif
								@if ($log['stack'])
									<div class="stack" id="stack{{{$key}}}"
											style="display: none; white-space: pre-wrap;">{{{ trim($log['stack']) }}}
									</div>
								@endif
							</td>
						</tr>
					@endforeach

					</tbody>
				</table>
			@endif
			<div class="p-3">
				@if($current_file)
					<a href="?dl={{ \Illuminate\Support\Facades\Crypt::encrypt($current_file) }}{{ ($current_folder) ? '&f=' . \Illuminate\Support\Facades\Crypt::encrypt($current_folder) : '' }}">
						<span class="fa fa-download"></span> 下 载
					</a>
					-
					<a id="clean-log"
							href="?clean={{ \Illuminate\Support\Facades\Crypt::encrypt($current_file) }}{{ ($current_folder) ? '&f=' . \Illuminate\Support\Facades\Crypt::encrypt($current_folder) : '' }}">
						<span class="fa fa-sync"></span> 清 空
					</a>
					-
					<a id="delete-log"
							href="?del={{ \Illuminate\Support\Facades\Crypt::encrypt($current_file) }}{{ ($current_folder) ? '&f=' . \Illuminate\Support\Facades\Crypt::encrypt($current_folder) : '' }}">
						<span class="fa fa-trash"></span> 删 除
					</a>
					@if(count($files) > 1)
					-
						<a id="delete-all-log"
								href="?delall=true{{ ($current_folder) ? '&f=' . \Illuminate\Support\Facades\Crypt::encrypt($current_folder) : '' }}">
							<span class="fa fa-trash-alt"></span> 删除全部
						</a>
					@endif
				@endif
			</div>
		</div>
	</div>
</div>
<!-- jQuery for Bootstrap -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<!-- FontAwesome -->
<script defer src="https://use.fontawesome.com/releases/v5.0.6/js/all.js"></script>
<!-- Datatables -->
<script type="text/javascript" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.16/js/dataTables.bootstrap4.min.js"></script>
<script type="text/javascript">
	$(document).ready(function () {
		$('.table-container tr').on('click', function () {
			$('#' + $(this).data('display')).toggle();
		});
		$('#table-log').DataTable({
			"order": [$('#table-log').data('orderingIndex'), 'desc'],
			"stateSave": true,
			"stateSaveCallback": function (settings, data) {
				window.localStorage.setItem("datatable", JSON.stringify(data));
			},
			"stateLoadCallback": function (settings) {
				var data = JSON.parse(window.localStorage.getItem("datatable"));
				if (data) data.start = 0;
				return data;
			},
			"language": {
				"lengthMenu": "每页 _MENU_ 条",
				"paginate": {
					"previous": "上一页",
					"next": "下一页"
				},
				"search": "搜索",
				"info": "第 _PAGE_ 页，共 _PAGES_ 页"
			}
		});
		$('#delete-log, #clean-log, #delete-all-log').click(function () {
			return confirm('确定继续吗？');
		});
	});
</script>
</body>
</html>
