113 lines
4.6 KiB
Plaintext
113 lines
4.6 KiB
Plaintext
@using BS.Shared.Core.Utilities
|
|
@using BeWoPlanerMobil.Util
|
|
@model BeWoPlanerMobil.Models.AppointmentModel
|
|
|
|
@{
|
|
var j = 0;
|
|
|
|
var areAllSelected = true;
|
|
|
|
foreach(var category2Resources in Model.ResourceCategories2Resources)
|
|
{
|
|
var resourceOids = category2Resources.Value.Select(resource => resource.ResourceOid.Value).ToList();
|
|
|
|
if(false == resourceOids.All(oid => Model.SelectedResourceOids.Contains(oid)))
|
|
{
|
|
areAllSelected = false;
|
|
break;
|
|
}
|
|
}
|
|
|
|
var checkedValue = areAllSelected ? "checked" : string.Empty;
|
|
|
|
var isOriginator = Model.OriginatorOid.HasValue && Model.OriginatorOid.Value == Model.LoggedInCompactEmployee.EmployeeOid;
|
|
var isNew = Model.Oid is null && Model.RecurrenceIndex == 0 && Model.RecurrenceInfo is null;
|
|
var canEditResApt = Model.HasRightKalenderRessourcenTermineAendern;
|
|
var canEditOthersResApt = Model.HasRightKalenderRessourcenTermineAndererAendern;
|
|
var canCreateResApt = Model.HasRightKalenderRessourcenTermineAnlegen;
|
|
|
|
var isDisabled = isNew is false && isOriginator is false && canEditOthersResApt is false ||
|
|
isNew is false && isOriginator && canEditResApt is false ||
|
|
isNew && canCreateResApt is false;
|
|
|
|
var disabled = isDisabled ? "disabled" : string.Empty;
|
|
}
|
|
|
|
<div class="dropdown pr-1" id="resources-dropdown">
|
|
<button class="btn btn-sm-auto btn-bewo-resource dropdown-toggle w-100" type="button" data-toggle="dropdown">
|
|
Ressourcen <span class="badge badge-light" id="apt-res-badge">@Model.SelectedResourceOids.Count</span>
|
|
</button>
|
|
<div class="dropdown-menu" onclick="event.stopPropagation();">
|
|
<div class="dropdown-item py-1 px-2">
|
|
<div class="input-group input-group-sm">
|
|
<div class="input-group-prepend">
|
|
<div class="input-group-text">
|
|
<input type="checkbox" @checkedValue @disabled onclick="selectAllEmployeeCustomerResource('res')" id="apt-res-select-all">
|
|
</div>
|
|
</div>
|
|
<input type="text" class="form-control" id="res-drop-search-input" placeholder="Suchen ..." oninput="onNewResourceSeachInput()">
|
|
<div class="input-group-append">
|
|
<button type="button" class="btn btn-sm-auto btn-outline-secondary" onclick="resetNewResourceSearch()">
|
|
<span class="fas fa-times-circle"></span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="dropdown-divider py-0 px-2"></div>
|
|
<div id="dropdown-res-itm-container">
|
|
@{
|
|
foreach(var category2Resources in Model.ResourceCategories2Resources)
|
|
{
|
|
var category = category2Resources.Key;
|
|
var resources = category2Resources.Value;
|
|
|
|
var dNone = j / Model.ResourcePageLimit + 1 != 1 ? " d-none" : string.Empty;
|
|
|
|
<div class="dropdown-item w-100 py-0 px-2 @dNone" id="dropdown-item-@j">
|
|
<div class="card mb-1 category-card" id="res-cat-@category.ValueListEntryOid">
|
|
<div class="card-header tree-card-header px-2 py-1" onclick="categoryCardHeaderClick('collapsable-res-cat-@category.ValueListEntryOid')">
|
|
<div class="d-flex align-items-center m-0">
|
|
<h6 class="mr-auto mb-0">@category.DisplayName</h6>
|
|
<div class="btn-group" role="group">
|
|
<span class="fas fa-chevron-down text-primary"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, $"collapsable-res-cat-{category.ValueListEntryOid}")" id="collapsable-res-cat-@category.ValueListEntryOid">
|
|
<div class="card-body resource-list px-2 py-1">
|
|
@foreach(var resource in resources)
|
|
{
|
|
var isChecked = resource.ResourceOid.HasValue && Model.SelectedResourceOids.Contains(resource.ResourceOid.Value) ? "checked" : string.Empty;
|
|
|
|
<form class="form-inline justify-content-between">
|
|
<div class="form-group form-check">
|
|
<input class="form-check-input" @disabled type="checkbox" id="apt-edit-res-@resource.ResourceOid.Value" @isChecked onclick="updateEmployeeCustomerResourceSelection('res')"/>
|
|
<label for="apt-edit-res-@resource.ResourceOid.Value" class="form-check-label">
|
|
@resource.DetailDescription
|
|
</label>
|
|
</div>
|
|
|
|
@if(WebUtils.CheckColorString(resource.Color))
|
|
{
|
|
<div class="float-right" style="width: 10px; height: 10px; background-color: @resource.Color; border: 1px solid @resource.Color; border-radius: 3px;"></div>
|
|
}
|
|
</form>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
j++;
|
|
}
|
|
}
|
|
</div>
|
|
<div class="dropdown-divider" id="apt-res-pag-divider"></div>
|
|
<div class="dropdown-item" id="apt-res-pag-dropdow-item">
|
|
<nav id="apt-res-pag-nav">
|
|
<ul class="pagination justify-content-center" id="apt-res-pagination">
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div> |