Files
Backend-Api/ServiceHost/Areas/AdminNew/Pages/Company/Task/Index.cshtml

427 lines
22 KiB
Plaintext

@page
@model ServiceHost.Areas.AdminNew.Pages.Company.Task.IndexModel
@inject _0_Framework.Application.IAuthHelper AuthHelper;
@using _0_Framework.Application
@{
string adminVersion = _0_Framework.Application.Version.AdminVersion;
var index = 1;
}
@section Styles {
<link href="~/AssetsClient/css/table-style.css?ver=@adminVersion" rel="stylesheet" />
<link href="~/AssetsClient/css/table-responsive.css?ver=@adminVersion" rel="stylesheet" />
<link href="~/assetsclient/css/table-grid.css?ver=@adminVersion" rel="stylesheet" />
<link href="~/assetsclient/css/operation-button.css?ver=@adminVersion" rel="stylesheet" />
<link href="~/assetsadminnew/tasks/css/task-manager-list.css?ver=?ver=@adminVersion" rel="stylesheet" />
<link href="~/AssetsClient/css/select2.css?ver=@adminVersion" rel="stylesheet" />
<link href="~/AssetsClient/css/datetimepicker.css?ver=@adminVersion" rel="stylesheet" />
<link href="~/AssetsClient/css/dropdown.css?ver=@adminVersion" rel="stylesheet" />
<link href="~/AssetsClient/css/filter-search.css?ver=@adminVersion" rel="stylesheet" />
<!-- sweet alerts -->
@* <link href="~/AdminTheme/assets/sweet-alert/sweet-alert.min.css" rel="stylesheet"> *@
<link href="~/assetsadminnew/libs/sweetalert2/sweetalert2.min.css" rel="stylesheet" />
<link href="~/assetsadminnew/tasks/css/index.css" rel="stylesheet" />
}
<div class="row pb-2">
<div class="col p-0 m-0 d-flex align-items-center justify-content-between">
<div class="col d-flex">
<img src="~/AssetsClient/images/rollcall-history.png" alt="" class="img-fluid me-2" style="width: 45px;object-fit: cover;" />
<div>
<h4 class="title d-flex align-items-center">مدیریت وظایف</h4>
<div class="title d-flex align-items-center">کارگاه نورداد مهر گستر کاسپین</div>
</div>
</div>
<div>
<a asp-area="Admin" asp-page="/Index" class="back-btn" type="button">
<span>بازگشت</span>
</a>
</div>
</div>
</div>
<button class="btn btn-rounded mb-5 goToTop"> <i class="fa fa-chevron-up" style="font-size: 20px"></i> برو بالا</button>
<input type="hidden" asp-for="SearchModel.PageIndex" id="pageIndex" value="@Model.SearchModel.PageIndex" />
<!-- List Items -->
<div class="row">
<div class="col-12 mb-2">
<div class="d-flex w-100 section-btns-task justify-content-between">
@if (Model.UserPositionValue == 1)
{
<div class="d-flex">
<button type="button" class="btnTaskFilter btnTaskListSelfTask me-1 active" id="btnTaskListSelfTask" onclick="loadMore('selfTask');">وظایف شخصی</button>
<button type="button" class="btnTaskFilter btnTaskListSent me-1" id="btnTaskListSent" onclick="loadMore('sent');">وظایف ارسالی</button>
@* <button type="button" class="btnTaskTicket me-1 d-flex align-items-center" id="btnTaskTicket" onclick="loadMore('ticket');">لیست پشتیبانی‌ها</button> *@
<button type="button" class="btnTaskFilter btnTaskRequest me-1 d-flex align-items-center" id="btnTaskRequest" permission="9012">
لیست درخواست‌ها
<span class="badge bg-danger rounded-pill me-1" id="badgeRequestCount1"></span>
</button>
<button type="button" class="btnTaskFilter btnTicketList me-1" id="btnTicketList">لیست تیکت
<span class="badge bg-danger rounded-pill me-1 " id="badgeTicketCount1"></span>
</button>
<button type="button" class="btnTaskFilter btnTicketRequestList me-1" id="btnTicketRequestList">لیست درخواست های تیکت
<span class="badge bg-danger rounded-pill me-1 " id="badgeTicketRequesttCount1"></span>
</button>
</div>
<div class="d-flex">
<button type="button" class="btnTaskFilter btnTaskListAllTask me-1" id="btnTaskListAllTask" onclick="loadMore('AllTask');">کل وظایف</button>
<button type="button" class="btnTaskFilter btnTaskRequestAll me-1 d-flex align-items-center" id="btnAllTaskRequest" >لیست تمامی درخواست‌ها</button>
</div>
}
else
{
<div class="d-flex justify-content-start gap-2">
<button type="button" class="btnTaskFilter btnTaskListReceived me-1 active" id="btnTaskListReceived" onclick="loadMore('received');">وظایف دریافتی</button>
<button type="button" class="btnTaskFilter btnTaskListSent me-1" id="btnTaskListSent" onclick="loadMore('sent');">وظایف ارسالی</button>
@* <button type="button" class="btnTaskTicket me-1 d-flex align-items-center" id="btnTaskTicket" onclick="loadMore('ticket');">لیست پشتیبانی‌ها</button> *@
<button type="button" class="btnTaskFilter btnTaskRequest me-1 d-flex align-items-center" id="btnTaskRequest" permission="9012">
لیست درخواست‌ها
<span class="badge bg-danger rounded-pill me-1 " id="badgeRequestCount2"></span>
</button>
<button type="button" class="btnTaskFilter btnTicketList me-1" id="btnTicketList">لیست تیکت
<span class="badge bg-danger rounded-pill me-1 " id="badgeTicketCount2"></span>
</button>
<button type="button" class="btnTaskFilter btnTicketRequestList me-1" id="btnTicketRequestList">لیست درخواست های تیکت
<span class="badge bg-danger rounded-pill me-1 " id="badgeTicketRequesttCount2"></span>
</button>
</div>
}
</div>
</div>
<div class="col-12 p-0 mb-2 d-none d-md-block">
<div class="search-box card border-0">
<div class="d-grid search-section gap-2">
<div class="d-grid grid-cols-2 gap-2 col-span-2">
<div class=""><input type="text" class="form-control date start-date" asp-for="SearchModel.StartDate" id="StartDate" placeholder="تاریخ شروع"></div>
<div class=""><input type="text" class="form-control date end-date" asp-for="SearchModel.EndDate" id="EndDate" placeholder="تاریخ پایان"></div>
</div>
<div class="col-span-2 md-col-span-3">
<select class="form-select select2Option" aria-label="انتخاب پرسنل ..." asp-for="SearchModel.AccountId" id="AccountId">
<option value="0">پرسنل را انتخاب کنید ...</option>
</select>
</div>
<div class="col-span-2 md-col-span-3">
<input type="text" class="form-control" asp-for="SearchModel.GeneralSearch" id="GeneralSearch" placeholder="جستجو ...">
</div>
<div class="d-grid grid-cols-1 gap-2 col-span-2">
@* <div class="wrapper-dropdown-normal btn-dropdown">
<span class="selected-display">دارای درخواست مهلت</span>
<svg id="drp-arrow" class="arrow transition-all ml-auto rotate-180" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<ul class="dropdown-normal dropdown-IsTimeRequest boxes">
<li class="item" value-data-normal="">دارای درخواست مهلت</li>
<li class="item" value-data-normal="true">بلی</li>
<li class="item" value-data-normal="false">خیر</li>
</ul>
</div> *@
<input type="hidden" id="IsTimeRequest" asp-for="SearchModel.IsTimeRequest" />
@* <div class="wrapper-dropdown-normal btn-dropdown">
<span class="selected-display">دارای درخواست کنسل</span>
<svg id="drp-arrow" class="arrow transition-all ml-auto rotate-180" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<ul class="dropdown-normal dropdown-IsCancelRequest boxes">
<li class="item" value-data-normal="">دارای درخواست کنسل</li>
<li class="item" value-data-normal="true">بلی</li>
<li class="item" value-data-normal="false">خیر</li>
</ul>
</div> *@
<input type="hidden" id="IsCancelRequest" asp-for="SearchModel.IsCancelRequest" />
@* <div class="wrapper-dropdown-normal btn-dropdown">
<span class="selected-display">کنسل شده</span>
<svg id="drp-arrow" class="arrow transition-all ml-auto rotate-180" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<ul class="dropdown-normal dropdown-IsCanceled boxes">
<li class="item" value-data-normal="">کنسل شده</li>
<li class="item" value-data-normal="true">بلی</li>
<li class="item" value-data-normal="false">خیر</li>
</ul>
</div> *@
<input type="hidden" id="IsCanceled" asp-for="SearchModel.IsCanceled" />
@* <div class="wrapper-dropdown-normal btn-dropdown">
<span class="selected-display">دارای مهلت</span>
<svg id="drp-arrow" class="arrow transition-all ml-auto rotate-180" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<ul class="dropdown-normal dropdown-TimeRequestAccepted boxes">
<li class="item" value-data-normal="">دارای مهلت</li>
<li class="item" value-data-normal="true">بلی</li>
<li class="item" value-data-normal="false">خیر</li>
</ul>
</div> *@
<input type="hidden" id="TimeRequestAccepted" asp-for="SearchModel.TimeRequestAccepted" />
@* <div class="wrapper-dropdown-normal btn-dropdown">
<span class="selected-display">دارای درخواست انجام</span>
<svg id="drp-arrow" class="arrow transition-all ml-auto rotate-180" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<ul class="dropdown-normal dropdown-IsDoneRequest boxes">
<li class="item" value-data-normal="">دارای درخواست انجام</li>
<li class="item" value-data-normal="true">بلی</li>
<li class="item" value-data-normal="false">خیر</li>
</ul>
</div> *@
<input type="hidden" id="IsDoneRequest" asp-for="SearchModel.IsDoneRequest" />
<div class="wrapper-dropdown-normal btn-dropdown">
<span class="selected-display">دارای انجام شده</span>
<svg id="drp-arrow" class="arrow transition-all ml-auto rotate-180" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<ul class="dropdown-normal dropdown-IsDone boxes">
<li class="item" value-data-normal="">دارای انجام شده</li>
<li class="item" value-data-normal="true">بلی</li>
<li class="item" value-data-normal="false">خیر</li>
</ul>
<input type="hidden" id="IsDone" asp-for="SearchModel.IsDone" />
</div>
</div>
<div class="d-flex gap-2 col-span-2">
<button class="btn-search btn-w-size btn-search-click text-nowrap d-flex align-items-center justify-content-center" id="searchBtn" type="button">
<span>جستجو</span>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<circle cx="11" cy="11" r="6" stroke="white" />
<path d="M20 20L17 17" stroke="white" stroke-linecap="round" />
</svg>
</button>
<a asp-page="/Company/Task/Index" class="btn-clear-filter btn-w-size text-nowrap d-flex align-items-center justify-content-center disable" id="filterRemove">
<span>حذف جستجو</span>
</a>
</div>
</div>
</div>
</div>
<div class="wrapper table-task-manager card p-2" id="divTaskList">
<!-- Advance Search Box -->
<div class="row d-flex align-items-center justify-content-between d-block d-md-none mb-2">
<div class="search-box bg-white">
<button class="btn-search w-100" type="button" data-bs-toggle="modal" data-bs-target="#searchModal">
<span>جستجو پیشرفته</span>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<circle cx="11" cy="11" r="6" stroke="white" />
<path d="M20 20L17 17" stroke="white" stroke-linecap="round" />
</svg>
</button>
</div>
</div>
<!-- End Advance Search Box -->
<div class="row align-items-center">
<div class="col-4 mb-2" permission="903">
@* <a asp-page="/Company/Task/Create" class="btn-register-index text-white d-block" type="button"> *@
<button class="btn-search" type="button" onclick="createTask()">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 25 25" fill="none">
<circle cx="12.5" cy="12.5" r="8.775" stroke="white" stroke-width="2" stroke-opacity="0.84"></circle>
<path d="M12.5 8.3335L12.5 16.6668" stroke="white" stroke-width="2" stroke-linecap="round"></path>
<path d="M16.6667 12.5L8.33342 12.5" stroke="white" stroke-width="2" stroke-linecap="round"></path>
</svg>
<span>وظیفه جدید</span>
</button>
</div>
<div class="mb-2 text-center @(AuthHelper.GetPermissions().Any(x => x == 903) ? "col-4" : "col-12")">
<span class="titleTaskList">وظایف دریافتی</span>
</div>
</div>
<div class="Rtable Rtable--collapse pt-0" id="tasksAjax" style="">
</div>
</div>
<div class="wrapper table-task-manager card p-2" id="divTaskRequest" style="display: none">
<!-- Advance Search Box -->
<div class="row d-flex align-items-center justify-content-between d-block d-md-none mb-2">
<div class="search-box bg-white">
<button class="btn-search w-100" type="button" data-bs-toggle="modal" data-bs-target="#searchModal">
<span>جستجو پیشرفته</span>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<circle cx="11" cy="11" r="6" stroke="white" />
<path d="M20 20L17 17" stroke="white" stroke-linecap="round" />
</svg>
</button>
</div>
</div>
<!-- End Advance Search Box -->
<div class="row align-items-center">
<div class="col-4 mb-2" permission="903">
@* <a asp-page="/Company/Task/Create" class="btn-register-index text-white d-block" type="button"> *@
<button class="btn-search" type="button" onclick="createTask()">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 25 25" fill="none">
<circle cx="12.5" cy="12.5" r="8.775" stroke="white" stroke-width="2" stroke-opacity="0.84"></circle>
<path d="M12.5 8.3335L12.5 16.6668" stroke="white" stroke-width="2" stroke-linecap="round"></path>
<path d="M16.6667 12.5L8.33342 12.5" stroke="white" stroke-width="2" stroke-linecap="round"></path>
</svg>
<span>وظیفه جدید</span>
</button>
</div>
<div class="mb-2 text-center @(AuthHelper.GetPermissions().Any(x => x == 903) ? "col-4" : "col-12")">
<span class="titleTaskList">لیست درخواست‌ها</span>
</div>
</div>
<div class="Rtable Rtable--collapse " id="taskRequestsAjax">
</div>
</div>
</div>
<!-- End List Items -->
<!-- مودال -->
<div class="modal fade assignTo" id="MainModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="assignToLabel" aria-hidden="true" style="display: none;">
<div class="modal-dialog modal-xl-taskTime modal-dialog-centered">
<div class="w-100" id="ModalContent">
</div>
</div>
</div>
<!-- Modal From Bottom For Advance Search -->
<div class="modal fade" id="searchModal" tabindex="-1" data-bs-backdrop="static" aria-labelledby="searchModalModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header d-block text-center pb-0">
<div class="iphone-line mx-auto mb-3"></div>
<h5 class="modal-title mb-4 text-start" id="searchModalLabel">جستجوی پیشرفته</h5>
</div>
<div class="modal-body pt-0 mb-3" style="overflow-y: inherit;">
<div class="container-fluid">
<div id="overlaySearchAdvance" class=""></div>
<div class="row">
<div class="col-12 mb-4">
<div class="mb-2">
<select class="form-select select2OptionMobile" aria-label="انتخاب پرسنل ..." asp-for="SearchModel.AccountId" id="AccountIdMobile">
<option value="0">پرسنل را انتخاب کنید ...</option>
</select>
</div>
<div class="mb-2">
<input type="text" class="form-control" asp-for="SearchModel.GeneralSearch" id="GeneralSearchMobile" placeholder="جستجو ...">
</div>
<div class="mb-2">
<span class="form-control text-center persianDateInputStartDate" id="start-date">تاریخ شروع</span>
<input type="hidden" class="form-control date start-date" asp-for="SearchModel.StartDate" placeholder="تاریخ شروع">
</div>
<div class="mb-2">
<span class="form-control text-center persianDateInputEndDate" id="end-date">تاریخ پایان</span>
<input type="hidden" class="form-control date end-date" asp-for="SearchModel.EndDate" placeholder="تاریخ پایان">
</div>
<div class="wrapper-dropdown-normal btn-dropdown mb-2">
<span class="selected-display">دارای انجام شده</span>
<svg id="drp-arrow" class="arrow transition-all ml-auto rotate-180" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<ul class="dropdown-normal dropdown-IsDone boxes">
<li class="item" value-data-normal="">دارای انجام شده</li>
<li class="item" value-data-normal="true">بلی</li>
<li class="item" value-data-normal="false">خیر</li>
</ul>
<input type="hidden" id="IsDone" asp-for="SearchModel.IsDone" />
</div>
</div>
<div class="col-12 text-start">
<div class="row">
<div class="col-12">
<a href="/AdminNew/Company/Task/Index" class="btn-clear-filter py-2 text-center d-block w-100 mt-2" id="filterRemoveMobile">
<span class="w-100">حذف جستجو</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer justify-content-center align-items-center">
<div class="container-fluid">
<div class="row">
<div class="col-6 text-end">
<button type="button" class="btn-cancel w-100" data-bs-dismiss="modal">بستن</button>
</div>
<div class="col-6 text-start">
<button type="submit" class="btn-search btn-search-click w-100" id="searchBtnMobile">جستجو</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- End Modal From Bottom For Advance Search -->
<!-- مودال -->
@section Script {
<script src="~/assetsclient/js/site.js?ver=@adminVersion"></script>
<script src="~/AssetsClient/js/dropdown.js?ver=@adminVersion"></script>
@* <script src="~/AdminTheme/assets/sweet-alert/sweet-alert.min.js"></script> *@
<script src="~/assetsadminnew/libs/sweetalert2/sweetalert2.all.min.js"></script>
<script>
var antiForgeryToken = $(`@Html.AntiForgeryToken()`).val();
// var loadMoreRequestAjax = $('@Url.Page("./Index", "RequestTicketTask")');
var loadMoreAjax = "@Url.Page("./Index", "TaskPagination")";
// var loadRequestCountAjax = "@Url.Page("./Index", "RequestCount")";
var removeAjax = "@Url.Page("./Index", "RemoveTask")";
var employeeListAjax = "@Url.Page("./Index", "EmployeeList")";
var AssignPermission = "@AuthHelper.GetPermissions().Any(x => x == 90110)";
var timeRequestPermission = "@AuthHelper.GetPermissions().Any(x => x == 90111)";
var EditPermission = "@AuthHelper.GetPermissions().Any(x => x == 90114)";
var DeletePermission = "@AuthHelper.GetPermissions().Any(x => x == 90115)";
var CheckRequestPermission = "@AuthHelper.GetPermissions().Any(x => x == 90120)";
var userPositionValue = @Model.UserPositionValue;
var LastPositionValue = @Model.LastPositionValue;
var itemsYearList = @Html.Raw(Json.Serialize(Model.YearlyList.OrderBy(x => x)));
var HasTicketAccessUrl = "@Url.Page("./Index", "HasTicketAccess")";
var loadTicketCountAjax = "@Url.Page("./Index", "RequestCount")";
</script>
<script src="~/assetsadminnew/tasks/js/index.js?ver=@adminVersion"></script>
}