239 lines
12 KiB
Plaintext
239 lines
12 KiB
Plaintext
@page "{id:long}"
|
|
@model ServiceHost.Areas.AdminNew.Pages.BugReport.DetailsModel
|
|
|
|
@{
|
|
ViewData["Title"] = "جزئیات گزارش خرابی";
|
|
}
|
|
|
|
@if (Model.BugReportDetails == null)
|
|
{
|
|
<div class="alert alert-danger">
|
|
گزارش خرابی یافت نشد
|
|
</div>
|
|
<a asp-page="./Index" class="btn btn-secondary">بازگشت</a>
|
|
}
|
|
else
|
|
{
|
|
<div class="container-fluid mt-4">
|
|
<a asp-page="./Index" class="btn btn-secondary mb-3">بازگشت</a>
|
|
|
|
<div class="row">
|
|
<!-- معلومات اصلی -->
|
|
<div class="col-md-8">
|
|
<div class="card mb-4">
|
|
<div class="card-header bg-primary text-white">
|
|
<h5 class="mb-0">@Model.BugReportDetails.Title</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<dl class="row">
|
|
<dt class="col-sm-3">کاربر:</dt>
|
|
<dd class="col-sm-9">@Model.BugReportDetails.UserEmail</dd>
|
|
|
|
<dt class="col-sm-3">نوع:</dt>
|
|
<dd class="col-sm-9">
|
|
<span class="badge bg-info">@Model.BugReportDetails.Type</span>
|
|
</dd>
|
|
|
|
<dt class="col-sm-3">اولویت:</dt>
|
|
<dd class="col-sm-9">
|
|
@switch (Model.BugReportDetails.Priority)
|
|
{
|
|
case CameraBugPriority.Critical:
|
|
<span class="badge bg-danger">بحرانی</span>
|
|
break;
|
|
case CameraBugPriority.High:
|
|
<span class="badge bg-warning">بالا</span>
|
|
break;
|
|
case CameraBugPriority.Medium:
|
|
<span class="badge bg-primary">متوسط</span>
|
|
break;
|
|
case CameraBugPriority.Low:
|
|
<span class="badge bg-success">پایین</span>
|
|
break;
|
|
}
|
|
</dd>
|
|
|
|
<dt class="col-sm-3">وضعیت:</dt>
|
|
<dd class="col-sm-9">
|
|
@switch (Model.BugReportDetails.Status)
|
|
{
|
|
case CameraBugReportStatus.Open:
|
|
<span class="badge bg-secondary">باز</span>
|
|
break;
|
|
case CameraBugReportStatus.InProgress:
|
|
<span class="badge bg-warning">در حال بررسی</span>
|
|
break;
|
|
case CameraBugReportStatus.Fixed:
|
|
<span class="badge bg-info">رفع شده</span>
|
|
break;
|
|
case CameraBugReportStatus.Closed:
|
|
<span class="badge bg-success">بسته شده</span>
|
|
break;
|
|
case CameraBugReportStatus.Reopened:
|
|
<span class="badge bg-danger">مجدداً باز</span>
|
|
break;
|
|
}
|
|
</dd>
|
|
|
|
<dt class="col-sm-3">تاریخ گزارش:</dt>
|
|
<dd class="col-sm-9">@Model.BugReportDetails.CreationDate.ToString("yyyy-MM-dd HH:mm:ss")</dd>
|
|
|
|
<dt class="col-sm-3">آخرین بهروزرسانی:</dt>
|
|
<dd class="col-sm-9">@(Model.BugReportDetails.UpdateDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "-")</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- توضیحات -->
|
|
<div class="card mb-4">
|
|
<div class="card-header bg-secondary text-white">
|
|
<h6 class="mb-0">توضیحات</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
<p>@Html.Raw(Model.BugReportDetails.Description.Replace(Environment.NewLine, "<br>"))</p>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Stack Trace -->
|
|
@if (!string.IsNullOrEmpty(Model.BugReportDetails.StackTrace))
|
|
{
|
|
<div class="card mb-4">
|
|
<div class="card-header bg-danger text-white">
|
|
<h6 class="mb-0">Stack Trace</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
<pre style="background-color: #f5f5f5; padding: 10px; border-radius: 4px; overflow-x: auto;">@Model.BugReportDetails.StackTrace</pre>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
<!-- لاگها -->
|
|
@if (Model.BugReportDetails.Logs != null && Model.BugReportDetails.Logs.Count > 0)
|
|
{
|
|
<div class="card mb-4">
|
|
<div class="card-header bg-warning">
|
|
<h6 class="mb-0">لاگها (@Model.BugReportDetails.Logs.Count)</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
<ul class="list-unstyled">
|
|
@foreach (var log in Model.BugReportDetails.Logs)
|
|
{
|
|
<li style="padding: 5px 0; border-bottom: 1px solid #eee;">
|
|
<small>@log</small>
|
|
</li>
|
|
}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
<!-- عکسها -->
|
|
@if (Model.BugReportDetails.Screenshots != null && Model.BugReportDetails.Screenshots.Count > 0)
|
|
{
|
|
<div class="card mb-4">
|
|
<div class="card-header bg-info text-white">
|
|
<h6 class="mb-0">عکسهای ضمیمه شده (@Model.BugReportDetails.Screenshots.Count)</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
@foreach (var screenshot in Model.BugReportDetails.Screenshots)
|
|
{
|
|
<div class="col-md-6 mb-3">
|
|
<div class="card">
|
|
<img src="data:image/jpeg;base64,@screenshot.Base64Data" class="card-img-top" style="max-height: 300px; object-fit: cover;">
|
|
<div class="card-footer">
|
|
<small class="text-muted">@screenshot.FileName</small><br>
|
|
<small class="text-muted">@screenshot.UploadDate.ToString("yyyy-MM-dd HH:mm")</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
|
|
<!-- معلومات دستگاه -->
|
|
<div class="col-md-4">
|
|
<div class="card mb-4">
|
|
<div class="card-header bg-success text-white">
|
|
<h6 class="mb-0">معلومات دستگاه</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
<dl class="row" style="font-size: 0.9rem;">
|
|
<dt class="col-6">مدل:</dt>
|
|
<dd class="col-6">@Model.BugReportDetails.DeviceModel</dd>
|
|
|
|
<dt class="col-6">سیستمعامل:</dt>
|
|
<dd class="col-6">@Model.BugReportDetails.OsVersion</dd>
|
|
|
|
<dt class="col-6">پلتفرم:</dt>
|
|
<dd class="col-6">@Model.BugReportDetails.Platform</dd>
|
|
|
|
<dt class="col-6">سازنده:</dt>
|
|
<dd class="col-6">@Model.BugReportDetails.Manufacturer</dd>
|
|
|
|
<dt class="col-6">شناسه دستگاه:</dt>
|
|
<dd class="col-6"><small>@Model.BugReportDetails.DeviceId</small></dd>
|
|
|
|
<dt class="col-6">وضوح صفحه:</dt>
|
|
<dd class="col-6">@Model.BugReportDetails.ScreenResolution</dd>
|
|
|
|
<dt class="col-6">حافظه:</dt>
|
|
<dd class="col-6">@Model.BugReportDetails.MemoryInMB MB</dd>
|
|
|
|
<dt class="col-6">ذخیرهسازی:</dt>
|
|
<dd class="col-6">@Model.BugReportDetails.StorageInMB MB</dd>
|
|
|
|
<dt class="col-6">باتری:</dt>
|
|
<dd class="col-6">@Model.BugReportDetails.BatteryLevel %</dd>
|
|
|
|
<dt class="col-6">شارژ گیر:</dt>
|
|
<dd class="col-6">@(Model.BugReportDetails.IsCharging ? "بله" : "خیر")</dd>
|
|
|
|
<dt class="col-6">شبکه:</dt>
|
|
<dd class="col-6">@Model.BugReportDetails.NetworkType</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- معلومات برنامه -->
|
|
<div class="card">
|
|
<div class="card-header bg-dark text-white">
|
|
<h6 class="mb-0">معلومات برنامه</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
<dl class="row" style="font-size: 0.9rem;">
|
|
<dt class="col-6">نسخه:</dt>
|
|
<dd class="col-6">@Model.BugReportDetails.AppVersion</dd>
|
|
|
|
<dt class="col-6">بیلد:</dt>
|
|
<dd class="col-6">@Model.BugReportDetails.BuildNumber</dd>
|
|
|
|
<dt class="col-6">پکیج:</dt>
|
|
<dd class="col-6"><small>@Model.BugReportDetails.PackageName</small></dd>
|
|
|
|
<dt class="col-6">نسخه (Flavor):</dt>
|
|
<dd class="col-6">@Model.BugReportDetails.Flavor</dd>
|
|
|
|
<dt class="col-6">نصب:</dt>
|
|
<dd class="col-6"><small>@Model.BugReportDetails.InstallTime.ToString("yyyy-MM-dd")</small></dd>
|
|
|
|
<dt class="col-6">آپدیت:</dt>
|
|
<dd class="col-6"><small>@Model.BugReportDetails.LastUpdateTime.ToString("yyyy-MM-dd")</small></dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- عملیات -->
|
|
<div class="mt-3">
|
|
<a asp-page="./Edit" asp-route-id="@Model.BugReportDetails.Id" class="btn btn-warning w-100">ویرایش وضعیت و اولویت</a>
|
|
<a asp-page="./Delete" asp-route-id="@Model.BugReportDetails.Id" class="btn btn-danger w-100 mt-2" onclick="return confirm('آیا مطمئن هستید؟');">حذف</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
|