Archived
Newest
This commit is contained in:
1 parent
a6489b53a6
commit
c39e4ad581
11 files changed
+320
-24
No files matched your search
@@ -1,4 +1,9 @@
|
||||
UPDATE Sitzplätze
|
||||
SET status = 'belegt'
|
||||
WHERE id = '{{Custom4.model.selectedSeat.id}}'
|
||||
AND status = 'frei';
|
||||
SELECT
|
||||
id,
|
||||
titel AS title,
|
||||
startzeit AS start,
|
||||
endzeit AS end,
|
||||
gebucht_von
|
||||
FROM `buchungen`
|
||||
WHERE platz_id = '{{appsmith.store.selectedSeatId}}'
|
||||
ORDER BY startzeit;
|
||||
@@ -5,7 +5,7 @@
|
||||
"pluginType": "DB",
|
||||
"unpublishedAction": {
|
||||
"actionConfiguration": {
|
||||
"body": "UPDATE Sitzplätze\nSET status = 'belegt'\nWHERE id = '{{Custom4.model.selectedSeat.id}}'\n AND status = 'frei';",
|
||||
"body": "SELECT\n id,\n titel AS title,\n startzeit AS start,\n endzeit AS end,\n gebucht_von\nFROM `buchungen`\nWHERE platz_id = '{{appsmith.store.selectedSeatId}}'\nORDER BY startzeit;",
|
||||
"encodeParamsToggle": true,
|
||||
"paginationType": "NONE",
|
||||
"pluginSpecifiedTemplates": [
|
||||
|
||||
@@ -3,7 +3,8 @@ SELECT
|
||||
name,
|
||||
x,
|
||||
y,
|
||||
'frei' AS status
|
||||
active,
|
||||
status
|
||||
FROM `Sitzplätze`
|
||||
WHERE active = 1
|
||||
ORDER BY id;
|
||||
@@ -5,7 +5,7 @@
|
||||
"pluginType": "DB",
|
||||
"unpublishedAction": {
|
||||
"actionConfiguration": {
|
||||
"body": "SELECT\n id,\n name,\n x,\n y,\n 'frei' AS status\nFROM `Sitzplätze`\nWHERE active = 1\nORDER BY id;",
|
||||
"body": "SELECT\n id,\n name,\n x,\n y,\n active,\n status\nFROM `Sitzplätze`\nWHERE active = 1\nORDER BY id;",
|
||||
"encodeParamsToggle": true,
|
||||
"paginationType": "NONE",
|
||||
"pluginSpecifiedTemplates": [
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
"srcDoc": {
|
||||
"css": "@charset \"UTF-8\";\nhtml,\nbody {\n margin: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n font-family: Arial, sans-serif;\n}\n\n/* Bild + Overlay */\n#imgHolder {\n position: relative;\n width: 100%;\n height: 700px; /* feste Höhe, damit sicher nicht 0 */\n overflow: hidden;\n border-radius: 6px;\n background: #f3f4f6;\n}\n\n#floorplanImage {\n position: absolute;\n inset: 0;\n z-index: 1;\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n#seatLayer {\n position: absolute;\n inset: 0;\n z-index: 2;\n width: 100%;\n height: 100%;\n pointer-events: none; /* Punkte bekommen später pointer-events:auto */\n}\n\n/* Sitzpunkte */\n.seat {\n position: absolute;\n z-index: 3;\n display: block;\n width: 18px;\n height: 18px;\n padding: 0;\n transform: translate(-50%, -50%);\n border: 2px solid #ffffff;\n border-radius: 50%;\n background: #22c55e;\n color: #22c55e;\n cursor: pointer;\n pointer-events: auto;\n appearance: none;\n box-sizing: border-box;\n box-shadow: 0 0 5px currentColor, 0 0 10px currentColor;\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n}\n\n.seat:hover {\n z-index: 10;\n transform: translate(-50%, -50%) scale(1.45);\n box-shadow: 0 0 8px currentColor, 0 0 16px currentColor;\n}\n\n/* Farben nach Status */\n.seat.frei {\n background: #22c55e; /* Grün */\n color: #22c55e;\n}\n\n.seat.belegt {\n background: #ef4444; /* Rot */\n color: #ef4444;\n}\n\n.seat.selected {\n outline: 3px solid #2563eb;\n outline-offset: 3px;\n}\n\n/* Legende */\n#legend {\n display: flex;\n flex-wrap: wrap;\n gap: 14px;\n margin-top: 8px;\n color: #374151;\n font-size: 13px;\n}\n\n.legendItem {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n}\n\n.legendColor {\n display: inline-block;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n}\n\n.legendColor.frei {\n background: #22c55e;\n}\n\n.legendColor.belegt {\n background: #ef4444;\n}",
|
||||
"html": "<div id=\"seatPlan\">\n\n <div id=\"imgHolder\">\n <!-- Kein src hier, das Bild kommt über JavaScript -->\n <img id=\"floorplanImage\" alt=\"Büroplan\">\n\t\t<div id=\"seatLayer\"></div>\n\t\t\n\t\t\n </div>\n</div>",
|
||||
"js": "let selectedSeat = null;\n\n/**\n * Base64-Bild: WICHTIG – Typ muss zum Inhalt passen!\n * Wenn dein String mit \"iVBORw0KGgo...\" beginnt, ist das PNG:\n */\nconst FLOORPLAN_IMAGE = \"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAABnIAAAQ4CAYAAAA95EInAAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAPEA9QD5+3k5EQAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+oIDA4CFVTYzV4AACAASURBVHja7N15vGRVfe/979p1uo/QDTR2QyMgUfCqXCOKCiR5YkwQlIgxiYKgJE4YxRsxMqoYh0RNvPe5z5/PH3fKYxKNAyCjzJOtoMwCMgoiMs8zdPfpWuv5Y09rrb121Rn27j7D583rdO3aVaf26VOHrnXqu3+/n3n6+Q1OAAAAAAAsMK6x0bjS43Fmfyw34xsAAL0zM9o9/Qczc3mc8Y9teOaAJWGCbwEAAAAAYCHZHAHOXI8xu8yHJAcAtgzT+k+w8+4Sfcb0/j13pt7TSajjgq/ZEeYASwJBDgAAAABgwXDVH8GeLf74buzd3cy/jnn/RABAC7PQvsxp/KPmTPqfwbHhTHuoM/dAhzAHWCoIcgAAAAAA816fVTizeezRwY0b/3nd/zUAYB7+o73AvsyR7dVc+hYXPdbIYCeqpik2zVz/Bs50FA4BmK8IcgAAAAAA81pfVTiufWOa92//vJl/uW4GewEAszUy6HCj45fm6BvXfHQ/2GkNdcIqnW4CHapzgMWMIAcAAAAAMC/NNGiZ0eNOM2mZTrXO9B7KzeQuAIC+X1tipnmria+5xOMEYY1L3n90UNNVVQ1hDrCYEeQAAAAAAOaVvtqoTTfAmVF4M6JX2my+fNdVmkMoBGApMF08hGn9dzPYZVzisKNaqzVDnWlV6cwp0PEegzAHWFQIcgAAAAAA80YfbdRmH+BMJ7yZfmjj2m+Y3d8JAHjRaGWm/RBu7Cea1mocF31KWxVO2ErNu2gJdOZaWeOYmwMsMgQ5AAAAAIAtro8qnOm2ZhsV9EwrvEmexe3G/jVGNGjr4q8PALyujGJadrjmTdW/6cGMnFQ1jh/stFXh1FUz3kV0zK6qc2i1BiwWBDkAAAAAgC2q/yqcWQY4MwhvXOPdvNbPnGVm42b6CQAAM2JHoxAnEeKb8B7GRf/ujwp2/FDHeRGOaQ90RrZba63gGffaQZgDLAYEOQAAAACALaK3KpwZBTjjq29S+9sqboLQZmT24vovwnGkPQAWMTONWMKN/1fWpG4xxR9BIY5rBjzOeJ/vvMobE+U0LlmlEwc67dU3bkzgM+6bQJgDLHQEOQAAAACAza7rKpxuA5wx4c2Y4GZUYJP8ytzYJmtb6AkCgB7NNVHoIKw28T93xjReMIL7eAFPEO4U+43zXi/KUCeoxnH1X7sR3IwLdMLqnJmHObP9XADzAUEOAAAAAGCzme7cmhk/5ojHGxngjK2+cY37VeGNSzxiW4c150b/bV3wyJv5yQCALfmCkLDZk4Yi3RgVDhlT/VtdhTtBsDM61DGNapy24GZcBY2bw+wcR5gDLFAEOQAAAACA3m2JNmoj59ykApwR1Tet4U0qoGkLbZwbE+R0FOW4zfIpANApM9t/lOaQSDiZsBqm9RimJeQxCoOd9lCnDnQUBTFhcJPvnk51zmzbpc0lCAKwpRDkAAAAAAB61XUVznQeLxXyTK/axrVebw1vWsKc1GgG1zIYZ8bN1RzhC4BF+lrRwSea6o/pf7pxbZ9jEgdJVPAUYU8y1AkCHdUt1qpApb5eXoyvzplrqzXm5gALCUEOAAAAAKAXW74KZ3YBTrr6xoXhSRzURNddoh9bqtom3cXHjfg7AQBm9lpRMyZ1TxN8TnifvLamPeSp7xcc0A91ij/qKp040PFbrrmWih2Nrs4hzAEWPYIcAAAAAEDn2tqadfN4s52DM/0AJxnYuHCGjh/dBMFNIrRxqXDJJf8WcwpuXEff7+5+CAAsOmZ+fTEz+XKC8DyuevHvE90W5ziNXCfIceIKnjjEiQOdaIZOot3atKpzZtUujTAHWCgIcgAAAAAAnZlXVThxgOPtGx3gtIc5zvnhTDrIcTNo3RYff+T3NDwYAGzhf+jnxxcz8suJSnDiOTx19uLCSKi4zf9051IVPcWjOlc/eJHj5IU43mydRogTtVwzrvhSzPSqczqbm0OYAywE5unnN7ACBAAAAADMyUJpozbtAKel+qYZ2LgwuBk1b8elWqaNmI4zojTHdfaEAcA8Zvr49DCtaNzHmEa1jb/HeAN4Utt12FNvm2LD+I9f3j8+RmPb+yqDL920VN+k7juD7xZhDjAvUZEDAAAAAJiTeV2F44JrLVU36QCnCl4SQU4qvAlCIhe3d4uDJtfyLXPt373Wih1SGQCL/QVmekyiRsW7Uf4LgamuRcGOVzWTXy/bn+WP7lfmpKp02it3VM3Oqb9aV83QKQf0BO3WguqcRKu1ZDu1UVU7477ZVOYA8xVBDgAAAABgVnoLcKqNuQc41Z4obJlOgFNV34wIcqr7JkIc5/3R2Pa+RpfutTZ63s30dgHAkmFS/57Gg228+pb6av3vt5Ep2p3lgY6i664Kc7xgR3nIMrL1WuPrSgU6dbu1OrRx0baigGYac3MIc4BFgSAHAAAAADBjzZzFdfyYHVXhzCrASYU27eFN8DhBiDONqqDgetu+1u/WNO4HAEuHiTecSf7bWbU2i8Md46p9+X3K6p0iEHGuquCpgh0v9KhCHbW1PGsJdPyZOXF1TqMaxyXm5hDmAIsdQQ4AAAAAYNoWQhVOIzBJhiszDXDyy7bwpi7eSVfwpFu6VV9A428dz9Np/b51HKYBwMJkGlfNmH8XjTHBv53l/JpynylClTrgqcMd47xgpwphvFCnzEKKKp0w2CkDnfyyqMepbmtU5zgTtlpLhjej2qnNNszRLD4PQF8IcgAAAAAAY/UR4FSPsDmqcEYGN+0BTuq+o0Kcxgyd6rj+XJ1ohk6UyIz6nrhZfevd/PjZAbBgmXn/1biRdzOpG8pWZdVuU7RTK6+WQYuKgMcLd8pgpwht4lBHJqrKcSO+iVWu06zOyYOb/JOr6pzpzM3pJMyZy+cB6BpBDgAAAABgpC0R4swtwFEQoLRV0IysvEkFN1HFTRAANR7brwqKwiDvj3Hzfby9I7/tbubP5iL+QQWWILOU/oJuZt+CINCJ2puZaGqOd90Yr0qm2K7CHeNVzpRt0PxQR2GwU1b/tM/Rkf9VRNf8Kp1pzs3pKcxZEj9qwDxFkAMAAAAASFpoVTjjghs1gpjis9sCnFQ4439uFNqEn+t/nc3j+1938Ld0qW+5m9l3343doZnfAwD6Y2Z7TzPDzzCmub8YmGOC7TLU8SpxqkAnvzRFBY3xW6tVbdfK/So7oOXhjvdvbhAgqZ6LE1blxJd1lU5ybk7PYY7E3BxgSyHIAQAAAAA0pMfVzOcqnDDMqQpiUm3UEkFOa4DjV994nxffv9r2Pi/5dbS0e1PyevBdaHwjXft3GACWEJPeY9L3jW/zZ+Oktsv7Gxkv0KlvM8aEoU4R5sjU1TN5oOO1XBvVam1kqOO1V9sSYU6jlRuAzYUgBwAAAABQWXxVOHEbtSjAKT93RIBTV9+0hD5tjzfi6/FbrsWBjYu+927kU+BmOTcHABaRRvu09H1MdGfjleWktsuWaMZvoVa0Vitn1FTVOd62KYIVUwYm5X3VDHHi6hy/vVq1XYU6XkWOM/krQLWPMAdYzAhyAAAAAAC9BTjVo0wrxHHJfY0Ap7g+rSqc1uqbertum9YS4Hj3ccGsHP8xwgDHP3a6lVv0NSdm/LQ/Py23TftJBoAFxsz2bnXaYBq740DHBNupS1M8nomrcapWan6YUwc69eAcScbJlaGO2qpzoqoceTFPsiLHEeYAixxBDgAAAAAscQutCsffHl2Fk5hZk6y+aQY4VbATf44X3FRhTRT0jGvdFlz6X3exI2iw1tZezY17ltxm+qEBgIjZsgcyLTebKNGpqmBMYtsLaiRVoUwV6FQt17zAxpiiQicOc7wKnfK/amiOC+b2lP+8mujrdvJarEVzdfK2boQ5wGJHkAMAAAAAS9T8qMKpN9oqb/xAJww+pluF094SrQ5v4gqcOMCJQ6BmwNMIflrbrIWVOsVNClrEVd8al3xGUlU7c/456PWHDMCCZxbSw5s4H8n3RgNyqnCm2l2GLvLm40TVN1IY3pQfSoQ3qUCn/JDXbi36qL8jrrioK3TqeTn5ZT1HhzAHWMwIcgAAAABgCeq1Cqfa2EJVOF6Q02ijlmqlFoQzqQBnxD61hzxhqzZVX8fIIKr4uzS/X27E8xZ/j6nGAbAFmc15KDP2awjm4pgwKPHDnnAejopqm/p+RmF4o2qf/+GUGdMe3hinLGtGNtW/rSb9/fPn5qTCnPqSMAdYrAhyAAAAAGAJmc9VOG0hjh9u+PumW4UTVMYk2qO1BzX5ftuy37++fv16Pf3Uk3rw/nv14AP36uknH9fUxo11u7UEb/RBsJ2edD1ie5SZPhbH2GzHqOYseT/fmCeitln87G7eY9SVim7e/79hjNHExDKt2XEnvXrP39WuL/8dbb1ihYwxYaCT5bU3mYysVRDutOU6wTfFr8rxXzTmYZgjEegAvfx78/TzG1gtAAAAAMASsHmqcJqPmarSifd1OQtnVBXO+OBmXIAT3W6tHn3kYf1s3cV68olH+SEDgCVsq61X6E/e8W7tvMuuYZiTmWa4Y4yyLK7eMS0VPUUTtsb1qIIouFR9H1U7wtZtydLine truncated
|
||||
"js": "let selectedSeat = null;\n\n/**\n * Base64-Bild: WICHTIG – Typ muss zum Inhalt passen!\n * Wenn dein String mit \"iVBORw0KGgo...\" beginnt, ist das PNG:\n */\nconst FLOORPLAN_IMAGE = \"data:image/jpeg;base64,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 truncated
|
||||
},
|
||||
"theme": "{{appsmith.theme}}",
|
||||
"topRow": 8,
|
||||
@@ -63,7 +63,7 @@
|
||||
"uncompiledSrcDoc": {
|
||||
"css": "html,\nbody {\n margin: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n font-family: Arial, sans-serif;\n}\n\n\n/* Bild + Overlay */\n#imgHolder {\n position: relative;\n width: 100%;\n height: 700px; /* feste Höhe, damit sicher nicht 0 */\n overflow: hidden;\n border-radius: 6px;\n background: #f3f4f6;\n}\n\n#floorplanImage {\n position: absolute;\n inset: 0;\n z-index: 1;\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n#seatLayer {\n position: absolute;\n inset: 0;\n z-index: 2;\n width: 100%;\n height: 100%;\n pointer-events: none; /* Punkte bekommen später pointer-events:auto */\n}\n\n/* Sitzpunkte */\n.seat {\n position: absolute;\n z-index: 3;\n display: block;\n width: 18px;\n height: 18px;\n padding: 0;\n transform: translate(-50%, -50%);\n border: 2px solid #ffffff;\n border-radius: 50%;\n background: #22c55e;\n color: #22c55e;\n cursor: pointer;\n pointer-events: auto;\n appearance: none;\n box-sizing: border-box;\n box-shadow:\n 0 0 5px currentColor,\n 0 0 10px currentColor;\n transition:\n transform 0.15s ease,\n box-shadow 0.15s ease;\n}\n\n.seat:hover {\n z-index: 10;\n transform: translate(-50%, -50%) scale(1.45);\n box-shadow:\n 0 0 8px currentColor,\n 0 0 16px currentColor;\n}\n\n/* Farben nach Status */\n.seat.frei {\n background: #22c55e; /* Grün */\n color: #22c55e;\n}\n\n.seat.belegt {\n background: #ef4444; /* Rot */\n color: #ef4444;\n}\n\n.seat.selected {\n outline: 3px solid #2563eb;\n outline-offset: 3px;\n}\n\n/* Legende */\n#legend {\n display: flex;\n flex-wrap: wrap;\n gap: 14px;\n margin-top: 8px;\n color: #374151;\n font-size: 13px;\n}\n\n.legendItem {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n}\n\n.legendColor {\n display: inline-block;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n}\n\n.legendColor.frei {\n background: #22c55e;\n}\n\n.legendColor.belegt {\n background: #ef4444;\n}",
|
||||
"html": "<div id=\"seatPlan\">\n\n <div id=\"imgHolder\">\n <!-- Kein src hier, das Bild kommt über JavaScript -->\n <img id=\"floorplanImage\" alt=\"Büroplan\">\n\t\t<div id=\"seatLayer\"></div>\n\t\t\n\t\t\n </div>\n</div>",
|
||||
"js": "let selectedSeat = null;\n\n/**\n * Base64-Bild: WICHTIG – Typ muss zum Inhalt passen!\n * Wenn dein String mit \"iVBORw0KGgo...\" beginnt, ist das PNG:\n */\nconst FLOORPLAN_IMAGE =\n \"data:image/jpeg;base64,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 truncated
|
||||
"js": "let selectedSeat = null;\n\n/**\n * Base64-Bild: WICHTIG – Typ muss zum Inhalt passen!\n * Wenn dein String mit \"iVBORw0KGgo...\" beginnt, ist das PNG:\n */\nconst FLOORPLAN_IMAGE =\n \"data:image/jpeg;base64,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 truncated
|
||||
},
|
||||
"version": 1,
|
||||
"widgetId": "londvdt302",
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"animateLoading": true,
|
||||
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
|
||||
"bottomRow": 55,
|
||||
"boxShadow": "none",
|
||||
"buttonColor": "{{appsmith.theme.colors.primaryColor}}",
|
||||
"buttonStyle": "PRIMARY",
|
||||
"buttonVariant": "SECONDARY",
|
||||
"disabledWhenInvalid": false,
|
||||
"dynamicBindingPathList": [
|
||||
{
|
||||
"key": "buttonColor"
|
||||
},
|
||||
{
|
||||
"key": "borderRadius"
|
||||
}
|
||||
],
|
||||
"dynamicTriggerPathList": [
|
||||
{
|
||||
"key": "onClick"
|
||||
}
|
||||
],
|
||||
"isDefaultClickDisabled": true,
|
||||
"isDisabled": false,
|
||||
"isLoading": false,
|
||||
"isVisible": true,
|
||||
"key": "ecgxpla2dn",
|
||||
"leftColumn": 35,
|
||||
"minWidth": 120,
|
||||
"mobileBottomRow": 22,
|
||||
"mobileLeftColumn": 31,
|
||||
"mobileRightColumn": 47,
|
||||
"mobileTopRow": 18,
|
||||
"needsErrorInfo": false,
|
||||
"onClick": "{{closeModal(SeatCalendar.name);}}",
|
||||
"parentId": "ekq4ry46pv",
|
||||
"placement": "CENTER",
|
||||
"recaptchaType": "V3",
|
||||
"renderMode": "CANVAS",
|
||||
"resetFormOnClick": false,
|
||||
"responsiveBehavior": "hug",
|
||||
"rightColumn": 48,
|
||||
"text": "Close",
|
||||
"topRow": 51,
|
||||
"type": "BUTTON_WIDGET",
|
||||
"version": 1,
|
||||
"widgetId": "7pn60oleot",
|
||||
"widgetName": "Button1"
|
||||
}
|
||||
+14
-15
@@ -1,9 +1,10 @@
|
||||
{
|
||||
"animateLoading": true,
|
||||
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
|
||||
"bottomRow": 39,
|
||||
"bottomRow": 55,
|
||||
"boxShadow": "none",
|
||||
"buttonColor": "{{appsmith.theme.colors.primaryColor}}",
|
||||
"buttonStyle": "PRIMARY_BUTTON",
|
||||
"buttonVariant": "PRIMARY",
|
||||
"disabledWhenInvalid": false,
|
||||
"dynamicBindingPathList": [
|
||||
@@ -18,27 +19,25 @@
|
||||
"isDisabled": false,
|
||||
"isLoading": false,
|
||||
"isVisible": true,
|
||||
"key": "cq4le5rmj2",
|
||||
"leftColumn": 0,
|
||||
"key": "ecgxpla2dn",
|
||||
"leftColumn": 48,
|
||||
"minWidth": 120,
|
||||
"mobileBottomRow": 39,
|
||||
"mobileLeftColumn": 0,
|
||||
"mobileRightColumn": 12,
|
||||
"mobileTopRow": 35,
|
||||
"mobileBottomRow": 22,
|
||||
"mobileLeftColumn": 47,
|
||||
"mobileRightColumn": 63,
|
||||
"mobileTopRow": 18,
|
||||
"needsErrorInfo": false,
|
||||
"parentColumnSpace": 19.546875,
|
||||
"parentId": "0",
|
||||
"parentRowSpace": 10,
|
||||
"parentId": "ekq4ry46pv",
|
||||
"placement": "CENTER",
|
||||
"recaptchaType": "V3",
|
||||
"renderMode": "CANVAS",
|
||||
"resetFormOnClick": false,
|
||||
"responsiveBehavior": "hug",
|
||||
"rightColumn": 12,
|
||||
"text": "Submit",
|
||||
"topRow": 35,
|
||||
"rightColumn": 62,
|
||||
"text": "Confirm",
|
||||
"topRow": 51,
|
||||
"type": "BUTTON_WIDGET",
|
||||
"version": 1,
|
||||
"widgetId": "qd0s7lgv0i",
|
||||
"widgetName": "Button1"
|
||||
"widgetId": "zhd8u92koc",
|
||||
"widgetName": "Button2"
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"backgroundColor": "#FFFFFF",
|
||||
"borderColor": "#E0DEDE",
|
||||
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
|
||||
"borderWidth": "1",
|
||||
"bottomRow": 51,
|
||||
"boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}",
|
||||
"defaultModel": "{{\n {\n events: GetSeats.data || [],\n seatId: appsmith.store.selectedSeatId,\n seatName: appsmith.store.selectedSeatName\n }\n}}",
|
||||
"dynamicBindingPathList": [
|
||||
{
|
||||
"key": "theme"
|
||||
},
|
||||
{
|
||||
"key": "borderRadius"
|
||||
},
|
||||
{
|
||||
"key": "boxShadow"
|
||||
},
|
||||
{
|
||||
"key": "defaultModel"
|
||||
}
|
||||
],
|
||||
"dynamicHeight": "FIXED",
|
||||
"dynamicTriggerPathList": [
|
||||
{
|
||||
"key": "onResetClick"
|
||||
}
|
||||
],
|
||||
"events": [
|
||||
"onResetClick"
|
||||
],
|
||||
"isCanvas": false,
|
||||
"isLoading": false,
|
||||
"isSearchWildcard": true,
|
||||
"isVisible": true,
|
||||
"key": "3r58ovsolf",
|
||||
"leftColumn": 0,
|
||||
"maxDynamicHeight": 9000,
|
||||
"minDynamicHeight": 4,
|
||||
"mobileBottomRow": 40,
|
||||
"mobileLeftColumn": 3,
|
||||
"mobileRightColumn": 26,
|
||||
"mobileTopRow": 10,
|
||||
"needsErrorInfo": false,
|
||||
"onResetClick": "{{showAlert('Successfully reset!!', '');}}",
|
||||
"parentColumnSpace": 7.40625,
|
||||
"parentId": "ekq4ry46pv",
|
||||
"parentRowSpace": 10,
|
||||
"renderMode": "CANVAS",
|
||||
"rightColumn": 64,
|
||||
"srcDoc": {
|
||||
"css": "html,\nbody {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n font-family: Arial, sans-serif;\n overflow: auto;\n}\n\n#calendarWrapper {\n width: 100%;\n min-height: 620px;\n box-sizing: border-box;\n padding: 10px;\n background: #ffffff;\n}\n\n#calendarHeader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 10px;\n padding: 8px 10px;\n border: 1px solid #d1d5db;\n border-radius: 6px;\n background: #f9fafb;\n}\n\n#calendarSeatTitle {\n font-size: 15px;\n font-weight: 600;\n color: #374151;\n}\n\n#calendarViewButtons {\n display: flex;\n gap: 6px;\n}\n\n#calendarViewButtons button {\n padding: 6px 10px;\n border: 1px solid #9ca3af;\n border-radius: 5px;\n background: #ffffff;\n color: #374151;\n cursor: pointer;\n}\n\n#calendarViewButtons button:hover {\n background: #e5e7eb;\n}\n\n#calendar {\n width: 100%;\n min-height: 520px;\n}\n\n#calendarSelection {\n margin-top: 10px;\n padding: 8px 10px;\n border: 1px solid #d1d5db;\n border-radius: 5px;\n background: #f9fafb;\n color: #374151;\n font-size: 13px;\n}\n\n/* FullCalendar-Anpassungen */\n.fc {\n font-size: 13px;\n}\n\n.fc .fc-button {\n background: #374151;\n border-color: #374151;\n}\n\n.fc .fc-button:hover,\n.fc .fc-button-active {\n background: #111827;\n border-color: #111827;\n}\n\n.fc .fc-daygrid-day.fc-day-today,\n.fc .fc-timegrid-col.fc-day-today {\n background: #eff6ff;\n}\n\n.fc .fc-event {\n cursor: pointer;\n}",
|
||||
"html": "<div id=\"calendarWrapper\">\n <div id=\"calendarHeader\">\n <div id=\"calendarSeatTitle\">\n Kalender\n </div>\n\n <div id=\"calendarViewButtons\">\n <button id=\"monthButton\" type=\"button\">\n Monat\n </button>\n\n <button id=\"dayButton\" type=\"button\">\n Tag\n </button>\n </div>\n </div>\n\n <div id=\"calendar\"></div>\n\n <div id=\"calendarSelection\">\n Kein Zeitraum ausgewählt\n </div>\n\n <script src=\"https://cdn.jsdelivr.net/npm/[email protected]/index.global.min.js\"></script>\n</div>",
|
||||
"js": "let calendar = null;\nfunction getModel() {\n const model = appsmith.model || {};\n if (typeof model === \"string\") {\n try {\n return JSON.parse(model);\n } catch (error) {\n return {};\n }\n }\n return model;\n}\nfunction getEvents() {\n const model = getModel();\n if (!Array.isArray(model.events)) {\n return [];\n }\n return model.events;\n}\nfunction getSeatName() {\n const model = getModel();\n return model.seatName || model.seatId || \"kein Platz ausgewählt\";\n}\nfunction updateSeatTitle() {\n const titleElement = document.getElementById(\"calendarSeatTitle\");\n if (!titleElement) {\n return;\n }\n titleElement.textContent = `Kalender für ${getSeatName()}`;\n}\nfunction updateSelectionText(text) {\n const selectionElement = document.getElementById(\"calendarSelection\");\n if (!selectionElement) {\n return;\n }\n selectionElement.textContent = text;\n}\nfunction createCalendar() {\n const calendarElement = document.getElementById(\"calendar\");\n if (!calendarElement) {\n return;\n }\n if (typeof FullCalendar === \"undefined\") {\n calendarElement.textContent = \"FullCalendar konnte nicht geladen werden.\";\n return;\n }\n if (calendar) {\n calendar.destroy();\n }\n calendar = new FullCalendar.Calendar(calendarElement, {\n initialView: \"dayGridMonth\",\n locale: \"de\",\n firstDay: 1,\n navLinks: true,\n selectable: true,\n selectMirror: true,\n editable: false,\n eventStartEditable: false,\n eventDurationEditable: false,\n height: \"auto\",\n headerToolbar: {\n left: \"prev,next today\",\n center: \"title\",\n right: \"\"\n },\n buttonText: {\n today: \"Heute\"\n },\n slotDuration: \"00:30:00\",\n snapDuration: \"00:30:00\",\n slotMinTime: \"07:00:00\",\n slotMaxTime: \"20:00:00\",\n allDaySlot: true,\n nowIndicator: true,\n events: getEvents(),\n dateClick(info) {\n if (info.view.type === \"dayGridMonth\") {\n calendar.changeView(\"timeGridDay\", info.date);\n return;\n }\n updateSelectionText(`Ausgewählter Zeitpunkt: ${info.dateStr}`);\n },\n navLinkDayClick(date) {\n calendar.changeView(\"timeGridDay\", date);\n },\n select(info) {\n const start = formatDateTime(info.start);\n const end = formatDateTime(info.end);\n updateSelectionText(`Ausgewählt: ${start} bis ${end}`);\n appsmith.updateModel({\n selectedRange: {\n start: info.startStr,\n end: info.endStr,\n allDay: info.allDay\n }\n });\n },\n eventClick(info) {\n const event = info.event;\n const start = event.start ? formatDateTime(event.start) : \"\";\n const end = event.end ? formatDateTime(event.end) : \"\";\n const rangeText = event.allDay ? \"Ganztägig\" : `${start} bis ${end}`;\n updateSelectionText(`${event.title || \"Buchung\"} – ${rangeText}`);\n }\n });\n calendar.render();\n}\nfunction formatDateTime(date) {\n if (!date) {\n return \"\";\n }\n return new Intl.DateTimeFormat(\"de-DE\", {\n dateStyle: \"short\",\n timeStyle: \"short\"\n }).format(date);\n}\nfunction registerButtons() {\n const monthButton = document.getElementById(\"monthButton\");\n const dayButton = document.getElementById(\"dayButton\");\n if (monthButton) {\n monthButton.addEventListener(\"click\", () => {\n if (calendar) {\n calendar.changeView(\"dayGridMonth\");\n }\n });\n }\n if (dayButton) {\n dayButton.addEventListener(\"click\", () => {\n if (calendar) {\n calendar.changeView(\"timeGridDay\", calendar.getDate());\n }\n });\n }\n}\nfunction refreshCalendarEvents() {\n if (!calendar) {\n createCalendar();\n return;\n }\n calendar.removeAllEventSources();\n calendar.addEventSource(getEvents());\n}\nappsmith.onReady(() => {\n updateSeatTitle();\n registerButtons();\n createCalendar();\n appsmith.onModelChange(() => {\n updateSeatTitle();\n refreshCalendarEvents();\n });\n});"
|
||||
},
|
||||
"theme": "{{appsmith.theme}}",
|
||||
"topRow": 4,
|
||||
"type": "CUSTOM_WIDGET",
|
||||
"uncompiledSrcDoc": {
|
||||
"css": "html,\nbody {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n font-family: Arial, sans-serif;\n overflow: auto;\n}\n\n#calendarWrapper {\n width: 100%;\n min-height: 620px;\n box-sizing: border-box;\n padding: 10px;\n background: #ffffff;\n}\n\n#calendarHeader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 10px;\n padding: 8px 10px;\n border: 1px solid #d1d5db;\n border-radius: 6px;\n background: #f9fafb;\n}\n\n#calendarSeatTitle {\n font-size: 15px;\n font-weight: 600;\n color: #374151;\n}\n\n#calendarViewButtons {\n display: flex;\n gap: 6px;\n}\n\n#calendarViewButtons button {\n padding: 6px 10px;\n border: 1px solid #9ca3af;\n border-radius: 5px;\n background: #ffffff;\n color: #374151;\n cursor: pointer;\n}\n\n#calendarViewButtons button:hover {\n background: #e5e7eb;\n}\n\n#calendar {\n width: 100%;\n min-height: 520px;\n}\n\n#calendarSelection {\n margin-top: 10px;\n padding: 8px 10px;\n border: 1px solid #d1d5db;\n border-radius: 5px;\n background: #f9fafb;\n color: #374151;\n font-size: 13px;\n}\n\n/* FullCalendar-Anpassungen */\n\n.fc {\n font-size: 13px;\n}\n\n.fc .fc-button {\n background: #374151;\n border-color: #374151;\n}\n\n.fc .fc-button:hover,\n.fc .fc-button-active {\n background: #111827;\n border-color: #111827;\n}\n\n.fc .fc-daygrid-day.fc-day-today,\n.fc .fc-timegrid-col.fc-day-today {\n background: #eff6ff;\n}\n\n.fc .fc-event {\n cursor: pointer;\n}",
|
||||
"html": "<div id=\"calendarWrapper\">\n <div id=\"calendarHeader\">\n <div id=\"calendarSeatTitle\">\n Kalender\n </div>\n\n <div id=\"calendarViewButtons\">\n <button id=\"monthButton\" type=\"button\">\n Monat\n </button>\n\n <button id=\"dayButton\" type=\"button\">\n Tag\n </button>\n </div>\n </div>\n\n <div id=\"calendar\"></div>\n\n <div id=\"calendarSelection\">\n Kein Zeitraum ausgewählt\n </div>\n\n <script src=\"https://cdn.jsdelivr.net/npm/[email protected]/index.global.min.js\"></script>\n</div>",
|
||||
"js": "let calendar = null;\n\nfunction getModel() {\n const model = appsmith.model || {};\n\n if (typeof model === \"string\") {\n try {\n return JSON.parse(model);\n } catch (error) {\n return {};\n }\n }\n\n return model;\n}\n\nfunction getEvents() {\n const model = getModel();\n\n if (!Array.isArray(model.events)) {\n return [];\n }\n\n return model.events;\n}\n\nfunction getSeatName() {\n const model = getModel();\n\n return model.seatName ||\n model.seatId ||\n \"kein Platz ausgewählt\";\n}\n\nfunction updateSeatTitle() {\n const titleElement = document.getElementById(\"calendarSeatTitle\");\n\n if (!titleElement) {\n return;\n }\n\n titleElement.textContent =\n `Kalender für ${getSeatName()}`;\n}\n\nfunction updateSelectionText(text) {\n const selectionElement =\n document.getElementById(\"calendarSelection\");\n\n if (!selectionElement) {\n return;\n }\n\n selectionElement.textContent = text;\n}\n\nfunction createCalendar() {\n const calendarElement =\n document.getElementById(\"calendar\");\n\n if (!calendarElement) {\n return;\n }\n\n if (typeof FullCalendar === \"undefined\") {\n calendarElement.textContent =\n \"FullCalendar konnte nicht geladen werden.\";\n return;\n }\n\n if (calendar) {\n calendar.destroy();\n }\n\n calendar = new FullCalendar.Calendar(calendarElement, {\n initialView: \"dayGridMonth\",\n\n locale: \"de\",\n firstDay: 1,\n\n navLinks: true,\n selectable: true,\n selectMirror: true,\n\n editable: false,\n eventStartEditable: false,\n eventDurationEditable: false,\n\n height: \"auto\",\n\n headerToolbar: {\n left: \"prev,next today\",\n center: \"title\",\n right: \"\"\n },\n\n buttonText: {\n today: \"Heute\"\n },\n\n slotDuration: \"00:30:00\",\n snapDuration: \"00:30:00\",\n\n slotMinTime: \"07:00:00\",\n slotMaxTime: \"20:00:00\",\n\n allDaySlot: true,\n nowIndicator: true,\n\n events: getEvents(),\n\n dateClick(info) {\n if (info.view.type === \"dayGridMonth\") {\n calendar.changeView(\"timeGridDay\", info.date);\n return;\n }\n\n updateSelectionText(\n `Ausgewählter Zeitpunkt: ${info.dateStr}`\n );\n },\n\n navLinkDayClick(date) {\n calendar.changeView(\"timeGridDay\", date);\n },\n\n select(info) {\n const start = formatDateTime(info.start);\n const end = formatDateTime(info.end);\n\n updateSelectionText(\n `Ausgewählt: ${start} bis ${end}`\n );\n\n appsmith.updateModel({\n selectedRange: {\n start: info.startStr,\n end: info.endStr,\n allDay: info.allDay\n }\n });\n },\n\n eventClick(info) {\n const event = info.event;\n const start = event.start\n ? formatDateTime(event.start)\n : \"\";\n\n const end = event.end\n ? formatDateTime(event.end)\n : \"\";\n\n const rangeText = event.allDay\n ? \"Ganztägig\"\n : `${start} bis ${end}`;\n\n updateSelectionText(\n `${event.title || \"Buchung\"} – ${rangeText}`\n );\n }\n });\n\n calendar.render();\n}\n\nfunction formatDateTime(date) {\n if (!date) {\n return \"\";\n }\n\n return new Intl.DateTimeFormat(\"de-DE\", {\n dateStyle: \"short\",\n timeStyle: \"short\"\n }).format(date);\n}\n\nfunction registerButtons() {\n const monthButton =\n document.getElementById(\"monthButton\");\n\n const dayButton =\n document.getElementById(\"dayButton\");\n\n if (monthButton) {\n monthButton.addEventListener(\"click\", () => {\n if (calendar) {\n calendar.changeView(\"dayGridMonth\");\n }\n });\n }\n\n if (dayButton) {\n dayButton.addEventListener(\"click\", () => {\n if (calendar) {\n calendar.changeView(\n \"timeGridDay\",\n calendar.getDate()\n );\n }\n });\n }\n}\n\nfunction refreshCalendarEvents() {\n if (!calendar) {\n createCalendar();\n return;\n }\n\n calendar.removeAllEventSources();\n calendar.addEventSource(getEvents());\n}\n\nappsmith.onReady(() => {\n updateSeatTitle();\n registerButtons();\n createCalendar();\n\n appsmith.onModelChange(() => {\n updateSeatTitle();\n refreshCalendarEvents();\n });\n});"
|
||||
},
|
||||
"version": 1,
|
||||
"widgetId": "ad7fob2vs9",
|
||||
"widgetName": "Custom5"
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"animateLoading": true,
|
||||
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
|
||||
"bottomRow": 4,
|
||||
"boxShadow": "none",
|
||||
"buttonColor": "{{appsmith.theme.colors.primaryColor}}",
|
||||
"buttonVariant": "TERTIARY",
|
||||
"dynamicBindingPathList": [
|
||||
{
|
||||
"key": "buttonColor"
|
||||
},
|
||||
{
|
||||
"key": "borderRadius"
|
||||
}
|
||||
],
|
||||
"dynamicTriggerPathList": [
|
||||
{
|
||||
"key": "onClick"
|
||||
}
|
||||
],
|
||||
"iconName": "cross",
|
||||
"iconSize": 24,
|
||||
"isDisabled": false,
|
||||
"isLoading": false,
|
||||
"isVisible": true,
|
||||
"key": "0h513i0hp4",
|
||||
"leftColumn": 58,
|
||||
"minWidth": 50,
|
||||
"mobileBottomRow": 4,
|
||||
"mobileLeftColumn": 58,
|
||||
"mobileRightColumn": 64,
|
||||
"mobileTopRow": 0,
|
||||
"needsErrorInfo": false,
|
||||
"onClick": "{{closeModal(SeatCalendar.name);}}",
|
||||
"parentId": "ekq4ry46pv",
|
||||
"renderMode": "CANVAS",
|
||||
"responsiveBehavior": "hug",
|
||||
"rightColumn": 64,
|
||||
"topRow": 0,
|
||||
"type": "ICON_BUTTON_WIDGET",
|
||||
"version": 1,
|
||||
"widgetId": "djgr636dvq",
|
||||
"widgetName": "IconButton1"
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"animateLoading": true,
|
||||
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
|
||||
"bottomRow": 595,
|
||||
"boxShadow": "none",
|
||||
"canEscapeKeyClose": true,
|
||||
"canOutsideClickClose": true,
|
||||
"children": [
|
||||
{
|
||||
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
|
||||
"bottomRow": 570,
|
||||
"boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}",
|
||||
"canExtend": true,
|
||||
"detachFromLayout": true,
|
||||
"dynamicBindingPathList": [
|
||||
{
|
||||
"key": "borderRadius"
|
||||
},
|
||||
{
|
||||
"key": "boxShadow"
|
||||
}
|
||||
],
|
||||
"dynamicHeight": "AUTO_HEIGHT",
|
||||
"flexLayers": [],
|
||||
"isDisabled": false,
|
||||
"isLoading": false,
|
||||
"isVisible": true,
|
||||
"key": "evumr7v2vl",
|
||||
"leftColumn": 0,
|
||||
"maxDynamicHeight": 9000,
|
||||
"minDynamicHeight": 4,
|
||||
"minHeight": 510,
|
||||
"minWidth": 450,
|
||||
"mobileBottomRow": 240,
|
||||
"mobileLeftColumn": 0,
|
||||
"mobileRightColumn": 254.109375,
|
||||
"mobileTopRow": 0,
|
||||
"needsErrorInfo": false,
|
||||
"parentColumnSpace": 1,
|
||||
"parentId": "dvuv5jdjrt",
|
||||
"parentRowSpace": 1,
|
||||
"renderMode": "CANVAS",
|
||||
"responsiveBehavior": "fill",
|
||||
"rightColumn": 254.109375,
|
||||
"shouldScrollContents": false,
|
||||
"topRow": 0,
|
||||
"type": "CANVAS_WIDGET",
|
||||
"version": 1,
|
||||
"widgetId": "ekq4ry46pv",
|
||||
"widgetName": "Canvas6"
|
||||
}
|
||||
],
|
||||
"detachFromLayout": true,
|
||||
"dynamicBindingPathList": [
|
||||
{
|
||||
"key": "borderRadius"
|
||||
}
|
||||
],
|
||||
"dynamicHeight": "AUTO_HEIGHT",
|
||||
"height": 570,
|
||||
"isCanvas": true,
|
||||
"isLoading": false,
|
||||
"key": "u2wwvtyano",
|
||||
"leftColumn": 0,
|
||||
"maxDynamicHeight": 9000,
|
||||
"minDynamicHeight": 24,
|
||||
"mobileBottomRow": 49,
|
||||
"mobileLeftColumn": 0,
|
||||
"mobileRightColumn": 13,
|
||||
"mobileTopRow": 25,
|
||||
"needsErrorInfo": false,
|
||||
"parentColumnSpace": 19.546875,
|
||||
"parentId": "0",
|
||||
"parentRowSpace": 10,
|
||||
"renderMode": "CANVAS",
|
||||
"rightColumn": 13,
|
||||
"shouldScrollContents": true,
|
||||
"topRow": 25,
|
||||
"type": "MODAL_WIDGET",
|
||||
"version": 2,
|
||||
"widgetId": "dvuv5jdjrt",
|
||||
"widgetName": "SeatCalendar",
|
||||
"width": 600
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"animateLoading": true,
|
||||
"borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
|
||||
"bottomRow": 4,
|
||||
"dynamicBindingPathList": [
|
||||
{
|
||||
"key": "truncateButtonColor"
|
||||
},
|
||||
{
|
||||
"key": "fontFamily"
|
||||
},
|
||||
{
|
||||
"key": "borderRadius"
|
||||
}
|
||||
],
|
||||
"dynamicHeight": "AUTO_HEIGHT",
|
||||
"fontFamily": "{{appsmith.theme.fontFamily.appFont}}",
|
||||
"fontSize": "1.25rem",
|
||||
"fontStyle": "BOLD",
|
||||
"isLoading": false,
|
||||
"isVisible": true,
|
||||
"key": "an6hvv1l3x",
|
||||
"leftColumn": 0,
|
||||
"maxDynamicHeight": 9000,
|
||||
"minDynamicHeight": 4,
|
||||
"minWidth": 450,
|
||||
"mobileBottomRow": 5,
|
||||
"mobileLeftColumn": 1,
|
||||
"mobileRightColumn": 41,
|
||||
"mobileTopRow": 1,
|
||||
"needsErrorInfo": false,
|
||||
"overflow": "NONE",
|
||||
"parentId": "ekq4ry46pv",
|
||||
"renderMode": "CANVAS",
|
||||
"responsiveBehavior": "fill",
|
||||
"rightColumn": 40,
|
||||
"shouldTruncate": false,
|
||||
"text": "Modal Title",
|
||||
"textAlign": "LEFT",
|
||||
"textColor": "#231F20",
|
||||
"topRow": 0,
|
||||
"truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}",
|
||||
"type": "TEXT_WIDGET",
|
||||
"version": 1,
|
||||
"widgetId": "0p7o0uvgok",
|
||||
"widgetName": "Text1"
|
||||
}
|
||||
Reference in new issue
Block a user