Bugs behoben

This commit is contained in:
2025-07-25 18:37:07 +02:00
parent cdcbb6120f
commit f93f6f737a
7 changed files with 194 additions and 178 deletions

View File

@@ -61,10 +61,33 @@ function submitGroupBookingForm() {
function toggleGroupBookingForm() {
const isEnabled = $("#selected-cb2sc-list").children().length > 0;
changeGroupBookingFormEnableState(!isEnabled);
}
function changeMultiBookingFormEnableState(enableState) {
$(
"#multi-booking-employees-button, " +
"#category-select, " +
"#leistung-select, " +
"#mb-start-date-input, " +
"#mb-end-date-input, " +
"#mb-start-time-input, " +
"#mb-end-time-input, " +
"#mb-duration-input, " +
"#mb-distance-input, " +
"textarea, " +
"#mb-reset-btn, " +
"#mb-create-btn, " +
"#mb-betrag," +
"#mb-textbausteine-btn, " +
"#mb-hours-minutes-dropdown-btn, " +
"#mb-marker-cb, " +
".bewo-restore-btn").prop("disabled", enableState);
}
function changeGroupBookingFormEnableState(enableState) {
$(
"#betrag, " +
".gb-restore-btn," +
"#employees-button, " +
"#category-select, " +
"#leistung-select, " +
@@ -72,15 +95,42 @@ function toggleGroupBookingForm() {
"#gb-end-date-input, " +
"#gb-start-time-input, " +
"#gb-end-time-input, " +
"#db-duration-input, " +
"#gb-duration-input, " +
"#gb-distance-input, " +
"textarea, " +
"#reset-button, " +
"#create-button, " +
"#textbausteine-button, " +
"#gb-textbausteine-btn, " +
"#gb-hours-minutes-dropdown-btn, " +
"#marker-cb"
).prop("disabled", isEnabled ? false : true);
"#gb-marker-cb, " +
"#gb-betrag, " +
".bewo-restore-btn"
).prop("disabled", enableState);
}
function changeSingleBookingFormEnableState(enableState) {
$(
"#employeesDropDown, " +
"#category-select, " +
"#leistung-select, " +
"#sb-start-date-input, " +
"#sb-end-date-input, " +
"#sb-start-time-input, " +
"#sb-end-time-input, " +
"#sb-duration-input, " +
"#sb-hours-minutes-dropdown-btn, " +
"#sb-distance-input, " +
"#sb-textbausteine-btn, " +
"#goals-button, " +
"textarea, " +
"#reset-button, " +
"#create-button, " +
"#statistics-button, " +
"#timeFrameSelect, " +
"#sb-marker-cb, " +
"#sb-betrag, " +
".bewo-restore-btn"
).prop("disabled", enableState);
}
function deleteServiceRecord(serviceRecordOid) {
@@ -240,7 +290,7 @@ function validateForm(form, prefix) {
$("#srv-marker").val($(`#${prefix}-marker-cb`).is(":checked") ? "on" : "off");
$("#srv-service-description").val($(`#${prefix}-leistung-select`).find(":selected").val());
$("#srv-duration").val($(`#${prefix}-duration-input`).val());
$("#srv-betrag").val($("#betrag").val());
$("#srv-betrag").val($(`#${prefix}-betrag`).val());
showSpinner();
$("#service-record-validation-form").submit();

View File

@@ -15,28 +15,6 @@
}
<script type="text/javascript">
function toggleForm() {
const checkedCheckboxes = $(".cb2sc-input:checkbox:checked");
$(
"#employees-button, " +
"#category-select, " +
"#leistung-select, " +
"#gb-start-date-input, " +
"#gb-end-date-input, " +
"#gb-start-time-input, " +
"#gb-end-time-input, " +
"#gb-duration-input, " +
"#gb-distance-input, " +
"textarea, " +
"#reset-button, " +
"#create-button, " +
"#textbausteine-button, " +
"#gb-hours-minutes-dropdown-btn, " +
"#marker-cb")
.prop("disabled", (checkedCheckboxes.length > 0 ? false : true));
}
function addScCbRelsToGroupBooking() {
var selectedGroups = [];
var selectedSupportConcepts = [];
@@ -51,7 +29,7 @@
$("#group-booking-sc-cb-rel-tab-content").load("@Url.Action("AddScCbRelsToGroupBooking")", {relOids: selectedSupportConcepts, groupOids: selectedGroups}, function() {
$("#groupbooking-selection-container").load("@Url.Action("ReloadGroupBookingForm")", function () {
toggleForm();
toggleGroupBookingForm();
$("#goals-tree").load("@Url.Action("ReloadGoals")", function() {
$("#tree").load("@Url.Action("LoadUpToDateTextModules")");
@@ -67,7 +45,7 @@
, function () {
$("#goals-tree").load("@Url.Action("ReloadGoals")"
, function () {
toggleForm();
toggleGroupBookingForm();
$("#tree").load("@Url.Action("LoadUpToDateTextModules")");
});
@@ -98,7 +76,7 @@
}
}
<div class="mt-3">
<div class="mt-3 booking-form-container">
<div class="form-row">
<div class="col-md">
<div class="alert alert-danger collapse" role="alert" id="form-alert">
@@ -144,7 +122,7 @@
Betrag
</div>
</div>
<input class="form-control" type="text" autocomplete="on" id="betrag" name="betrag" value="@betrag" />
<input class="form-control" type="text" autocomplete="on" id="gb-betrag" name="betrag" value="@betrag" />
<div class="input-group-append">
<div class="input-group-text">€</div>
</div>
@@ -278,7 +256,7 @@
{
<div class="form-row" id="textmodule-container">
<div class="col-md">
<button type="button" class="btn btn-primary form-control mt-2" data-toggle="modal" data-target="#textbausteine-popup" id="textbausteine-button">Textbausteine</button>
<button type="button" class="btn btn-primary form-control mt-2" data-toggle="modal" data-target="#textbausteine-popup" id="gb-textbausteine-btn">Textbausteine</button>
</div>
</div>
}
@@ -290,9 +268,6 @@
{
<div class="form-group">
<label for="gb-dokufeld-textarea">Dokumentation</label>
<button type="button" class="btn btn-outline-bewo-dev btn-sm bg-restore-btn" onclick="restoreField('gb-dokufeld-textarea')">
<i class="fas fa-recycle"></i>
</button>
<textarea class="form-control" autocomplete="on" name="Dokumentation6" id="gb-dokufeld-textarea">@notice0</textarea>
</div>
}
@@ -306,9 +281,6 @@
<li class="nav-item">
<a href="#gb-doku_@i" id="gb-doku_@i-tab" data-toggle="tab" role="tab" class="nav-link@(i == 0 ? " active" : string.Empty)">
@currentDokuType.DisplayName
<button type="button" class="btn btn-outline-bewo-dev btn-sm gb-restore-btn" onclick="restoreField('gb-doku-textarea-@i')">
<i class="fas fa-recycle"></i>
</button>
</a>
</li>
}
@@ -328,29 +300,27 @@
</div>
</div>
}
<div class="d-flex bd-highlight mt-2">
<div class="mr-auto bd-highlight">
@* dient nur als Abstandshalter *@
</div>
<div class="ml-3 bd-highlight">
@if(Model.IsInTransferMode)
{
using(Html.BeginForm("ResetTransferMode", "Main", FormMethod.Post))
{
<button type="submit" class="btn btn-primary" onclick="showSpinner()">Abbrechen</button>
}
}
else
{
using(Html.BeginForm("ResetEditingMode", "Main", FormMethod.Post))
{
<button type="submit" class="btn btn-primary" onclick="showSpinner()">Abbrechen</button>
}
}
</div>
<div class="ml-3 bd-highlight">
<button type="button" class="btn btn-primary" id="create-button" onclick="submitGroupBookingForm()">@submitButtonText</button>
</div>
<div class="w-100 mt-2">
<button type="button" class="btn btn-primary float-right ml-1" id="create-button" onclick="submitGroupBookingForm()">@submitButtonText</button>
@if(Model.IsInTransferMode)
{
using(Html.BeginForm("ResetTransferMode", "Main", FormMethod.Post))
{
<button type="submit" id="reset-button" class="btn btn-primary float-right" onclick="showSpinner()">Abbrechen</button>
}
}
else
{
using(Html.BeginForm("ResetEditingMode", "Main", FormMethod.Post))
{
<button type="submit" id="reset-button" class="btn btn-primary float-right" onclick="showSpinner()">Abbrechen</button>
}
}
@*<button type="button" class="btn btn-bewo-dev bewo-restore-btn" onclick="window.restoreAllFields()">
<i class="fas fa-recycle"></i>
</button>*@
</div>
}

View File

@@ -5,7 +5,7 @@
@{
ViewBag.Title = "BeWoPlaner Mobil";
if(TempData[MobileUtils.TempDataLoginStateKey] is BeWoLoginState loginState && loginState.Message != null)
if(TempData[MobileUtils.TempDataLoginStateKey] is BeWoLoginState { Message: not null } loginState)
{
var loginStateMessage = new HtmlString(loginState.Message.Replace("\n", "<br/>").Replace("\"", "\\"));
@@ -14,7 +14,7 @@
</script>
}
if(TempData[TempDataConstants.DoLogoutKey] is bool doLogout && doLogout)
if(TempData[TempDataConstants.DoLogoutKey] is true)
{
<text>
<script type="text/javascript">
@@ -40,7 +40,15 @@
showSpinner();
$("#service-record-list-container").load("@Url.Action("LoadServiceRecordsNonPost")", {dayCountNumber: dayCount, start: start, end: end, month: parseInt(month), year: parseInt(year), recordsKey: parseInt(selectedOption)},
$("#service-record-list-container").load("@Url.Action("LoadServiceRecordsNonPost")",
{
dayCountNumber: dayCount,
start: start,
end: end,
month: parseInt(month),
year: parseInt(year),
recordsKey: parseInt(selectedOption)
},
() => {
hideSpinner();
});
@@ -131,61 +139,20 @@
$("#single-booking-employee-container").find(".dropdown-toggle").prop("disabled", (isSupportConceptSelected ? false : true));
$(
"#employeesDropDown, " +
"#category-select, " +
"#leistung-select, " +
"#sb-start-date-input, #sb-end-date-input, #sb-start-time-input, #sb-end-time-input, " +
"#sb-duration-input, #sb-hours-minutes-dropdown-btn, #sb-distance-input, " +
changeSingleBookingFormEnableState(!isSupportConceptSelected);
"#gb-start-date-input, #gb-end-date-input, #gb-start-time-input, #gb-end-time-input, " +
"#gb-duration-input, #gb-hours-minutes-dropdown-btn, #gb-distance-input, " +
if("@Model.IsInGroupBookingMode".toLowerCase() === "true") {
const hasSelectedSupportConcepts = "@Model.GroupBookingSelectedCostBearerSupportConceptOids.Any()".toLowerCase() === "true";
"#mb-start-date-input, #mb-end-date-input, #mb-start-time-input, #mb-end-time-input, " +
"#mb-duration-input, #mb-hours-minutes-dropdown-btn, #mb-distance-input," +
".sb-restore-btn, .gb-restore-btn, .mb-restore-btn" +
"#textbausteine-button, " +
"#goals-button, " +
"textarea, " +
"#reset-button, " +
"#create-button, " +
"#statistics-button, " +
"#timeFrameSelect, " +
"#marker-cb, " +
"#betrag"
).prop("disabled", (isSupportConceptSelected ? false : true));
if ("@Model.IsInGroupBookingMode".toLowerCase() === "true") {
const hasSelectedSupportConcepts = "@Model.GroupBookingSelectedCostBearerSupportConceptOids.Any()".toLowerCase() === "true";
$(
"#employees-button, " +
"#category-select, " +
"#leistung-select, " +
"#gb-start-date-input, " +
"#gb-end-date-input, " +
"#gb-start-time-input, " +
"#gb-end-time-input, " +
"#gb-duration-input, " +
"#distance, " +
"textarea, " +
"#reset-button, " +
"#create-button, " +
"#textbausteine-button, " +
"#gb-hours-minutes-dropdown-btn, " +
"#marker-cb, " +
"#betrag," +
".gb-restore-btn"
).prop("disabled", (hasSelectedSupportConcepts ? false : true));
changeGroupBookingFormEnableState(!hasSelectedSupportConcepts);
}
$("#fehlerdetail-textarea").prop("disabled", false);
if ("@Model.IsInMultiBookingMode".toLowerCase() === "true") {
const isMultiBookingFormDisabled = "@Model.GroupBookingSelectedCostBearerSupportConceptOids.Any()".toLowerCase() === "false";
if ("@Model.IsInMultiBookingMode".toLowerCase() === "true") {
const isMultiBookingFormDisabled = "@Model.GroupBookingSelectedCostBearerSupportConceptOids.Any()".toLowerCase() === "false";
window.toggleMultiBookingForm(isMultiBookingFormDisabled);
changeMultiBookingFormEnableState(isMultiBookingFormDisabled);
}
initializeSignatureImagePopup();
@@ -211,6 +178,10 @@
if(Model.LastCreatedServiceRecordOid > 0)
{
<text>
window.clearLocalBeWoStorage();
</text>
if(shouldShowSignaturePopup && Model.ShowSignature)
{
<text>
@@ -637,7 +608,7 @@
<div class="input-group-prepend">
<div class="input-group-text pw-prepend">Altes Passwort</div>
</div>
<input type="password" class="form-control" name="old-password" required />
<input type="password" class="form-control" name="old-password" autocomplete="on" required />
<div class="invalid-feedback pw-chng-inv-fdb">
Dieses Feld darf nicht leer sein.
</div>
@@ -650,7 +621,7 @@
<div class="input-group-prepend">
<div class="input-group-text pw-prepend">Neues Passwort</div>
</div>
<input type="password" class="form-control" name="new-password" id="new-password" onkeyup="validatePasswordStrength()" required />
<input type="password" class="form-control" name="new-password" id="new-password" autocomplete="on" onkeyup="validatePasswordStrength()" required />
<div class="invalid-feedback pw-chng-inv-fdb">
Dieses Feld darf nicht leer sein.
</div>
@@ -663,7 +634,7 @@
<div class="input-group-prepend">
<span class="input-group-text pw-prepend">Passwort bestätigen</span>
</div>
<input type="password" class="form-control" name="confirm-new-password" id="confirm-new-password" required />
<input type="password" class="form-control" name="confirm-new-password" autocomplete="on" id="confirm-new-password" required />
<div class="invalid-feedback pw-chng-inv-fdb">
Dieses Feld darf nicht leer sein.
</div>

View File

@@ -28,7 +28,7 @@
$("#multi-booking-sc-cb-rel-tab-content").load("@Url.Action("AddScCbRelsToMultiBooking")", {relOids: selectedSupportConcepts, groupOids: selectedGroups}, function() {
$("#multibooking-selection-container").load("@Url.Action("ReloadMultiBookingForm")", function () {
window.toggleMultiBookingForm($(".mb-cb2sc-input:checkbox:checked").length > 0 ? false : true);
changeMultiBookingFormEnableState($(".mb-cb2sc-input:checkbox:checked").length > 0 ? false : true);
$("#tree").load("@Url.Action("LoadUpToDateTextModules")");
});
@@ -42,7 +42,7 @@
, function () {
$("#goals-tree").load("@Url.Action("ReloadGoals")"
, function () {
window.toggleMultiBookingForm($(".mb-cb2sc-input:checkbox:checked").length > 0 ? false : true);
changeMultiBookingFormEnableState($(".mb-cb2sc-input:checkbox:checked").length > 0 ? false : true);
$("#tree").load("@Url.Action("LoadUpToDateTextModules")");
}
@@ -72,7 +72,7 @@
noticeList[i] = selectedNoticeList[i] ?? string.Empty;
}
}
<div class="mt-3">
<div class="mt-3 booking-form-container">
<div id="multibooking-selection-container">
@Html.Partial("MultiBookingSelectionPartial", Model)
</div>
@@ -102,7 +102,7 @@
Betrag
</div>
</div>
<input class="form-control" type="text" id="betrag" name="betrag" />
<input class="form-control" type="text" id="mb-betrag" name="betrag" />
<div class="input-group-append">
<div class="input-group-text">€</div>
</div>
@@ -239,7 +239,7 @@
{
<div class="form-row" id="textmodule-container">
<div class="col-md">
<button type="button" class="btn btn-primary form-control mt-2" data-toggle="modal" data-target="#textbausteine-popup" id="mb-textbausteine-button">Textbausteine</button>
<button type="button" class="btn btn-primary form-control mt-2" data-toggle="modal" data-target="#textbausteine-popup" id="mb-textbausteine-btn">Textbausteine</button>
</div>
</div>
}
@@ -251,9 +251,6 @@
{
<div class="form-group mt-2">
<label for="mb-dokufeld-textarea">Dokumentation</label>
<button type="button" class="btn btn-outline-bewo-dev btn-sm mb-restore-btn" onclick="restoreField('mb-dokufeld-textarea')">
<i class="fas fa-recycle"></i>
</button>
<textarea class="form-control" autocomplete="on" name="Dokumentation6" id="mb-dokufeld-textarea">@notice0</textarea>
</div>
}
@@ -267,9 +264,6 @@
<li class="nav-item">
<a href="#mb-doku_@i" id="mb-doku_@i-tab" data-toggle="tab" role="tab" class="nav-link@(i == 0 ? " active" : string.Empty)">
@currentDokuType.DisplayName
<button type="button" class="btn btn-outline-bewo-dev btn-sm mb-restore-btn" onclick="restoreField('mb-doku-textarea-@i')">
<i class="fas fa-recycle"></i>
</button>
</a>
</li>
}
@@ -289,18 +283,17 @@
</div>
</div>
}
<div class="d-flex bd-highlight mt-2">
<div class="mr-auto bd-highlight">
@* Abstandshalter *@
</div>
<div class="ml-3 bd-highlight">
@using(Html.BeginForm("ResetMultiBookingForm", "Main", FormMethod.Post))
{
<button type="submit" class="btn btn-primary" onclick="showSpinner()">Abbrechen</button>
}
</div>
<div class="ml-3 bd-highlight">
<button type="button" class="btn btn-primary" id="mb-create-button" onclick="submitMultiBookingForm()">Anlegen</button>
</div>
<div class="w-100 mt-2">
<button type="button" class="btn btn-primary float-right ml-1" id="mb-create-btn" onclick="window.submitMultiBookingForm()">Anlegen</button>
@using(Html.BeginForm("ResetMultiBookingForm", "Main", FormMethod.Post))
{
<button type="submit" id="mb-reset-btn" class="btn btn-primary float-right" onclick="showSpinner()">Abbrechen</button>
}
@*<button type="button" class="btn btn-bewo-dev bewo-restore-btn" onclick="window.restoreAllFields()">
<i class="fas fa-recycle"></i>
</button>*@
</div>
}

View File

@@ -68,14 +68,12 @@
$.get("@Url.Action("MultiBookingHasSelectedSupportConcepts")").done(function (result1) {
if(false === checkJson(result1)) {
logWarning("submitMultiBookingForm: Der zurückgegebene Wert ist kein gültiges JSON!");
hideSpinner();
return;
}
$.get("@Url.Action("MultiBookingHasSelectedEmployees")").done(function (result2) {
if(false === checkJson(result2)) {
logWarning("submitMultiBookingForm: Der zurückgegebene Wert ist kein gültiges JSON!");
hideSpinner();
return;
}

View File

@@ -152,7 +152,7 @@
<div class="row">
@* ----- Einzelbuchungsformular ----- *@
<div class="col col-12 col-md-5">
<div class="col col-12 col-md-5 booking-form-container">
@if (Model != null)
{
using (Html.BeginForm("SelectSupportConcept", "Main", FormMethod.Post, new { Id = "selectSupportConceptForm", onreset = "resetSingleBookingForm()" }))
@@ -310,7 +310,7 @@
@if(Model.ShowBetrag)
{
var betrag = string.Empty;
if(Model.SelectedServiceRecord?.Betrag != null && Model.SelectedServiceRecord.Betrag.Value > 0)
if(Model.SelectedServiceRecord?.Betrag is > 0)
{
betrag = Model.SelectedServiceRecord.Betrag.Value.ToString("#.00");
}
@@ -324,7 +324,7 @@
Betrag
</div>
</div>
<input class="form-control" autocomplete="on" type="text" id="betrag" name="betrag" value="@betrag" />
<input class="form-control" autocomplete="on" type="text" id="sb-betrag" name="betrag" value="@betrag" />
<div class="input-group-append">
<div class="input-group-text">€</div>
</div>
@@ -343,7 +343,7 @@
var afterValidationState = TempData[TempDataConstants.AfterValidationStateKey];
if(Model.SetStartTimeToEndTimeAfterSave && !Model.IsInEditingMode && afterValidationState is bool and false)
if(Model.SetStartTimeToEndTimeAfterSave && !Model.IsInEditingMode && afterValidationState is false)
{
durationValue = Model.NewDuration?.ToString();
if(Model.NewDuration.HasValue)
@@ -457,7 +457,7 @@
</script>
<div class="form-row mt-2" id="textmodule-container">
<div class="col-md">
<button type="button" class="btn btn-primary form-control" data-toggle="modal" data-target="#textbausteine-popup" id="textbausteine-button" onclick="textModuleButtonOnClick()">Textbausteine</button>
<button type="button" class="btn btn-primary form-control" data-toggle="modal" data-target="#textbausteine-popup" id="sb-textbausteine-btn" onclick="textModuleButtonOnClick()">Textbausteine</button>
</div>
</div>
}
@@ -469,9 +469,6 @@
{
<div class="form-group my-0">
<label for="sb-dokufeld-textarea">Dokumentation</label>
<button type="button" class="btn btn-outline-bewo-dev btn-sm sb-restore-btn" onclick="restoreField('sb-dokufeld-textarea')">
<i class="fas fa-recycle"></i>
</button>
<textarea class="form-control" autocomplete="on" style="overflow: scroll;" name="Dokumentation6" id="sb-dokufeld-textarea">@Model.NoticeToEdit</textarea>
</div>
}
@@ -485,11 +482,7 @@
<li class="nav-item">
<a href="#sb-doku_@i" id="sb-doku_@i-tab" data-toggle="tab" role="tab" class="nav-link@(i == 0 ? " active" : string.Empty)">
@currentDokuType.DisplayName
<button type="button" class="btn btn-outline-bewo-dev btn-sm sb-restore-btn" onclick="restoreField('sb-doku-textarea-@i')">
<i class="fas fa-recycle"></i>
</button>
</a>
</li>
}
</ul>
@@ -528,12 +521,12 @@
}
else
{
<button type="button" class="btn btn-primary float-right" id="reset-button" onclick="resetSingleBookingForm()">Abbrechen</button>
}
<button type="button" class="btn btn-primary float-right" id="reset-button" onclick="window.restoreAllFields(); resetSingleBookingForm();">Abbrechen</button>
}
<button type="button" class="btn btn-bewo-dev" onclick="restoreAllFields()">
@*<button type="button" class="btn btn-bewo-dev bewo-restore-btn" onclick="window.restoreAllFields()">
<i class="fas fa-recycle"></i>
</button>
</button>*@
</div>
}
</div>

View File

@@ -54,7 +54,7 @@
<script type="text/javascript" src="@Scripts.Url("~/Scripts/tempusdominus-boostrap-4.min.js")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/mobileUtils.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/view-scripts/main.js?v=1.3")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/view-scripts/main.js?v=1.5")"></script>
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/signature.js?v=1.3")"></script>
<link type="text/css" rel="stylesheet" href="@Url.Content("~/Scripts/bootstrap/bootstrap4-modal-fullscreen.min.css")" />
@@ -109,6 +109,16 @@
this.inputList = inputList;
}
clearInputList() {
if(this.inputList === null || this.inputList === undefined) {
this.inputList = [];
}
this.inputList.length = 0;
localStorage.setItem(this.id, JSON.stringify(this));
}
removeItemById(id) {
const newInputList = [];
@@ -162,7 +172,11 @@
}
getItemById(id) {
return this.inputList.find((element) => element.inputId === id);
const item = this.inputList.find((element) => element.inputId === id);
logInfo3(`Element: ${id}; Wert: ${item.inputValue}; Typ: ${item.inputType}`);
return item;
}
getItemsByName(name) {
@@ -329,6 +343,16 @@
}
});
function toggleRestoreButton() {
const state = !window.getRestoreButtonState();
if($(".bewo-restore-btn").length > 0) {
$(".bewo-restore-btn").each(function(index, item) {
$(this).prop("disabled", state);
});
}
}
$(window).resize(function () {
$.each($("canvas"), function(index, canvasElement) {
updateCanvasSize($(canvasElement));
@@ -423,14 +447,6 @@
return Math.max.apply(Math, $(`.${elementClassName}`).map(function () { return $(this).height(); }).get());
}
function toggleMultiBookingForm(shouldDisable) {
$("#multi-booking-employees-button, #category-select, #leistung-select, " +
"#mb-start-date-input, #mb-end-date-input, #mb-start-time-input, #mb-end-time-input, #mb-duration-input, " +
"#mb-distance-input, textarea, #mb-reset-button, #mb-create-button, " +
".mb-restore-btn, " +
"#mb-textbausteine-button, #mb-hours-minutes-dropdown-btn, #mb-marker-cb").prop("disabled", shouldDisable);
}
@* Eingabenwiederherstellung *@
function getLocalStorageKey() {
@@ -455,23 +471,43 @@
return beWoStorage;
}
window.addEventListener("load", function() {
$("textarea, select, input").on("change", function() {
function clearLocalBeWoStorage() {
const beWoStorage = getBeWoStorage();
beWoStorage.clearInputList();
}
function getRestoreButtonState() {
const beWoStorage = getBeWoStorage();
return beWoStorage.inputList.length > 0;
}
window.addEventListener("load", function() {
$(".booking-form-container").find("textarea, select, input").on("change", function() {
const item = $(this);
const id = item.attr("id");
const type = item.prop("type");
const value = type === "checkbox" ? item.is(":checked").toString() : item.val();
if(value === undefined || value === null || value.length === 0) {
if((value === null || value === undefined) || value.length === 0) {
logInfo2(`Element mit Id "${id}" hat ${(value !== null ? "einen leeren" : " keinen")} Wert.`);
return;
}
logInfo3(`${id}: ${value}`);
const name = item.prop("name");
const beWoStorage = getBeWoStorage();
beWoStorage.addInputValue(id, name, type, value, new Date());
});
beWoStorage.addInputValue(id, name, type, value, new Date());
// ToDo: Auch Hilfeplan- und Mitarbeiterauswahl berücksichtigen
// ToDo: 28.07.2025: Hilefplan einbauen und dabei dann ein Flag setzen in TempData und dann gegebenenfalls alle anderen Felder wiederherstellen
toggleRestoreButton();
});
});
function restoreField(id) {
@@ -490,8 +526,13 @@
function restoreAllFields() {
const beWoStorage = getBeWoStorage();
$.each(beWoStorage.inputList, (index, item) => {
$(`#${item.inputId}`).val(item.inputValue);
$.each(beWoStorage.inputList, (index, item) => {
if (item.inputType === "checkbox") {
$(`#${item.inputId}`).prop("checked", item.inputValue);
} else {
$(`#${item.inputId}`).val(item.inputValue);
}
$(`#${item.inputId}`).trigger("change");
});
}
@@ -532,7 +573,7 @@
{
<li class="nav-item">
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
<i class="fas fa-hand-middle-finger" style="color: #FFD9C2;"></i>
<i class="fas fa-hammer" style="color: #FFD9C2;"></i>
DX Kalender
</button>
</li>