- @{
- var recurrenceSettings = (AppointmentRecurrenceFormSettings) ViewBag.AppointmentRecurrenceFormSettings;
+ @*@{
+ var recurrenceSettings = (AppointmentRecurrenceFormSettings) ViewBag.AppointmentRecurrenceFormSettings;
- recurrenceSettings.Enabled = areButtonsVisible;
- }
+ recurrenceSettings.Enabled = areButtonsVisible;
+ }
- @Html.DevExpress().AppointmentRecurrenceForm(recurrenceSettings).GetHtml()
+ @Html.DevExpress().AppointmentRecurrenceForm(recurrenceSettings).GetHtml()*@
+
+
+
+
diff --git a/BeWoPlanerMobil/Views/DevExpressScheduler/CustomRecurrencePartial.cshtml b/BeWoPlanerMobil/Views/DevExpressScheduler/CustomRecurrencePartial.cshtml
new file mode 100644
index 000000000..304660f2b
--- /dev/null
+++ b/BeWoPlanerMobil/Views/DevExpressScheduler/CustomRecurrencePartial.cshtml
@@ -0,0 +1,17 @@
+@Html.DevExpress().FormLayout(settings => {
+ settings.Name = "appointmentRecurrenceForm";
+
+ settings.SettingsAdaptivity.AdaptivityMode = FormLayoutAdaptivityMode.SingleColumnWindowLimit;
+ settings.SettingsAdaptivity.SwitchToSingleColumnAtWindowInnerWidth = 700;
+
+ // Ein Item, das den eigentlichen Recurrence-Extension-Block aufnimmt
+ settings.Items.Add(item => {
+ item.SetNestedContent(() => {
+ // hier die AppointmentRecurrenceForm-Extension rendern
+ Html.DevExpress().AppointmentRecurrenceForm(
+ Model.CreateAppointmentRecurrenceFormSettings()).Render();
+ });
+ });
+
+ // ... weitere Items (z. B. OK/Abbrechen-Buttons) als eigene Zeile
+}).GetHtml()
diff --git a/BeWoPlanerMobil/Views/DevExpressScheduler/DevExpressScheduler.cshtml b/BeWoPlanerMobil/Views/DevExpressScheduler/DevExpressScheduler.cshtml
index 6f4e5a1b7..62598f798 100644
--- a/BeWoPlanerMobil/Views/DevExpressScheduler/DevExpressScheduler.cshtml
+++ b/BeWoPlanerMobil/Views/DevExpressScheduler/DevExpressScheduler.cshtml
@@ -14,21 +14,7 @@
newAptBtn.append("
Neuer Termin");
}
});
-
- function translateRecurrencePopup() {
- const popupTitle = document.getElementById("scheduler_formBlock_RecurAptDeleteFrmContainer_PWH-1T");
- const msgSpan = document.getElementById("scheduler_formBlock_RecurAptDeleteFrmContainer_RecurAptDeleteFrmTemplateContainer_RecurrentAppointmentDeleteForm_lblConfirm");
- const checkboxTable = document.getElementById("scheduler_formBlock_RecurAptDeleteFrmContainer_RecurAptDeleteFrmTemplateContainer_RecurrentAppointmentDeleteForm_rbAction_RB0");
- const checkbox2Table = document.getElementById("scheduler_formBlock_RecurAptDeleteFrmContainer_RecurAptDeleteFrmTemplateContainer_RecurrentAppointmentDeleteForm_rbAction_RB1");
- const cancelBtnDiv = document.getElementById("scheduler_formBlock_RecurAptDeleteFrmContainer_RecurAptDeleteFrmTemplateContainer_RecurrentAppointmentDeleteForm_btnCancel_CD");
-
- $(msgSpan).text("Möchten Sie diesen Termin der Serie oder die ganze Serie löschen?");
- popupTitle.textContent = "Löschen bestätigen";
- checkboxTable.querySelector("td label").textContent = "Die Serie";
- checkbox2Table.querySelector("td label").textContent = "Diesen Termin";
- cancelBtnDiv.querySelector("span").textContent = "Abbrechen";
- }
-
+
function UpdateSchedulerHeight() {
scheduler.SetHeight(1);
@@ -41,6 +27,34 @@
scheduler.SetHeight(containerHeight);
}
+ function recurrenceSelectChange() {
+ const selected = $("#recurrence-type").find(":selected").val();
+
+ $("#daily-recurrence-form,#weekly-recurrence-form,#monthly-recurrence-form,#yearly-recurrence-form").hide();
+
+ if(selected !== "1") {
+ $("#recurrence-form-container").show();
+ }
+
+ switch(selected) {
+ case "1":
+ $("#recurrence-form-container").hide();
+ break;
+ case "2":
+ $("#daily-recurrence-form").show();
+ break;
+ case "3":
+ $("#weekly-recurrence-form").show();
+ break;
+ case "4":
+ $("#monthly-recurrence-form").show();
+ break;
+ case "5":
+ $("#yearly-recurrence-form").show();
+ break;
+ }
+ }
+
function getLabelByTextFromRecurrenceForm(labelText) {
return $("#appointmentRecurrenceForm_AptRecCtl_mainDiv").filter(function() {
return $(this).text().trim() === labelText;
@@ -55,6 +69,19 @@
if(editFormPopup.css("top") !== undefined) {
editFormPopup.css("top", "50px");
+ // ToDo: Neuer Serienteil
+
+ // ToDo: Am 30.07.2026: Mach weiter mit der Stufe 3 vom MVCxScheduler-Recurrence-Formular von gestern
+ if($("#recurrence-container").length) {
+ recurrenceSelectChange();
+ }
+ // ToDo: /Neuer Serienteil
+
+
+
+
+
+
const recurrence = $("#appointmentRecurrenceForm_ChkRecurrence label:contains('Recurrence')");
const daily = $("#appointmentRecurrenceForm_AptRecCtl_mainDiv label:contains('Daily')");
const weekly = $("#appointmentRecurrenceForm_AptRecCtl_mainDiv label:contains('Weekly')");
@@ -90,8 +117,6 @@
$("#appointmentRecurrenceForm_AptRecCtl_RangeCtl_mainDiv label:contains('End after:')").text("Endet nach:");
$("#appointmentRecurrenceForm_AptRecCtl_RangeCtl_mainDiv span:contains('occurrences')").text("Wiederholungen");
$("#appointmentRecurrenceForm_AptRecCtl_RangeCtl_mainDiv label:contains('End by:')").text("Endet am:");
-
-
}
if(editFormPopup.outerWidth() !== undefined) {
diff --git a/BeWoPlanerMobil/Views/DevExpressScheduler/SchedulerPagePartial.cshtml b/BeWoPlanerMobil/Views/DevExpressScheduler/SchedulerPagePartial.cshtml
index dd5a65fd5..bbe5a94f0 100644
--- a/BeWoPlanerMobil/Views/DevExpressScheduler/SchedulerPagePartial.cshtml
+++ b/BeWoPlanerMobil/Views/DevExpressScheduler/SchedulerPagePartial.cshtml
@@ -208,7 +208,7 @@
settings.OptionsToolTips.ShowSelectionToolTip = false;
settings.ClientSideEvents.ActiveViewChanging = "onActiveViewChanged";
settings.ClientSideEvents.MenuItemClicked = "onMenuItemClicked";
-
+ settings.OptionsForms.RecurrenceFormName = "appointmentRecurrenceForm";
settings.OptionsCustomization.AllowAppointmentEdit = UsedAppointmentType.Custom;
settings.OptionsCustomization.AllowAppointmentCopy = UsedAppointmentType.Custom;
settings.OptionsCustomization.AllowAppointmentCreate = UsedAppointmentType.Custom;
@@ -224,7 +224,6 @@
settings.InitClientAppointment = (send, evargs) =>
{
- // TODO: TESTEN! Es scheint noch einen Bug zu geben!
var recurrenceId = evargs.Appointment.RecurrenceInfo?.Id?.ToString();
var index = evargs.Appointment.RecurrenceIndex;
@@ -328,8 +327,6 @@
settings.Start = BS.Shared.Extensions.DateTimeExtensions.GetDayOfWeek(DayOfWeek.Monday);
- settings.OptionsForms.RecurrenceFormName = "appointmentRecurrenceForm";
-
settings.ClientSideEvents.EndCallback = "resizeSchedulerEditForm";
settings.ClientSideEvents.Init = "resizeSchedulerEditForm";
@@ -361,6 +358,11 @@
settings.Views.TimelineView.SetHorizontalSameDayAppointmentTemplateContent(appointmentTemplateContainer => { Html.RenderPartial("HorizontalAppointmentTemplatePartial", appointmentTemplateContainer.AppointmentViewInfo); });
settings.Views.TimelineView.SetHorizontalAppointmentTemplateContent(appointmentTemplateContainer => { Html.RenderPartial("HorizontalAppointmentTemplatePartial", appointmentTemplateContainer.AppointmentViewInfo.Appointment); });
+ settings.OptionsForms.SetRecurrentAppointmentEditFormTemplateContent(c =>
+ {
+ Html.RenderPartial("CustomRecurrencePartial");
+ });
+
settings.OptionsForms.SetAppointmentFormTemplateContent(appointmentFormTemplateContainer =>
{
var container = (CustomAppointmentTemplateContainer) appointmentFormTemplateContainer;
@@ -381,7 +383,7 @@
EndTime = container.Appointment.End,
AllDay = container.Appointment.AllDay,
Description = container.Appointment.Description,
- EventType = (int?)container.Appointment.Type,
+ EventType = (int?) container.Appointment.Type,
CompletedNotice = container.Appointment.CustomFields["CompletedNotice"]?.ToString(),
CompletedUser = container.Appointment.CustomFields["CompletedUser"]?.ToString(),
TaskDescription = container.Appointment.CustomFields["TaskDescription"]?.ToString(),
diff --git a/BeWoPlanerMobil/Views/ReportViewer/BerichteFormPartialView.cshtml b/BeWoPlanerMobil/Views/ReportViewer/BerichteFormPartialView.cshtml
index a6a0cec48..b6cb618c7 100644
--- a/BeWoPlanerMobil/Views/ReportViewer/BerichteFormPartialView.cshtml
+++ b/BeWoPlanerMobil/Views/ReportViewer/BerichteFormPartialView.cshtml
@@ -5,150 +5,237 @@
@model BeWoPlanerMobil.Models.ReportViewerModel
@{
- if(TempData[TempDataConstants.DoLogoutKey] is bool doLogout && doLogout)
+ if(TempData[TempDataConstants.DoLogoutKey] is true)
{
}
}
-@if(Model.SelectedQuery != null && Model.SelectedQuery.Parameter != null && Model.SelectedQuery.Parameter.Count > 0)
+@if(Model?.SelectedQuery != null && Model?.SelectedQuery.Parameter != null && Model?.SelectedQuery.Parameter.Count > 0)
{
@@ -283,9 +370,9 @@
{
var selected = string.Empty;
- if(Model.SelectedValues.ContainsKey(parameterOid))
+ if(Model.QueryMonths.ContainsKey(parameterOid))
{
- if(Model.SelectedValues[parameterOid].Parameter is DateTime monthDate && month.Value.Equals(monthDate.Month.ToString()))
+ if(Model.QueryMonths[parameterOid].Month.ToString().Equals(month.Value))
{
selected = "selected";
}
@@ -295,7 +382,7 @@
var lastMonth = DateTime.Today.AddMonths(-1);
var selectedMonth = lastMonth.Month.ToString();
- if(selectedMonth.Equals(month.Text))
+ if(selectedMonth.Equals(month.Value))
{
selected = "selected";
}
@@ -309,9 +396,9 @@
{
var selected = string.Empty;
- if(Model.SelectedValues.ContainsKey(parameterOid) && Model.SelectedValues[parameterOid].Parameter is DateTime selectedYear)
+ if(Model.QueryYears.ContainsKey(parameterOid))
{
- if(year.Equals(selectedYear.Year))
+ if(year.Equals(Model.QueryYears[parameterOid].Year))
{
selected = "selected";
}
@@ -456,11 +543,13 @@