From d5467c3f1a6b6c54d6946cfb6989944154818505 Mon Sep 17 00:00:00 2001 From: Florian Bernard Date: Fri, 31 Jul 2026 10:42:00 +0000 Subject: [PATCH] App erstellt --- application.json | 8 + datasources/Buspro Datenbank.json | 6 + pages/Page1/Page1.json | 2 +- .../jsobjects/CheckinData/CheckinData.js | 1759 ++++++++++------- pages/Page1/jsobjects/JSObject1/JSObject1.js | 5 - pages/Page1/jsobjects/JSObject1/metadata.json | 11 - .../metadata.json | 21 +- .../CheckinData-saveAusgabe/metadata.json | 41 + .../CheckinData-saveRueckgabe/metadata.json | 41 + .../queries/qryDiagnoseTermin/metadata.json | 35 + .../qryDiagnoseTermin/qryDiagnoseTermin.txt | 71 + pages/Page1/queries/qryHaeuser/metadata.json | 31 + pages/Page1/queries/qryHaeuser/qryHaeuser.txt | 102 + pages/Page1/queries/qryReisen/metadata.json | 35 + pages/Page1/queries/qryReisen/qryReisen.txt | 46 + .../Page1/queries/qryTeilnehmer/metadata.json | 35 + .../queries/qryTeilnehmer/qryTeilnehmer.txt | 194 ++ .../widgets/Daateiauswahl/Dateiupload.json | 20 +- .../widgets/Daateiauswahl/Hausauswahl.json | 25 +- pages/Page1/widgets/Daateiauswahl/Termin.json | 76 + .../DatenquelleTabs/DatenquelleTabs.json | 165 ++ .../DatenquelleTabs/Tracker/Eingecheckt.json | 55 + .../Tracker}/Filter/Filter.json | 14 +- .../Tracker/Filter/Teilnehmer.json | 779 ++++++++ .../Tracker}/Filter/inpSuche.json | 0 .../Tracker}/Filter/selCheckin.json | 2 +- .../Tracker/Filter/selLeistung.json | 65 + .../Tracker}/Filter/selReiseStatus.json | 2 +- .../Tracker}/Filter/selVorgang.json | 2 +- .../Tracker/Offene_Kunden.json | 55 + .../Tracker/Teilnehmende_Statistik.json | 54 + .../Tracker/Tracker.json | 19 +- .../TrackerCopy/FilterCopy/FilterCopy.json | 92 + .../FilterCopy/TeilnehmerUpload.json} | 296 +-- .../FilterCopy/inpSucheUpload.json | 55 + .../FilterCopy/selCheckinUpload.json | 65 + .../FilterCopy/selLeistungUpload.json} | 8 +- .../FilterCopy/selReiseStatusUpload.json | 65 + .../FilterCopy/selVorgangUpload.json | 65 + .../TrackerCopy/TrackerCopy.json | 92 + .../TrackerCopy/UploadEingecheckt.json | 55 + .../TrackerCopy/UploadOffen.json | 55 + .../TrackerCopy/UploadTeilnehmende.json | 54 + pages/Page1/widgets/Ueberschrift.json | 4 +- pages/Page2/Page2.json | 31 + .../widgets/Tracker/Eingecheckt.json | 8 +- .../widgets/Tracker/Offene_Kunden.json | 8 +- .../Tracker/Teilnehmende_Statistik.json | 12 +- pages/Page2/widgets/Tracker/Tracker.json | 92 + pages/Page3/Page3.json | 31 + 50 files changed, 3888 insertions(+), 976 deletions(-) create mode 100644 datasources/Buspro Datenbank.json delete mode 100644 pages/Page1/jsobjects/JSObject1/JSObject1.js delete mode 100644 pages/Page1/jsobjects/JSObject1/metadata.json rename pages/Page1/queries/{JSObject1-TeilnehmerprimaryColumnscustomColumn1onClick => CheckinData-quantity}/metadata.json (57%) create mode 100644 pages/Page1/queries/CheckinData-saveAusgabe/metadata.json create mode 100644 pages/Page1/queries/CheckinData-saveRueckgabe/metadata.json create mode 100644 pages/Page1/queries/qryDiagnoseTermin/metadata.json create mode 100644 pages/Page1/queries/qryDiagnoseTermin/qryDiagnoseTermin.txt create mode 100644 pages/Page1/queries/qryHaeuser/metadata.json create mode 100644 pages/Page1/queries/qryHaeuser/qryHaeuser.txt create mode 100644 pages/Page1/queries/qryReisen/metadata.json create mode 100644 pages/Page1/queries/qryReisen/qryReisen.txt create mode 100644 pages/Page1/queries/qryTeilnehmer/metadata.json create mode 100644 pages/Page1/queries/qryTeilnehmer/qryTeilnehmer.txt create mode 100644 pages/Page1/widgets/Daateiauswahl/Termin.json create mode 100644 pages/Page1/widgets/DatenquelleTabs/DatenquelleTabs.json create mode 100644 pages/Page1/widgets/DatenquelleTabs/Tracker/Eingecheckt.json rename pages/Page1/widgets/{ => DatenquelleTabs/Tracker}/Filter/Filter.json (93%) create mode 100644 pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/Teilnehmer.json rename pages/Page1/widgets/{ => DatenquelleTabs/Tracker}/Filter/inpSuche.json (100%) rename pages/Page1/widgets/{ => DatenquelleTabs/Tracker}/Filter/selCheckin.json (92%) create mode 100644 pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selLeistung.json rename pages/Page1/widgets/{ => DatenquelleTabs/Tracker}/Filter/selReiseStatus.json (86%) rename pages/Page1/widgets/{ => DatenquelleTabs/Tracker}/Filter/selVorgang.json (81%) create mode 100644 pages/Page1/widgets/DatenquelleTabs/Tracker/Offene_Kunden.json create mode 100644 pages/Page1/widgets/DatenquelleTabs/Tracker/Teilnehmende_Statistik.json rename pages/Page1/widgets/{ => DatenquelleTabs}/Tracker/Tracker.json (89%) create mode 100644 pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/FilterCopy.json rename pages/Page1/widgets/{Teilnehmer.json => DatenquelleTabs/TrackerCopy/FilterCopy/TeilnehmerUpload.json} (71%) create mode 100644 pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/inpSucheUpload.json create mode 100644 pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selCheckinUpload.json rename pages/Page1/widgets/{Filter/selLeistung.json => DatenquelleTabs/TrackerCopy/FilterCopy/selLeistungUpload.json} (88%) create mode 100644 pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selReiseStatusUpload.json create mode 100644 pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selVorgangUpload.json create mode 100644 pages/Page1/widgets/DatenquelleTabs/TrackerCopy/TrackerCopy.json create mode 100644 pages/Page1/widgets/DatenquelleTabs/TrackerCopy/UploadEingecheckt.json create mode 100644 pages/Page1/widgets/DatenquelleTabs/TrackerCopy/UploadOffen.json create mode 100644 pages/Page1/widgets/DatenquelleTabs/TrackerCopy/UploadTeilnehmende.json create mode 100644 pages/Page2/Page2.json rename pages/{Page1 => Page2}/widgets/Tracker/Eingecheckt.json (92%) rename pages/{Page1 => Page2}/widgets/Tracker/Offene_Kunden.json (90%) rename pages/{Page1 => Page2}/widgets/Tracker/Teilnehmende_Statistik.json (87%) create mode 100644 pages/Page2/widgets/Tracker/Tracker.json create mode 100644 pages/Page3/Page3.json diff --git a/application.json b/application.json index 8402c18..98e960a 100644 --- a/application.json +++ b/application.json @@ -23,6 +23,14 @@ { "id": "Page1", "isDefault": true + }, + { + "id": "Page2", + "isDefault": false + }, + { + "id": "Page3", + "isDefault": false } ], "unpublishedAppLayout": { diff --git a/datasources/Buspro Datenbank.json b/datasources/Buspro Datenbank.json new file mode 100644 index 0000000..5c6f08d --- /dev/null +++ b/datasources/Buspro Datenbank.json @@ -0,0 +1,6 @@ +{ + "gitSyncId": "6a54b983d3076fb3cf8e67f0_5cf03e94-172f-48c8-a148-ace8f51cbf4e", + "isAutoGenerated": false, + "name": "Buspro Datenbank", + "pluginId": "mssql-plugin" +} \ No newline at end of file diff --git a/pages/Page1/Page1.json b/pages/Page1/Page1.json index c034112..94352c6 100644 --- a/pages/Page1/Page1.json +++ b/pages/Page1/Page1.json @@ -5,7 +5,7 @@ { "dsl": { "backgroundColor": "none", - "bottomRow": 1010, + "bottomRow": 1060, "canExtend": true, "containerStyle": "none", "detachFromLayout": true, diff --git a/pages/Page1/jsobjects/CheckinData/CheckinData.js b/pages/Page1/jsobjects/CheckinData/CheckinData.js index ae91386..1ff154f 100644 --- a/pages/Page1/jsobjects/CheckinData/CheckinData.js +++ b/pages/Page1/jsobjects/CheckinData/CheckinData.js @@ -1,56 +1,56 @@ export default { - ALL_VALUE: "__ALL__", + ALL_VALUE: "__ALL__", - CORE_COLUMNS: [ - "Vorgang", - "Name", - "Vorname", - "E-Mail", - "Email", - "Geb.-Datum", - "Zus_Wunsch", - "Skipassnummer" - ], + CORE_COLUMNS: [ + "Vorgang", + "Name", + "Vorname", + "E-Mail", + "Email", + "Geb.-Datum", + "Zus_Wunsch", + "Skipassnummer" + ], - getWorkbook() { - const file = Dateiupload.files?.[0]; + getWorkbook() { + const file = Dateiupload.files?.[0]; - if (!file) { - return []; - } + if (!file) { + return []; + } - const rawData = file.data; + const rawData = file.data; - if ( - rawData === null || - rawData === undefined || - rawData === "" - ) { - return []; - } + if ( + rawData === null || + rawData === undefined || + rawData === "" + ) { + return []; + } - if (typeof rawData === "string") { - try { - return JSON.parse(rawData); - } catch (error) { - return []; - } - } + if (typeof rawData === "string") { + try { + return JSON.parse(rawData); + } catch (error) { + return []; + } + } - return rawData; - }, + return rawData; + }, - getSheetRows() { - const workbook = this.getWorkbook(); + getSheetRows() { + const workbook = this.getWorkbook(); - if ( - !Array.isArray(workbook) || - workbook.length === 0 - ) { - return []; - } + if ( + !Array.isArray(workbook) || + workbook.length === 0 + ) { + return []; + } - /* + /* * Appsmith liefert Excel-Dateien meist so: * * [ @@ -63,835 +63,1060 @@ export default { * } * ] */ - if ( - workbook[0] !== null && - typeof workbook[0] === "object" && - !Array.isArray(workbook[0]) && - Array.isArray(workbook[0].data) - ) { - const preferredSheet = - workbook.find(sheet => - String(sheet?.name ?? "") - .toLowerCase() - .includes("leistungsliste") - ); + if ( + workbook[0] !== null && + typeof workbook[0] === "object" && + !Array.isArray(workbook[0]) && + Array.isArray(workbook[0].data) + ) { + const preferredSheet = + workbook.find(sheet => + String(sheet?.name ?? "") + .toLowerCase() + .includes("leistungsliste") + ); - const selectedSheet = - preferredSheet ?? workbook[0]; + const selectedSheet = + preferredSheet ?? workbook[0]; - return Array.isArray(selectedSheet?.data) - ? selectedSheet.data - : []; - } + return Array.isArray(selectedSheet?.data) + ? selectedSheet.data + : []; + } - /* + /* * Alternativ können die Zeilen direkt geliefert werden. */ - return workbook; - }, + return workbook; + }, - createUniqueHeaders(headerRow) { - const usedHeaders = {}; + createUniqueHeaders(headerRow) { + const usedHeaders = {}; - return headerRow.map((value, index) => { - let header = String(value ?? "") - .replace(/\s+/g, " ") - .trim(); + return headerRow.map((value, index) => { + let header = String(value ?? "") + .replace(/\s+/g, " ") + .trim(); - if (!header) { - header = `Spalte_${index + 1}`; - } + if (!header) { + header = `Spalte_${index + 1}`; + } - usedHeaders[header] = - (usedHeaders[header] ?? 0) + 1; + usedHeaders[header] = + (usedHeaders[header] ?? 0) + 1; - if (usedHeaders[header] > 1) { - return `${header}_${usedHeaders[header]}`; - } + if (usedHeaders[header] > 1) { + return `${header}_${usedHeaders[header]}`; + } - return header; - }); - }, + return header; + }); + }, - rowsAsObjects() { - const rows = this.getSheetRows(); + rowsAsObjects() { + const rows = this.getSheetRows(); - if ( - !Array.isArray(rows) || - rows.length === 0 - ) { - return []; - } + if ( + !Array.isArray(rows) || + rows.length === 0 + ) { + return []; + } - /* + /* * Daten liegen bereits als Objekte vor. */ - if ( - rows[0] !== null && - typeof rows[0] === "object" && - !Array.isArray(rows[0]) - ) { - return rows.filter(row => - Object.values(row).some(value => - String(value ?? "").trim() !== "" - ) - ); - } + if ( + rows[0] !== null && + typeof rows[0] === "object" && + !Array.isArray(rows[0]) + ) { + return rows.filter(row => + Object.values(row).some(value => + String(value ?? "").trim() !== "" + ) + ); + } - /* + /* * Daten liegen als Zeilen-Arrays vor. * Erste Zeile wird als Überschrift verwendet. */ - if (!Array.isArray(rows[0])) { - return []; - } + if (!Array.isArray(rows[0])) { + return []; + } - const headers = - this.createUniqueHeaders(rows[0]); + const headers = + this.createUniqueHeaders(rows[0]); - return rows - .slice(1) - .filter(row => - Array.isArray(row) && - row.some(value => - String(value ?? "").trim() !== "" - ) - ) - .map(row => { - const result = {}; + return rows + .slice(1) + .filter(row => + Array.isArray(row) && + row.some(value => + String(value ?? "").trim() !== "" + ) + ) + .map(row => { + const result = {}; - headers.forEach((header, index) => { - result[header] = row[index] ?? ""; - }); + headers.forEach((header, index) => { + result[header] = row[index] ?? ""; + }); - return result; - }); - }, + return result; + }); + }, - cleanText(value) { - return String(value ?? "").trim(); - }, + cleanText(value) { + return String(value ?? "").trim(); + }, - isBooked(value) { - const normalized = String(value ?? "") - .trim() - .toLowerCase(); + quantity(value, fallback = 0) { + const number = Number(value); - const emptyValues = [ - "", - "0", - "false", - "nein", - "no", - "n", - "null", - "undefined", - "-" - ]; + if (!Number.isFinite(number)) { + return Math.max( + 0, + Math.trunc(Number(fallback) || 0) + ); + } - return !emptyValues.includes(normalized); - }, + return Math.max( + 0, + Math.trunc(number) + ); + }, - formatExcelDate(value) { - if ( - value === null || - value === undefined || - value === "" - ) { - return ""; - } + isBooked(value) { + const normalized = String(value ?? "") + .trim() + .toLowerCase(); - const numericValue = Number(value); + const emptyValues = [ + "", + "0", + "false", + "nein", + "no", + "n", + "null", + "undefined", + "-" + ]; - /* + return !emptyValues.includes(normalized); + }, + + formatExcelDate(value) { + if ( + value === null || + value === undefined || + value === "" + ) { + return ""; + } + + const numericValue = Number(value); + + /* * Excel-Datumswerte sind fortlaufende Nummern. * Beispiel: 41495 wird zu einem echten Datum. */ - if ( - Number.isFinite(numericValue) && - numericValue > 20000 && - numericValue < 100000 - ) { - const milliseconds = - Math.round( - (numericValue - 25569) * - 86400 * - 1000 - ); + if ( + Number.isFinite(numericValue) && + numericValue > 20000 && + numericValue < 100000 + ) { + const milliseconds = + Math.round( + (numericValue - 25569) * + 86400 * + 1000 + ); - const date = new Date(milliseconds); + const date = new Date(milliseconds); - if (!Number.isNaN(date.getTime())) { - const day = String( - date.getUTCDate() - ).padStart(2, "0"); + if (!Number.isNaN(date.getTime())) { + const day = String( + date.getUTCDate() + ).padStart(2, "0"); - const month = String( - date.getUTCMonth() + 1 - ).padStart(2, "0"); + const month = String( + date.getUTCMonth() + 1 + ).padStart(2, "0"); - const year = - date.getUTCFullYear(); + const year = + date.getUTCFullYear(); - return `${day}.${month}.${year}`; - } - } + return `${day}.${month}.${year}`; + } + } - return this.cleanText(value); - }, + return this.cleanText(value); + }, - getServiceColumns() { - const rows = this.rowsAsObjects(); + getServiceColumns() { + const rows = this.rowsAsObjects(); - if (rows.length === 0) { - return []; - } + if (rows.length === 0) { + return []; + } - return Object.keys(rows[0]) - .filter(column => - !this.CORE_COLUMNS.includes(column) - ) - .filter(column => - !column.startsWith("Spalte_") - ); - }, + return Object.keys(rows[0]) + .filter(column => + !this.CORE_COLUMNS.includes(column) + ) + .filter(column => + !column.startsWith("Spalte_") + ); + }, - getSavedState() { - const state = - appsmith.store?.checkinState; + getSavedState() { + const state = + appsmith.store?.checkinState; - if ( - state !== null && - typeof state === "object" && - !Array.isArray(state) - ) { - return state; - } + if ( + state !== null && + typeof state === "object" && + !Array.isArray(state) + ) { + return state; + } - return {}; - }, + return {}; + }, - createPersonId(rawRow, index) { - const vorgang = - this.cleanText(rawRow["Vorgang"]); + createPersonId(rawRow, index) { + const vorgang = + this.cleanText(rawRow["Vorgang"]); - const name = - this.cleanText(rawRow["Name"]); + const name = + this.cleanText(rawRow["Name"]); - const vorname = - this.cleanText(rawRow["Vorname"]); + const vorname = + this.cleanText(rawRow["Vorname"]); - const email = - this.cleanText( - rawRow["E-Mail"] ?? - rawRow["Email"] - ); + const email = + this.cleanText( + rawRow["E-Mail"] ?? + rawRow["Email"] + ); - const gebDatum = - this.cleanText(rawRow["Geb.-Datum"]); + const gebDatum = + this.cleanText(rawRow["Geb.-Datum"]); - return [ - vorgang, - name, - vorname, - email, - gebDatum, - index - ] - .join("|") - .toLowerCase() - .replace(/\s+/g, "_"); - }, + return [ + vorgang, + name, + vorname, + email, + gebDatum, + index + ] + .join("|") + .toLowerCase() + .replace(/\s+/g, "_"); + }, - internalRows() { - const rawRows = - this.rowsAsObjects(); + internalRows() { + const rawRows = + this.rowsAsObjects(); - const serviceColumns = - this.getServiceColumns(); + const serviceColumns = + this.getServiceColumns(); - const savedState = - this.getSavedState(); + const savedState = + this.getSavedState(); - return rawRows.map((rawRow, index) => { - const id = - this.createPersonId(rawRow, index); + return rawRows.map((rawRow, index) => { + const id = + this.createPersonId(rawRow, index); - const state = - savedState[id] ?? {}; + const state = + savedState[id] ?? {}; - const bookedServices = - serviceColumns.filter(column => - this.isBooked(rawRow[column]) - ); + const bookedServices = + serviceColumns.filter(column => + this.isBooked(rawRow[column]) + ); - return { - id, + return { + id, - vorgang: - this.cleanText( - rawRow["Vorgang"] - ), + vorgang: + this.cleanText( + rawRow["Vorgang"] + ), - name: - this.cleanText( - rawRow["Name"] - ), + name: + this.cleanText( + rawRow["Name"] + ), - vorname: - this.cleanText( - rawRow["Vorname"] - ), + vorname: + this.cleanText( + rawRow["Vorname"] + ), - email: - this.cleanText( - rawRow["E-Mail"] ?? - rawRow["Email"] - ), + email: + this.cleanText( + rawRow["E-Mail"] ?? + rawRow["Email"] + ), - gebDatum: - this.formatExcelDate( - rawRow["Geb.-Datum"] - ), + gebDatum: + this.formatExcelDate( + rawRow["Geb.-Datum"] + ), - zimmer: - state.zimmer ?? - this.cleanText( - rawRow["Zus_Wunsch"] - ), + zimmer: + state.zimmer ?? + this.cleanText( + rawRow["Zus_Wunsch"] + ), - schluessel: - Number( - state.schluessel ?? 0 - ), + schluessel: + this.quantity( + state.schluessel, + 0 + ), - schluesselRetour: - Boolean( - state.schluesselRetour ?? - false - ), + schluesselRetour: + this.quantity( + state.schluesselRetour, + 0 + ), - leistungenListe: - bookedServices, + leistungenListe: + bookedServices, - leistungen: - bookedServices.join(" · "), + leistungen: + bookedServices.join(" · "), - skipassnummer: - state.skipassnummer ?? - this.cleanText( - rawRow["Skipassnummer"] - ), + skipassnummer: + state.skipassnummer ?? + this.cleanText( + rawRow["Skipassnummer"] + ), - notiz: - state.notiz ?? "", + notiz: + state.notiz ?? "", - stirnlampe: - Number( - state.stirnlampe ?? 0 - ), + stirnlampe: + this.quantity( + state.stirnlampe, + 0 + ), - stirnlampeRetour: - Boolean( - state.stirnlampeRetour ?? - false - ), + stirnlampeRetour: + this.quantity( + state.stirnlampeRetour, + 0 + ), - nachbuchungen: - Array.isArray( - state.nachbuchungen - ) - ? state.nachbuchungen - : [], + nachbuchungen: + Array.isArray( + state.nachbuchungen + ) + ? state.nachbuchungen + : [], - status: - state.status ?? "offen", + status: + state.status ?? "offen", - reiseStatus: - state.reiseStatus ?? "aktiv", + reiseStatus: + state.reiseStatus ?? "aktiv", - checkedIn: - Boolean( - state.checkedIn ?? - false - ), + checkedIn: + Boolean( + state.checkedIn ?? + false + ), - checkedInAt: - state.checkedInAt ?? "", + checkedInAt: + state.checkedInAt ?? "", - checkedInBy: - state.checkedInBy ?? "" - }; - }); - }, + checkedInBy: + state.checkedInBy ?? "" + }; + }); + }, - vorgangOptions() { - const vorgaenge = [ - ...new Set( - this.internalRows() - .map(row => row.vorgang) - .filter(Boolean) - ) - ].sort((a, b) => - a.localeCompare( - b, - "de", - { - numeric: true - } - ) - ); + vorgangOptions() { + const vorgaenge = [ + ...new Set( + this.internalRows() + .map(row => row.vorgang) + .filter(Boolean) + ) + ].sort((a, b) => + a.localeCompare( + b, + "de", + { + numeric: true + } + ) + ); - return [ - { - label: "Alle Gruppen", - value: this.ALL_VALUE - }, - ...vorgaenge.map(vorgang => ({ - label: vorgang, - value: vorgang - })) - ]; - }, + return [ + { + label: "Alle Gruppen", + value: this.ALL_VALUE + }, + ...vorgaenge.map(vorgang => ({ + label: vorgang, + value: vorgang + })) + ]; + }, - leistungOptions() { - const services = [ - ...new Set( - this.internalRows() - .flatMap(row => - row.leistungenListe ?? [] - ) - .filter(Boolean) - ) - ].sort((a, b) => - a.localeCompare(b, "de") - ); + leistungOptions() { + const services = [ + ...new Set( + this.internalRows() + .flatMap(row => + row.leistungenListe ?? [] + ) + .filter(Boolean) + ) + ].sort((a, b) => + a.localeCompare(b, "de") + ); - return [ - { - label: "Alle Leistungen", - value: this.ALL_VALUE - }, - ...services.map(service => ({ - label: service, - value: service - })) - ]; - }, + return [ + { + label: "Alle Leistungen", + value: this.ALL_VALUE + }, + ...services.map(service => ({ + label: service, + value: service + })) + ]; + }, - filteredInternalRows() { - let rows = [ - ...this.internalRows() - ]; + filteredInternalRows() { + let rows = [ + ...this.internalRows() + ]; - /* + const uploadAktiv = + DatenquelleTabs.selectedTab === + "Liste hochladen"; + + /* * Suche */ - const searchText = - this.cleanText( - inpSuche.text - ).toLowerCase(); + const searchText = + this.cleanText( + uploadAktiv + ? inpSucheUpload.text + : inpSuche.text + ).toLowerCase(); - if (searchText) { - rows = rows.filter(row => { - const searchableText = [ - row.vorgang, - row.name, - row.vorname, - row.email, - row.gebDatum, - row.zimmer, - row.skipassnummer, - row.leistungen - ] - .join(" ") - .toLowerCase(); + if (searchText) { + rows = rows.filter(row => { + const searchableText = [ + row.vorgang, + row.name, + row.vorname, + row.email, + row.gebDatum, + row.zimmer, + row.skipassnummer, + row.leistungen + ] + .join(" ") + .toLowerCase(); - return searchableText.includes( - searchText - ); - }); - } + return searchableText.includes( + searchText + ); + }); + } - /* + /* * Vorgangs-/Gruppenfilter */ - const selectedVorgang = - selVorgang.selectedOptionValue || - this.ALL_VALUE; + const selectedVorgang = + ( + uploadAktiv + ? selVorgangUpload.selectedOptionValue + : selVorgang.selectedOptionValue + ) || + this.ALL_VALUE; - if ( - selectedVorgang !== - this.ALL_VALUE - ) { - rows = rows.filter(row => - row.vorgang === - String(selectedVorgang) - ); - } + if ( + selectedVorgang !== + this.ALL_VALUE + ) { + rows = rows.filter(row => + row.vorgang === + String(selectedVorgang) + ); + } - /* + /* * Check-in-Filter */ - const selectedCheckin = - selCheckin.selectedOptionValue || - this.ALL_VALUE; + const selectedCheckin = + ( + uploadAktiv + ? selCheckinUpload.selectedOptionValue + : selCheckin.selectedOptionValue + ) || + this.ALL_VALUE; - if ( - selectedCheckin === "checked" - ) { - rows = rows.filter(row => - row.checkedIn === true - ); - } + if ( + selectedCheckin === "checked" + ) { + rows = rows.filter(row => + row.checkedIn === true + ); + } - if ( - selectedCheckin === "pending" - ) { - rows = rows.filter(row => - row.checkedIn === false - ); - } + if ( + selectedCheckin === "pending" + ) { + rows = rows.filter(row => + row.checkedIn === false + ); + } - /* + /* * Reisestatusfilter */ - const selectedReiseStatus = - selReiseStatus.selectedOptionValue || - this.ALL_VALUE; + const selectedReiseStatus = + ( + uploadAktiv + ? selReiseStatusUpload.selectedOptionValue + : selReiseStatus.selectedOptionValue + ) || + this.ALL_VALUE; - if ( - selectedReiseStatus !== - this.ALL_VALUE - ) { - rows = rows.filter(row => - row.reiseStatus === - selectedReiseStatus - ); - } + if ( + selectedReiseStatus !== + this.ALL_VALUE + ) { + rows = rows.filter(row => + row.reiseStatus === + selectedReiseStatus + ); + } - /* + /* * Leistungsfilter */ - const selectedLeistung = - selLeistung.selectedOptionValue || - this.ALL_VALUE; + const selectedLeistung = + ( + uploadAktiv + ? selLeistungUpload.selectedOptionValue + : selLeistung.selectedOptionValue + ) || + this.ALL_VALUE; - if ( - selectedLeistung !== - this.ALL_VALUE - ) { - rows = rows.filter(row => - row.leistungenListe.includes( - selectedLeistung - ) - ); - } - - return rows; - }, - - filteredRows() { - return this.filteredInternalRows() - .map(row => ({ - id: - row.id, - - Vorgang: - row.vorgang, - - Name: - row.name, - - Vorname: - row.vorname, - - "E-Mail": - row.email, - - "Geb.-Datum": - row.gebDatum, - - Zimmer: - row.zimmer, - - Schlüssel: - row.schluessel, - - "Schlüssel retour": - row.schluesselRetour, - - "Skipass / Leistungen": - row.leistungen, - - Skipassnummer: - row.skipassnummer, - - Notiz: - row.notiz, - - Stirnlampe: - row.stirnlampe, - - "Stirnlampe retour": - row.stirnlampeRetour, - - Nachbuchungen: - row.nachbuchungen.length, - - Status: - row.status, - - Reisestatus: - row.reiseStatus, - - Eingecheckt: - row.checkedIn, - - "Check-in Zeitpunkt": - row.checkedInAt, - - "Check-in Benutzer": - row.checkedInBy - })); - }, - - stats() { - const rows = - this.internalRows(); - - return { - gesamt: - rows.length, - - eingecheckt: - rows.filter(row => - row.checkedIn === true - ).length, - - ausstehend: - rows.filter(row => - row.checkedIn === false - ).length, - - gruppen: - new Set( - rows - .map(row => row.vorgang) - .filter(Boolean) - ).size - }; - }, - - async savePersonState( - personId, - changes - ) { - if (!personId) { - showAlert( - "Teilnehmer-ID fehlt.", - "error" - ); - - return false; - } - - const currentState = { - ...this.getSavedState() - }; - - currentState[personId] = { - ...(currentState[personId] ?? {}), - ...changes, - - updatedAt: - new Date().toISOString(), - - updatedBy: - appsmith.user?.email || - "lokaler Benutzer" - }; - - await storeValue( - "checkinState", - currentState, - true - ); - - return true; - }, - - async toggleCheckin(tableRow) { - if (!tableRow?.id) { - showAlert( - "Teilnehmer konnte nicht ermittelt werden.", - "error" - ); - - return false; - } - - const person = - this.internalRows().find(row => - row.id === tableRow.id - ); - - if (!person) { - showAlert( - "Teilnehmer wurde nicht gefunden.", - "error" - ); - - return false; - } - - const newCheckedIn = - !person.checkedIn; - - await this.savePersonState( - person.id, - { - checkedIn: - newCheckedIn, - - checkedInAt: - newCheckedIn - ? new Date().toISOString() - : "", - - checkedInBy: - newCheckedIn - ? ( - appsmith.user?.email || - "lokaler Benutzer" - ) - : "" - } - ); - - showAlert( - newCheckedIn - ? `${person.vorname} ${person.name} wurde eingecheckt.` - : `Check-in von ${person.vorname} ${person.name} wurde aufgehoben.`, - newCheckedIn - ? "success" - : "warning" - ); - - return true; - }, - - async saveUpdatedRow(updatedRow) { - if (!updatedRow?.id) { - showAlert( - "Die bearbeitete Person konnte nicht ermittelt werden.", - "error" - ); - - return false; - } - - const person = - this.internalRows().find(row => - row.id === updatedRow.id - ); - - if (!person) { - showAlert( - "Teilnehmer wurde nicht gefunden.", - "error" - ); - - return false; - } - - const schluesselValue = - Number(updatedRow["Schlüssel"]); - - const stirnlampeValue = - Number(updatedRow["Stirnlampe"]); - - await this.savePersonState( - person.id, - { - zimmer: - this.cleanText( - updatedRow["Zimmer"] ?? - person.zimmer - ), - - schluessel: - Number.isFinite(schluesselValue) - ? schluesselValue - : person.schluessel, - - schluesselRetour: - Boolean( - updatedRow["Schlüssel retour"] ?? - person.schluesselRetour - ), - - skipassnummer: - this.cleanText( - updatedRow["Skipassnummer"] ?? - person.skipassnummer - ), - - notiz: - this.cleanText( - updatedRow["Notiz"] ?? - person.notiz - ), - - stirnlampe: - Number.isFinite(stirnlampeValue) - ? stirnlampeValue - : person.stirnlampe, - - stirnlampeRetour: - Boolean( - updatedRow["Stirnlampe retour"] ?? - person.stirnlampeRetour - ), - - status: - this.cleanText( - updatedRow["Status"] ?? - person.status - ), - - reiseStatus: - this.cleanText( - updatedRow["Reisestatus"] ?? - person.reiseStatus - ) - } - ); - - showAlert( - "Änderungen gespeichert.", - "success" - ); - - return true; - }, - - async resetCheckinState() { - await removeValue( - "checkinState" - ); - - showAlert( - "Gespeicherte Check-in-Daten wurden zurückgesetzt.", - "success" - ); - - return true; - }, - - async checkinButtonClick() { - return await this.toggleCheckin( - Teilnehmer.triggeredRow - ); - } + if ( + selectedLeistung !== + this.ALL_VALUE + ) { + rows = rows.filter(row => + row.leistungenListe.includes( + selectedLeistung + ) + ); + } + + return rows; + }, + + filteredRows() { + return this.filteredInternalRows() + .map(row => ({ + id: + row.id, + + Vorgang: + row.vorgang, + + Name: + row.name, + + Vorname: + row.vorname, + + "E-Mail": + row.email, + + "Geb.-Datum": + row.gebDatum, + + Zimmer: + row.zimmer, + + Schlüssel: + row.schluessel, + + "Schlüssel retour": + row.schluesselRetour, + + "Skipass / Leistungen": + row.leistungen, + + Skipassnummer: + row.skipassnummer, + + Notiz: + row.notiz, + + Stirnlampe: + row.stirnlampe, + + "Stirnlampe retour": + row.stirnlampeRetour, + + Nachbuchungen: + row.nachbuchungen.length, + + Status: + row.status, + + Reisestatus: + row.reiseStatus, + + Eingecheckt: + row.checkedIn, + + "Check-in Zeitpunkt": + row.checkedInAt, + + "Check-in Benutzer": + row.checkedInBy + })); + }, + + stats() { + const rows = + this.internalRows(); + + return { + gesamt: + rows.length, + + eingecheckt: + rows.filter(row => + row.checkedIn === true + ).length, + + ausstehend: + rows.filter(row => + row.checkedIn === false + ).length, + + gruppen: + new Set( + rows + .map(row => row.vorgang) + .filter(Boolean) + ).size + }; + }, + + async savePersonState( + personId, + changes + ) { + if (!personId) { + showAlert( + "Teilnehmer-ID fehlt.", + "error" + ); + + return false; + } + + const currentState = { + ...this.getSavedState() + }; + + currentState[personId] = { + ...(currentState[personId] ?? {}), + ...changes, + + updatedAt: + new Date().toISOString(), + + updatedBy: + appsmith.user?.email || + "lokaler Benutzer" + }; + + await storeValue( + "checkinState", + currentState, + true + ); + + return true; + }, + + async toggleCheckin(tableRow) { + if (!tableRow?.id) { + showAlert( + "Teilnehmer konnte nicht ermittelt werden.", + "error" + ); + + return false; + } + + const gespeicherterStatus = + this.getSavedState()[tableRow.id] || {}; + + const aktuellEingecheckt = + gespeicherterStatus.checkedIn === true || + tableRow.Eingecheckt === true || + tableRow.checkedIn === true; + + const newCheckedIn = + !aktuellEingecheckt; + + await this.savePersonState( + tableRow.id, + { + checkedIn: + newCheckedIn, + + checkedInAt: + newCheckedIn + ? new Date().toISOString() + : "", + + checkedInBy: + newCheckedIn + ? ( + appsmith.user?.email || + "lokaler Benutzer" + ) + : "" + } + ); + + const vorname = + tableRow.Vorname || + tableRow.vorname || + ""; + + const name = + tableRow.Name || + tableRow.name || + ""; + + showAlert( + newCheckedIn + ? `${vorname} ${name} wurde eingecheckt.` + : `Check-in von ${vorname} ${name} wurde aufgehoben.`, + newCheckedIn + ? "success" + : "warning" + ); + + return true; + }, + + async saveUpdatedRow(updatedRow) { + if (!updatedRow?.id) { + showAlert( + "Die bearbeitete Person konnte nicht ermittelt werden.", + "error" + ); + + return false; + } + + const person = + this.internalRows().find(row => + row.id === updatedRow.id + ); + + if (!person) { + showAlert( + "Teilnehmer wurde nicht gefunden.", + "error" + ); + + return false; + } + + const schluesselValue = + this.quantity( + updatedRow["Schlüssel"], + person.schluessel + ); + + const schluesselRetourValue = + this.quantity( + updatedRow["Schlüssel retour"], + person.schluesselRetour + ); + + const stirnlampeValue = + this.quantity( + updatedRow["Stirnlampe"], + person.stirnlampe + ); + + const stirnlampeRetourValue = + this.quantity( + updatedRow["Stirnlampe retour"], + person.stirnlampeRetour + ); + + if ( + schluesselRetourValue > + schluesselValue + ) { + showAlert( + "Es können nicht mehr Schlüssel zurückgegeben als ausgegeben werden.", + "error" + ); + + return false; + } + + if ( + stirnlampeRetourValue > + stirnlampeValue + ) { + showAlert( + "Es können nicht mehr Stirnlampen zurückgegeben als ausgegeben werden.", + "error" + ); + + return false; + } + + await this.savePersonState( + person.id, + { + zimmer: + this.cleanText( + updatedRow["Zimmer"] ?? + person.zimmer + ), + + schluessel: + schluesselValue, + + schluesselRetour: + schluesselRetourValue, + + skipassnummer: + this.cleanText( + updatedRow["Skipassnummer"] ?? + person.skipassnummer + ), + + notiz: + this.cleanText( + updatedRow["Notiz"] ?? + person.notiz + ), + + stirnlampe: + stirnlampeValue, + + stirnlampeRetour: + stirnlampeRetourValue, + + status: + this.cleanText( + updatedRow["Status"] ?? + person.status + ), + + reiseStatus: + this.cleanText( + updatedRow["Reisestatus"] ?? + person.reiseStatus + ) + } + ); + + showAlert( + "Änderungen gespeichert.", + "success" + ); + + return true; + }, + + async saveAusgabe( + personId, + schluessel, + stirnlampe + ) { + const person = + this.internalRows().find(row => + row.id === personId + ); + + if (!person) { + showAlert( + "Teilnehmer wurde nicht gefunden.", + "error" + ); + + return false; + } + + const schluesselValue = + this.quantity(schluessel, 0); + + const stirnlampeValue = + this.quantity(stirnlampe, 0); + + if ( + person.schluesselRetour > + schluesselValue + ) { + showAlert( + "Die ausgegebene Schlüsselmenge darf nicht kleiner als die bereits erfasste Rückgabe sein.", + "error" + ); + + return false; + } + + if ( + person.stirnlampeRetour > + stirnlampeValue + ) { + showAlert( + "Die ausgegebene Stirnlampenmenge darf nicht kleiner als die bereits erfasste Rückgabe sein.", + "error" + ); + + return false; + } + + await this.savePersonState( + person.id, + { + schluessel: + schluesselValue, + + stirnlampe: + stirnlampeValue + } + ); + + showAlert( + `Ausgabe für ${person.vorname} ${person.name} gespeichert.`, + "success" + ); + + return true; + }, + + async saveRueckgabe( + personId, + schluesselRetour, + stirnlampeRetour + ) { + const person = + this.internalRows().find(row => + row.id === personId + ); + + if (!person) { + showAlert( + "Teilnehmer wurde nicht gefunden.", + "error" + ); + + return false; + } + + const schluesselRetourValue = + this.quantity( + schluesselRetour, + person.schluesselRetour + ); + + const stirnlampeRetourValue = + this.quantity( + stirnlampeRetour, + person.stirnlampeRetour + ); + + if ( + schluesselRetourValue > + person.schluessel + ) { + showAlert( + `Maximal ${person.schluessel} Schlüssel können zurückgegeben werden.`, + "error" + ); + + return false; + } + + if ( + stirnlampeRetourValue > + person.stirnlampe + ) { + showAlert( + `Maximal ${person.stirnlampe} Stirnlampen können zurückgegeben werden.`, + "error" + ); + + return false; + } + + await this.savePersonState( + person.id, + { + schluesselRetour: + schluesselRetourValue, + + stirnlampeRetour: + stirnlampeRetourValue, + + rueckgabeAt: + new Date().toISOString(), + + rueckgabeBy: + appsmith.user?.email || + "lokaler Benutzer" + } + ); + + showAlert( + `Rückgabe für ${person.vorname} ${person.name} gespeichert.`, + "success" + ); + + return true; + }, + + async resetCheckinState() { + await removeValue( + "checkinState" + ); + + showAlert( + "Gespeicherte Check-in-Daten wurden zurückgesetzt.", + "success" + ); + + return true; + }, + + async checkinButtonClick() { + return await this.toggleCheckin( + Teilnehmer.triggeredRow + ); + } }; \ No newline at end of file diff --git a/pages/Page1/jsobjects/JSObject1/JSObject1.js b/pages/Page1/jsobjects/JSObject1/JSObject1.js deleted file mode 100644 index b7740b3..0000000 --- a/pages/Page1/jsobjects/JSObject1/JSObject1.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - TeilnehmerprimaryColumnscustomColumn1onClick () { - // write code here - } -} \ No newline at end of file diff --git a/pages/Page1/jsobjects/JSObject1/metadata.json b/pages/Page1/jsobjects/JSObject1/metadata.json deleted file mode 100644 index e3b52a1..0000000 --- a/pages/Page1/jsobjects/JSObject1/metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "gitSyncId": "6a61e887eeb7b478efb4d43d_abbf2ba7-13bd-4035-a2a7-9ad59c3c8590", - "id": "Page1_JSObject1", - "unpublishedCollection": { - "name": "JSObject1", - "pageId": "Page1", - "pluginId": "js-plugin", - "pluginType": "JS", - "variables": [] - } -} \ No newline at end of file diff --git a/pages/Page1/queries/JSObject1-TeilnehmerprimaryColumnscustomColumn1onClick/metadata.json b/pages/Page1/queries/CheckinData-quantity/metadata.json similarity index 57% rename from pages/Page1/queries/JSObject1-TeilnehmerprimaryColumnscustomColumn1onClick/metadata.json rename to pages/Page1/queries/CheckinData-quantity/metadata.json index c0bd403..155ff32 100644 --- a/pages/Page1/queries/JSObject1-TeilnehmerprimaryColumnscustomColumn1onClick/metadata.json +++ b/pages/Page1/queries/CheckinData-quantity/metadata.json @@ -1,17 +1,24 @@ { - "gitSyncId": "6a61e887eeb7b478efb4d43d_fd6147fe-e2bf-4150-bd3f-3b2705b1865c", - "id": "Page1_JSObject1.TeilnehmerprimaryColumnscustomColumn1onClick", + "gitSyncId": "6a6869faa8b745bffc91aca9_a23dd8b9-ad48-4651-a61c-115904ae2a40", + "id": "Page1_CheckinData.quantity", "pluginId": "js-plugin", "pluginType": "JS", "unpublishedAction": { "actionConfiguration": { "encodeParamsToggle": true, - "jsArguments": [], + "jsArguments": [ + { + "name": "value" + }, + { + "name": "fallback", + "value": "{{0}}" + } + ], "paginationType": "NONE", "timeoutInMillisecond": 10000 }, - "clientSideExecution": true, - "collectionId": "Page1_JSObject1", + "collectionId": "Page1_CheckinData", "confirmBeforeExecute": false, "datasource": { "isAutoGenerated": false, @@ -23,8 +30,8 @@ "key": "body" } ], - "fullyQualifiedName": "JSObject1.TeilnehmerprimaryColumnscustomColumn1onClick", - "name": "TeilnehmerprimaryColumnscustomColumn1onClick", + "fullyQualifiedName": "CheckinData.quantity", + "name": "quantity", "pageId": "Page1", "runBehaviour": "MANUAL", "userSetOnLoad": false diff --git a/pages/Page1/queries/CheckinData-saveAusgabe/metadata.json b/pages/Page1/queries/CheckinData-saveAusgabe/metadata.json new file mode 100644 index 0000000..699cc75 --- /dev/null +++ b/pages/Page1/queries/CheckinData-saveAusgabe/metadata.json @@ -0,0 +1,41 @@ +{ + "gitSyncId": "6a6869faa8b745bffc91aca9_dbdaaa85-b218-4a6c-a2e1-30e6b7046b41", + "id": "Page1_CheckinData.saveAusgabe", + "pluginId": "js-plugin", + "pluginType": "JS", + "unpublishedAction": { + "actionConfiguration": { + "encodeParamsToggle": true, + "jsArguments": [ + { + "name": "personId" + }, + { + "name": "schluessel" + }, + { + "name": "stirnlampe" + } + ], + "paginationType": "NONE", + "timeoutInMillisecond": 10000 + }, + "collectionId": "Page1_CheckinData", + "confirmBeforeExecute": false, + "datasource": { + "isAutoGenerated": false, + "name": "UNUSED_DATASOURCE", + "pluginId": "js-plugin" + }, + "dynamicBindingPathList": [ + { + "key": "body" + } + ], + "fullyQualifiedName": "CheckinData.saveAusgabe", + "name": "saveAusgabe", + "pageId": "Page1", + "runBehaviour": "MANUAL", + "userSetOnLoad": false + } +} \ No newline at end of file diff --git a/pages/Page1/queries/CheckinData-saveRueckgabe/metadata.json b/pages/Page1/queries/CheckinData-saveRueckgabe/metadata.json new file mode 100644 index 0000000..571432f --- /dev/null +++ b/pages/Page1/queries/CheckinData-saveRueckgabe/metadata.json @@ -0,0 +1,41 @@ +{ + "gitSyncId": "6a6869faa8b745bffc91aca9_2e3e8c29-eae6-41ae-b866-42230123e371", + "id": "Page1_CheckinData.saveRueckgabe", + "pluginId": "js-plugin", + "pluginType": "JS", + "unpublishedAction": { + "actionConfiguration": { + "encodeParamsToggle": true, + "jsArguments": [ + { + "name": "personId" + }, + { + "name": "schluesselRetour" + }, + { + "name": "stirnlampeRetour" + } + ], + "paginationType": "NONE", + "timeoutInMillisecond": 10000 + }, + "collectionId": "Page1_CheckinData", + "confirmBeforeExecute": false, + "datasource": { + "isAutoGenerated": false, + "name": "UNUSED_DATASOURCE", + "pluginId": "js-plugin" + }, + "dynamicBindingPathList": [ + { + "key": "body" + } + ], + "fullyQualifiedName": "CheckinData.saveRueckgabe", + "name": "saveRueckgabe", + "pageId": "Page1", + "runBehaviour": "MANUAL", + "userSetOnLoad": false + } +} \ No newline at end of file diff --git a/pages/Page1/queries/qryDiagnoseTermin/metadata.json b/pages/Page1/queries/qryDiagnoseTermin/metadata.json new file mode 100644 index 0000000..879d043 --- /dev/null +++ b/pages/Page1/queries/qryDiagnoseTermin/metadata.json @@ -0,0 +1,35 @@ +{ + "gitSyncId": "6a6869faa8b745bffc91aca9_9e0a4cd5-348e-4d47-94e2-a5971d349175", + "id": "Page1_qryDiagnoseTermin", + "pluginId": "mssql-plugin", + "pluginType": "DB", + "unpublishedAction": { + "actionConfiguration": { + "body": "DECLARE @IDReise bigint =\n {{ Termin.selectedOptionValue }};\n\nSELECT\n @IDReise AS AusgewaehlteIDReise,\n\n R.Code AS Reisecode,\n R.Bezeichnung AS Reise,\n P.Bezeichnung AS Produkt,\n R.TerminVon,\n R.TerminBis,\n\n COUNT(DISTINCT B.IDBuchung)\n AS AnzahlBuchungen,\n\n COUNT(BT.IDBuchungTN)\n AS AnzahlTeilnehmende,\n\n SUM(\n CASE\n WHEN BT.Status = N'F'\n THEN 1\n ELSE 0\n END\n ) AS Status_F,\n\n SUM(\n CASE\n WHEN BT.Status = N'O'\n THEN 1\n ELSE 0\n END\n ) AS Status_O,\n\n SUM(\n CASE\n WHEN COALESCE(BT.Status, N'') = N''\n THEN 1\n ELSE 0\n END\n ) AS Status_Leer,\n\n SUM(\n CASE\n WHEN BT.Status NOT IN (N'F', N'O')\n AND COALESCE(BT.Status, N'') <> N''\n THEN 1\n ELSE 0\n END\n ) AS Andere_Status\n\nFROM dbo.Reise R\n\nINNER JOIN dbo.Produkt P\n ON P.IDProdukt = R.IDProdukt_FS\n\nLEFT JOIN dbo.Buchung B\n ON B.IDReise_FS = R.IDReise\n\nLEFT JOIN dbo.BuchungTN BT\n ON BT.IDBuchung_FS = B.IDBuchung\n\nWHERE\n R.IDReise = @IDReise\n\nGROUP BY\n R.Code,\n R.Bezeichnung,\n P.Bezeichnung,\n R.TerminVon,\n R.TerminBis;", + "encodeParamsToggle": true, + "paginationType": "NONE", + "pluginSpecifiedTemplates": [ + { + "value": true + } + ], + "timeoutInMillisecond": 10000 + }, + "confirmBeforeExecute": false, + "datasource": { + "id": "Buspro Datenbank", + "isAutoGenerated": false, + "name": "Buspro Datenbank", + "pluginId": "mssql-plugin" + }, + "dynamicBindingPathList": [ + { + "key": "body" + } + ], + "name": "qryDiagnoseTermin", + "pageId": "Page1", + "runBehaviour": "MANUAL", + "userSetOnLoad": false + } +} \ No newline at end of file diff --git a/pages/Page1/queries/qryDiagnoseTermin/qryDiagnoseTermin.txt b/pages/Page1/queries/qryDiagnoseTermin/qryDiagnoseTermin.txt new file mode 100644 index 0000000..258f909 --- /dev/null +++ b/pages/Page1/queries/qryDiagnoseTermin/qryDiagnoseTermin.txt @@ -0,0 +1,71 @@ +DECLARE @IDReise bigint = + {{ Termin.selectedOptionValue }}; + +SELECT + @IDReise AS AusgewaehlteIDReise, + + R.Code AS Reisecode, + R.Bezeichnung AS Reise, + P.Bezeichnung AS Produkt, + R.TerminVon, + R.TerminBis, + + COUNT(DISTINCT B.IDBuchung) + AS AnzahlBuchungen, + + COUNT(BT.IDBuchungTN) + AS AnzahlTeilnehmende, + + SUM( + CASE + WHEN BT.Status = N'F' + THEN 1 + ELSE 0 + END + ) AS Status_F, + + SUM( + CASE + WHEN BT.Status = N'O' + THEN 1 + ELSE 0 + END + ) AS Status_O, + + SUM( + CASE + WHEN COALESCE(BT.Status, N'') = N'' + THEN 1 + ELSE 0 + END + ) AS Status_Leer, + + SUM( + CASE + WHEN BT.Status NOT IN (N'F', N'O') + AND COALESCE(BT.Status, N'') <> N'' + THEN 1 + ELSE 0 + END + ) AS Andere_Status + +FROM dbo.Reise R + +INNER JOIN dbo.Produkt P + ON P.IDProdukt = R.IDProdukt_FS + +LEFT JOIN dbo.Buchung B + ON B.IDReise_FS = R.IDReise + +LEFT JOIN dbo.BuchungTN BT + ON BT.IDBuchung_FS = B.IDBuchung + +WHERE + R.IDReise = @IDReise + +GROUP BY + R.Code, + R.Bezeichnung, + P.Bezeichnung, + R.TerminVon, + R.TerminBis; \ No newline at end of file diff --git a/pages/Page1/queries/qryHaeuser/metadata.json b/pages/Page1/queries/qryHaeuser/metadata.json new file mode 100644 index 0000000..c782163 --- /dev/null +++ b/pages/Page1/queries/qryHaeuser/metadata.json @@ -0,0 +1,31 @@ +{ + "gitSyncId": "6a6869faa8b745bffc91aca9_fbfc060a-c297-4a06-8fd6-b0f16db3e35b", + "id": "Page1_qryHaeuser", + "pluginId": "mssql-plugin", + "pluginType": "DB", + "unpublishedAction": { + "actionConfiguration": { + "body": "WITH ProdukteMitTrennern AS\n(\n SELECT\n P.Bezeichnung,\n T1.Position1,\n T2.Position2\n\n FROM dbo.Produkt P\n\n CROSS APPLY\n (\n SELECT\n CHARINDEX(\n N' - ',\n P.Bezeichnung\n ) AS Position1\n ) T1\n\n CROSS APPLY\n (\n SELECT\n CHARINDEX(\n N' - ',\n P.Bezeichnung,\n T1.Position1 + 3\n ) AS Position2\n ) T2\n\n WHERE\n COALESCE(P.Status, N'') <> N'L'\n AND P.Bezeichnung LIKE N'%Sportclub%'\n),\n\nRoheHaeuser AS\n(\n SELECT\n LTRIM(RTRIM(\n SUBSTRING(\n Bezeichnung,\n Position1 + 3,\n Position2 - Position1 - 3\n )\n )) AS Haus\n\n FROM ProdukteMitTrennern\n\n WHERE\n Position1 > 0\n AND Position2 > Position1\n),\n\nBereinigteHaeuser AS\n(\n SELECT\n REPLACE(\n REPLACE(\n REPLACE(\n REPLACE(\n Haus,\n NCHAR(160),\n N' '\n ),\n NCHAR(8203),\n N''\n ),\n CHAR(13),\n N''\n ),\n CHAR(10),\n N''\n ) AS Haus\n\n FROM RoheHaeuser\n),\n\nKanonischeHaeuser AS\n(\n SELECT\n CASE\n WHEN Haus LIKE N'Sportclub Steinach%'\n THEN N'Sportclub Steinachhof'\n\n WHEN Haus LIKE N'Sportclub Wal%schlössli'\n THEN N'Sportclub Waldschlössli'\n\n ELSE Haus\n END AS Haus\n\n FROM BereinigteHaeuser\n)\n\nSELECT DISTINCT\n Haus AS label,\n Haus AS value\n\nFROM KanonischeHaeuser\n\nWHERE\n NULLIF(Haus, N'') IS NOT NULL\n\nORDER BY\n label;", + "encodeParamsToggle": true, + "paginationType": "NONE", + "pluginSpecifiedTemplates": [ + { + "value": true + } + ], + "timeoutInMillisecond": 10000 + }, + "confirmBeforeExecute": false, + "datasource": { + "id": "Buspro Datenbank", + "isAutoGenerated": false, + "name": "Buspro Datenbank", + "pluginId": "mssql-plugin" + }, + "dynamicBindingPathList": [], + "name": "qryHaeuser", + "pageId": "Page1", + "runBehaviour": "ON_PAGE_LOAD", + "userSetOnLoad": true + } +} \ No newline at end of file diff --git a/pages/Page1/queries/qryHaeuser/qryHaeuser.txt b/pages/Page1/queries/qryHaeuser/qryHaeuser.txt new file mode 100644 index 0000000..91802cd --- /dev/null +++ b/pages/Page1/queries/qryHaeuser/qryHaeuser.txt @@ -0,0 +1,102 @@ +WITH ProdukteMitTrennern AS +( + SELECT + P.Bezeichnung, + T1.Position1, + T2.Position2 + + FROM dbo.Produkt P + + CROSS APPLY + ( + SELECT + CHARINDEX( + N' - ', + P.Bezeichnung + ) AS Position1 + ) T1 + + CROSS APPLY + ( + SELECT + CHARINDEX( + N' - ', + P.Bezeichnung, + T1.Position1 + 3 + ) AS Position2 + ) T2 + + WHERE + COALESCE(P.Status, N'') <> N'L' + AND P.Bezeichnung LIKE N'%Sportclub%' +), + +RoheHaeuser AS +( + SELECT + LTRIM(RTRIM( + SUBSTRING( + Bezeichnung, + Position1 + 3, + Position2 - Position1 - 3 + ) + )) AS Haus + + FROM ProdukteMitTrennern + + WHERE + Position1 > 0 + AND Position2 > Position1 +), + +BereinigteHaeuser AS +( + SELECT + REPLACE( + REPLACE( + REPLACE( + REPLACE( + Haus, + NCHAR(160), + N' ' + ), + NCHAR(8203), + N'' + ), + CHAR(13), + N'' + ), + CHAR(10), + N'' + ) AS Haus + + FROM RoheHaeuser +), + +KanonischeHaeuser AS +( + SELECT + CASE + WHEN Haus LIKE N'Sportclub Steinach%' + THEN N'Sportclub Steinachhof' + + WHEN Haus LIKE N'Sportclub Wal%schlössli' + THEN N'Sportclub Waldschlössli' + + ELSE Haus + END AS Haus + + FROM BereinigteHaeuser +) + +SELECT DISTINCT + Haus AS label, + Haus AS value + +FROM KanonischeHaeuser + +WHERE + NULLIF(Haus, N'') IS NOT NULL + +ORDER BY + label; \ No newline at end of file diff --git a/pages/Page1/queries/qryReisen/metadata.json b/pages/Page1/queries/qryReisen/metadata.json new file mode 100644 index 0000000..c7bb98e --- /dev/null +++ b/pages/Page1/queries/qryReisen/metadata.json @@ -0,0 +1,35 @@ +{ + "gitSyncId": "6a6869faa8b745bffc91aca9_e28f767d-84ec-4b17-9922-6e732ebf2aac", + "id": "Page1_qryReisen", + "pluginId": "mssql-plugin", + "pluginType": "DB", + "unpublishedAction": { + "actionConfiguration": { + "body": "DECLARE @Haus nvarchar(200) =\n {{ Hausauswahl.selectedOptionValue }};\n\nDECLARE @Heute date =\n CAST(GETDATE() AS date);\n\nSELECT\n CONCAT(\n CONVERT(varchar(10), R.TerminVon, 104),\n N' – ',\n CONVERT(varchar(10), R.TerminBis, 104),\n N' | ',\n P.Bezeichnung,\n CASE\n WHEN NULLIF(R.Code, N'') IS NOT NULL\n THEN CONCAT(N' | ', R.Code)\n ELSE N''\n END\n ) AS label,\n\n R.IDReise AS value,\n\n R.IDReise,\n R.Code AS Reisecode,\n R.Bezeichnung AS Reise,\n P.Bezeichnung AS Produkt,\n R.TerminVon,\n R.TerminBis\nFROM dbo.Reise R\nINNER JOIN dbo.Produkt P\n ON P.IDProdukt = R.IDProdukt_FS\nWHERE\n COALESCE(R.Status, N'') <> N'L'\n AND COALESCE(P.Status, N'') <> N'L'\n AND CHARINDEX(@Haus, P.Bezeichnung) > 0\n\n -- Reise überschneidet den Zeitraum heute -7 bis heute +20\n AND CAST(R.TerminBis AS date) >=\n DATEADD(DAY, -7, @Heute)\n\n AND CAST(R.TerminVon AS date) <=\n DATEADD(DAY, 20, @Heute)\nORDER BY\n R.TerminVon,\n P.Bezeichnung,\n R.Code;", + "encodeParamsToggle": true, + "paginationType": "NONE", + "pluginSpecifiedTemplates": [ + { + "value": true + } + ], + "timeoutInMillisecond": 10000 + }, + "confirmBeforeExecute": false, + "datasource": { + "id": "Buspro Datenbank", + "isAutoGenerated": false, + "name": "Buspro Datenbank", + "pluginId": "mssql-plugin" + }, + "dynamicBindingPathList": [ + { + "key": "body" + } + ], + "name": "qryReisen", + "pageId": "Page1", + "runBehaviour": "AUTOMATIC", + "userSetOnLoad": false + } +} \ No newline at end of file diff --git a/pages/Page1/queries/qryReisen/qryReisen.txt b/pages/Page1/queries/qryReisen/qryReisen.txt new file mode 100644 index 0000000..3ab3267 --- /dev/null +++ b/pages/Page1/queries/qryReisen/qryReisen.txt @@ -0,0 +1,46 @@ +DECLARE @Haus nvarchar(200) = + {{ Hausauswahl.selectedOptionValue }}; + +DECLARE @Heute date = + CAST(GETDATE() AS date); + +SELECT + CONCAT( + CONVERT(varchar(10), R.TerminVon, 104), + N' – ', + CONVERT(varchar(10), R.TerminBis, 104), + N' | ', + P.Bezeichnung, + CASE + WHEN NULLIF(R.Code, N'') IS NOT NULL + THEN CONCAT(N' | ', R.Code) + ELSE N'' + END + ) AS label, + + R.IDReise AS value, + + R.IDReise, + R.Code AS Reisecode, + R.Bezeichnung AS Reise, + P.Bezeichnung AS Produkt, + R.TerminVon, + R.TerminBis +FROM dbo.Reise R +INNER JOIN dbo.Produkt P + ON P.IDProdukt = R.IDProdukt_FS +WHERE + COALESCE(R.Status, N'') <> N'L' + AND COALESCE(P.Status, N'') <> N'L' + AND CHARINDEX(@Haus, P.Bezeichnung) > 0 + + -- Reise überschneidet den Zeitraum heute -7 bis heute +20 + AND CAST(R.TerminBis AS date) >= + DATEADD(DAY, -7, @Heute) + + AND CAST(R.TerminVon AS date) <= + DATEADD(DAY, 20, @Heute) +ORDER BY + R.TerminVon, + P.Bezeichnung, + R.Code; \ No newline at end of file diff --git a/pages/Page1/queries/qryTeilnehmer/metadata.json b/pages/Page1/queries/qryTeilnehmer/metadata.json new file mode 100644 index 0000000..99d2131 --- /dev/null +++ b/pages/Page1/queries/qryTeilnehmer/metadata.json @@ -0,0 +1,35 @@ +{ + "gitSyncId": "6a6869faa8b745bffc91aca9_90a268fa-09ba-4502-adc1-fa6a57538075", + "id": "Page1_qryTeilnehmer", + "pluginId": "mssql-plugin", + "pluginType": "DB", + "unpublishedAction": { + "actionConfiguration": { + "body": "DECLARE @IDReise bigint =\n {{ Termin.selectedOptionValue }};\n\nSELECT\n BT.IDBuchungTN AS TeilnehmerID,\n B.Vorgang,\n AP.Name,\n AP.Vorname,\n\n COALESCE(\n NULLIF(E.Mailadresse, N''),\n N''\n ) AS [E-Mail],\n\n CONVERT(\n varchar(10),\n AP.Geburtsdatum,\n 104\n ) AS [Geb.-Datum],\n\n COALESCE(\n W.Zus_Wunsch,\n N''\n ) AS Zus_Wunsch,\n\n COALESCE(\n LJSON.LeistungenJSON,\n N'[]'\n ) AS LeistungenJSON,\n\n COALESCE(\n SP.Skipassnummer,\n N''\n ) AS Skipassnummer\n\nFROM dbo.Buchung B\n\nINNER JOIN dbo.BuchungTN BT\n ON BT.IDBuchung_FS = B.IDBuchung\n\nINNER JOIN dbo.AdressePerson AP\n ON AP.IDAdressePerson =\n BT.IDAdressePerson_FS\n\nOUTER APPLY\n(\n SELECT TOP (1)\n AK.Wert AS Mailadresse\n FROM dbo.AdresseKommunikation AK\n WHERE\n AK.IDAdressePerson_FS =\n AP.IDAdressePerson\n\n AND AK.Wert LIKE N'%@%'\n\n ORDER BY\n AK.IDAdresseKommunikation\n) E\n\nOUTER APPLY\n(\n SELECT\n STRING_AGG(\n NULLIF(\n LTRIM(RTRIM(BTW.Text)),\n N''\n ),\n N' · '\n ) AS Zus_Wunsch\n\n FROM dbo.BuchungTNWunsch BTW\n\n WHERE\n BTW.IDBuchungTN_FS =\n BT.IDBuchungTN\n) W\n\nOUTER APPLY\n(\n SELECT\n (\n SELECT\n X.Bezeichnung AS [name],\n X.Wert AS [value]\n\n FROM\n (\n SELECT DISTINCT\n L.Bezeichnung,\n\n CASE\n WHEN NULLIF(\n LTRIM(RTRIM(BTL.Nummer)),\n N''\n ) IS NOT NULL\n THEN BTL.Nummer\n\n ELSE N'1'\n END AS Wert\n\n FROM dbo.BuchungTNLeistung BTL\n\n INNER JOIN dbo.Leistung L\n ON L.IDLeistung =\n BTL.IDLeistung_FS\n\n WHERE\n BTL.IDBuchungTN_FS =\n BT.IDBuchungTN\n\n AND COALESCE(\n L.Status,\n N''\n ) <> N'L'\n\n AND EXISTS\n (\n SELECT 1\n\n FROM dbo.BuchungTNLeistungPreis BTLP\n\n INNER JOIN dbo.BuchungTNPreis BTP\n ON BTP.IDBuchungTNPreis =\n BTLP.IDBuchungTNPreis_FS\n\n WHERE\n BTLP.IDBuchungTNLeistung_FS =\n BTL.IDBuchungTNLeistung\n\n AND BTP.Status IN\n (N'F', N'O')\n )\n ) X\n\n ORDER BY\n X.Bezeichnung\n\n FOR JSON PATH\n ) AS LeistungenJSON\n) LJSON\n\nOUTER APPLY\n(\n SELECT TOP (1)\n BTL.Nummer AS Skipassnummer\n\n FROM dbo.BuchungTNLeistung BTL\n\n INNER JOIN dbo.Leistung L\n ON L.IDLeistung =\n BTL.IDLeistung_FS\n\n WHERE\n BTL.IDBuchungTN_FS =\n BT.IDBuchungTN\n\n AND L.Bezeichnung LIKE N'%Skipass%'\n\n AND NULLIF(\n LTRIM(RTRIM(BTL.Nummer)),\n N''\n ) IS NOT NULL\n\n AND EXISTS\n (\n SELECT 1\n\n FROM dbo.BuchungTNLeistungPreis BTLP\n\n INNER JOIN dbo.BuchungTNPreis BTP\n ON BTP.IDBuchungTNPreis =\n BTLP.IDBuchungTNPreis_FS\n\n WHERE\n BTLP.IDBuchungTNLeistung_FS =\n BTL.IDBuchungTNLeistung\n\n AND BTP.Status IN\n (N'F', N'O')\n )\n\n ORDER BY\n BTL.IDBuchungTNLeistung\n) SP\n\nWHERE\n B.IDReise_FS = @IDReise\n AND BT.Status = N'F'\n\nORDER BY\n B.Vorgang,\n AP.Name,\n AP.Vorname,\n BT.Position;", + "encodeParamsToggle": true, + "paginationType": "NONE", + "pluginSpecifiedTemplates": [ + { + "value": true + } + ], + "timeoutInMillisecond": 10000 + }, + "confirmBeforeExecute": false, + "datasource": { + "id": "Buspro Datenbank", + "isAutoGenerated": false, + "name": "Buspro Datenbank", + "pluginId": "mssql-plugin" + }, + "dynamicBindingPathList": [ + { + "key": "body" + } + ], + "name": "qryTeilnehmer", + "pageId": "Page1", + "runBehaviour": "AUTOMATIC", + "userSetOnLoad": false + } +} \ No newline at end of file diff --git a/pages/Page1/queries/qryTeilnehmer/qryTeilnehmer.txt b/pages/Page1/queries/qryTeilnehmer/qryTeilnehmer.txt new file mode 100644 index 0000000..401b0f2 --- /dev/null +++ b/pages/Page1/queries/qryTeilnehmer/qryTeilnehmer.txt @@ -0,0 +1,194 @@ +DECLARE @IDReise bigint = + {{ Termin.selectedOptionValue }}; + +SELECT + BT.IDBuchungTN AS TeilnehmerID, + B.Vorgang, + AP.Name, + AP.Vorname, + + COALESCE( + NULLIF(E.Mailadresse, N''), + N'' + ) AS [E-Mail], + + CONVERT( + varchar(10), + AP.Geburtsdatum, + 104 + ) AS [Geb.-Datum], + + COALESCE( + W.Zus_Wunsch, + N'' + ) AS Zus_Wunsch, + + COALESCE( + LJSON.LeistungenJSON, + N'[]' + ) AS LeistungenJSON, + + COALESCE( + SP.Skipassnummer, + N'' + ) AS Skipassnummer + +FROM dbo.Buchung B + +INNER JOIN dbo.BuchungTN BT + ON BT.IDBuchung_FS = B.IDBuchung + +INNER JOIN dbo.AdressePerson AP + ON AP.IDAdressePerson = + BT.IDAdressePerson_FS + +OUTER APPLY +( + SELECT TOP (1) + AK.Wert AS Mailadresse + FROM dbo.AdresseKommunikation AK + WHERE + AK.IDAdressePerson_FS = + AP.IDAdressePerson + + AND AK.Wert LIKE N'%@%' + + ORDER BY + AK.IDAdresseKommunikation +) E + +OUTER APPLY +( + SELECT + STRING_AGG( + NULLIF( + LTRIM(RTRIM(BTW.Text)), + N'' + ), + N' · ' + ) AS Zus_Wunsch + + FROM dbo.BuchungTNWunsch BTW + + WHERE + BTW.IDBuchungTN_FS = + BT.IDBuchungTN +) W + +OUTER APPLY +( + SELECT + ( + SELECT + X.Bezeichnung AS [name], + X.Wert AS [value] + + FROM + ( + SELECT DISTINCT + L.Bezeichnung, + + CASE + WHEN NULLIF( + LTRIM(RTRIM(BTL.Nummer)), + N'' + ) IS NOT NULL + THEN BTL.Nummer + + ELSE N'1' + END AS Wert + + FROM dbo.BuchungTNLeistung BTL + + INNER JOIN dbo.Leistung L + ON L.IDLeistung = + BTL.IDLeistung_FS + + WHERE + BTL.IDBuchungTN_FS = + BT.IDBuchungTN + + AND COALESCE( + L.Status, + N'' + ) <> N'L' + + AND EXISTS + ( + SELECT 1 + + FROM dbo.BuchungTNLeistungPreis BTLP + + INNER JOIN dbo.BuchungTNPreis BTP + ON BTP.IDBuchungTNPreis = + BTLP.IDBuchungTNPreis_FS + + WHERE + BTLP.IDBuchungTNLeistung_FS = + BTL.IDBuchungTNLeistung + + AND BTP.Status IN + (N'F', N'O') + ) + ) X + + ORDER BY + X.Bezeichnung + + FOR JSON PATH + ) AS LeistungenJSON +) LJSON + +OUTER APPLY +( + SELECT TOP (1) + BTL.Nummer AS Skipassnummer + + FROM dbo.BuchungTNLeistung BTL + + INNER JOIN dbo.Leistung L + ON L.IDLeistung = + BTL.IDLeistung_FS + + WHERE + BTL.IDBuchungTN_FS = + BT.IDBuchungTN + + AND L.Bezeichnung LIKE N'%Skipass%' + + AND NULLIF( + LTRIM(RTRIM(BTL.Nummer)), + N'' + ) IS NOT NULL + + AND EXISTS + ( + SELECT 1 + + FROM dbo.BuchungTNLeistungPreis BTLP + + INNER JOIN dbo.BuchungTNPreis BTP + ON BTP.IDBuchungTNPreis = + BTLP.IDBuchungTNPreis_FS + + WHERE + BTLP.IDBuchungTNLeistung_FS = + BTL.IDBuchungTNLeistung + + AND BTP.Status IN + (N'F', N'O') + ) + + ORDER BY + BTL.IDBuchungTNLeistung +) SP + +WHERE + B.IDReise_FS = @IDReise + AND BT.Status = N'F' + +ORDER BY + B.Vorgang, + AP.Name, + AP.Vorname, + BT.Position; \ No newline at end of file diff --git a/pages/Page1/widgets/Daateiauswahl/Dateiupload.json b/pages/Page1/widgets/Daateiauswahl/Dateiupload.json index 61dd546..b322754 100644 --- a/pages/Page1/widgets/Daateiauswahl/Dateiupload.json +++ b/pages/Page1/widgets/Daateiauswahl/Dateiupload.json @@ -4,7 +4,7 @@ ], "animateLoading": true, "borderRadius": "1.5rem", - "bottomRow": 4, + "bottomRow": 11, "boxShadow": "none", "buttonColor": "{{appsmith.theme.colors.primaryColor}}", "dynamicBindingPathList": [ @@ -12,7 +12,16 @@ "key": "buttonColor" } ], - "dynamicTriggerPathList": [], + "dynamicPropertyPathList": [ + { + "key": "onFilesSelected" + } + ], + "dynamicTriggerPathList": [ + { + "key": "onFilesSelected" + } + ], "dynamicTyping": true, "fileDataType": "Array", "files": [], @@ -23,7 +32,7 @@ "isVisible": true, "key": "dnwpyqdcgc", "label": "Teilnehmerliste Uploaden", - "leftColumn": 24, + "leftColumn": 45, "maxFileSize": "30", "maxNumFiles": "1", "minWidth": 120, @@ -32,14 +41,15 @@ "mobileRightColumn": 27, "mobileTopRow": 13, "needsErrorInfo": false, + "onFilesSelected": "{{\n DatenquelleTabs.setTab(\"Liste hochladen\")\n}}", "parentColumnSpace": 20.25, "parentId": "ztxgnv0afs", "parentRowSpace": 10, "renderMode": "CANVAS", "responsiveBehavior": "hug", - "rightColumn": 40, + "rightColumn": 61, "selectedFiles": [], - "topRow": 0, + "topRow": 7, "type": "FILE_PICKER_WIDGET_V2", "version": 1, "widgetId": "fubn26bmpg", diff --git a/pages/Page1/widgets/Daateiauswahl/Hausauswahl.json b/pages/Page1/widgets/Daateiauswahl/Hausauswahl.json index 0574901..66247a0 100644 --- a/pages/Page1/widgets/Daateiauswahl/Hausauswahl.json +++ b/pages/Page1/widgets/Daateiauswahl/Hausauswahl.json @@ -4,22 +4,32 @@ "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", "bottomRow": 12, "boxShadow": "none", - "defaultOptionValue": "GREEN", + "defaultOptionValue": "", "dynamicBindingPathList": [ { "key": "accentColor" }, { "key": "borderRadius" + }, + { + "key": "sourceData" } ], "dynamicHeight": "FIXED", "dynamicPropertyPathList": [ + { + "key": "onOptionChange" + }, { "key": "sourceData" } ], - "dynamicTriggerPathList": [], + "dynamicTriggerPathList": [ + { + "key": "onOptionChange" + } + ], "isDisabled": false, "isFilterable": true, "isLoading": false, @@ -31,7 +41,7 @@ "labelText": "Hausauswahl", "labelTextSize": "0.875rem", "labelWidth": 5, - "leftColumn": 22, + "leftColumn": 3, "maxDynamicHeight": 9000, "minDynamicHeight": 4, "minWidth": 450, @@ -40,17 +50,18 @@ "mobileRightColumn": 40, "mobileTopRow": 5, "needsErrorInfo": false, - "optionLabel": "name", - "optionValue": "code", + "onOptionChange": "{{ resetWidget(\"Termin\", true).then(() => qryReisen.run()) }}", + "optionLabel": "label", + "optionValue": "value", "parentColumnSpace": 10.55859375, "parentId": "ztxgnv0afs", "parentRowSpace": 10, "placeholderText": "Select option", "renderMode": "CANVAS", "responsiveBehavior": "fill", - "rightColumn": 42, + "rightColumn": 20, "serverSideFiltering": false, - "sourceData": "[\n {\n \"name\": \"Blue\",\n \"code\": \"BLUE\"\n },\n {\n \"name\": \"Green\",\n \"code\": \"GREEN\"\n },\n {\n \"name\": \"Red\",\n \"code\": \"RED\"\n }\n]", + "sourceData": "{{qryHaeuser.data}}", "topRow": 5, "type": "SELECT_WIDGET", "version": 1, diff --git a/pages/Page1/widgets/Daateiauswahl/Termin.json b/pages/Page1/widgets/Daateiauswahl/Termin.json new file mode 100644 index 0000000..99b83f0 --- /dev/null +++ b/pages/Page1/widgets/Daateiauswahl/Termin.json @@ -0,0 +1,76 @@ +{ + "accentColor": "{{appsmith.theme.colors.primaryColor}}", + "animateLoading": true, + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 12, + "boxShadow": "none", + "defaultOptionValue": "", + "dynamicBindingPathList": [ + { + "key": "accentColor" + }, + { + "key": "borderRadius" + }, + { + "key": "sourceData" + }, + { + "key": "isDisabled" + } + ], + "dynamicHeight": "FIXED", + "dynamicPropertyPathList": [ + { + "key": "sourceData" + }, + { + "key": "onOptionChange" + }, + { + "key": "isDisabled" + } + ], + "dynamicTriggerPathList": [ + { + "key": "onOptionChange" + } + ], + "isDisabled": "{{ !Hausauswahl.selectedOptionValue }}", + "isFilterable": true, + "isLoading": false, + "isRequired": false, + "isVisible": true, + "key": "vwkps0mvdu", + "labelAlignment": "left", + "labelPosition": "Top", + "labelText": "Reise und Termin auswählen", + "labelTextSize": "0.875rem", + "labelWidth": 5, + "leftColumn": 22, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minWidth": 450, + "mobileBottomRow": 15, + "mobileLeftColumn": 43, + "mobileRightColumn": 63, + "mobileTopRow": 8, + "needsErrorInfo": false, + "onOptionChange": "{{\n qryTeilnehmer.run()\n .then(() => DatenquelleTabs.setTab(\"Reise auswählen\"))\n}}", + "optionLabel": "label", + "optionValue": "value", + "parentColumnSpace": 19.9375, + "parentId": "ztxgnv0afs", + "parentRowSpace": 10, + "placeholderText": "Select option", + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 42, + "serverSideFiltering": false, + "sourceData": "{{ qryReisen.data }}", + "topRow": 5, + "type": "SELECT_WIDGET", + "version": 1, + "widgetId": "aobp7jkkeu", + "widgetName": "Termin" +} \ No newline at end of file diff --git a/pages/Page1/widgets/DatenquelleTabs/DatenquelleTabs.json b/pages/Page1/widgets/DatenquelleTabs/DatenquelleTabs.json new file mode 100644 index 0000000..44a5617 --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/DatenquelleTabs.json @@ -0,0 +1,165 @@ +{ + "accentColor": "{{appsmith.theme.colors.primaryColor}}", + "animateLoading": true, + "backgroundColor": "#FFFFFF", + "borderColor": "#E0DEDE", + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "borderWidth": 1, + "bottomRow": 106, + "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", + "children": [ + { + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 840, + "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", + "canExtend": true, + "detachFromLayout": true, + "dynamicBindingPathList": [ + { + "key": "borderRadius" + }, + { + "key": "boxShadow" + } + ], + "dynamicHeight": "AUTO_HEIGHT", + "dynamicTriggerPathList": [], + "flexLayers": [], + "isDisabled": false, + "isLoading": false, + "isVisible": true, + "key": "zvjphufibl", + "leftColumn": 0, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minHeight": 150, + "minWidth": 450, + "mobileBottomRow": 150, + "mobileLeftColumn": 0, + "mobileRightColumn": 478.5, + "mobileTopRow": 0, + "needsErrorInfo": false, + "parentColumnSpace": 1, + "parentId": "w8qhfvke7s", + "parentRowSpace": 1, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 478.5, + "shouldScrollContents": false, + "tabId": "tab1", + "tabName": "Reise auswählen", + "topRow": 0, + "type": "CANVAS_WIDGET", + "version": 1, + "widgetId": "1aktert2vk", + "widgetName": "Canvas4" + }, + { + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 840, + "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", + "canExtend": true, + "detachFromLayout": true, + "dynamicBindingPathList": [ + { + "key": "borderRadius" + }, + { + "key": "boxShadow" + } + ], + "dynamicHeight": "AUTO_HEIGHT", + "dynamicTriggerPathList": [], + "flexLayers": [], + "isDisabled": false, + "isLoading": false, + "isVisible": true, + "key": "zvjphufibl", + "leftColumn": 0, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minHeight": 150, + "minWidth": 450, + "mobileBottomRow": 150, + "mobileLeftColumn": 0, + "mobileRightColumn": 478.5, + "mobileTopRow": 0, + "needsErrorInfo": false, + "parentColumnSpace": 1, + "parentId": "w8qhfvke7s", + "parentRowSpace": 1, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 478.5, + "shouldScrollContents": false, + "tabId": "tab2", + "tabName": "Liste hochladen", + "topRow": 0, + "type": "CANVAS_WIDGET", + "version": 1, + "widgetId": "0yzx2g2853", + "widgetName": "Canvas5" + } + ], + "defaultTab": "Reise auswählen", + "dynamicBindingPathList": [ + { + "key": "accentColor" + }, + { + "key": "borderRadius" + }, + { + "key": "boxShadow" + } + ], + "dynamicHeight": "AUTO_HEIGHT", + "dynamicTriggerPathList": [], + "flexVerticalAlignment": "stretch", + "isCanvas": true, + "isLoading": false, + "isVisible": true, + "key": "03bm8eqabi", + "leftColumn": 0, + "maxDynamicHeight": 9000, + "minDynamicHeight": 15, + "minWidth": 450, + "mobileBottomRow": 33, + "mobileLeftColumn": 14, + "mobileRightColumn": 38, + "mobileTopRow": 18, + "needsErrorInfo": false, + "originalBottomRow": 106, + "originalTopRow": 18, + "parentColumnSpace": 19.9375, + "parentId": "0", + "parentRowSpace": 10, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 63, + "shouldScrollContents": true, + "shouldShowTabs": true, + "tabsObj": { + "tab1": { + "id": "tab1", + "index": 0, + "isVisible": true, + "label": "Reise auswählen", + "positioning": "vertical", + "widgetId": "1aktert2vk" + }, + "tab2": { + "id": "tab2", + "index": 1, + "isVisible": true, + "label": "Liste hochladen", + "positioning": "vertical", + "widgetId": "0yzx2g2853" + } + }, + "topRow": 18, + "type": "TABS_WIDGET", + "version": 3, + "widgetId": "w8qhfvke7s", + "widgetName": "DatenquelleTabs" +} \ No newline at end of file diff --git a/pages/Page1/widgets/DatenquelleTabs/Tracker/Eingecheckt.json b/pages/Page1/widgets/DatenquelleTabs/Tracker/Eingecheckt.json new file mode 100644 index 0000000..1636109 --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/Tracker/Eingecheckt.json @@ -0,0 +1,55 @@ +{ + "animateLoading": true, + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 4, + "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": "i5k0b442j1", + "leftColumn": 43, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minWidth": 450, + "mobileBottomRow": 16, + "mobileLeftColumn": 19, + "mobileRightColumn": 35, + "mobileTopRow": 12, + "needsErrorInfo": false, + "originalBottomRow": 4, + "originalTopRow": 0, + "overflow": "NONE", + "parentColumnSpace": 30.25, + "parentId": "dbajbznnvh", + "parentRowSpace": 10, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 64, + "shouldTruncate": false, + "text": "{{\n (qryTeilnehmer.data || []).filter(row =>\n row.Eingecheckt === true ||\n row.Eingecheckt === 1 ||\n row.Eingecheckt === \"1\"\n ).length + \" eingecheckt\"\n}}", + "textAlign": "CENTER", + "textColor": "#be167d", + "topRow": 0, + "truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}", + "type": "TEXT_WIDGET", + "version": 1, + "widgetId": "mkza9yyfxm", + "widgetName": "Eingecheckt" +} \ No newline at end of file diff --git a/pages/Page1/widgets/Filter/Filter.json b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/Filter.json similarity index 93% rename from pages/Page1/widgets/Filter/Filter.json rename to pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/Filter.json index 2d8f335..372b0b3 100644 --- a/pages/Page1/widgets/Filter/Filter.json +++ b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/Filter.json @@ -4,12 +4,12 @@ "borderColor": "#d9d9d9", "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", "borderWidth": "1", - "bottomRow": 49, + "bottomRow": 79, "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", "children": [ { "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", - "bottomRow": 200, + "bottomRow": 740, "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", "canExtend": false, "containerStyle": "none", @@ -75,16 +75,16 @@ "mobileRightColumn": 34, "mobileTopRow": 41, "needsErrorInfo": false, - "originalBottomRow": 49, - "originalTopRow": 29, + "originalBottomRow": 79, + "originalTopRow": 5, "parentColumnSpace": 30.25, - "parentId": "0", + "parentId": "dbajbznnvh", "parentRowSpace": 10, "renderMode": "CANVAS", "responsiveBehavior": "fill", - "rightColumn": 64, + "rightColumn": 63, "shouldScrollContents": true, - "topRow": 29, + "topRow": 5, "type": "CONTAINER_WIDGET", "version": 1, "widgetId": "9gc9hgwitx", diff --git a/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/Teilnehmer.json b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/Teilnehmer.json new file mode 100644 index 0000000..6f10d4a --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/Teilnehmer.json @@ -0,0 +1,779 @@ +{ + "accentColor": "{{appsmith.theme.colors.primaryColor}}", + "allowAddNewRow": false, + "animateLoading": true, + "borderColor": "#E0DEDE", + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "borderWidth": "1", + "bottomRow": 72, + "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", + "cachedTableData": {}, + "canFreezeColumn": true, + "childStylesheet": { + "button": { + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "boxShadow": "none", + "buttonColor": "{{appsmith.theme.colors.primaryColor}}" + }, + "editActions": { + "discardBorderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "discardButtonColor": "{{appsmith.theme.colors.primaryColor}}", + "saveBorderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "saveButtonColor": "{{appsmith.theme.colors.primaryColor}}" + }, + "iconButton": { + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "boxShadow": "none", + "buttonColor": "{{appsmith.theme.colors.primaryColor}}" + }, + "menuButton": { + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "boxShadow": "none", + "menuColor": "{{appsmith.theme.colors.primaryColor}}" + } + }, + "columnOrder": [ + "Vorgang", + "EditActions1", + "Name", + "Vorname", + "Skipassnummer", + "E_Mail", + "Geb__Datum", + "customColumn1", + "TeilnehmerID", + "Zus_Wunsch", + "LeistungenJSON", + "id", + "Eingecheckt", + "checkedIn", + "Check_in_Zeitpunkt", + "Check_in_Benutzer" + ], + "columnUpdatedAt": 1785493164670, + "columnWidthMap": { + "Geb__Datum": 122, + "Name": 307, + "Skipass___Leistungen": 705, + "Skipassnummer": 189, + "Stirnlampe": 137, + "Stirnlampe_retour": 184, + "Vorgang": 99, + "Zimmer": 99, + "name": 245, + "xn__Schlssel_95a": 127, + "xn__Schlssel_retour_2vb": 199 + }, + "compactMode": "DEFAULT", + "customIsLoading": false, + "customIsLoadingValue": "", + "defaultPageSize": 0, + "defaultSelectedRowIndex": "0", + "defaultSelectedRowIndices": [ + 0 + ], + "delimiter": ",", + "dynamicBindingPathList": [ + { + "key": "accentColor" + }, + { + "key": "borderRadius" + }, + { + "key": "boxShadow" + }, + { + "key": "primaryColumns.Vorgang.computedValue" + }, + { + "key": "primaryColumns.Name.computedValue" + }, + { + "key": "primaryColumns.Vorname.computedValue" + }, + { + "key": "primaryColumns.E_Mail.computedValue" + }, + { + "key": "primaryColumns.Geb__Datum.computedValue" + }, + { + "key": "primaryColumns.Skipassnummer.computedValue" + }, + { + "key": "primaryColumns.customColumn1.buttonLabel" + }, + { + "key": "primaryColumns.customColumn1.buttonColor" + }, + { + "key": "primaryColumns.EditActions1.saveButtonColor" + }, + { + "key": "primaryColumns.EditActions1.saveBorderRadius" + }, + { + "key": "primaryColumns.EditActions1.discardBorderRadius" + }, + { + "key": "primaryColumns.EditActions1.isSaveDisabled" + }, + { + "key": "primaryColumns.EditActions1.isDiscardDisabled" + }, + { + "key": "tableData" + }, + { + "key": "primaryColumns.TeilnehmerID.computedValue" + }, + { + "key": "primaryColumns.Zus_Wunsch.computedValue" + }, + { + "key": "primaryColumns.LeistungenJSON.computedValue" + }, + { + "key": "primaryColumns.id.computedValue" + }, + { + "key": "primaryColumns.Eingecheckt.computedValue" + }, + { + "key": "primaryColumns.checkedIn.computedValue" + }, + { + "key": "primaryColumns.Check_in_Zeitpunkt.computedValue" + }, + { + "key": "primaryColumns.Check_in_Benutzer.computedValue" + } + ], + "dynamicPropertyPathList": [ + { + "key": "primaryColumns.customColumn1.buttonColor" + }, + { + "key": "primaryColumns.EditActions1.isSaveDisabled" + }, + { + "key": "primaryColumns.EditActions1.isDiscardDisabled" + }, + { + "key": "primaryColumns.EditActions1.onSave" + }, + { + "key": "tableData" + }, + { + "key": "primaryColumns.customColumn1.onClick" + } + ], + "dynamicTriggerPathList": [ + { + "key": "primaryColumns.customColumn1.onClick" + }, + { + "key": "primaryColumns.EditActions1.onSave" + } + ], + "enableClientSideSearch": true, + "endOfData": false, + "flexVerticalAlignment": "start", + "horizontalAlignment": "LEFT", + "inlineEditingSaveOption": "ROW_LEVEL", + "isLoading": false, + "isSortable": true, + "isVisible": true, + "isVisibleDownload": true, + "isVisibleFilters": true, + "isVisiblePagination": true, + "isVisibleSearch": true, + "key": "3tk2v2xta5", + "label": "Data", + "leftColumn": 0, + "minWidth": 450, + "mobileBottomRow": 36, + "mobileLeftColumn": 12, + "mobileRightColumn": 46, + "mobileTopRow": 8, + "needsErrorInfo": false, + "onSort": "{{}}", + "originalBottomRow": 138, + "originalTopRow": 85, + "parentColumnSpace": 20.25, + "parentId": "p5ig8mqe5h", + "parentRowSpace": 10, + "primaryColumnId": "id", + "primaryColumns": { + "Check_in_Benutzer": { + "alias": "Check-in Benutzer", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "text", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Check-in Benutzer\"])) : Check-in Benutzer })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "Check_in_Benutzer", + "index": 13, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "Check-in Benutzer", + "notation": "standard", + "originalId": "Check-in Benutzer", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "Check_in_Zeitpunkt": { + "alias": "Check-in Zeitpunkt", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "text", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Check-in Zeitpunkt\"])) : Check-in Zeitpunkt })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "Check_in_Zeitpunkt", + "index": 12, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "Check-in Zeitpunkt", + "notation": "standard", + "originalId": "Check-in Zeitpunkt", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "E_Mail": { + "alias": "E-Mail", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "text", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"E-Mail\"])) : E-Mail })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "E_Mail", + "index": 3, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "E-Mail", + "notation": "standard", + "originalId": "E-Mail", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "EditActions1": { + "alias": "EditActions1", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "buttonStyle": "rgb(3, 179, 101)", + "columnType": "editActions", + "computedValue": "", + "currencyCode": "USD", + "decimals": 0, + "discardActionLabel": "Discard", + "discardBorderRadius": "{{Teilnehmer.processedTableData.map((currentRow, currentIndex) => ( (appsmith.theme.borderRadius.appBorderRadius)))}}", + "discardButtonColor": "#F22B2B", + "discardButtonVariant": "TERTIARY", + "discardIconAlign": "left", + "enableFilter": true, + "enableSort": true, + "id": "EditActions1", + "index": 10, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": true, + "isDisabled": false, + "isDiscardDisabled": "{{Teilnehmer.processedTableData.map((currentRow, currentIndex) => ( !Teilnehmer.updatedRowIndices.includes(currentIndex)))}}", + "isDiscardVisible": true, + "isEditable": false, + "isSaveDisabled": "{{Teilnehmer.processedTableData.map((currentRow, currentIndex) => ( !Teilnehmer.updatedRowIndices.includes(currentIndex)))}}", + "isSaveVisible": true, + "isVisible": false, + "label": "Save / Discard", + "notation": "standard", + "onSave": "{{ CheckinData.saveUpdatedRow(Teilnehmer.updatedRow) }}", + "originalId": "EditActions1", + "saveActionLabel": "Save", + "saveBorderRadius": "{{Teilnehmer.processedTableData.map((currentRow, currentIndex) => ( (appsmith.theme.borderRadius.appBorderRadius)))}}", + "saveButtonColor": "{{Teilnehmer.processedTableData.map((currentRow, currentIndex) => ( (appsmith.theme.colors.primaryColor)))}}", + "saveIconAlign": "left", + "sticky": "left", + "thousandSeparator": true, + "validation": {}, + "width": 150 + }, + "Eingecheckt": { + "alias": "Eingecheckt", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "checkbox", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Eingecheckt\"])) : Eingecheckt })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "Eingecheckt", + "index": 10, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "Eingecheckt", + "notation": "standard", + "originalId": "Eingecheckt", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "Geb__Datum": { + "alias": "Geb.-Datum", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "text", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => ( _.get(currentRow, \"Geb.-Datum\", \"\") )) : _.get(currentRow, \"Geb.-Datum\", \"\") })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "Geb__Datum", + "index": 4, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "Geb.-Datum", + "notation": "standard", + "originalId": "Geb.-Datum", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "LeistungenJSON": { + "alias": "LeistungenJSON", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "text", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"LeistungenJSON\"])) : LeistungenJSON })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "LeistungenJSON", + "index": 7, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "LeistungenJSON", + "notation": "standard", + "originalId": "LeistungenJSON", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "Name": { + "alias": "Name", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "text", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Name\"])) : Name })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "Name", + "index": 1, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "Name", + "notation": "standard", + "originalId": "Name", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "Skipassnummer": { + "alias": "Skipassnummer", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "text", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Skipassnummer\"])) : Skipassnummer })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "Skipassnummer", + "index": 19, + "isCellEditable": true, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": true, + "isSaveVisible": true, + "isVisible": true, + "label": "Skipassnummer", + "notation": "standard", + "originalId": "Skipassnummer", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "TeilnehmerID": { + "alias": "TeilnehmerID", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "number", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"TeilnehmerID\"])) : TeilnehmerID })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "TeilnehmerID", + "index": 0, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "TeilnehmerID", + "notation": "standard", + "originalId": "TeilnehmerID", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "Vorgang": { + "alias": "Vorgang", + "allowCellWrapping": true, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "number", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Vorgang\"])) : Vorgang })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "Vorgang", + "index": 0, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "Vorgang", + "notation": "standard", + "originalId": "Vorgang", + "sticky": "left", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "Vorname": { + "alias": "Vorname", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "text", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Vorname\"])) : Vorname })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "Vorname", + "index": 2, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "Vorname", + "notation": "standard", + "originalId": "Vorname", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "Zus_Wunsch": { + "alias": "Zus_Wunsch", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "text", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Zus_Wunsch\"])) : Zus_Wunsch })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "Zus_Wunsch", + "index": 6, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "Zus_Wunsch", + "notation": "standard", + "originalId": "Zus_Wunsch", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "checkedIn": { + "alias": "checkedIn", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "checkbox", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"checkedIn\"])) : checkedIn })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "checkedIn", + "index": 11, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "checkedIn", + "notation": "standard", + "originalId": "checkedIn", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "customColumn1": { + "alias": "Check-in", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "buttonColor": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (\n currentRow.Eingecheckt\n ? \"#0a9e6e\"\n : \"#3b6fd4\"\n)) : \n currentRow.Eingecheckt\n ? \"#0a9e6e\"\n : \"#3b6fd4\"\n })()}}", + "buttonLabel": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (\n currentRow.Eingecheckt\n ? \"✓ Eingecheckt\"\n : \"Check-in\"\n)) : \n currentRow.Eingecheckt\n ? \"✓ Eingecheckt\"\n : \"Check-in\"\n })()}}", + "buttonStyle": "rgb(3, 179, 101)", + "columnType": "button", + "computedValue": "", + "currencyCode": "USD", + "customAlias": "", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "horizontalAlignment": "LEFT", + "id": "customColumn1", + "index": 10, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": true, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "Check-in", + "labelColor": "#FFFFFF", + "notation": "standard", + "onClick": "{{\n CheckinData.toggleCheckin(\n Teilnehmer.triggeredRow\n )\n}}", + "originalId": "customColumn1", + "sticky": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + }, + "id": { + "alias": "id", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "cellBackground": "", + "columnType": "text", + "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"id\"])) : id })()}}", + "currencyCode": "USD", + "decimals": 0, + "enableFilter": true, + "enableSort": true, + "fontStyle": "", + "horizontalAlignment": "LEFT", + "id": "id", + "index": 9, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": false, + "isDisabled": false, + "isDiscardVisible": true, + "isEditable": false, + "isSaveVisible": true, + "isVisible": true, + "label": "id", + "notation": "standard", + "originalId": "id", + "sticky": "", + "textColor": "", + "textSize": "0.875rem", + "thousandSeparator": true, + "validation": {}, + "verticalAlignment": "CENTER", + "width": 150 + } + }, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 64, + "searchKey": "", + "showInlineEditingOptionDropdown": true, + "tableData": "{{\n (() => {\n const gespeicherterStatus =\n appsmith.store.checkinState || {};\n\n const zeilen = (qryTeilnehmer.data || []).map(row => {\n const id =\n \"tn_\" + String(row.TeilnehmerID || \"\");\n\n const status =\n gespeicherterStatus[id] || {};\n\n return {\n ...row,\n id: id,\n Eingecheckt: status.checkedIn === true,\n checkedIn: status.checkedIn === true,\n \"Check-in Zeitpunkt\": status.checkedInAt || \"\",\n \"Check-in Benutzer\": status.checkedInBy || \"\"\n };\n });\n\n const suche =\n String(inpSuche.text || \"\").trim().toLowerCase();\n\n const vorgang =\n selVorgang.selectedOptionValue;\n\n const leistung =\n selLeistung.selectedOptionValue;\n\n const checkin =\n selCheckin.selectedOptionValue;\n\n return zeilen.filter(row => {\n const suchtext = [\n row.Vorgang,\n row.Name,\n row.Vorname,\n row[\"E-Mail\"],\n row[\"Geb.-Datum\"],\n row.Skipassnummer,\n row.Zus_Wunsch,\n row.LeistungenJSON\n ]\n .join(\" \")\n .toLowerCase();\n\n const suchePasst =\n suche === \"\" ||\n suchtext.includes(suche);\n\n const vorgangPasst =\n !vorgang ||\n vorgang === \"__ALL__\" ||\n String(row.Vorgang || \"\") ===\n String(vorgang);\n\n const leistungPasst =\n !leistung ||\n leistung === \"__ALL__\" ||\n String(row.LeistungenJSON || \"\")\n .toLowerCase()\n .includes(\n String(leistung).toLowerCase()\n );\n\n const checkinPasst =\n !checkin ||\n checkin === \"__ALL__\" ||\n (\n checkin === \"offen\" &&\n row.Eingecheckt !== true\n ) ||\n (\n checkin === \"eingecheckt\" &&\n row.Eingecheckt === true\n );\n\n return (\n suchePasst &&\n vorgangPasst &&\n leistungPasst &&\n checkinPasst\n );\n });\n })()\n}}", + "textSize": "0.875rem", + "topRow": 19, + "totalRecordsCount": 0, + "type": "TABLE_WIDGET_V2", + "version": 2, + "verticalAlignment": "CENTER", + "widgetId": "7d9hktp1ai", + "widgetName": "Teilnehmer" +} \ No newline at end of file diff --git a/pages/Page1/widgets/Filter/inpSuche.json b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/inpSuche.json similarity index 100% rename from pages/Page1/widgets/Filter/inpSuche.json rename to pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/inpSuche.json diff --git a/pages/Page1/widgets/Filter/selCheckin.json b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selCheckin.json similarity index 92% rename from pages/Page1/widgets/Filter/selCheckin.json rename to pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selCheckin.json index 187a644..7a1ab07 100644 --- a/pages/Page1/widgets/Filter/selCheckin.json +++ b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selCheckin.json @@ -56,7 +56,7 @@ "responsiveBehavior": "fill", "rightColumn": 64, "serverSideFiltering": false, - "sourceData": "{{\n [\n {\n label: \"Alle Check-In Status\",\n value: \"__ALL__\"\n },\n {\n label: \"Eingecheckt\",\n value: \"checked\"\n },\n {\n label: \"Ausstehend\",\n value: \"pending\"\n }\n ]\n}}", + "sourceData": "{{\n [\n {\n label: \"Alle Check-In Status\",\n value: \"__ALL__\"\n },\n {\n label: \"Offen\",\n value: \"offen\"\n },\n {\n label: \"Eingecheckt\",\n value: \"eingecheckt\"\n }\n ]\n}}", "topRow": 0, "type": "SELECT_WIDGET", "version": 1, diff --git a/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selLeistung.json b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selLeistung.json new file mode 100644 index 0000000..25f36e2 --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selLeistung.json @@ -0,0 +1,65 @@ +{ + "accentColor": "{{appsmith.theme.colors.primaryColor}}", + "animateLoading": true, + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 18, + "boxShadow": "none", + "defaultOptionValue": "{{ ((options, serverSideFiltering) => ( \"__ALL__\" ))(selLeistung.options, selLeistung.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": "pfa270btxn", + "labelAlignment": "left", + "labelPosition": "Top", + "labelText": "", + "labelTextSize": "0.875rem", + "labelWidth": 5, + "leftColumn": 26, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minWidth": 450, + "mobileBottomRow": 20, + "mobileLeftColumn": 44, + "mobileRightColumn": 64, + "mobileTopRow": 13, + "needsErrorInfo": false, + "optionLabel": "label", + "optionValue": "value", + "parentColumnSpace": 30.25, + "parentId": "p5ig8mqe5h", + "parentRowSpace": 10, + "placeholderText": "Select option", + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 39, + "serverSideFiltering": false, + "sourceData": "{{\n [\n {\n label: \"Alle Leistungen\",\n value: \"__ALL__\"\n },\n ..._.uniqBy(\n _.flatten(\n (qryTeilnehmer.data || []).map(row => {\n try {\n const leistungen = JSON.parse(\n row.LeistungenJSON || \"[]\"\n );\n\n return leistungen.map(item => ({\n label: String(item.name || \"\"),\n value: String(item.name || \"\")\n }));\n } catch (error) {\n return [];\n }\n })\n ),\n \"value\"\n ).filter(option => option.value !== \"\")\n ]\n}}", + "topRow": 0, + "type": "SELECT_WIDGET", + "version": 1, + "widgetId": "g7qnca391u", + "widgetName": "selLeistung" +} \ No newline at end of file diff --git a/pages/Page1/widgets/Filter/selReiseStatus.json b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selReiseStatus.json similarity index 86% rename from pages/Page1/widgets/Filter/selReiseStatus.json rename to pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selReiseStatus.json index e724bab..26dba1f 100644 --- a/pages/Page1/widgets/Filter/selReiseStatus.json +++ b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selReiseStatus.json @@ -56,7 +56,7 @@ "responsiveBehavior": "fill", "rightColumn": 52, "serverSideFiltering": false, - "sourceData": "{{\n [\n {\n label: \"Reisestatus: Alle\",\n value: \"__ALL__\"\n },\n {\n label: \"Aktiv\",\n value: \"aktiv\"\n },\n {\n label: \"Abgereist\",\n value: \"abgereist\"\n },\n {\n label: \"Zu zahlen\",\n value: \"zu_zahlen\"\n },\n {\n label: \"No-Show\",\n value: \"no_show\"\n }\n ]\n}}", + "sourceData": "{{\n [\n {\n label: \"Reisestatus: Alle\",\n value: \"__ALL__\"\n },\n {\n label: \"Aktiv\",\n value: \"aktiv\"\n },\n {\n label: \"Inaktiv\",\n value: \"inaktiv\"\n }\n ]\n}}", "topRow": 0, "type": "SELECT_WIDGET", "version": 1, diff --git a/pages/Page1/widgets/Filter/selVorgang.json b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selVorgang.json similarity index 81% rename from pages/Page1/widgets/Filter/selVorgang.json rename to pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selVorgang.json index f9ab1ef..3733203 100644 --- a/pages/Page1/widgets/Filter/selVorgang.json +++ b/pages/Page1/widgets/DatenquelleTabs/Tracker/Filter/selVorgang.json @@ -56,7 +56,7 @@ "responsiveBehavior": "fill", "rightColumn": 26, "serverSideFiltering": false, - "sourceData": "{{ CheckinData.vorgangOptions() }}", + "sourceData": "{{\n [\n {\n label: \"Alle Gruppen\",\n value: \"__ALL__\"\n },\n ..._.uniqBy(\n (qryTeilnehmer.data || []).map(row => ({\n label: String(row.Vorgang || \"\"),\n value: String(row.Vorgang || \"\")\n })),\n \"value\"\n ).filter(option => option.value !== \"\")\n ]\n}}", "topRow": 0, "type": "SELECT_WIDGET", "version": 1, diff --git a/pages/Page1/widgets/DatenquelleTabs/Tracker/Offene_Kunden.json b/pages/Page1/widgets/DatenquelleTabs/Tracker/Offene_Kunden.json new file mode 100644 index 0000000..646cc4d --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/Tracker/Offene_Kunden.json @@ -0,0 +1,55 @@ +{ + "animateLoading": true, + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 4, + "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": "i5k0b442j1", + "leftColumn": 21, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minWidth": 450, + "mobileBottomRow": 17, + "mobileLeftColumn": 44, + "mobileRightColumn": 60, + "mobileTopRow": 13, + "needsErrorInfo": false, + "originalBottomRow": 4, + "originalTopRow": 0, + "overflow": "NONE", + "parentColumnSpace": 30.25, + "parentId": "dbajbznnvh", + "parentRowSpace": 10, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 41, + "shouldTruncate": false, + "text": "{{\n (qryTeilnehmer.data || []).filter(row =>\n row.Eingecheckt !== true &&\n row.Eingecheckt !== 1 &&\n row.Eingecheckt !== \"1\"\n ).length + \" offen\"\n}}", + "textAlign": "CENTER", + "textColor": "#be167d", + "topRow": 0, + "truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}", + "type": "TEXT_WIDGET", + "version": 1, + "widgetId": "wtok69ko5h", + "widgetName": "Offene_Kunden" +} \ No newline at end of file diff --git a/pages/Page1/widgets/DatenquelleTabs/Tracker/Teilnehmende_Statistik.json b/pages/Page1/widgets/DatenquelleTabs/Tracker/Teilnehmende_Statistik.json new file mode 100644 index 0000000..75dc514 --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/Tracker/Teilnehmende_Statistik.json @@ -0,0 +1,54 @@ +{ + "animateLoading": true, + "backgroundColor": "", + "borderColor": "", + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 4, + "dynamicBindingPathList": [ + { + "key": "truncateButtonColor" + }, + { + "key": "borderRadius" + }, + { + "key": "text" + } + ], + "dynamicHeight": "AUTO_HEIGHT", + "dynamicTriggerPathList": [], + "fontFamily": "Roboto", + "fontSize": "1rem", + "fontStyle": "BOLD", + "isLoading": false, + "isVisible": true, + "key": "i5k0b442j1", + "leftColumn": 0, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minWidth": 450, + "mobileBottomRow": 17, + "mobileLeftColumn": 1, + "mobileRightColumn": 17, + "mobileTopRow": 13, + "needsErrorInfo": false, + "originalBottomRow": 4, + "originalTopRow": 0, + "overflow": "NONE", + "parentColumnSpace": 30.25, + "parentId": "dbajbznnvh", + "parentRowSpace": 10, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 19, + "shouldTruncate": false, + "text": "{{ (qryTeilnehmer.data || []).length + \" Teilnehmende\" }}", + "textAlign": "CENTER", + "textColor": "#be167d", + "topRow": 0, + "truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}", + "type": "TEXT_WIDGET", + "version": 1, + "widgetId": "4ak2rsqfsb", + "widgetName": "Teilnehmende_Statistik" +} \ No newline at end of file diff --git a/pages/Page1/widgets/Tracker/Tracker.json b/pages/Page1/widgets/DatenquelleTabs/Tracker/Tracker.json similarity index 89% rename from pages/Page1/widgets/Tracker/Tracker.json rename to pages/Page1/widgets/DatenquelleTabs/Tracker/Tracker.json index 709b60e..6748a1f 100644 --- a/pages/Page1/widgets/Tracker/Tracker.json +++ b/pages/Page1/widgets/DatenquelleTabs/Tracker/Tracker.json @@ -1,15 +1,15 @@ { "animateLoading": true, - "backgroundColor": "#FFFFFF", - "borderColor": "#E0DEDE", + "backgroundColor": "", + "borderColor": "#e0dede", "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", "borderWidth": "1", - "bottomRow": 28, + "bottomRow": 82, "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", "children": [ { "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", - "bottomRow": 100, + "bottomRow": 810, "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", "canExtend": false, "containerStyle": "none", @@ -60,6 +60,7 @@ } ], "dynamicHeight": "AUTO_HEIGHT", + "dynamicTriggerPathList": [], "flexVerticalAlignment": "stretch", "isCanvas": true, "isLoading": false, @@ -74,16 +75,16 @@ "mobileRightColumn": 37, "mobileTopRow": 59, "needsErrorInfo": false, - "originalBottomRow": 28, - "originalTopRow": 18, + "originalBottomRow": 82, + "originalTopRow": 1, "parentColumnSpace": 30.25, - "parentId": "0", + "parentId": "1aktert2vk", "parentRowSpace": 10, "renderMode": "CANVAS", "responsiveBehavior": "fill", - "rightColumn": 64, + "rightColumn": 63, "shouldScrollContents": true, - "topRow": 18, + "topRow": 1, "type": "CONTAINER_WIDGET", "version": 1, "widgetId": "8rvwhdga7q", diff --git a/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/FilterCopy.json b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/FilterCopy.json new file mode 100644 index 0000000..79f3757 --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/FilterCopy.json @@ -0,0 +1,92 @@ +{ + "animateLoading": true, + "backgroundColor": "#FFFFFF", + "borderColor": "#d9d9d9", + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "borderWidth": "1", + "bottomRow": 78, + "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", + "children": [ + { + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 740, + "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", + "canExtend": false, + "containerStyle": "none", + "detachFromLayout": true, + "dynamicBindingPathList": [ + { + "key": "borderRadius" + }, + { + "key": "boxShadow" + } + ], + "dynamicHeight": "AUTO_HEIGHT", + "flexLayers": [], + "isLoading": false, + "isVisible": true, + "key": "w2m8tc4c4f", + "leftColumn": 0, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minHeight": 100, + "minWidth": 450, + "mobileBottomRow": 100, + "mobileLeftColumn": 0, + "mobileRightColumn": 726, + "mobileTopRow": 0, + "needsErrorInfo": false, + "parentColumnSpace": 1, + "parentId": "pk2p4bgqox", + "parentRowSpace": 1, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 726, + "topRow": 0, + "type": "CANVAS_WIDGET", + "version": 1, + "widgetId": "2sk6s6gadj", + "widgetName": "Canvas1Copy" + } + ], + "containerStyle": "card", + "dynamicBindingPathList": [ + { + "key": "borderRadius" + }, + { + "key": "boxShadow" + } + ], + "dynamicHeight": "AUTO_HEIGHT", + "dynamicTriggerPathList": [], + "flexVerticalAlignment": "stretch", + "isCanvas": true, + "isLoading": false, + "isVisible": true, + "key": "2wtbtk0enb", + "leftColumn": 0, + "maxDynamicHeight": 9000, + "minDynamicHeight": 10, + "minWidth": 450, + "mobileBottomRow": 51, + "mobileLeftColumn": 10, + "mobileRightColumn": 34, + "mobileTopRow": 41, + "needsErrorInfo": false, + "originalBottomRow": 78, + "originalTopRow": 4, + "parentColumnSpace": 30.25, + "parentId": "8tce98armr", + "parentRowSpace": 10, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 64, + "shouldScrollContents": true, + "topRow": 4, + "type": "CONTAINER_WIDGET", + "version": 1, + "widgetId": "pk2p4bgqox", + "widgetName": "FilterCopy" +} \ No newline at end of file diff --git a/pages/Page1/widgets/Teilnehmer.json b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/TeilnehmerUpload.json similarity index 71% rename from pages/Page1/widgets/Teilnehmer.json rename to pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/TeilnehmerUpload.json index a030e3d..9ff2ba5 100644 --- a/pages/Page1/widgets/Teilnehmer.json +++ b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/TeilnehmerUpload.json @@ -5,7 +5,7 @@ "borderColor": "#E0DEDE", "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", "borderWidth": "1", - "bottomRow": 101, + "bottomRow": 72, "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", "cachedTableData": {}, "canFreezeColumn": true, @@ -33,31 +33,42 @@ } }, "columnOrder": [ - "xn__Schlssel_95a", + "EditActions1", + "customColumn1", + "id", "Vorgang", "Name", "Vorname", "E_Mail", "Geb__Datum", - "Skipassnummer", - "id", "Zimmer", + "xn__Schlssel_95a", "xn__Schlssel_retour_2vb", - "Skipass___Leistungen", - "Notiz", "Stirnlampe", "Stirnlampe_retour", + "Skipass___Leistungen", + "Skipassnummer", + "Notiz", "Nachbuchungen", "Status", "Reisestatus", "Eingecheckt", "Check_in_Zeitpunkt", - "Check_in_Benutzer", - "customColumn1" + "Check_in_Benutzer" ], - "columnUpdatedAt": 1785143780208, + "columnUpdatedAt": 1785494271663, "columnWidthMap": { - "name": 245 + "Geb__Datum": 122, + "Name": 128, + "Skipass___Leistungen": 705, + "Skipassnummer": 189, + "Stirnlampe": 137, + "Stirnlampe_retour": 184, + "Vorgang": 100, + "Zimmer": 99, + "name": 245, + "xn__Schlssel_95a": 127, + "xn__Schlssel_retour_2vb": 199 }, "compactMode": "DEFAULT", "customIsLoading": false, @@ -78,9 +89,33 @@ { "key": "boxShadow" }, + { + "key": "primaryColumns.customColumn1.buttonLabel" + }, + { + "key": "primaryColumns.customColumn1.buttonColor" + }, + { + "key": "primaryColumns.EditActions1.saveButtonColor" + }, + { + "key": "primaryColumns.EditActions1.saveBorderRadius" + }, + { + "key": "primaryColumns.EditActions1.discardBorderRadius" + }, + { + "key": "primaryColumns.EditActions1.isSaveDisabled" + }, + { + "key": "primaryColumns.EditActions1.isDiscardDisabled" + }, { "key": "tableData" }, + { + "key": "primaryColumns.id.computedValue" + }, { "key": "primaryColumns.Vorgang.computedValue" }, @@ -96,12 +131,6 @@ { "key": "primaryColumns.Geb__Datum.computedValue" }, - { - "key": "primaryColumns.Skipassnummer.computedValue" - }, - { - "key": "primaryColumns.id.computedValue" - }, { "key": "primaryColumns.Zimmer.computedValue" }, @@ -114,6 +143,9 @@ { "key": "primaryColumns.Skipass___Leistungen.computedValue" }, + { + "key": "primaryColumns.Skipassnummer.computedValue" + }, { "key": "primaryColumns.Notiz.computedValue" }, @@ -140,25 +172,34 @@ }, { "key": "primaryColumns.Check_in_Benutzer.computedValue" - }, - { - "key": "primaryColumns.customColumn1.buttonLabel" - }, - { - "key": "primaryColumns.customColumn1.buttonColor" } ], "dynamicPropertyPathList": [ + { + "key": "primaryColumns.customColumn1.buttonColor" + }, + { + "key": "primaryColumns.EditActions1.isSaveDisabled" + }, + { + "key": "primaryColumns.EditActions1.isDiscardDisabled" + }, + { + "key": "primaryColumns.EditActions1.onSave" + }, { "key": "tableData" }, { - "key": "primaryColumns.customColumn1.buttonColor" + "key": "primaryColumns.customColumn1.onClick" } ], "dynamicTriggerPathList": [ { "key": "primaryColumns.customColumn1.onClick" + }, + { + "key": "primaryColumns.EditActions1.onSave" } ], "enableClientSideSearch": true, @@ -182,10 +223,11 @@ "mobileRightColumn": 46, "mobileTopRow": 8, "needsErrorInfo": false, - "originalBottomRow": 101, - "originalTopRow": 49, + "onSort": "{{}}", + "originalBottomRow": 138, + "originalTopRow": 85, "parentColumnSpace": 20.25, - "parentId": "0", + "parentId": "2sk6s6gadj", "parentRowSpace": 10, "primaryColumnId": "id", "primaryColumns": { @@ -193,14 +235,12 @@ "alias": "Check-in Benutzer", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => ( _.get(currentRow, \"Check-in Benutzer\", \"\") )) : _.get(currentRow, \"Check-in Benutzer\", \"\") })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Check-in Benutzer\"])) : Check-in Benutzer })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Check_in_Benutzer", "index": 19, @@ -216,7 +256,6 @@ "notation": "standard", "originalId": "Check-in Benutzer", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -227,14 +266,12 @@ "alias": "Check-in Zeitpunkt", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", - "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => ( _.get(currentRow, \"Check-in Zeitpunkt\", \"\") )) : _.get(currentRow, \"Check-in Zeitpunkt\", \"\") })()}}", + "columnType": "date", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Check-in Zeitpunkt\"])) : Check-in Zeitpunkt })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Check_in_Zeitpunkt", "index": 18, @@ -250,7 +287,6 @@ "notation": "standard", "originalId": "Check-in Zeitpunkt", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -261,17 +297,15 @@ "alias": "E-Mail", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"E-Mail\"])) : E-Mail })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"E-Mail\"])) : E-Mail })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "E_Mail", - "index": 3, + "index": 4, "isCellEditable": false, "isCellVisible": true, "isDerived": false, @@ -284,25 +318,63 @@ "notation": "standard", "originalId": "E-Mail", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, "verticalAlignment": "CENTER", "width": 150 }, + "EditActions1": { + "alias": "EditActions1", + "allowCellWrapping": false, + "allowSameOptionsInNewRow": true, + "buttonStyle": "rgb(3, 179, 101)", + "columnType": "editActions", + "computedValue": "", + "currencyCode": "USD", + "decimals": 0, + "discardActionLabel": "Discard", + "discardBorderRadius": "{{TeilnehmerUpload.processedTableData.map((currentRow, currentIndex) => ( (appsmith.theme.borderRadius.appBorderRadius)))}}", + "discardButtonColor": "#F22B2B", + "discardButtonVariant": "TERTIARY", + "discardIconAlign": "left", + "enableFilter": true, + "enableSort": true, + "id": "EditActions1", + "index": 10, + "isCellEditable": false, + "isCellVisible": true, + "isDerived": true, + "isDisabled": false, + "isDiscardDisabled": "{{TeilnehmerUpload.processedTableData.map((currentRow, currentIndex) => ( !Teilnehmer.updatedRowIndices.includes(currentIndex)))}}", + "isDiscardVisible": true, + "isEditable": false, + "isSaveDisabled": "{{TeilnehmerUpload.processedTableData.map((currentRow, currentIndex) => ( !Teilnehmer.updatedRowIndices.includes(currentIndex)))}}", + "isSaveVisible": true, + "isVisible": false, + "label": "Save / Discard", + "notation": "standard", + "onSave": "{{ CheckinData.saveUpdatedRow(TeilnehmerUpload.updatedRow) }}", + "originalId": "EditActions1", + "saveActionLabel": "Save", + "saveBorderRadius": "{{TeilnehmerUpload.processedTableData.map((currentRow, currentIndex) => ( (appsmith.theme.borderRadius.appBorderRadius)))}}", + "saveButtonColor": "{{TeilnehmerUpload.processedTableData.map((currentRow, currentIndex) => ( (appsmith.theme.colors.primaryColor)))}}", + "saveIconAlign": "left", + "sticky": "left", + "thousandSeparator": true, + "validation": {}, + "width": 150 + }, "Eingecheckt": { "alias": "Eingecheckt", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "checkbox", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Eingecheckt\"])) : Eingecheckt })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Eingecheckt\"])) : Eingecheckt })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Eingecheckt", "index": 17, @@ -318,7 +390,6 @@ "notation": "standard", "originalId": "Eingecheckt", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -329,17 +400,15 @@ "alias": "Geb.-Datum", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => ( _.get(currentRow, \"Geb.-Datum\", \"\") )) : _.get(currentRow, \"Geb.-Datum\", \"\") })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Geb.-Datum\"])) : Geb.-Datum })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Geb__Datum", - "index": 4, + "index": 5, "isCellEditable": false, "isCellVisible": true, "isDerived": false, @@ -352,7 +421,6 @@ "notation": "standard", "originalId": "Geb.-Datum", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -363,14 +431,12 @@ "alias": "Nachbuchungen", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "number", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Nachbuchungen\"])) : Nachbuchungen })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Nachbuchungen\"])) : Nachbuchungen })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Nachbuchungen", "index": 14, @@ -386,7 +452,6 @@ "notation": "standard", "originalId": "Nachbuchungen", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -397,17 +462,15 @@ "alias": "Name", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Name\"])) : Name })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Name\"])) : Name })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Name", - "index": 1, + "index": 2, "isCellEditable": false, "isCellVisible": true, "isDerived": false, @@ -420,7 +483,6 @@ "notation": "standard", "originalId": "Name", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -431,14 +493,12 @@ "alias": "Notiz", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Notiz\"])) : Notiz })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Notiz\"])) : Notiz })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Notiz", "index": 11, @@ -454,7 +514,6 @@ "notation": "standard", "originalId": "Notiz", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -465,14 +524,12 @@ "alias": "Reisestatus", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Reisestatus\"])) : Reisestatus })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Reisestatus\"])) : Reisestatus })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Reisestatus", "index": 16, @@ -483,12 +540,11 @@ "isDiscardVisible": true, "isEditable": false, "isSaveVisible": true, - "isVisible": true, + "isVisible": false, "label": "Reisestatus", "notation": "standard", "originalId": "Reisestatus", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -499,14 +555,12 @@ "alias": "Skipass / Leistungen", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Skipass / Leistungen\"])) : Skipass / Leistungen })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Skipass / Leistungen\"])) : Skipass / Leistungen })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Skipass___Leistungen", "index": 9, @@ -522,7 +576,6 @@ "notation": "standard", "originalId": "Skipass / Leistungen", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -533,17 +586,15 @@ "alias": "Skipassnummer", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Skipassnummer\"])) : Skipassnummer })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Skipassnummer\"])) : Skipassnummer })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Skipassnummer", - "index": 19, + "index": 10, "isCellEditable": false, "isCellVisible": true, "isDerived": false, @@ -556,7 +607,6 @@ "notation": "standard", "originalId": "Skipassnummer", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -567,14 +617,12 @@ "alias": "Status", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Status\"])) : Status })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Status\"])) : Status })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Status", "index": 15, @@ -585,12 +633,11 @@ "isDiscardVisible": true, "isEditable": false, "isSaveVisible": true, - "isVisible": true, + "isVisible": false, "label": "Status", "notation": "standard", "originalId": "Status", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -601,30 +648,27 @@ "alias": "Stirnlampe", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "number", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Stirnlampe\"])) : Stirnlampe })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Stirnlampe\"])) : Stirnlampe })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Stirnlampe", "index": 12, - "isCellEditable": false, + "isCellEditable": true, "isCellVisible": true, "isDerived": false, "isDisabled": false, "isDiscardVisible": true, - "isEditable": false, + "isEditable": true, "isSaveVisible": true, "isVisible": true, "label": "Stirnlampe", "notation": "standard", "originalId": "Stirnlampe", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -635,30 +679,27 @@ "alias": "Stirnlampe retour", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", - "columnType": "checkbox", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => ( Boolean(_.get(currentRow, \"Stirnlampe retour\", false)) )) : Boolean(_.get(currentRow, \"Stirnlampe retour\", false)) })()}}", + "columnType": "number", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Stirnlampe retour\"])) : Stirnlampe retour })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Stirnlampe_retour", "index": 13, - "isCellEditable": false, + "isCellEditable": true, "isCellVisible": true, "isDerived": false, "isDisabled": false, "isDiscardVisible": true, - "isEditable": false, + "isEditable": true, "isSaveVisible": true, "isVisible": true, "label": "Stirnlampe retour", "notation": "standard", "originalId": "Stirnlampe retour", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -669,17 +710,15 @@ "alias": "Vorgang", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", - "columnType": "number", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Vorgang\"])) : Vorgang })()}}", + "columnType": "text", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Vorgang\"])) : Vorgang })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Vorgang", - "index": 0, + "index": 1, "isCellEditable": false, "isCellVisible": true, "isDerived": false, @@ -692,7 +731,6 @@ "notation": "standard", "originalId": "Vorgang", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -703,17 +741,15 @@ "alias": "Vorname", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Vorname\"])) : Vorname })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Vorname\"])) : Vorname })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Vorname", - "index": 2, + "index": 3, "isCellEditable": false, "isCellVisible": true, "isDerived": false, @@ -726,7 +762,6 @@ "notation": "standard", "originalId": "Vorname", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -737,14 +772,12 @@ "alias": "Zimmer", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Zimmer\"])) : Zimmer })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Zimmer\"])) : Zimmer })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "Zimmer", "index": 6, @@ -760,7 +793,6 @@ "notation": "standard", "originalId": "Zimmer", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -771,8 +803,8 @@ "alias": "Check-in", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "buttonColor": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (\n currentRow.Eingecheckt\n ? \"#0a9e6e\"\n : \"#3b6fd4\"\n)) : \n currentRow.Eingecheckt\n ? \"#0a9e6e\"\n : \"#3b6fd4\"\n })()}}", - "buttonLabel": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (\n currentRow.Eingecheckt\n ? \"✓ Eingecheckt\"\n : \"Check-in\"\n)) : \n currentRow.Eingecheckt\n ? \"✓ Eingecheckt\"\n : \"Check-in\"\n })()}}", + "buttonColor": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (\n currentRow.Eingecheckt\n ? \"#0a9e6e\"\n : \"#3b6fd4\"\n)) : \n currentRow.Eingecheckt\n ? \"#0a9e6e\"\n : \"#3b6fd4\"\n })()}}", + "buttonLabel": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (\n currentRow.Eingecheckt\n ? \"✓ Eingecheckt\"\n : \"Check-in\"\n)) : \n currentRow.Eingecheckt\n ? \"✓ Eingecheckt\"\n : \"Check-in\"\n })()}}", "buttonStyle": "rgb(3, 179, 101)", "columnType": "button", "computedValue": "", @@ -795,7 +827,7 @@ "label": "Check-in", "labelColor": "#FFFFFF", "notation": "standard", - "onClick": "{{CheckinData.checkinButtonClick();}}", + "onClick": "{{\n CheckinData.toggleCheckin(\n TeilnehmerUpload.triggeredRow\n )\n}}", "originalId": "customColumn1", "sticky": "", "textSize": "0.875rem", @@ -808,19 +840,17 @@ "alias": "id", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "text", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"id\"])) : id })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"id\"])) : id })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "id", "index": 0, "isCellEditable": false, - "isCellVisible": false, + "isCellVisible": true, "isDerived": false, "isDisabled": false, "isDiscardVisible": true, @@ -831,7 +861,6 @@ "notation": "standard", "originalId": "id", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -842,30 +871,27 @@ "alias": "Schlüssel", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", "columnType": "number", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Schlüssel\"])) : Schlüssel })()}}", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Schlüssel\"])) : Schlüssel })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "xn__Schlssel_95a", "index": 7, - "isCellEditable": false, + "isCellEditable": true, "isCellVisible": true, "isDerived": false, "isDisabled": false, "isDiscardVisible": true, - "isEditable": false, + "isEditable": true, "isSaveVisible": true, "isVisible": true, "label": "Schlüssel", "notation": "standard", "originalId": "Schlüssel", - "sticky": "left", - "textColor": "", + "sticky": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -876,30 +902,27 @@ "alias": "Schlüssel retour", "allowCellWrapping": false, "allowSameOptionsInNewRow": true, - "cellBackground": "", - "columnType": "checkbox", - "computedValue": "{{(() => { const tableData = Teilnehmer.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => ( Boolean(_.get(currentRow, \"Schlüssel retour\", false)) )) : Boolean(_.get(currentRow, \"Schlüssel retour\", false)) })()}}", + "columnType": "number", + "computedValue": "{{(() => { const tableData = TeilnehmerUpload.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Schlüssel retour\"])) : Schlüssel retour })()}}", "currencyCode": "USD", "decimals": 0, "enableFilter": true, "enableSort": true, - "fontStyle": "", "horizontalAlignment": "LEFT", "id": "xn__Schlssel_retour_2vb", "index": 8, - "isCellEditable": false, + "isCellEditable": true, "isCellVisible": true, "isDerived": false, "isDisabled": false, "isDiscardVisible": true, - "isEditable": false, + "isEditable": true, "isSaveVisible": true, "isVisible": true, "label": "Schlüssel retour", "notation": "standard", "originalId": "Schlüssel retour", "sticky": "", - "textColor": "", "textSize": "0.875rem", "thousandSeparator": true, "validation": {}, @@ -909,15 +932,16 @@ }, "renderMode": "CANVAS", "responsiveBehavior": "fill", - "rightColumn": 63, + "rightColumn": 64, "searchKey": "", - "tableData": "{{\n _.get(currentRow, \"Schlüssel retour\", 0) +\n \" / \" +\n _.get(currentRow, \"Schlüssel\", 0) +\n \" retour\"\n}}", + "showInlineEditingOptionDropdown": true, + "tableData": "{{ CheckinData.filteredRows() }}", "textSize": "0.875rem", - "topRow": 49, + "topRow": 19, "totalRecordsCount": 0, "type": "TABLE_WIDGET_V2", "version": 2, "verticalAlignment": "CENTER", - "widgetId": "7d9hktp1ai", - "widgetName": "Teilnehmer" + "widgetId": "dnx12v93r2", + "widgetName": "TeilnehmerUpload" } \ No newline at end of file diff --git a/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/inpSucheUpload.json b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/inpSucheUpload.json new file mode 100644 index 0000000..a7f933f --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/inpSucheUpload.json @@ -0,0 +1,55 @@ +{ + "accentColor": "{{appsmith.theme.colors.primaryColor}}", + "animateLoading": true, + "autoFocus": false, + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 18, + "boxShadow": "none", + "defaultText": "", + "dynamicBindingPathList": [ + { + "key": "accentColor" + }, + { + "key": "borderRadius" + } + ], + "dynamicHeight": "FIXED", + "dynamicTriggerPathList": [], + "iconAlign": "left", + "inputType": "TEXT", + "isDisabled": false, + "isLoading": false, + "isRequired": false, + "isVisible": true, + "key": "ay212tmqgg", + "label": "", + "labelAlignment": "left", + "labelPosition": "Top", + "labelStyle": "", + "labelTextSize": "0.875rem", + "labelWidth": 5, + "leftColumn": 0, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minWidth": 450, + "mobileBottomRow": 44, + "mobileLeftColumn": 21, + "mobileRightColumn": 41, + "mobileTopRow": 37, + "needsErrorInfo": false, + "parentColumnSpace": 20.25, + "parentId": "2sk6s6gadj", + "parentRowSpace": 10, + "placeholderText": "Vorgang, Name, Vorname, E-Mail, Geb.-Datum, Zus_Wunsch, Frühstück am Anreisetag, Skipass 7 Tage (Erwachsene) (Jahrgang 1926-2009) inkl. Anreisetag, Skipass 7 Tage (Kinder) (Jahrgang 2010-2019) inkl. Anreisetag, Bettwäsche-Set inkl. Handtuch-Set, Parkplatz am Haus, Parkplatz am Haus (überdacht), Rabatt ohne Skipass (Erwachsene), Skipass 8 Tage (Erwachsene) inkl. An+Abreisetag (Jahrgang 1926-2009) (nur bei Eigenanreise), Skipass 8 Tage (Kinder) inkl. An+Abreisetag (Jahrgang 2010-2019) (nur bei Eigenanreise), Skipass 6 Tage (Erwachsene) (Jahrgang 1926-2009), Skipass 6 Tage (Kinder) (Jahrgang 2010-2019), Skipass 7 Tage (Erwachsene) inkl. Abreisetag (Jahrgang 1926-2009), Skipass 7 Tage (Kinder) inkl. Abreisetag (Jahrgang 2010-2019), Skipassnummer", + "renderMode": "CANVAS", + "resetOnSubmit": true, + "responsiveBehavior": "fill", + "rightColumn": 13, + "showStepArrows": false, + "topRow": 0, + "type": "INPUT_WIDGET_V2", + "version": 2, + "widgetId": "4kmfowjgou", + "widgetName": "inpSucheUpload" +} \ No newline at end of file diff --git a/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selCheckinUpload.json b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selCheckinUpload.json new file mode 100644 index 0000000..48babd9 --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selCheckinUpload.json @@ -0,0 +1,65 @@ +{ + "accentColor": "{{appsmith.theme.colors.primaryColor}}", + "animateLoading": true, + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 18, + "boxShadow": "none", + "defaultOptionValue": "{{ ((options, serverSideFiltering) => ( \"__ALL__\" ))(selCheckinUpload.options, selCheckinUpload.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": "pfa270btxn", + "labelAlignment": "left", + "labelPosition": "Top", + "labelText": "", + "labelTextSize": "0.875rem", + "labelWidth": 5, + "leftColumn": 52, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minWidth": 450, + "mobileBottomRow": 17, + "mobileLeftColumn": 25, + "mobileRightColumn": 45, + "mobileTopRow": 10, + "needsErrorInfo": false, + "optionLabel": "label", + "optionValue": "value", + "parentColumnSpace": 30.25, + "parentId": "2sk6s6gadj", + "parentRowSpace": 10, + "placeholderText": "Select option", + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 64, + "serverSideFiltering": false, + "sourceData": "{{\n [\n {\n label: \"Alle Check-In Status\",\n value: \"__ALL__\"\n },\n {\n label: \"Eingecheckt\",\n value: \"checked\"\n },\n {\n label: \"Ausstehend\",\n value: \"pending\"\n }\n ]\n}}", + "topRow": 0, + "type": "SELECT_WIDGET", + "version": 1, + "widgetId": "rzvrixecos", + "widgetName": "selCheckinUpload" +} \ No newline at end of file diff --git a/pages/Page1/widgets/Filter/selLeistung.json b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selLeistungUpload.json similarity index 88% rename from pages/Page1/widgets/Filter/selLeistung.json rename to pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selLeistungUpload.json index fc99efc..8ef4884 100644 --- a/pages/Page1/widgets/Filter/selLeistung.json +++ b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selLeistungUpload.json @@ -4,7 +4,7 @@ "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", "bottomRow": 18, "boxShadow": "none", - "defaultOptionValue": "{{ ((options, serverSideFiltering) => ( \"__ALL__\" ))(selLeistung.options, selLeistung.serverSideFiltering) }}", + "defaultOptionValue": "{{ ((options, serverSideFiltering) => ( \"__ALL__\" ))(selLeistungUpload.options, selLeistungUpload.serverSideFiltering) }}", "dynamicBindingPathList": [ { "key": "accentColor" @@ -49,7 +49,7 @@ "optionLabel": "label", "optionValue": "value", "parentColumnSpace": 30.25, - "parentId": "p5ig8mqe5h", + "parentId": "2sk6s6gadj", "parentRowSpace": 10, "placeholderText": "Select option", "renderMode": "CANVAS", @@ -60,6 +60,6 @@ "topRow": 0, "type": "SELECT_WIDGET", "version": 1, - "widgetId": "g7qnca391u", - "widgetName": "selLeistung" + "widgetId": "xmmlwup43r", + "widgetName": "selLeistungUpload" } \ No newline at end of file diff --git a/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selReiseStatusUpload.json b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selReiseStatusUpload.json new file mode 100644 index 0000000..ea6f006 --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selReiseStatusUpload.json @@ -0,0 +1,65 @@ +{ + "accentColor": "{{appsmith.theme.colors.primaryColor}}", + "animateLoading": true, + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 18, + "boxShadow": "none", + "defaultOptionValue": "{{ ((options, serverSideFiltering) => ( \"__ALL__\" ))(selReiseStatusUpload.options, selReiseStatusUpload.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": "pfa270btxn", + "labelAlignment": "left", + "labelPosition": "Top", + "labelText": "", + "labelTextSize": "0.875rem", + "labelWidth": 5, + "leftColumn": 39, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minWidth": 450, + "mobileBottomRow": 19, + "mobileLeftColumn": 36, + "mobileRightColumn": 56, + "mobileTopRow": 12, + "needsErrorInfo": false, + "optionLabel": "label", + "optionValue": "value", + "parentColumnSpace": 30.25, + "parentId": "2sk6s6gadj", + "parentRowSpace": 10, + "placeholderText": "Select option", + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 52, + "serverSideFiltering": false, + "sourceData": "{{\n [\n {\n label: \"Reisestatus: Alle\",\n value: \"__ALL__\"\n },\n {\n label: \"Aktiv\",\n value: \"aktiv\"\n },\n {\n label: \"Abgereist\",\n value: \"abgereist\"\n },\n {\n label: \"Zu zahlen\",\n value: \"zu_zahlen\"\n },\n {\n label: \"No-Show\",\n value: \"no_show\"\n }\n ]\n}}", + "topRow": 0, + "type": "SELECT_WIDGET", + "version": 1, + "widgetId": "ixmds4bmfy", + "widgetName": "selReiseStatusUpload" +} \ No newline at end of file diff --git a/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selVorgangUpload.json b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selVorgangUpload.json new file mode 100644 index 0000000..2dc3f1a --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/FilterCopy/selVorgangUpload.json @@ -0,0 +1,65 @@ +{ + "accentColor": "{{appsmith.theme.colors.primaryColor}}", + "animateLoading": true, + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 18, + "boxShadow": "none", + "defaultOptionValue": "{{ ((options, serverSideFiltering) => ( \"__ALL__\" ))(selVorgangUpload.options, selVorgangUpload.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": "pfa270btxn", + "labelAlignment": "left", + "labelPosition": "Top", + "labelText": "", + "labelTextSize": "0.875rem", + "labelWidth": 5, + "leftColumn": 13, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minWidth": 450, + "mobileBottomRow": 15, + "mobileLeftColumn": 9, + "mobileRightColumn": 29, + "mobileTopRow": 8, + "needsErrorInfo": false, + "optionLabel": "label", + "optionValue": "value", + "parentColumnSpace": 30.25, + "parentId": "2sk6s6gadj", + "parentRowSpace": 10, + "placeholderText": "Select option", + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 26, + "serverSideFiltering": false, + "sourceData": "{{ CheckinData.vorgangOptions() }}", + "topRow": 0, + "type": "SELECT_WIDGET", + "version": 1, + "widgetId": "7kb01a23r7", + "widgetName": "selVorgangUpload" +} \ No newline at end of file diff --git a/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/TrackerCopy.json b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/TrackerCopy.json new file mode 100644 index 0000000..4c46a4b --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/TrackerCopy.json @@ -0,0 +1,92 @@ +{ + "animateLoading": true, + "backgroundColor": "", + "borderColor": "#e0dede", + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "borderWidth": "1", + "bottomRow": 80, + "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", + "children": [ + { + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 800, + "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", + "canExtend": false, + "containerStyle": "none", + "detachFromLayout": true, + "dynamicBindingPathList": [ + { + "key": "borderRadius" + }, + { + "key": "boxShadow" + } + ], + "dynamicHeight": "AUTO_HEIGHT", + "flexLayers": [], + "isLoading": false, + "isVisible": true, + "key": "5go6syp3aw", + "leftColumn": 0, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minHeight": 100, + "minWidth": 450, + "mobileBottomRow": 100, + "mobileLeftColumn": 0, + "mobileRightColumn": 726, + "mobileTopRow": 0, + "needsErrorInfo": false, + "parentColumnSpace": 1, + "parentId": "b1k2ruplal", + "parentRowSpace": 1, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 726, + "topRow": 0, + "type": "CANVAS_WIDGET", + "version": 1, + "widgetId": "8tce98armr", + "widgetName": "Canvas3Copy" + } + ], + "containerStyle": "card", + "dynamicBindingPathList": [ + { + "key": "borderRadius" + }, + { + "key": "boxShadow" + } + ], + "dynamicHeight": "AUTO_HEIGHT", + "dynamicTriggerPathList": [], + "flexVerticalAlignment": "stretch", + "isCanvas": true, + "isLoading": false, + "isVisible": true, + "key": "7zn3ka8jjq", + "leftColumn": 0, + "maxDynamicHeight": 9000, + "minDynamicHeight": 10, + "minWidth": 450, + "mobileBottomRow": 69, + "mobileLeftColumn": 13, + "mobileRightColumn": 37, + "mobileTopRow": 59, + "needsErrorInfo": false, + "originalBottomRow": 80, + "originalTopRow": 0, + "parentColumnSpace": 30.25, + "parentId": "0yzx2g2853", + "parentRowSpace": 10, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 63, + "shouldScrollContents": true, + "topRow": 0, + "type": "CONTAINER_WIDGET", + "version": 1, + "widgetId": "b1k2ruplal", + "widgetName": "TrackerCopy" +} \ No newline at end of file diff --git a/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/UploadEingecheckt.json b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/UploadEingecheckt.json new file mode 100644 index 0000000..2663e77 --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/UploadEingecheckt.json @@ -0,0 +1,55 @@ +{ + "animateLoading": true, + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 4, + "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": "i5k0b442j1", + "leftColumn": 43, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minWidth": 450, + "mobileBottomRow": 16, + "mobileLeftColumn": 19, + "mobileRightColumn": 35, + "mobileTopRow": 12, + "needsErrorInfo": false, + "originalBottomRow": 4, + "originalTopRow": 0, + "overflow": "NONE", + "parentColumnSpace": 30.25, + "parentId": "8tce98armr", + "parentRowSpace": 10, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 64, + "shouldTruncate": false, + "text": "{{\n CheckinData.filteredRows().filter(row =>\n row.Eingecheckt === true ||\n row.checkedIn === true\n ).length + \" eingecheckt\"\n}}", + "textAlign": "CENTER", + "textColor": "#be167d", + "topRow": 0, + "truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}", + "type": "TEXT_WIDGET", + "version": 1, + "widgetId": "6pdp4jub66", + "widgetName": "UploadEingecheckt" +} \ No newline at end of file diff --git a/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/UploadOffen.json b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/UploadOffen.json new file mode 100644 index 0000000..3843734 --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/UploadOffen.json @@ -0,0 +1,55 @@ +{ + "animateLoading": true, + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 4, + "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": "i5k0b442j1", + "leftColumn": 21, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minWidth": 450, + "mobileBottomRow": 17, + "mobileLeftColumn": 44, + "mobileRightColumn": 60, + "mobileTopRow": 13, + "needsErrorInfo": false, + "originalBottomRow": 4, + "originalTopRow": 0, + "overflow": "NONE", + "parentColumnSpace": 30.25, + "parentId": "8tce98armr", + "parentRowSpace": 10, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 41, + "shouldTruncate": false, + "text": "{{\n CheckinData.filteredRows().filter(row =>\n row.Eingecheckt !== true &&\n row.checkedIn !== true\n ).length + \" offen\"\n}}", + "textAlign": "CENTER", + "textColor": "#be167d", + "topRow": 0, + "truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}", + "type": "TEXT_WIDGET", + "version": 1, + "widgetId": "noh9wmz33m", + "widgetName": "UploadOffen" +} \ No newline at end of file diff --git a/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/UploadTeilnehmende.json b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/UploadTeilnehmende.json new file mode 100644 index 0000000..3da4718 --- /dev/null +++ b/pages/Page1/widgets/DatenquelleTabs/TrackerCopy/UploadTeilnehmende.json @@ -0,0 +1,54 @@ +{ + "animateLoading": true, + "backgroundColor": "", + "borderColor": "", + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 4, + "dynamicBindingPathList": [ + { + "key": "truncateButtonColor" + }, + { + "key": "borderRadius" + }, + { + "key": "text" + } + ], + "dynamicHeight": "AUTO_HEIGHT", + "dynamicTriggerPathList": [], + "fontFamily": "Roboto", + "fontSize": "1rem", + "fontStyle": "BOLD", + "isLoading": false, + "isVisible": true, + "key": "i5k0b442j1", + "leftColumn": 0, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minWidth": 450, + "mobileBottomRow": 17, + "mobileLeftColumn": 1, + "mobileRightColumn": 17, + "mobileTopRow": 13, + "needsErrorInfo": false, + "originalBottomRow": 4, + "originalTopRow": 0, + "overflow": "NONE", + "parentColumnSpace": 30.25, + "parentId": "8tce98armr", + "parentRowSpace": 10, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 19, + "shouldTruncate": false, + "text": "{{ CheckinData.filteredRows().length + \" Teilnehmende\" }}", + "textAlign": "CENTER", + "textColor": "#be167d", + "topRow": 0, + "truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}", + "type": "TEXT_WIDGET", + "version": 1, + "widgetId": "3krpsq78ej", + "widgetName": "UploadTeilnehmende" +} \ No newline at end of file diff --git a/pages/Page1/widgets/Ueberschrift.json b/pages/Page1/widgets/Ueberschrift.json index 96b5008..05a672c 100644 --- a/pages/Page1/widgets/Ueberschrift.json +++ b/pages/Page1/widgets/Ueberschrift.json @@ -33,6 +33,8 @@ "mobileRightColumn": 39, "mobileTopRow": 0, "needsErrorInfo": false, + "originalBottomRow": 4, + "originalTopRow": 0, "overflow": "NONE", "parentColumnSpace": 20.25, "parentId": "0", @@ -41,7 +43,7 @@ "responsiveBehavior": "fill", "rightColumn": 64, "shouldTruncate": false, - "text": "Checkin Sportclub Waldschlössli", + "text": "Checkin Sportclub", "textAlign": "CENTER", "textColor": "{{appsmith.theme.colors.primaryColor}}", "topRow": 0, diff --git a/pages/Page2/Page2.json b/pages/Page2/Page2.json new file mode 100644 index 0000000..ed77dd5 --- /dev/null +++ b/pages/Page2/Page2.json @@ -0,0 +1,31 @@ +{ + "gitSyncId": "6a6869faa8b745bffc91aca9_179081e1-4368-4b66-9a30-dca84d738a63", + "unpublishedPage": { + "layouts": [ + { + "dsl": { + "backgroundColor": "none", + "bottomRow": 390, + "canExtend": true, + "containerStyle": "none", + "detachFromLayout": true, + "dynamicBindingPathList": [], + "leftColumn": 0, + "minHeight": 760, + "parentColumnSpace": 1, + "parentRowSpace": 1, + "rightColumn": 1224, + "snapColumns": 64, + "snapRows": 74, + "topRow": 0, + "type": "CANVAS_WIDGET", + "version": 94, + "widgetId": "0", + "widgetName": "MainContainer" + } + } + ], + "name": "Page2", + "slug": "page2" + } +} \ No newline at end of file diff --git a/pages/Page1/widgets/Tracker/Eingecheckt.json b/pages/Page2/widgets/Tracker/Eingecheckt.json similarity index 92% rename from pages/Page1/widgets/Tracker/Eingecheckt.json rename to pages/Page2/widgets/Tracker/Eingecheckt.json index 39bcc04..0c6cef2 100644 --- a/pages/Page1/widgets/Tracker/Eingecheckt.json +++ b/pages/Page2/widgets/Tracker/Eingecheckt.json @@ -1,7 +1,7 @@ { "animateLoading": true, "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", - "bottomRow": 7, + "bottomRow": 4, "dynamicBindingPathList": [ { "key": "truncateButtonColor" @@ -37,7 +37,7 @@ "originalTopRow": 0, "overflow": "NONE", "parentColumnSpace": 30.25, - "parentId": "dbajbznnvh", + "parentId": "bqhnq700c6", "parentRowSpace": 10, "renderMode": "CANVAS", "responsiveBehavior": "fill", @@ -45,11 +45,11 @@ "shouldTruncate": false, "text": "{{ CheckinData.filteredRows().filter(row => row.Eingecheckt === true).length }} eingecheckt", "textAlign": "CENTER", - "textColor": "#18527b", + "textColor": "#be167d", "topRow": 0, "truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}", "type": "TEXT_WIDGET", "version": 1, - "widgetId": "mkza9yyfxm", + "widgetId": "cvxdzos58g", "widgetName": "Eingecheckt" } \ No newline at end of file diff --git a/pages/Page1/widgets/Tracker/Offene_Kunden.json b/pages/Page2/widgets/Tracker/Offene_Kunden.json similarity index 90% rename from pages/Page1/widgets/Tracker/Offene_Kunden.json rename to pages/Page2/widgets/Tracker/Offene_Kunden.json index 77352f9..96e391a 100644 --- a/pages/Page1/widgets/Tracker/Offene_Kunden.json +++ b/pages/Page2/widgets/Tracker/Offene_Kunden.json @@ -33,9 +33,11 @@ "mobileRightColumn": 60, "mobileTopRow": 13, "needsErrorInfo": false, + "originalBottomRow": 4, + "originalTopRow": 0, "overflow": "NONE", "parentColumnSpace": 30.25, - "parentId": "dbajbznnvh", + "parentId": "bqhnq700c6", "parentRowSpace": 10, "renderMode": "CANVAS", "responsiveBehavior": "fill", @@ -43,11 +45,11 @@ "shouldTruncate": false, "text": "{{ CheckinData.filteredRows().filter(row => row.Eingecheckt !== true).length }} offen", "textAlign": "CENTER", - "textColor": "#18527b", + "textColor": "#be167d", "topRow": 0, "truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}", "type": "TEXT_WIDGET", "version": 1, - "widgetId": "wtok69ko5h", + "widgetId": "rjqcwlfcu7", "widgetName": "Offene_Kunden" } \ No newline at end of file diff --git a/pages/Page1/widgets/Tracker/Teilnehmende_Statistik.json b/pages/Page2/widgets/Tracker/Teilnehmende_Statistik.json similarity index 87% rename from pages/Page1/widgets/Tracker/Teilnehmende_Statistik.json rename to pages/Page2/widgets/Tracker/Teilnehmende_Statistik.json index 7022c1f..4e871c4 100644 --- a/pages/Page1/widgets/Tracker/Teilnehmende_Statistik.json +++ b/pages/Page2/widgets/Tracker/Teilnehmende_Statistik.json @@ -1,9 +1,9 @@ { "animateLoading": true, - "backgroundColor": "#ffffff", - "borderColor": "#d9d9d9", + "backgroundColor": "", + "borderColor": "", "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", - "bottomRow": 7, + "bottomRow": 4, "dynamicBindingPathList": [ { "key": "truncateButtonColor" @@ -36,7 +36,7 @@ "originalTopRow": 0, "overflow": "NONE", "parentColumnSpace": 30.25, - "parentId": "dbajbznnvh", + "parentId": "bqhnq700c6", "parentRowSpace": 10, "renderMode": "CANVAS", "responsiveBehavior": "fill", @@ -44,11 +44,11 @@ "shouldTruncate": false, "text": "{{ CheckinData.filteredRows().length }} Teilnehmende", "textAlign": "CENTER", - "textColor": "#18527b", + "textColor": "#be167d", "topRow": 0, "truncateButtonColor": "{{appsmith.theme.colors.primaryColor}}", "type": "TEXT_WIDGET", "version": 1, - "widgetId": "4ak2rsqfsb", + "widgetId": "gq59yvhuu5", "widgetName": "Teilnehmende_Statistik" } \ No newline at end of file diff --git a/pages/Page2/widgets/Tracker/Tracker.json b/pages/Page2/widgets/Tracker/Tracker.json new file mode 100644 index 0000000..aff38eb --- /dev/null +++ b/pages/Page2/widgets/Tracker/Tracker.json @@ -0,0 +1,92 @@ +{ + "animateLoading": true, + "backgroundColor": "", + "borderColor": "#e0dede", + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "borderWidth": "1", + "bottomRow": 39, + "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", + "children": [ + { + "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}", + "bottomRow": 100, + "boxShadow": "{{appsmith.theme.boxShadow.appBoxShadow}}", + "canExtend": false, + "containerStyle": "none", + "detachFromLayout": true, + "dynamicBindingPathList": [ + { + "key": "borderRadius" + }, + { + "key": "boxShadow" + } + ], + "dynamicHeight": "AUTO_HEIGHT", + "flexLayers": [], + "isLoading": false, + "isVisible": true, + "key": "5go6syp3aw", + "leftColumn": 0, + "maxDynamicHeight": 9000, + "minDynamicHeight": 4, + "minHeight": 100, + "minWidth": 450, + "mobileBottomRow": 100, + "mobileLeftColumn": 0, + "mobileRightColumn": 726, + "mobileTopRow": 0, + "needsErrorInfo": false, + "parentColumnSpace": 1, + "parentId": "txtiwj9bep", + "parentRowSpace": 1, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 726, + "topRow": 0, + "type": "CANVAS_WIDGET", + "version": 1, + "widgetId": "bqhnq700c6", + "widgetName": "Canvas3" + } + ], + "containerStyle": "card", + "dynamicBindingPathList": [ + { + "key": "borderRadius" + }, + { + "key": "boxShadow" + } + ], + "dynamicHeight": "AUTO_HEIGHT", + "dynamicTriggerPathList": [], + "flexVerticalAlignment": "stretch", + "isCanvas": true, + "isLoading": false, + "isVisible": true, + "key": "7zn3ka8jjq", + "leftColumn": 0, + "maxDynamicHeight": 9000, + "minDynamicHeight": 10, + "minWidth": 450, + "mobileBottomRow": 69, + "mobileLeftColumn": 13, + "mobileRightColumn": 37, + "mobileTopRow": 59, + "needsErrorInfo": false, + "originalBottomRow": 39, + "originalTopRow": 29, + "parentColumnSpace": 30.25, + "parentId": "0", + "parentRowSpace": 10, + "renderMode": "CANVAS", + "responsiveBehavior": "fill", + "rightColumn": 64, + "shouldScrollContents": true, + "topRow": 29, + "type": "CONTAINER_WIDGET", + "version": 1, + "widgetId": "txtiwj9bep", + "widgetName": "Tracker" +} \ No newline at end of file diff --git a/pages/Page3/Page3.json b/pages/Page3/Page3.json new file mode 100644 index 0000000..db7c507 --- /dev/null +++ b/pages/Page3/Page3.json @@ -0,0 +1,31 @@ +{ + "gitSyncId": "6a6869faa8b745bffc91aca9_a07503f5-b614-43ff-8f04-295ea2442027", + "unpublishedPage": { + "layouts": [ + { + "dsl": { + "backgroundColor": "none", + "bottomRow": 750, + "canExtend": true, + "containerStyle": "none", + "detachFromLayout": true, + "dynamicBindingPathList": [], + "leftColumn": 0, + "minHeight": 760, + "parentColumnSpace": 1, + "parentRowSpace": 1, + "rightColumn": 1224, + "snapColumns": 64, + "snapRows": 74, + "topRow": 0, + "type": "CANVAS_WIDGET", + "version": 94, + "widgetId": "0", + "widgetName": "MainContainer" + } + } + ], + "name": "Page3", + "slug": "page3" + } +} \ No newline at end of file