112 lines
5.8 KiB
Plaintext
112 lines
5.8 KiB
Plaintext
@using CarCareTracker.Helper
|
|
@inject IConfigHelper config
|
|
@inject ITranslationHelper translator
|
|
@{
|
|
var userConfig = config.GetUserConfig(User);
|
|
var enableCsvImports = userConfig.EnableCsvImports;
|
|
var hideZero = userConfig.HideZero;
|
|
var userLanguage = userConfig.UserLanguage;
|
|
var backLogItems = Model.Where(x => x.Progress == PlanProgress.Backlog).OrderBy(x=>x.Priority);
|
|
var inProgressItems = Model.Where(x => x.Progress == PlanProgress.InProgress).OrderBy(x => x.Priority);
|
|
var testingItems = Model.Where(x => x.Progress == PlanProgress.Testing).OrderBy(x => x.Priority);
|
|
var doneItems = Model.Where(x => x.Progress == PlanProgress.Done).OrderBy(x => x.Priority);
|
|
}
|
|
@model List<PlanRecord>
|
|
<div class="row">
|
|
<div class="d-flex justify-content-between">
|
|
<div class="d-flex align-items-center flex-wrap">
|
|
<span class="ms-2 badge bg-success">@($"{translator.Translate(userLanguage,"# of Plan Records")}: {Model.Count()}")</span>
|
|
</div>
|
|
<div>
|
|
@if (enableCsvImports)
|
|
{
|
|
<div class="btn-group">
|
|
<button onclick="showAddPlanRecordModal()" class="btn btn-primary btn-md mt-1 mb-1"><i class="bi bi-pencil-square me-2"></i>@translator.Translate(userLanguage,"Add Plan Record")</button>
|
|
<button type="button" class="btn btn-md btn-primary btn-md mt-1 mb-1 dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
|
|
<span class="visually-hidden">Toggle Dropdown</span>
|
|
</button>
|
|
<ul class="dropdown-menu">
|
|
<li><a class="dropdown-item" href="#" onclick="showBulkImportModal('PlanRecord')">@translator.Translate(userLanguage,"Import via CSV")</a></li>
|
|
<li><a class="dropdown-item" href="#" onclick="exportVehicleData('PlanRecord')">@translator.Translate(userLanguage,"Export to CSV")</a></li>
|
|
<li><hr class="dropdown-divider"></li>
|
|
<li><a class="dropdown-item" href="#" onclick="showPlanRecordTemplatesModal()">@translator.Translate(userLanguage, "View Templates")</a></li>
|
|
</ul>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<button onclick="showAddPlanRecordModal()" class="btn btn-primary btn-md mt-1 mb-1"><i class="bi bi-pencil-square me-2"></i>@translator.Translate(userLanguage,"Add Plan Record")</button>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row vehicleDetailTabContainer fixed">
|
|
<div class="col-12">
|
|
<div class="row mt-2 showOnPrint">
|
|
<div class="d-flex">
|
|
<img src="/defaults/lubelogger_logo.png" />
|
|
</div>
|
|
</div>
|
|
<div class="row swimlane">
|
|
<div class="col-3 d-flex flex-column swimlane mid" ondragover="dragOver(event)" ondrop="dropBox(event, 'Backlog')">
|
|
<div class="row">
|
|
<div class="col-12 d-flex justify-content-center" style="height:5vh;">
|
|
<span class="display-7">@translator.Translate(userLanguage,"Planned")</span>
|
|
</div>
|
|
</div>
|
|
@foreach (PlanRecord planRecord in backLogItems)
|
|
{
|
|
@await Html.PartialAsync("_PlanRecordItem", planRecord)
|
|
}
|
|
</div>
|
|
<div class="col-3 d-flex flex-column swimlane mid" ondragover="dragOver(event)" ondrop="dropBox(event, 'InProgress')">
|
|
<div class="row">
|
|
<div class="col-12 d-flex justify-content-center" style="height:5vh;">
|
|
<span class="display-7">@translator.Translate(userLanguage,"Doing")</span>
|
|
</div>
|
|
</div>
|
|
@foreach (PlanRecord planRecord in inProgressItems)
|
|
{
|
|
@await Html.PartialAsync("_PlanRecordItem", planRecord)
|
|
}
|
|
</div>
|
|
<div class="col-3 d-flex flex-column swimlane" ondragover="dragOver(event)" ondrop="dropBox(event, 'Testing')">
|
|
<div class="row">
|
|
<div class="col-12 d-flex justify-content-center" style="height:5vh;">
|
|
<span class="display-7">@translator.Translate(userLanguage,"Testing")</span>
|
|
</div>
|
|
</div>
|
|
@foreach (PlanRecord planRecord in testingItems)
|
|
{
|
|
@await Html.PartialAsync("_PlanRecordItem", planRecord)
|
|
}
|
|
</div>
|
|
<div class="col-3 d-flex flex-column swimlane end" ondragover="dragOver(event)" ondrop="dropBox(event, 'Done')">
|
|
<div class="row">
|
|
<div class="col-12 d-flex justify-content-center" style="height:5vh;">
|
|
<span class="display-7">@translator.Translate(userLanguage,"Done")</span>
|
|
</div>
|
|
</div>
|
|
@foreach (PlanRecord planRecord in doneItems)
|
|
{
|
|
@await Html.PartialAsync("_PlanRecordItem", planRecord)
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="modal fade" data-bs-focus="false" id="planRecordModal" tabindex="-1" role="dialog" aria-hidden="true" onpaste="handleModalPaste(event, 'planRecordFiles')">
|
|
<div class="modal-dialog modal-lg" role="document">
|
|
<div class="modal-content" id="planRecordModalContent">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal fade" data-bs-focus="false" id="planRecordTemplateModal" tabindex="-1" role="dialog" aria-hidden="true" onpaste="handleModalPaste(event, 'planRecordFiles')">
|
|
<div class="modal-dialog modal-lg" role="document">
|
|
<div class="modal-content" id="planRecordTemplateModalContent">
|
|
</div>
|
|
</div>
|
|
</div> |