86 lines
3.8 KiB
JavaScript
86 lines
3.8 KiB
JavaScript
function changeResourceSelection(popupId, url, listId, listItemIdPrefix, checkBoxIdPrefix, filterAppointmentsUrl, selectAllCheckBoxId) {
|
|
var oidString = $("#" + popupId + " .category-card input:checked").map(function() { return $(this).prop("id").split("-")[1]; }).get().toString();
|
|
|
|
$.get(url, { resourceOids: oidString }).done(function(jsonResult) {
|
|
updateSelectedResourceList(jsonResult, listId, listItemIdPrefix, popupId, checkBoxIdPrefix, url, filterAppointmentsUrl, selectAllCheckBoxId);
|
|
|
|
var allResourcesCount = $("#" + popupId + " .category-card input[type=checkbox]").length;
|
|
var selectedResourcesCount = $("#" + popupId + " .category-card input:checked").length;
|
|
|
|
var areAllSelected = allResourcesCount === selectedResourcesCount;
|
|
|
|
if (isUndefinedOrNull(listId) === false && $("#" + listId).length) {
|
|
var listItemOidCount = $("#" + listId + " p").map(function() { return $(this).prop("id").split("-")[1]; }).get().length;
|
|
|
|
areAllSelected = listItemOidCount === allResourcesCount;
|
|
}
|
|
|
|
$("#" + selectAllCheckBoxId).prop("checked", areAllSelected);
|
|
|
|
if(popupId === "resources-popup2") {
|
|
$("#resource-count2").text(selectedResourcesCount);
|
|
}
|
|
|
|
if($("#one-day-scheduler-partial-container").length && filterAppointmentsUrl !== undefined && filterAppointmentsUrl !== null) {
|
|
|
|
$("#one-day-scheduler-partial-container").load(filterAppointmentsUrl);
|
|
}
|
|
});
|
|
}
|
|
|
|
function updateSelectedResourceList(jsonResult, listId, listItemIdPrefix, popupId, checkBoxIdPrefix, url, filterAppointmentsUrl, selectAllCheckBoxId) {
|
|
try {
|
|
var list = $("#" + listId);
|
|
|
|
list.empty();
|
|
|
|
if(isEmptyOrSpaces(jsonResult)) {
|
|
return;
|
|
}
|
|
|
|
var resourceList = parseJason(jsonResult);
|
|
|
|
$.each(resourceList, function (index, customListItem) {
|
|
var listItemId = listItemIdPrefix + "" + customListItem.ResourceOid;
|
|
var checkBoxId = "resource-" + customListItem.ResourceOid + "" + checkBoxIdPrefix + "";
|
|
|
|
// Liste mit den ausgewählten Ressourcen
|
|
var html =
|
|
"<div class=\"list-group-item my-auto\" id=\"" + listItemId + "\">" +
|
|
"<div class=\"row\">" +
|
|
"<div class=\"input-group\">" +
|
|
"<div class=\"input-group-prepend\">" +
|
|
"<i class=\"fas fa-cubes text-bewo-resource h-100\"></i>" +
|
|
"</div>" +
|
|
"<p class=\"form-control border-0 bg-transparent text-truncate\" id=\"p-" + customListItem.ResourceOid + "\" >" + customListItem.Name + "<p>" +
|
|
"<div class=\"input-group-append\">" +
|
|
"<button class=\"btn btn-primary\" type=\"button\" onclick=\"removeSelectedResource('" + listItemId + "', '" + checkBoxId + "', '" + popupId + "', '" + url + "', '" + listId + "', '" + filterAppointmentsUrl + "', '" + listItemIdPrefix + "', '" + checkBoxIdPrefix + "', '" + selectAllCheckBoxId + "')\"><span class=\"fas fa-times-circle\"></span></button>" +
|
|
"</div>" +
|
|
"</div>" +
|
|
"</div>" +
|
|
"</div>";
|
|
|
|
list.append(html);
|
|
});
|
|
|
|
} catch (error) {
|
|
showErrorPopup(error);
|
|
}
|
|
}
|
|
|
|
function removeSelectedResource(listItemId, checkBoxId, popupId, url, listId, fetchAppointmentsUrl, listItemIdPrefix, checkBoxIdPrefix, selectAllCheckBoxId) {
|
|
try {
|
|
$("#" + listItemId).remove();
|
|
|
|
var checkbox = $("#" + checkBoxId);
|
|
|
|
if(checkbox.length) {
|
|
checkbox.prop("checked", false);
|
|
}
|
|
|
|
changeResourceSelection(popupId, url, listId, listItemIdPrefix, checkBoxIdPrefix, fetchAppointmentsUrl, selectAllCheckBoxId);
|
|
} catch (error) {
|
|
showErrorPopup(error);
|
|
}
|
|
}
|