This commit is contained in:
2026-08-19 13:28:52 +00:00
parent 1cbb64474b
commit 1410ceb441
30 changed files with 979 additions and 186 deletions
@@ -0,0 +1,326 @@
export default {
async toggleDay(day) {
const validDays = [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
];
if (!validDays.includes(day)) {
showAlert(
"Ungültiger Wochentag.",
"error"
);
return;
}
const currentDays =
appsmith.store.recurringDays || {};
const nextDays = {
monday: Boolean(
currentDays.monday
),
tuesday: Boolean(
currentDays.tuesday
),
wednesday: Boolean(
currentDays.wednesday
),
thursday: Boolean(
currentDays.thursday
),
friday: Boolean(
currentDays.friday
)
};
nextDays[day] =
!nextDays[day];
await storeValue(
"recurringDays",
nextDays,
false
);
return nextDays;
},
getSelectedWeekdays() {
const days =
appsmith.store.recurringDays || {};
const weekdayMap = {
monday: 1,
tuesday: 2,
wednesday: 3,
thursday: 4,
friday: 5
};
return Object.entries(
weekdayMap
)
.filter(
([day]) =>
days[day] === true
)
.map(
([, weekday]) =>
weekday
);
},
parseDate(value) {
if (!value) {
return null;
}
const text =
String(value).slice(0, 10);
const parts =
text.split("-").map(Number);
if (parts.length !== 3) {
return null;
}
const date =
new Date(
parts[0],
parts[1] - 1,
parts[2]
);
return Number.isNaN(
date.getTime()
)
? null
: date;
},
formatDate(date) {
const pad =
value =>
String(value).padStart(
2,
"0"
);
return [
date.getFullYear(),
pad(date.getMonth() + 1),
pad(date.getDate())
].join("-");
},
formatDateTime(
date,
time,
allDay
) {
const dateText =
this.formatDate(date);
if (allDay) {
return `${dateText} 00:00:00`;
}
return `${dateText} ${time}:00`;
},
createRecurringDates(
startDate,
endDate,
selectedWeekdays
) {
const dates = [];
const cursor =
new Date(startDate);
while (
cursor <= endDate
) {
if (
selectedWeekdays.includes(
cursor.getDay()
)
) {
dates.push(
new Date(cursor)
);
}
cursor.setDate(
cursor.getDate() + 1
);
}
return dates;
},
async prepareRecurringBooking() {
const form =
appsmith.store.bookingFormData ||
{};
const recurring =
RecurringCheckbox.isChecked === true;
if (!recurring) {
return CreateBooking.run()
.then(() => {
return GetSeatBookings.run();
})
.then(() => {
return GetSeats.run();
})
.then(() => {
closeModal(
"Platzbuchung"
);
showAlert(
"Der Platz wurde erfolgreich gebucht.",
"success"
);
})
.catch((error) => {
console.error(
"Einzelbuchung fehlgeschlagen:",
error
);
showAlert(
"Die Buchung konnte nicht gespeichert werden.",
"error"
);
});
}
const startDate =
this.parseDate(
form.startDate
);
const endDate =
this.parseDate(
form.endDate
);
if (!startDate || !endDate) {
showAlert(
"Start- oder Enddatum ist ungültig.",
"error"
);
return;
}
const selectedWeekdays =
this.getSelectedWeekdays();
if (
selectedWeekdays.length === 0
) {
showAlert(
"Bitte mindestens einen Wochentag auswählen.",
"warning"
);
return;
}
const weeks =
Number(
RecurringWeeksSelect
.selectedOptionValue || 1
);
if (
!Number.isInteger(weeks) ||
weeks < 1 ||
weeks > 52
) {
showAlert(
"Bitte eine gültige Wochenanzahl auswählen.",
"warning"
);
return;
}
const dates =
this.createRecurringDates(
startDate,
endDate,
selectedWeekdays
);
if (dates.length === 0) {
showAlert(
"Im gewählten Zeitraum wurden keine passenden Wochentage gefunden.",
"warning"
);
return;
}
const startTime =
form.startTime || "00:00";
const endTime =
form.endTime || "23:59";
const allDay =
AllDayCheckbox.isChecked === true ||
form.allDay === true;
const candidates =
dates.map(
date => ({
date:
this.formatDate(date),
weekday:
date.toLocaleDateString(
"de-DE",
{
weekday: "long"
}
),
startDateTime:
this.formatDateTime(
date,
startTime,
allDay
),
endDateTime:
allDay
? `${this.formatDate(date)} 23:59:59`
: this.formatDateTime(
date,
endTime,
false
)
})
);
await storeValue(
"recurringCheck",
{
candidates,
freeBookings: [],
conflicts: [],
bookingFormData: form,
weeks,
selectedWeekdays
},
false
);
return candidates;
}
};
@@ -0,0 +1,11 @@
{
"gitSyncId": "6a6b5b477ebc9edeca96e2f8_0b8b6251-5d40-4248-bd41-d87899c2849f",
"id": "Sitzplätze_RecurringBooking",
"unpublishedCollection": {
"name": "RecurringBooking",
"pageId": "Sitzplätze",
"pluginId": "js-plugin",
"pluginType": "JS",
"variables": []
}
}
@@ -4,7 +4,8 @@ SELECT
titel AS title,
startzeit AS start,
endzeit AS end,
gebucht_von
gebucht_von,
erstellt_am
FROM `buchungen`
WHERE platz_id =
{{ appsmith.store.selectedSeatId }}
@@ -5,7 +5,7 @@
"pluginType": "DB",
"unpublishedAction": {
"actionConfiguration": {
"body": "SELECT\n id,\n platz_id,\n titel AS title,\n startzeit AS start,\n endzeit AS end,\n gebucht_von\nFROM `buchungen`\nWHERE platz_id =\n {{ appsmith.store.selectedSeatId }}\nORDER BY startzeit;",
"body": "SELECT\n id,\n platz_id,\n titel AS title,\n startzeit AS start,\n endzeit AS end,\n gebucht_von,\n erstellt_am\nFROM `buchungen`\nWHERE platz_id =\n {{ appsmith.store.selectedSeatId }}\nORDER BY startzeit;",
"encodeParamsToggle": true,
"paginationType": "NONE",
"pluginSpecifiedTemplates": [
@@ -0,0 +1,41 @@
{
"gitSyncId": "6a6b5b477ebc9edeca96e2f8_d0c04046-bd8b-42a5-a7f8-58272d3d0169",
"id": "Sitzplätze_RecurringBooking.createRecurringDates",
"pluginId": "js-plugin",
"pluginType": "JS",
"unpublishedAction": {
"actionConfiguration": {
"encodeParamsToggle": true,
"jsArguments": [
{
"name": "startDate"
},
{
"name": "endDate"
},
{
"name": "selectedWeekdays"
}
],
"paginationType": "NONE",
"timeoutInMillisecond": 10000
},
"collectionId": "Sitzplätze_RecurringBooking",
"confirmBeforeExecute": false,
"datasource": {
"isAutoGenerated": false,
"name": "UNUSED_DATASOURCE",
"pluginId": "js-plugin"
},
"dynamicBindingPathList": [
{
"key": "body"
}
],
"fullyQualifiedName": "RecurringBooking.createRecurringDates",
"name": "createRecurringDates",
"pageId": "Sitzplätze",
"runBehaviour": "MANUAL",
"userSetOnLoad": false
}
}
@@ -0,0 +1,35 @@
{
"gitSyncId": "6a6b5b477ebc9edeca96e2f8_4bf3cfa5-fce3-493e-a566-383c18c49aa7",
"id": "Sitzplätze_RecurringBooking.formatDate",
"pluginId": "js-plugin",
"pluginType": "JS",
"unpublishedAction": {
"actionConfiguration": {
"encodeParamsToggle": true,
"jsArguments": [
{
"name": "date"
}
],
"paginationType": "NONE",
"timeoutInMillisecond": 10000
},
"collectionId": "Sitzplätze_RecurringBooking",
"confirmBeforeExecute": false,
"datasource": {
"isAutoGenerated": false,
"name": "UNUSED_DATASOURCE",
"pluginId": "js-plugin"
},
"dynamicBindingPathList": [
{
"key": "body"
}
],
"fullyQualifiedName": "RecurringBooking.formatDate",
"name": "formatDate",
"pageId": "Sitzplätze",
"runBehaviour": "MANUAL",
"userSetOnLoad": false
}
}
@@ -0,0 +1,41 @@
{
"gitSyncId": "6a6b5b477ebc9edeca96e2f8_3d7d19eb-b12b-4d4f-bf3f-75bc8b6fda90",
"id": "Sitzplätze_RecurringBooking.formatDateTime",
"pluginId": "js-plugin",
"pluginType": "JS",
"unpublishedAction": {
"actionConfiguration": {
"encodeParamsToggle": true,
"jsArguments": [
{
"name": "date"
},
{
"name": "time"
},
{
"name": "allDay"
}
],
"paginationType": "NONE",
"timeoutInMillisecond": 10000
},
"collectionId": "Sitzplätze_RecurringBooking",
"confirmBeforeExecute": false,
"datasource": {
"isAutoGenerated": false,
"name": "UNUSED_DATASOURCE",
"pluginId": "js-plugin"
},
"dynamicBindingPathList": [
{
"key": "body"
}
],
"fullyQualifiedName": "RecurringBooking.formatDateTime",
"name": "formatDateTime",
"pageId": "Sitzplätze",
"runBehaviour": "MANUAL",
"userSetOnLoad": false
}
}
@@ -0,0 +1,31 @@
{
"gitSyncId": "6a6b5b477ebc9edeca96e2f8_86b8bc08-a533-42e0-b9ae-c17500c697a2",
"id": "Sitzplätze_RecurringBooking.getSelectedWeekdays",
"pluginId": "js-plugin",
"pluginType": "JS",
"unpublishedAction": {
"actionConfiguration": {
"encodeParamsToggle": true,
"jsArguments": [],
"paginationType": "NONE",
"timeoutInMillisecond": 10000
},
"collectionId": "Sitzplätze_RecurringBooking",
"confirmBeforeExecute": false,
"datasource": {
"isAutoGenerated": false,
"name": "UNUSED_DATASOURCE",
"pluginId": "js-plugin"
},
"dynamicBindingPathList": [
{
"key": "body"
}
],
"fullyQualifiedName": "RecurringBooking.getSelectedWeekdays",
"name": "getSelectedWeekdays",
"pageId": "Sitzplätze",
"runBehaviour": "MANUAL",
"userSetOnLoad": false
}
}
@@ -0,0 +1,35 @@
{
"gitSyncId": "6a6b5b477ebc9edeca96e2f8_bd1cc297-4ea6-42f9-872c-c5abdec196cc",
"id": "Sitzplätze_RecurringBooking.parseDate",
"pluginId": "js-plugin",
"pluginType": "JS",
"unpublishedAction": {
"actionConfiguration": {
"encodeParamsToggle": true,
"jsArguments": [
{
"name": "value"
}
],
"paginationType": "NONE",
"timeoutInMillisecond": 10000
},
"collectionId": "Sitzplätze_RecurringBooking",
"confirmBeforeExecute": false,
"datasource": {
"isAutoGenerated": false,
"name": "UNUSED_DATASOURCE",
"pluginId": "js-plugin"
},
"dynamicBindingPathList": [
{
"key": "body"
}
],
"fullyQualifiedName": "RecurringBooking.parseDate",
"name": "parseDate",
"pageId": "Sitzplätze",
"runBehaviour": "MANUAL",
"userSetOnLoad": false
}
}
@@ -0,0 +1,31 @@
{
"gitSyncId": "6a6b5b477ebc9edeca96e2f8_cff2140b-e5d4-42c8-9188-874a94c2cc05",
"id": "Sitzplätze_RecurringBooking.prepareRecurringBooking",
"pluginId": "js-plugin",
"pluginType": "JS",
"unpublishedAction": {
"actionConfiguration": {
"encodeParamsToggle": true,
"jsArguments": [],
"paginationType": "NONE",
"timeoutInMillisecond": 10000
},
"collectionId": "Sitzplätze_RecurringBooking",
"confirmBeforeExecute": false,
"datasource": {
"isAutoGenerated": false,
"name": "UNUSED_DATASOURCE",
"pluginId": "js-plugin"
},
"dynamicBindingPathList": [
{
"key": "body"
}
],
"fullyQualifiedName": "RecurringBooking.prepareRecurringBooking",
"name": "prepareRecurringBooking",
"pageId": "Sitzplätze",
"runBehaviour": "MANUAL",
"userSetOnLoad": false
}
}
@@ -0,0 +1,35 @@
{
"gitSyncId": "6a6b5b477ebc9edeca96e2f8_282d76c6-d648-4ec1-a85d-77a19cc9a758",
"id": "Sitzplätze_RecurringBooking.toggleDay",
"pluginId": "js-plugin",
"pluginType": "JS",
"unpublishedAction": {
"actionConfiguration": {
"encodeParamsToggle": true,
"jsArguments": [
{
"name": "day"
}
],
"paginationType": "NONE",
"timeoutInMillisecond": 10000
},
"collectionId": "Sitzplätze_RecurringBooking",
"confirmBeforeExecute": false,
"datasource": {
"isAutoGenerated": false,
"name": "UNUSED_DATASOURCE",
"pluginId": "js-plugin"
},
"dynamicBindingPathList": [
{
"key": "body"
}
],
"fullyQualifiedName": "RecurringBooking.toggleDay",
"name": "toggleDay",
"pageId": "Sitzplätze",
"runBehaviour": "MANUAL",
"userSetOnLoad": false
}
}
@@ -1,7 +1,7 @@
{
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 70,
"bottomRow": 79,
"boxShadow": "none",
"buttonColor": "{{appsmith.theme.colors.primaryColor}}",
"buttonStyle": "PRIMARY_BUTTON",
@@ -15,11 +15,7 @@
"key": "borderRadius"
}
],
"dynamicPropertyPathList": [
{
"key": "onClick"
}
],
"dynamicPropertyPathList": [],
"dynamicTriggerPathList": [
{
"key": "onClick"
@@ -30,25 +26,25 @@
"isLoading": false,
"isVisible": true,
"key": "on7g9pelq6",
"leftColumn": 51,
"leftColumn": 50,
"minWidth": 120,
"mobileBottomRow": 22,
"mobileLeftColumn": 47,
"mobileRightColumn": 63,
"mobileTopRow": 18,
"needsErrorInfo": false,
"onClick": "{{\n CreateBooking\n .run()\n .then(() => {\n return closeModal(\n \"Platzbuchung\"\n );\n })\n .then(() => {\n return GetSeatBookings.run();\n })\n .catch((error) => {\n console.error(\n \"Buchung fehlgeschlagen:\",\n error\n );\n\n showAlert(\n \"Die Buchung konnte nicht gespeichert werden.\",\n \"error\"\n );\n });\n}}",
"originalBottomRow": 40,
"originalTopRow": 36,
"onClick": "{{RecurringBooking.prepareRecurringBooking();}}",
"originalBottomRow": 78,
"originalTopRow": 74,
"parentId": "q44lz1f0e4",
"placement": "CENTER",
"recaptchaType": "V3",
"renderMode": "CANVAS",
"resetFormOnClick": false,
"responsiveBehavior": "hug",
"rightColumn": 63,
"rightColumn": 62,
"text": "Buchen",
"topRow": 66,
"topRow": 75,
"type": "BUTTON_WIDGET",
"version": 1,
"widgetId": "iutdgcd629",
@@ -59,10 +59,10 @@
"responsiveBehavior": "fill",
"rightColumn": 53,
"serverSideFiltering": false,
"sourceData": "{{\n [\n { label: \"07:30\", value: \"07:30\" },\n { label: \"08:00\", value: \"08:00\" },\n { label: \"08:30\", value: \"08:30\" },\n { label: \"09:00\", value: \"09:00\" },\n { label: \"09:30\", value: \"09:30\" },\n { label: \"10:00\", value: \"10:00\" },\n { label: \"10:30\", value: \"10:30\" },\n { label: \"11:00\", value: \"11:00\" },\n { label: \"11:30\", value: \"11:30\" },\n { label: \"12:00\", value: \"12:00\" },\n { label: \"12:30\", value: \"12:30\" },\n { label: \"13:00\", value: \"13:00\" },\n { label: \"13:30\", value: \"13:30\" },\n { label: \"14:00\", value: \"14:00\" },\n { label: \"14:30\", value: \"14:30\" },\n { label: \"15:00\", value: \"15:00\" },\n { label: \"15:30\", value: \"15:30\" },\n { label: \"16:00\", value: \"16:00\" },\n { label: \"16:30\", value: \"16:30\" },\n { label: \"17:00\", value: \"17:00\" },\n { label: \"17:30\", value: \"17:30\" },\n { label: \"18:00\", value: \"18:00\" }\n ].filter(option => {\n const start =\n BookingStartTime.selectedOptionValue ||\n \"07:00\";\n\n return option.value > start;\n })\n}}",
"sourceData": "{{\n [\n { label: \"07:30\", value: \"07:30\" },\n { label: \"08:00\", value: \"08:00\" },\n { label: \"08:30\", value: \"08:30\" },\n { label: \"09:00\", value: \"09:00\" },\n { label: \"09:30\", value: \"09:30\" },\n { label: \"10:00\", value: \"10:00\" },\n { label: \"10:30\", value: \"10:30\" },\n { label: \"11:00\", value: \"11:00\" },\n { label: \"11:30\", value: \"11:30\" },\n { label: \"12:00\", value: \"12:00\" },\n { label: \"12:30\", value: \"12:30\" },\n { label: \"13:00\", value: \"13:00\" },\n { label: \"13:30\", value: \"13:30\" },\n { label: \"14:00\", value: \"14:00\" },\n { label: \"14:30\", value: \"14:30\" },\n { label: \"15:00\", value: \"15:00\" },\n { label: \"15:30\", value: \"15:30\" },\n { label: \"16:00\", value: \"16:00\" },\n { label: \"16:30\", value: \"16:30\" },\n { label: \"17:00\", value: \"17:00\" },\n { label: \"17:30\", value: \"17:30\" },\n { label: \"18:00\", value: \"18:00\" }\n ].filter(option => {\n const start =\n StartTimeSelect.selectedOptionValue ||\n \"07:00\";\n\n return option.value > start;\n })\n}}",
"topRow": 20,
"type": "SELECT_WIDGET",
"version": 1,
"widgetId": "ffcw6h9yvt",
"widgetName": "BookingEndTime"
"widgetName": "EndTimeSelect"
}
@@ -1,14 +1,14 @@
{
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 72,
"bottomRow": 94,
"boxShadow": "none",
"canEscapeKeyClose": true,
"canOutsideClickClose": true,
"children": [
{
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 720,
"bottomRow": 940,
"boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}",
"canExtend": true,
"detachFromLayout": true,
@@ -58,14 +58,14 @@
],
"dynamicHeight": "AUTO_HEIGHT",
"dynamicTriggerPathList": [],
"height": 720,
"height": 940,
"isCanvas": true,
"isLoading": false,
"key": "tfld9k9m85",
"leftColumn": 19,
"maxDynamicHeight": 9000,
"minDynamicHeight": 10,
"minHeight": 720,
"minHeight": 940,
"mobileBottomRow": 39,
"mobileLeftColumn": 19,
"mobileRightColumn": 43,
@@ -22,7 +22,7 @@
"key": "qvkdps07r4",
"label": "Wiederkehrend",
"labelPosition": "Right",
"leftColumn": 1,
"leftColumn": 0,
"maxDynamicHeight": 9000,
"minDynamicHeight": 4,
"minWidth": 450,
@@ -38,7 +38,7 @@
"parentRowSpace": 10,
"renderMode": "CANVAS",
"responsiveBehavior": "fill",
"rightColumn": 45,
"rightColumn": 39,
"topRow": 42,
"type": "CHECKBOX_WIDGET",
"version": 1,
@@ -1,9 +1,9 @@
{
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 10,
"bottomRow": 14,
"boxShadow": "none",
"buttonColor": "{{appsmith.theme.colors.primaryColor}}",
"buttonColor": "{{\n appsmith.store.recurringDays?.friday === true\n ? \"#1f5d85\"\n : \"#b8c5ce\"\n}}",
"buttonVariant": "PRIMARY",
"disabledWhenInvalid": false,
"dynamicBindingPathList": [
@@ -14,7 +14,16 @@
"key": "borderRadius"
}
],
"dynamicTriggerPathList": [],
"dynamicPropertyPathList": [
{
"key": "buttonColor"
}
],
"dynamicTriggerPathList": [
{
"key": "onClick"
}
],
"isDefaultClickDisabled": true,
"isDisabled": false,
"isLoading": false,
@@ -27,8 +36,9 @@
"mobileRightColumn": 18,
"mobileTopRow": 34,
"needsErrorInfo": false,
"originalBottomRow": 36,
"originalTopRow": 32,
"onClick": "{{RecurringBooking.toggleDay('friday');}}",
"originalBottomRow": 14,
"originalTopRow": 10,
"parentColumnSpace": 8.875,
"parentId": "nxgzciev9f",
"parentRowSpace": 10,
@@ -39,9 +49,9 @@
"responsiveBehavior": "hug",
"rightColumn": 61,
"text": "Fr",
"topRow": 6,
"topRow": 10,
"type": "BUTTON_WIDGET",
"version": 1,
"widgetId": "nb3yusumzy",
"widgetName": "Button3Copy3"
"widgetName": "FridayButton"
}
@@ -1,9 +1,9 @@
{
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 10,
"bottomRow": 14,
"boxShadow": "none",
"buttonColor": "{{appsmith.theme.colors.primaryColor}}",
"buttonColor": "{{\n appsmith.store.recurringDays?.monday === true\n ? \"#1f5d85\"\n : \"#b8c5ce\"\n}}",
"buttonVariant": "PRIMARY",
"disabledWhenInvalid": false,
"dynamicBindingPathList": [
@@ -14,7 +14,16 @@
"key": "borderRadius"
}
],
"dynamicTriggerPathList": [],
"dynamicPropertyPathList": [
{
"key": "buttonColor"
}
],
"dynamicTriggerPathList": [
{
"key": "onClick"
}
],
"isDefaultClickDisabled": true,
"isDisabled": false,
"isLoading": false,
@@ -27,8 +36,9 @@
"mobileRightColumn": 18,
"mobileTopRow": 34,
"needsErrorInfo": false,
"originalBottomRow": 36,
"originalTopRow": 32,
"onClick": "{{RecurringBooking.toggleDay('monday');}}",
"originalBottomRow": 13,
"originalTopRow": 9,
"parentColumnSpace": 8.875,
"parentId": "nxgzciev9f",
"parentRowSpace": 10,
@@ -39,9 +49,9 @@
"responsiveBehavior": "hug",
"rightColumn": 12,
"text": "Mo",
"topRow": 6,
"topRow": 10,
"type": "BUTTON_WIDGET",
"version": 1,
"widgetId": "94tiejotz5",
"widgetName": "Button3"
"widgetName": "MondayButton"
}
@@ -4,12 +4,12 @@
"borderColor": "#E0DEDE",
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"borderWidth": "1",
"bottomRow": 60,
"bottomRow": 64,
"boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}",
"children": [
{
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 120,
"bottomRow": 160,
"boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}",
"canExtend": false,
"containerStyle": "none",
@@ -83,7 +83,7 @@
"mobileRightColumn": 26,
"mobileTopRow": 58,
"needsErrorInfo": false,
"originalBottomRow": 60,
"originalBottomRow": 64,
"originalTopRow": 48,
"parentColumnSpace": 18.56015625,
"parentId": "q44lz1f0e4",
@@ -0,0 +1,65 @@
{
"accentColor": "{{appsmith.theme.colors.primaryColor}}",
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 5,
"boxShadow": "none",
"defaultOptionValue": "{{ ((options, serverSideFiltering) => ( \"1\" ))(RecurringWeeksSelect.options, RecurringWeeksSelect.serverSideFiltering) }}",
"dynamicBindingPathList": [
{
"key": "accentColor"
},
{
"key": "borderRadius"
},
{
"key": "sourceData"
},
{
"key": "defaultOptionValue"
}
],
"dynamicHeight": "FIXED",
"dynamicPropertyPathList": [
{
"key": "sourceData"
}
],
"dynamicTriggerPathList": [],
"isDisabled": false,
"isFilterable": true,
"isLoading": false,
"isRequired": false,
"isVisible": true,
"key": "h9bwm3lkaw",
"labelAlignment": "left",
"labelPosition": "Top",
"labelText": "",
"labelTextSize": "0.875rem",
"labelWidth": 5,
"leftColumn": 5,
"maxDynamicHeight": 9000,
"minDynamicHeight": 4,
"minWidth": 450,
"mobileBottomRow": 6,
"mobileLeftColumn": 16,
"mobileRightColumn": 36,
"mobileTopRow": 0,
"needsErrorInfo": false,
"optionLabel": "value",
"optionValue": "value",
"parentColumnSpace": 10.41759033203125,
"parentId": "nxgzciev9f",
"parentRowSpace": 10,
"placeholderText": "Select option",
"renderMode": "CANVAS",
"responsiveBehavior": "fill",
"rightColumn": 15,
"serverSideFiltering": false,
"sourceData": "{{\n Array.from(\n { length: 10 },\n (_, index) => ({\n label:\n String(index + 1) +\n (\n index === 0\n ? \" Woche\"\n : \" Wochen\"\n ),\n value:\n String(index + 1)\n })\n )\n}}",
"topRow": 1,
"type": "SELECT_WIDGET",
"version": 1,
"widgetId": "6knfmofwsh",
"widgetName": "RecurringWeeksSelect"
}
@@ -0,0 +1,55 @@
{
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 5,
"dynamicBindingPathList": [
{
"key": "truncateButtonColor"
},
{
"key": "fontFamily"
},
{
"key": "borderRadius"
},
{
"key": "text"
}
],
"dynamicHeight": "AUTO_HEIGHT",
"dynamicTriggerPathList": [],
"fontFamily": "{{appsmith.theme.fontFamily.appFont}}",
"fontSize": "1rem",
"fontStyle": "BOLD",
"isLoading": false,
"isVisible": true,
"key": "wb75ugacfs",
"leftColumn": 15,
"maxDynamicHeight": 9000,
"minDynamicHeight": 4,
"minWidth": 450,
"mobileBottomRow": 52,
"mobileLeftColumn": 39,
"mobileRightColumn": 55,
"mobileTopRow": 48,
"needsErrorInfo": false,
"originalBottomRow": 6,
"originalTopRow": 1,
"overflow": "NONE",
"parentColumnSpace": 18.56015625,
"parentId": "nxgzciev9f",
"parentRowSpace": 10,
"renderMode": "CANVAS",
"responsiveBehavior": "fill",
"rightColumn": 34,
"shouldTruncate": false,
"text": "{{\n (() => {\n const weeks = Number(\n RecurringWeeksSelect.selectedOptionValue || 1\n );\n\n return weeks === 1\n ? \"Woche buchen\"\n : `Wochen buchen`;\n })()\n}}",
"textAlign": "LEFT",
"textColor": "#231F20",
"topRow": 1,
"truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}",
"type": "TEXT_WIDGET",
"version": 1,
"widgetId": "8ry3cxgy91",
"widgetName": "RecurringWeeksText"
}
@@ -1,61 +0,0 @@
{
"accentColor": "{{appsmith.theme.colors.primaryColor}}",
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 4,
"boxShadow": "none",
"defaultOptionValue": "Woche",
"dynamicBindingPathList": [
{
"key": "accentColor"
},
{
"key": "borderRadius"
}
],
"dynamicHeight": "FIXED",
"dynamicPropertyPathList": [
{
"key": "sourceData"
}
],
"dynamicTriggerPathList": [],
"isDisabled": false,
"isFilterable": false,
"isLoading": false,
"isRequired": false,
"isVisible": true,
"key": "f8k90o33yd",
"labelAlignment": "left",
"labelPosition": "Top",
"labelText": "",
"labelTextSize": "0.875rem",
"labelWidth": 5,
"leftColumn": 29,
"maxDynamicHeight": 9000,
"minDynamicHeight": 4,
"minWidth": 450,
"mobileBottomRow": 30,
"mobileLeftColumn": 1,
"mobileRightColumn": 21,
"mobileTopRow": 23,
"needsErrorInfo": false,
"optionLabel": "name",
"optionValue": "code",
"originalBottomRow": 32,
"originalTopRow": 28,
"parentColumnSpace": 8.875,
"parentId": "nxgzciev9f",
"parentRowSpace": 10,
"placeholderText": "Woche",
"renderMode": "CANVAS",
"responsiveBehavior": "fill",
"rightColumn": 44,
"serverSideFiltering": false,
"sourceData": "[\n {\n \"name\": \"Tag\",\n \"code\": \"Tag\"\n },\n {\n \"name\": \"Woche\",\n \"code\": \"Woche\"\n },\n {\n \"name\": \"Monat\",\n \"code\": \"Monat\"\n }\n]",
"topRow": 0,
"type": "SELECT_WIDGET",
"version": 1,
"widgetId": "2woyknsibz",
"widgetName": "Select1"
}
@@ -1,61 +0,0 @@
{
"accentColor": "{{appsmith.theme.colors.primaryColor}}",
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 4,
"boxShadow": "none",
"defaultOptionValue": "1",
"dynamicBindingPathList": [
{
"key": "accentColor"
},
{
"key": "borderRadius"
}
],
"dynamicHeight": "FIXED",
"dynamicPropertyPathList": [
{
"key": "sourceData"
}
],
"dynamicTriggerPathList": [],
"isDisabled": false,
"isFilterable": false,
"isLoading": false,
"isRequired": false,
"isVisible": true,
"key": "f8k90o33yd",
"labelAlignment": "left",
"labelPosition": "Left",
"labelText": "Wiederholen alle",
"labelTextSize": "0.875rem",
"labelWidth": "13",
"leftColumn": 0,
"maxDynamicHeight": 9000,
"minDynamicHeight": 4,
"minWidth": 450,
"mobileBottomRow": 31,
"mobileLeftColumn": 0,
"mobileRightColumn": 18,
"mobileTopRow": 24,
"needsErrorInfo": false,
"optionLabel": "name",
"optionValue": "name",
"originalBottomRow": 32,
"originalTopRow": 28,
"parentColumnSpace": 8.875,
"parentId": "nxgzciev9f",
"parentRowSpace": 10,
"placeholderText": "Select option",
"renderMode": "CANVAS",
"responsiveBehavior": "fill",
"rightColumn": 28,
"serverSideFiltering": false,
"sourceData": "[\n {\n \"name\": \"1\",\n \"code\": \"1\"\n },\n {\n \"name\": \"2\",\n \"code\": \"2\"\n },\n {\n \"name\": \"3\",\n \"code\": \"3\"\n },\n\t{\n \"name\": \"4\",\n \"code\": \"4\"\n },\n\t{\n \"name\": \"5\",\n \"code\": \"5\"\n },\n\t{\n \"name\": \"6\",\n \"code\": \"6\"\n },\n\t{\n \"name\": \"7\",\n \"code\": \"7\"\n },\n\t{\n \"name\": \"8\",\n \"code\": \"8\"\n },\n\t{\n \"name\": \"9\",\n \"code\": \"9\"\n },\n\t{\n \"name\": \"10\",\n \"code\": \"10\"\n }\n]",
"topRow": 0,
"type": "SELECT_WIDGET",
"version": 1,
"widgetId": "0cpd4km3ko",
"widgetName": "Select2"
}
@@ -0,0 +1,52 @@
{
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 5,
"dynamicBindingPathList": [
{
"key": "truncateButtonColor"
},
{
"key": "fontFamily"
},
{
"key": "borderRadius"
}
],
"dynamicHeight": "AUTO_HEIGHT",
"dynamicTriggerPathList": [],
"fontFamily": "{{appsmith.theme.fontFamily.appFont}}",
"fontSize": "1rem",
"fontStyle": "BOLD",
"isLoading": false,
"isVisible": true,
"key": "wb75ugacfs",
"leftColumn": 1,
"maxDynamicHeight": 9000,
"minDynamicHeight": 4,
"minWidth": 450,
"mobileBottomRow": 5,
"mobileLeftColumn": 1,
"mobileRightColumn": 17,
"mobileTopRow": 1,
"needsErrorInfo": false,
"originalBottomRow": 6,
"originalTopRow": 2,
"overflow": "NONE",
"parentColumnSpace": 10.41759033203125,
"parentId": "nxgzciev9f",
"parentRowSpace": 10,
"renderMode": "CANVAS",
"responsiveBehavior": "fill",
"rightColumn": 5,
"shouldTruncate": false,
"text": "Für",
"textAlign": "LEFT",
"textColor": "#231F20",
"topRow": 1,
"truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}",
"type": "TEXT_WIDGET",
"version": 1,
"widgetId": "er2hrgk010",
"widgetName": "Text3"
}
@@ -1,20 +1,29 @@
{
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 10,
"bottomRow": 14,
"boxShadow": "none",
"buttonColor": "{{appsmith.theme.colors.primaryColor}}",
"buttonColor": "{{\n appsmith.store.recurringDays?.thursday === true\n ? \"#1f5d85\"\n : \"#b8c5ce\"\n}}",
"buttonVariant": "PRIMARY",
"disabledWhenInvalid": false,
"dynamicBindingPathList": [
{
"key": "buttonColor"
"key": "borderRadius"
},
{
"key": "borderRadius"
"key": "buttonColor"
}
],
"dynamicPropertyPathList": [
{
"key": "buttonColor"
}
],
"dynamicTriggerPathList": [
{
"key": "onClick"
}
],
"dynamicTriggerPathList": [],
"isDefaultClickDisabled": true,
"isDisabled": false,
"isLoading": false,
@@ -27,8 +36,9 @@
"mobileRightColumn": 18,
"mobileTopRow": 34,
"needsErrorInfo": false,
"originalBottomRow": 36,
"originalTopRow": 32,
"onClick": "{{RecurringBooking.toggleDay('thursday');}}",
"originalBottomRow": 14,
"originalTopRow": 10,
"parentColumnSpace": 8.875,
"parentId": "nxgzciev9f",
"parentRowSpace": 10,
@@ -39,9 +49,9 @@
"responsiveBehavior": "hug",
"rightColumn": 49,
"text": "Do",
"topRow": 6,
"topRow": 10,
"type": "BUTTON_WIDGET",
"version": 1,
"widgetId": "chvxisz1qb",
"widgetName": "Button3Copy2"
"widgetName": "ThursdayButton"
}
@@ -1,9 +1,9 @@
{
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 10,
"bottomRow": 14,
"boxShadow": "none",
"buttonColor": "{{appsmith.theme.colors.primaryColor}}",
"buttonColor": "{{\n appsmith.store.recurringDays?.tuesday === true\n ? \"#1f5d85\"\n : \"#b8c5ce\"\n}}",
"buttonVariant": "PRIMARY",
"disabledWhenInvalid": false,
"dynamicBindingPathList": [
@@ -14,7 +14,16 @@
"key": "borderRadius"
}
],
"dynamicTriggerPathList": [],
"dynamicPropertyPathList": [
{
"key": "buttonColor"
}
],
"dynamicTriggerPathList": [
{
"key": "onClick"
}
],
"isDefaultClickDisabled": true,
"isDisabled": false,
"isLoading": false,
@@ -27,8 +36,9 @@
"mobileRightColumn": 18,
"mobileTopRow": 34,
"needsErrorInfo": false,
"originalBottomRow": 36,
"originalTopRow": 32,
"onClick": "{{RecurringBooking.toggleDay('tuesday');}}",
"originalBottomRow": 15,
"originalTopRow": 11,
"parentColumnSpace": 8.875,
"parentId": "nxgzciev9f",
"parentRowSpace": 10,
@@ -39,9 +49,9 @@
"responsiveBehavior": "hug",
"rightColumn": 24,
"text": "Di",
"topRow": 6,
"topRow": 10,
"type": "BUTTON_WIDGET",
"version": 1,
"widgetId": "ghkjz9swkj",
"widgetName": "Button3Copy"
"widgetName": "TuesdayButton"
}
@@ -1,9 +1,9 @@
{
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 10,
"bottomRow": 14,
"boxShadow": "none",
"buttonColor": "{{appsmith.theme.colors.primaryColor}}",
"buttonColor": "{{\n appsmith.store.recurringDays?.wednesday === true\n ? \"#1f5d85\"\n : \"#b8c5ce\"\n}}",
"buttonVariant": "PRIMARY",
"disabledWhenInvalid": false,
"dynamicBindingPathList": [
@@ -14,7 +14,16 @@
"key": "borderRadius"
}
],
"dynamicTriggerPathList": [],
"dynamicPropertyPathList": [
{
"key": "buttonColor"
}
],
"dynamicTriggerPathList": [
{
"key": "onClick"
}
],
"isDefaultClickDisabled": true,
"isDisabled": false,
"isLoading": false,
@@ -27,8 +36,9 @@
"mobileRightColumn": 18,
"mobileTopRow": 34,
"needsErrorInfo": false,
"originalBottomRow": 36,
"originalTopRow": 32,
"onClick": "{{RecurringBooking.toggleDay('wednesday');}}",
"originalBottomRow": 15,
"originalTopRow": 11,
"parentColumnSpace": 8.875,
"parentId": "nxgzciev9f",
"parentRowSpace": 10,
@@ -39,9 +49,9 @@
"responsiveBehavior": "hug",
"rightColumn": 36,
"text": "Mi",
"topRow": 6,
"topRow": 10,
"type": "BUTTON_WIDGET",
"version": 1,
"widgetId": "26qk30tfsj",
"widgetName": "Button3Copy1"
"widgetName": "WednesdayButton"
}
@@ -64,5 +64,5 @@
"type": "SELECT_WIDGET",
"version": 1,
"widgetId": "u53n2l4s54",
"widgetName": "BookingStartTime"
"widgetName": "StartTimeSelect"
}
@@ -0,0 +1,55 @@
{
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 92,
"dynamicBindingPathList": [
{
"key": "truncateButtonColor"
},
{
"key": "fontFamily"
},
{
"key": "borderRadius"
},
{
"key": "text"
}
],
"dynamicHeight": "AUTO_HEIGHT",
"dynamicTriggerPathList": [],
"fontFamily": "{{appsmith.theme.fontFamily.appFont}}",
"fontSize": "1rem",
"fontStyle": "BOLD",
"isLoading": false,
"isVisible": true,
"key": "wb75ugacfs",
"leftColumn": 39,
"maxDynamicHeight": 9000,
"minDynamicHeight": 4,
"minWidth": 450,
"mobileBottomRow": 56,
"mobileLeftColumn": 43,
"mobileRightColumn": 59,
"mobileTopRow": 52,
"needsErrorInfo": false,
"originalBottomRow": 92,
"originalTopRow": 43,
"overflow": "NONE",
"parentColumnSpace": 18.56015625,
"parentId": "q44lz1f0e4",
"parentRowSpace": 10,
"renderMode": "CANVAS",
"responsiveBehavior": "fill",
"rightColumn": 48,
"shouldTruncate": false,
"text": "{{\n JSON.stringify(\n appsmith.store.bookingFormData || {},\n null,\n 2\n )\n}}",
"textAlign": "LEFT",
"textColor": "#231F20",
"topRow": 43,
"truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}",
"type": "TEXT_WIDGET",
"version": 1,
"widgetId": "y723ubcx1i",
"widgetName": "Text4"
}
@@ -0,0 +1,55 @@
{
"animateLoading": true,
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
"bottomRow": 48,
"dynamicBindingPathList": [
{
"key": "truncateButtonColor"
},
{
"key": "fontFamily"
},
{
"key": "borderRadius"
},
{
"key": "text"
}
],
"dynamicHeight": "AUTO_HEIGHT",
"dynamicTriggerPathList": [],
"fontFamily": "{{appsmith.theme.fontFamily.appFont}}",
"fontSize": "1rem",
"fontStyle": "BOLD",
"isLoading": false,
"isVisible": true,
"key": "wb75ugacfs",
"leftColumn": 48,
"maxDynamicHeight": 9000,
"minDynamicHeight": 4,
"minWidth": 450,
"mobileBottomRow": 47,
"mobileLeftColumn": 48,
"mobileRightColumn": 64,
"mobileTopRow": 43,
"needsErrorInfo": false,
"originalBottomRow": 47,
"originalTopRow": 43,
"overflow": "NONE",
"parentColumnSpace": 18.56015625,
"parentId": "q44lz1f0e4",
"parentRowSpace": 10,
"renderMode": "CANVAS",
"responsiveBehavior": "fill",
"rightColumn": 64,
"shouldTruncate": false,
"text": "{{\n \"Start: \" +\n appsmith.store.bookingFormData?.startDate +\n \" | Ende: \" +\n appsmith.store.bookingFormData?.endDate\n}}",
"textAlign": "LEFT",
"textColor": "#231F20",
"topRow": 43,
"truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}",
"type": "TEXT_WIDGET",
"version": 1,
"widgetId": "8r5ranska0",
"widgetName": "Text5"
}
@@ -6,7 +6,7 @@
"borderWidth": "1",
"bottomRow": 69,
"boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}",
"defaultModel": "{{\n {\n seatId:\n appsmith.store.selectedSeatId || \"\",\n\n seatName:\n appsmith.store.selectedSeatName || \"\",\n\n events:\n GetSeatBookings.data || []\n }\n}}",
"defaultModel": "{{\n {\n seatId:\n appsmith.store.selectedSeatId || \"\",\n\n seatName:\n appsmith.store.selectedSeatName || \"\",\n\n currentUser:\n appsmith.user.email ||\n appsmith.user.username ||\n \"\",\n\n events:\n GetSeatBookings.data || []\n }\n}}",
"dynamicBindingPathList": [
{
"key": "theme"