Files
Backend-Api/ServiceHost/Areas/AdminNew/Pages/Company/Task/DetailsScheduleModal.cshtml
2025-05-19 20:32:15 +03:30

297 lines
9.3 KiB
Plaintext

@model AccountManagement.Application.Contracts.TaskSchedule.TaskScheduleDetailsViewModel
@using System.Security.Claims
@using AccountManagement.Application.Contracts.Media
@using AccountManagement.Application.Contracts.Task
@{
string adminVersion = _0_Framework.Application.Version.AdminVersion;
MediaViewModel voice = null;
string svgName = "unknow";
string[] fileExtensions = new string[]
{
".ai", ".avi", ".bmp", ".crd", ".csv", ".dll", ".doc", ".docx", ".dwg",
".eps", ".exe", ".flv", ".giff", ".html", ".iso", ".java", ".jpg", ".mdb",
".mid", ".mov", ".mp3", ".mp4", ".mpeg", ".pdf", ".png", ".ppt", ".ps",
".psd", ".pub", ".rar", ".raw", ".rss", ".svg", ".tiff", ".txt", ".wav",
".wma", ".xml", ".xsl", ".zip"
};
int i = 1;
<script src="~/AssetsClient/js/jquery-ui.js"></script>
<link href="~/assetsadminnew/tasks/css/task-manager-create.css?ver=@adminVersion" rel="stylesheet" />
<link href="~/AssetsClient/css/select2.css?ver=@adminVersion" rel="stylesheet" />
<link href="~/assetsadminnew/tasks/css/detailmodal.css?ver=@adminVersion" rel="stylesheet" />
<link href="~/assetsadminnew/libs/sweetalert2/sweetalert2.min.css" rel="stylesheet" />
<style>
.modal .modal-content {
height: 660px;
}
.modal-xl-taskTime {
max-width: 720px;
}
.title-sub {
font-size: 14px;
color: #838383;
}
.detailSheduleSection {
border: 1px solid #E1E1E1;
border-radius: 6px;
padding: 6px;
display: flex;
align-items: center;
justify-content: space-between;
}
@@media(max-width:992px) {
.title-sub {
font-size: 12px;
font-weight: 600;
}
}
@@media(max-width:768px) {
.title-sub {
font-size: 10px;
font-weight: 700;
}
}
</style>
}
<div class="modal-content">
<div class="modal-header d-block header-custom-color">
<button type="button" class="btn-close position-absolute text-start" data-bs-dismiss="modal" aria-label="Close"></button>
<div class="text-center">جزئیات تسک دوره‌ای</div>
</div>
<div class="modal-body p-0">
<div class="container-fluid">
<div class="row px-3">
<div class="detailSheduleSection mt-3">
<div class="text-start">
<div class="title-sub" style="color: #838383">
ارجاع دهنده:
<span class="text-black">@Model.SenderName</span>
</div>
<div class="title-sub">
ارجاع گیرنده:
<span class="text-black">@Model.AssignedName?.First()</span>
</div>
</div>
<div class="text-end">
<div class="title-sub">
تاریخ ایجاد:
<span class="text-black">@Model.CreationDateFa</span>
</div>
<div class="title-sub">
تاریخ سررسید:
<span class="text-black">@Model.FirstEndTaskDate</span>
</div>
</div>
</div>
<div class="detailSheduleSection mt-2">
<div class="text-start">
<div class="title-sub">
طرف حساب:
<span class="text-black">@Model.ContractingPartyName</span>
</div>
<div class="title-sub">
عنوان وظیفه:
<span class="text-black">@Model.Title</span>
</div>
</div>
<div class="text-end">
</div>
</div>
<div class="d-flex justify-content-between align-items-center gap-2 p-0">
<div class="detailSheduleSection mt-2 justify-content-center w-100">
<div class="title-sub">
تعداد یادآوری:
<span class="text-black">
@(Model.TaskScheduleType == TaskScheduleType.Limited ? "محدود" : "نامحدود")
</span>
</div>
</div>
<div class="detailSheduleSection mt-2 justify-content-center w-100">
<div class="title-sub">
دوره بازه:
<span class="text-black">
@{
var unitTypeText = Model.TaskScheduleUnitType switch
{
TaskScheduleUnitType.Day => "روزه",
TaskScheduleUnitType.Week => "هفته",
TaskScheduleUnitType.Month => "ماهه",
TaskScheduleUnitType.Year => "سال",
_ => "نامشخص"
};
}
@if (Model.UnitNumber == "first")
{
@("اول هفته")
}
else if (Model.UnitNumber == "last")
{
@("آخر هفته")
}
else
{
@Model.UnitNumber
@unitTypeText
}
</span>
</div>
</div>
</div>
</div>
<div class="row">
<hr class="mt-4"/>
<div class="col-12 mt-2">
<div class="title-sub">
توضیحات:
</div>
<div>
@if (!String.IsNullOrWhiteSpace(Model.Description))
{
<div class="taskDesc">
<div class="taskDescText" id="taskDescText">
@Html.Raw(Model.Description)
</div>
</div>
}
@if (Model.Medias.Count > 0)
{
@foreach (var item in Model.Medias)
{
if (item.Category == "صوت")
{
voice = item;
<div class="audio-player">
<div id="waveform" class="waveform"></div>
<button id="play-pause" class="player-btn play"></button>
</div>
}
}
}
@if (Model.Medias.Count > 0)
{
<div class="d-flex align-items-center justify-content-end mt-2">
@foreach (var item in Model.Medias)
{
if (item.Category == "فایل")
{
string fileName = System.IO.Path.GetFileName(item.Path);
string extension = System.IO.Path.GetExtension(fileName);
string nameWithoutExtension = fileName.Substring(0, fileName.LastIndexOf("."));
int maxLength = 20 - extension.Length;
int sliceLength = Math.Max((maxLength - 3) / 2, 0);
string start = nameWithoutExtension.Substring(0, Math.Min(sliceLength, nameWithoutExtension.Length));
string end = nameWithoutExtension.Substring(Math.Max(nameWithoutExtension.Length - sliceLength, 0));
var inBox = "inBox" + i;
@if (item.Path.EndsWith(".jpg") || item.Path.EndsWith(".jpeg") || item.Path.EndsWith(".png") || item.Path.EndsWith(".gif") || item.Path.EndsWith(".webp"))
{
<div class="upload-box empty inBox@(i)">
<section class="gallery">
<section class="container">
<div class="row p-0">
<div class="lightbox_img_wrap">
<img class="lightbox-enabled min-img" src="@Url.Page("./Index", "ShowPicture", new { filePath = item.Path })" data-imgsrc="@Url.Page("./Index", "ShowPicture", new { filePath = item.Path })"/>
</div>
</div>
</section>
</section>
<section class="lightbox-container">
<span class="material-symbols-outlined material-icons lightbox-btn left" id="left">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6">
<path stroke-linecap="round" stroke-linejoin="round" d="M15.75 19.5 8.25 12l7.5-7.5"/>
</svg>
</span>
<span class="material-symbols-outlined material-icons lightbox-btn right" id="right">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5"/>
</svg>
</span>
<span id="close" class="close material-icons material-symbols-outlined">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12"/>
</svg>
</span>
<div class="lightbox-image-wrapper">
<img alt="lightboximage" class="lightbox-image">
</div>
</section>
</div>
}
else
{
if (fileExtensions.Contains(extension))
{
svgName = extension.TrimStart('.').ToLower();
<a href="@Url.Page("./Index", "GetFile", new { filePath = item.Path, id = 1 })"><img class="uploaded-file" src="/common/filesvg/@(svgName).svg"/></a>
}
else
{
<a href="@Url.Page("./Index", "GetFile", new { filePath = item.Path, id = 1 })"><img class="uploaded-file" src="/common/filesvg/unknow.svg"/></a>
}
}
i++;
}
}
</div>
}
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer justify-content-center align-items-center p-2">
<div class="row w-100">
<div class="col-12 text-end">
<button type="button" class="btn-cancel2 d-flex align-items-center justify-content-center w-100" data-bs-dismiss="modal">انصراف</button>
</div>
</div>
</div>
</div>
<script src="~/assetsclient/libs/jalaali-js/jalaali.js"></script>
<script src="~/assetsclient/js/site.js"></script>
<script src="~/admintheme/js/jquery.mask_1.14.16.min.js"></script>
<script src="~/AssetsAdminNew/libs/wavesurfer/wavesurfer.min.js"></script>
<script src="~/assetsadminnew/libs/sweetalert2/sweetalert2.all.min.js"></script>
<script>
var voiceSrc = '@(voice == null ? "" : @Url.Page("./Index", "ShowVoice", new { filePath = voice?.Path }))';
</script>
<script src="~/assetsadminnew/tasks/js/detailsschedulemodal.js?ver=@adminVersion"></script>